diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/API')
14 files changed, 185 insertions, 143 deletions
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp index cd3c55d5f..0b7977f54 100644 --- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp +++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp @@ -45,7 +45,7 @@ const char* EWK2UnitTestEnvironment::defaultTheme() const const char* EWK2UnitTestEnvironment::injectedBundleSample() const { - return TEST_RESOURCES_DIR "/libewk2UnitTestInjectedBundleSample.so"; + return TEST_LIB_DIR "/libewk2UnitTestInjectedBundleSample.so"; } CString EWK2UnitTestEnvironment::urlForResource(const char* resource) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp index f9d713180..42f90b871 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp @@ -28,7 +28,7 @@ using namespace WebKit; static void getContextMenuFromProposedMenu(WKPageRef, WKArrayRef proposedMenu, WKArrayRef*, WKHitTestResultRef hitTestResult, WKTypeRef userData, const void* clientInfo) { - webkitWebViewPopulateContextMenu(WEBKIT_WEB_VIEW(clientInfo), proposedMenu, hitTestResult); + webkitWebViewPopulateContextMenu(WEBKIT_WEB_VIEW(clientInfo), toImpl(proposedMenu), toImpl(hitTestResult)); } void attachContextMenuClientToView(WebKitWebView* webView) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitEditingCommands.h b/Source/WebKit2/UIProcess/API/gtk/WebKitEditingCommands.h index f85bf31bd..36c72a0d3 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitEditingCommands.h +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitEditingCommands.h @@ -62,6 +62,15 @@ G_BEGIN_DECLS */ #define WEBKIT_EDITING_COMMAND_PASTE "Paste" +/** + * WEBKIT_EDITING_COMMAND_SELECT_ALL: + * + * The select all command. Selects all the content of the current text field in + * a #WebKitWebView. + * It is always possible to select all text, no matter wheter the #WebKitWebView content + * is editable or not. You can still check it with webkit_web_view_can_execute_editing_command(). + */ +#define WEBKIT_EDITING_COMMAND_SELECT_ALL "SelectAll" G_END_DECLS diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitResourceLoadClient.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitResourceLoadClient.cpp index b38161156..4444a1ee7 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitResourceLoadClient.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitResourceLoadClient.cpp @@ -38,7 +38,7 @@ using namespace WebKit; static void didInitiateLoadForResource(WKPageRef, WKFrameRef wkFrame, uint64_t resourceIdentifier, WKURLRequestRef wkRequest, bool pageIsProvisionallyLoading, const void* clientInfo) { GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(toImpl(wkRequest)->resourceRequest())); - webkitWebViewResourceLoadStarted(WEBKIT_WEB_VIEW(clientInfo), wkFrame, resourceIdentifier, request.get()); + webkitWebViewResourceLoadStarted(WEBKIT_WEB_VIEW(clientInfo), toImpl(wkFrame), resourceIdentifier, request.get()); } static void didSendRequestForResource(WKPageRef, WKFrameRef, uint64_t resourceIdentifier, WKURLRequestRef wkRequest, WKURLResponseRef wkRedirectResponse, const void* clientInfo) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp index 59d0b0d14..1925e6a21 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp @@ -34,7 +34,7 @@ using namespace WebKit; static WKPageRef createNewPage(WKPageRef page, WKURLRequestRef, WKDictionaryRef wkWindowFeatures, WKEventModifiers, WKEventMouseButton, const void* clientInfo) { - return webkitWebViewCreateNewPage(WEBKIT_WEB_VIEW(clientInfo), wkWindowFeatures); + return static_cast<WKPageRef>(toAPI(webkitWebViewCreateNewPage(WEBKIT_WEB_VIEW(clientInfo), toImpl(wkWindowFeatures)))); } static void showPage(WKPageRef page, const void* clientInfo) @@ -59,8 +59,9 @@ static bool runJavaScriptConfirm(WKPageRef page, WKStringRef message, WKFrameRef static WKStringRef runJavaScriptPrompt(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef, const void* clientInfo) { - return webkitWebViewRunJavaScriptPrompt(WEBKIT_WEB_VIEW(clientInfo), toImpl(message)->string().utf8(), - toImpl(defaultValue)->string().utf8()); + CString result = webkitWebViewRunJavaScriptPrompt(WEBKIT_WEB_VIEW(clientInfo), toImpl(message)->string().utf8(), + toImpl(defaultValue)->string().utf8()); + return WKStringCreateWithUTF8CString(result.data()); } static bool toolbarsAreVisible(WKPageRef page, const void* clientInfo) @@ -131,12 +132,12 @@ static void setWindowFrame(WKPageRef page, WKRect frame, const void* clientInfo) static void mouseDidMoveOverElement(WKPageRef page, WKHitTestResultRef hitTestResult, WKEventModifiers modifiers, WKTypeRef userData, const void* clientInfo) { - webkitWebViewMouseTargetChanged(WEBKIT_WEB_VIEW(clientInfo), hitTestResult, wkEventModifiersToGdkModifiers(modifiers)); + webkitWebViewMouseTargetChanged(WEBKIT_WEB_VIEW(clientInfo), toImpl(hitTestResult), wkEventModifiersToGdkModifiers(modifiers)); } static void printFrame(WKPageRef page, WKFrameRef frame, const void*) { - webkitWebViewPrintFrame(WEBKIT_WEB_VIEW(toImpl(page)->viewWidget()), frame); + webkitWebViewPrintFrame(WEBKIT_WEB_VIEW(toImpl(page)->viewWidget()), toImpl(frame)); } static void runOpenPanel(WKPageRef page, WKFrameRef frame, WKOpenPanelParametersRef parameters, WKOpenPanelResultListenerRef listener, const void *clientInfo) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp index b5c2b4e74..c882cb788 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp @@ -117,13 +117,6 @@ WebKitURIRequest* webkit_uri_request_new(const gchar* uri) return WEBKIT_URI_REQUEST(g_object_new(WEBKIT_TYPE_URI_REQUEST, "uri", uri, NULL)); } -WebKitURIRequest* webkitURIRequestCreateForResourceRequest(const WebCore::ResourceRequest& resourceRequest) -{ - WebKitURIRequest* uriRequest = WEBKIT_URI_REQUEST(g_object_new(WEBKIT_TYPE_URI_REQUEST, NULL)); - uriRequest->priv->resourceRequest = resourceRequest; - return uriRequest; -} - /** * webkit_uri_request_get_uri: * @request: a #WebKitURIRequest @@ -138,3 +131,14 @@ const gchar* webkit_uri_request_get_uri(WebKitURIRequest* request) return request->priv->uri.data(); } +WebKitURIRequest* webkitURIRequestCreateForResourceRequest(const WebCore::ResourceRequest& resourceRequest) +{ + WebKitURIRequest* uriRequest = WEBKIT_URI_REQUEST(g_object_new(WEBKIT_TYPE_URI_REQUEST, NULL)); + uriRequest->priv->resourceRequest = resourceRequest; + return uriRequest; +} + +const WebCore::ResourceRequest& webkitURIRequestGetResourceRequest(WebKitURIRequest* uriRequest) +{ + return uriRequest->priv->resourceRequest; +} diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequestPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequestPrivate.h index db85242af..3af02a527 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequestPrivate.h +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequestPrivate.h @@ -30,5 +30,6 @@ #include <WebCore/ResourceRequest.h> WebKitURIRequest* webkitURIRequestCreateForResourceRequest(const WebCore::ResourceRequest&); +const WebCore::ResourceRequest& webkitURIRequestGetResourceRequest(WebKitURIRequest*); #endif // WebKitURIRequestPrivate_h diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp index 45c3821b0..301be899c 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp @@ -23,6 +23,7 @@ #include "WebContextMenuItem.h" #include "WebContextMenuItemData.h" +#include "WebData.h" #include "WebKitBackForwardListPrivate.h" #include "WebKitContextMenuClient.h" #include "WebKitContextMenuItemPrivate.h" @@ -43,6 +44,7 @@ #include "WebKitScriptDialogPrivate.h" #include "WebKitSettingsPrivate.h" #include "WebKitUIClient.h" +#include "WebKitURIRequestPrivate.h" #include "WebKitURIResponsePrivate.h" #include "WebKitWebContextPrivate.h" #include "WebKitWebInspectorPrivate.h" @@ -50,7 +52,6 @@ #include "WebKitWebViewBasePrivate.h" #include "WebKitWebViewPrivate.h" #include "WebKitWindowPropertiesPrivate.h" -#include "WebPageProxy.h" #include <JavaScriptCore/APICast.h> #include <WebCore/DragIcon.h> #include <WebCore/GOwnPtrGtk.h> @@ -60,7 +61,6 @@ #include <wtf/gobject/GRefPtr.h> #include <wtf/text/CString.h> -using namespace WebKit; using namespace WebCore; enum { @@ -145,6 +145,11 @@ static guint signals[LAST_SIGNAL] = { 0, }; G_DEFINE_TYPE(WebKitWebView, webkit_web_view, WEBKIT_TYPE_WEB_VIEW_BASE) +static inline WebPageProxy* getPage(WebKitWebView* webView) +{ + return webkitWebViewBaseGetPage(reinterpret_cast<WebKitWebViewBase*>(webView)); +} + static gboolean webkitWebViewLoadFail(WebKitWebView* webView, WebKitLoadEvent, const char* failingURI, GError* error) { if (g_error_matches(error, WEBKIT_NETWORK_ERROR, WEBKIT_NETWORK_ERROR_CANCELLED) @@ -238,28 +243,27 @@ static void allowModalDialogsChanged(WebKitSettings* settings, GParamSpec*, WebK WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); if (!page) return; - page->setCanRunModal(webkit_settings_get_allow_modal_dialogs(settings)); + getPage(webView)->setCanRunModal(webkit_settings_get_allow_modal_dialogs(settings)); } static void zoomTextOnlyChanged(WebKitSettings* settings, GParamSpec*, WebKitWebView* webView) { - WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); + WebPageProxy* page = getPage(webView); gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(settings); - gdouble pageZoomLevel = zoomTextOnly ? 1 : WKPageGetTextZoomFactor(wkPage); - gdouble textZoomLevel = zoomTextOnly ? WKPageGetPageZoomFactor(wkPage) : 1; - WKPageSetPageAndTextZoomFactors(wkPage, pageZoomLevel, textZoomLevel); + gdouble pageZoomLevel = zoomTextOnly ? 1 : page->textZoomFactor(); + gdouble textZoomLevel = zoomTextOnly ? page->pageZoomFactor() : 1; + page->setPageAndTextZoomFactors(pageZoomLevel, textZoomLevel); } static void userAgentChanged(WebKitSettings* settings, GParamSpec*, WebKitWebView* webView) { - WKRetainPtr<WKStringRef> userAgent = adoptWK(WKStringCreateWithUTF8CString(webkit_settings_get_user_agent(settings))); - WKPageSetCustomUserAgent(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))), userAgent.get()); + getPage(webView)->setCustomUserAgent(String::fromUTF8(webkit_settings_get_user_agent(settings))); } -static void webkitWebViewSetSettings(WebKitWebView* webView, WebKitSettings* settings, WKPageRef wkPage) +static void webkitWebViewSetSettings(WebKitWebView* webView, WebKitSettings* settings) { webView->priv->settings = settings; - webkitSettingsAttachSettingsToPage(webView->priv->settings.get(), wkPage); + webkitSettingsAttachSettingsToPage(webView->priv->settings.get(), toAPI(getPage(webView))); g_signal_connect(settings, "notify::allow-modal-dialogs", G_CALLBACK(allowModalDialogsChanged), webView); g_signal_connect(settings, "notify::zoom-text-only", G_CALLBACK(zoomTextOnlyChanged), webView); g_signal_connect(settings, "notify::user-agent", G_CALLBACK(userAgentChanged), webView); @@ -333,7 +337,7 @@ static void webkitWebViewConstructed(GObject* object) WebKitWebViewPrivate* priv = webView->priv; WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView); - webkitWebViewBaseCreateWebPage(webViewBase, webkitWebContextGetWKContext(priv->context), 0); + webkitWebViewBaseCreateWebPage(webViewBase, toImpl(webkitWebContextGetWKContext(priv->context)), 0); attachLoaderClientToView(webView); attachUIClientToView(webView); @@ -343,11 +347,10 @@ static void webkitWebViewConstructed(GObject* object) attachContextMenuClientToView(webView); attachFormClientToView(webView); - WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase); - priv->backForwardList = adoptGRef(webkitBackForwardListCreate(WKPageGetBackForwardList(toAPI(page)))); + priv->backForwardList = adoptGRef(webkitBackForwardListCreate(toAPI(getPage(webView)->backForwardList()))); GRefPtr<WebKitSettings> settings = adoptGRef(webkit_settings_new()); - webkitWebViewSetSettings(webView, settings.get(), toAPI(page)); + webkitWebViewSetSettings(webView, settings.get()); } static void webkitWebViewSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec) @@ -1155,7 +1158,9 @@ static void setCertificateToMainResource(WebKitWebView* webView) static void webkitWebViewEmitLoadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent) { - if (loadEvent == WEBKIT_LOAD_FINISHED) { + if (loadEvent == WEBKIT_LOAD_STARTED) + webkitWebViewSetIsLoading(webView, true); + else if (loadEvent == WEBKIT_LOAD_FINISHED) { webkitWebViewSetIsLoading(webView, false); webView->priv->waitingForMainResource = false; webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(webView); @@ -1233,12 +1238,7 @@ void webkitWebViewSetEstimatedLoadProgress(WebKitWebView* webView, double estima void webkitWebViewUpdateURI(WebKitWebView* webView) { - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr<WKURLRef> wkURL(AdoptWK, WKPageCopyActiveURL(toAPI(page))); - CString activeURI; - if (wkURL) - activeURI = toImpl(wkURL.get())->string().utf8(); - + CString activeURI = getPage(webView)->activeURL().utf8(); if (webView->priv->activeURI == activeURI) return; @@ -1246,16 +1246,17 @@ void webkitWebViewUpdateURI(WebKitWebView* webView) g_object_notify(G_OBJECT(webView), "uri"); } -WKPageRef webkitWebViewCreateNewPage(WebKitWebView* webView, WKDictionaryRef wkWindowFeatures) +WebPageProxy* webkitWebViewCreateNewPage(WebKitWebView* webView, ImmutableDictionary* windowFeatures) { WebKitWebView* newWebView; g_signal_emit(webView, signals[CREATE], 0, &newWebView); if (!newWebView) return 0; - webkitWindowPropertiesUpdateFromWKWindowFeatures(newWebView->priv->windowProperties.get(), wkWindowFeatures); + webkitWindowPropertiesUpdateFromWKWindowFeatures(newWebView->priv->windowProperties.get(), toAPI(windowFeatures)); - return static_cast<WKPageRef>(WKRetain(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(newWebView))))); + RefPtr<WebPageProxy> newPage = getPage(newWebView); + return newPage.release().leakRef(); } void webkitWebViewReadyToShowPage(WebKitWebView* webView) @@ -1293,12 +1294,12 @@ bool webkitWebViewRunJavaScriptConfirm(WebKitWebView* webView, const CString& me return dialog.confirmed; } -WKStringRef webkitWebViewRunJavaScriptPrompt(WebKitWebView* webView, const CString& message, const CString& defaultText) +CString webkitWebViewRunJavaScriptPrompt(WebKitWebView* webView, const CString& message, const CString& defaultText) { WebKitScriptDialog dialog(WEBKIT_SCRIPT_DIALOG_PROMPT, message, defaultText); gboolean returnValue; g_signal_emit(webView, signals[SCRIPT_DIALOG], 0, &dialog, &returnValue); - return dialog.text.isNull() ? 0 : WKStringCreateWithUTF8CString(dialog.text.data()); + return dialog.text; } void webkitWebViewMakePolicyDecision(WebKitWebView* webView, WebKitPolicyDecisionType type, WebKitPolicyDecision* decision) @@ -1313,22 +1314,22 @@ void webkitWebViewMakePermissionRequest(WebKitWebView* webView, WebKitPermission g_signal_emit(webView, signals[PERMISSION_REQUEST], 0, request, &returnValue); } -void webkitWebViewMouseTargetChanged(WebKitWebView* webView, WKHitTestResultRef wkHitTestResult, unsigned modifiers) +void webkitWebViewMouseTargetChanged(WebKitWebView* webView, WebHitTestResult* hitTestResult, unsigned modifiers) { - webkitWebViewBaseSetTooltipArea(WEBKIT_WEB_VIEW_BASE(webView), toImpl(wkHitTestResult)->elementBoundingBox()); + webkitWebViewBaseSetTooltipArea(WEBKIT_WEB_VIEW_BASE(webView), hitTestResult->elementBoundingBox()); WebKitWebViewPrivate* priv = webView->priv; if (priv->mouseTargetHitTestResult && priv->mouseTargetModifiers == modifiers - && webkitHitTestResultCompare(priv->mouseTargetHitTestResult.get(), wkHitTestResult)) + && webkitHitTestResultCompare(priv->mouseTargetHitTestResult.get(), toAPI(hitTestResult))) return; priv->mouseTargetModifiers = modifiers; - priv->mouseTargetHitTestResult = adoptGRef(webkitHitTestResultCreate(wkHitTestResult)); + priv->mouseTargetHitTestResult = adoptGRef(webkitHitTestResultCreate(toAPI(hitTestResult))); g_signal_emit(webView, signals[MOUSE_TARGET_CHANGED], 0, priv->mouseTargetHitTestResult.get(), modifiers); } -void webkitWebViewPrintFrame(WebKitWebView* webView, WKFrameRef wkFrame) +void webkitWebViewPrintFrame(WebKitWebView* webView, WebFrameProxy* frame) { GRefPtr<WebKitPrintOperation> printOperation = adoptGRef(webkit_print_operation_new(webView)); gboolean returnValue; @@ -1336,7 +1337,7 @@ void webkitWebViewPrintFrame(WebKitWebView* webView, WKFrameRef wkFrame) if (returnValue) return; - WebKitPrintOperationResponse response = webkitPrintOperationRunDialogForFrame(printOperation.get(), 0, toImpl(wkFrame)); + WebKitPrintOperationResponse response = webkitPrintOperationRunDialogForFrame(printOperation.get(), 0, frame); if (response == WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL) return; g_signal_connect(printOperation.leakRef(), "finished", G_CALLBACK(g_object_unref), 0); @@ -1360,11 +1361,11 @@ static void waitForMainResourceResponseIfWaitingForResource(WebKitWebView* webVi g_signal_connect(priv->mainResource.get(), "notify::response", G_CALLBACK(mainResourceResponseChangedCallback), webView); } -void webkitWebViewResourceLoadStarted(WebKitWebView* webView, WKFrameRef wkFrame, uint64_t resourceIdentifier, WebKitURIRequest* request) +void webkitWebViewResourceLoadStarted(WebKitWebView* webView, WebFrameProxy* frame, uint64_t resourceIdentifier, WebKitURIRequest* request) { WebKitWebViewPrivate* priv = webView->priv; - bool isMainResource = WKFrameIsMainFrame(wkFrame) && !priv->mainResource; - WebKitWebResource* resource = webkitWebResourceCreate(wkFrame, request, isMainResource); + bool isMainResource = frame->isMainFrame() && !priv->mainResource; + WebKitWebResource* resource = webkitWebResourceCreate(toAPI(frame), request, isMainResource); if (isMainResource) { priv->mainResource = resource; waitForMainResourceResponseIfWaitingForResource(webView); @@ -1468,17 +1469,17 @@ static void contextMenuDismissed(GtkMenuShell*, WebKitWebView* webView) g_signal_emit(webView, signals[CONTEXT_MENU_DISMISSED], 0, NULL); } -void webkitWebViewPopulateContextMenu(WebKitWebView* webView, WKArrayRef wkProposedMenu, WKHitTestResultRef wkHitTestResult) +void webkitWebViewPopulateContextMenu(WebKitWebView* webView, ImmutableArray* proposedMenu, WebHitTestResult* webHitTestResult) { WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView); WebContextMenuProxyGtk* contextMenuProxy = webkitWebViewBaseGetActiveContextMenuProxy(webViewBase); ASSERT(contextMenuProxy); - GRefPtr<WebKitContextMenu> contextMenu = adoptGRef(webkitContextMenuCreate(wkProposedMenu)); - if (WKHitTestResultIsContentEditable(wkHitTestResult)) + GRefPtr<WebKitContextMenu> contextMenu = adoptGRef(webkitContextMenuCreate(toAPI(proposedMenu))); + if (webHitTestResult->isContentEditable()) webkitWebViewCreateAndAppendInputMethodsMenuItem(webView, contextMenu.get()); - GRefPtr<WebKitHitTestResult> hitTestResult = adoptGRef(webkitHitTestResultCreate(wkHitTestResult)); + GRefPtr<WebKitHitTestResult> hitTestResult = adoptGRef(webkitHitTestResultCreate(toAPI(webHitTestResult))); GOwnPtr<GdkEvent> contextMenuEvent(webkitWebViewBaseTakeContextMenuEvent(webViewBase)); gboolean returnValue; @@ -1558,10 +1559,7 @@ void webkit_web_view_load_uri(WebKitWebView* webView, const gchar* uri) g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(uri); - WKRetainPtr<WKURLRef> url(AdoptWK, WKURLCreateWithUTF8CString(uri)); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKPageLoadURL(toAPI(page), url.get()); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->loadURL(String::fromUTF8(uri)); } /** @@ -1585,11 +1583,7 @@ void webkit_web_view_load_html(WebKitWebView* webView, const gchar* content, con g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(content); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr<WKStringRef> contentRef(AdoptWK, WKStringCreateWithUTF8CString(content)); - WKRetainPtr<WKURLRef> baseURIRef = baseURI ? adoptWK(WKURLCreateWithUTF8CString(baseURI)) : 0; - WKPageLoadHTMLString(toAPI(page), contentRef.get(), baseURIRef.get()); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->loadHTMLString(String::fromUTF8(content), String::fromUTF8(baseURI)); } /** @@ -1611,12 +1605,7 @@ void webkit_web_view_load_alternate_html(WebKitWebView* webView, const gchar* co g_return_if_fail(content); g_return_if_fail(contentURI); - WKRetainPtr<WKStringRef> htmlString(AdoptWK, WKStringCreateWithUTF8CString(content)); - WKRetainPtr<WKURLRef> contentURL(AdoptWK, WKURLCreateWithUTF8CString(contentURI)); - WKRetainPtr<WKURLRef> baseURL = baseURI ? adoptWK(WKURLCreateWithUTF8CString(baseURI)) : 0; - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKPageLoadAlternateHTMLString(toAPI(page), htmlString.get(), baseURL.get(), contentURL.get()); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->loadAlternateHTMLString(String::fromUTF8(content), String::fromUTF8(baseURI), String::fromUTF8(contentURI)); } /** @@ -1633,10 +1622,7 @@ void webkit_web_view_load_plain_text(WebKitWebView* webView, const gchar* plainT g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(plainText); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr<WKStringRef> plainTextRef(AdoptWK, WKStringCreateWithUTF8CString(plainText)); - WKPageLoadPlainTextString(toAPI(page), plainTextRef.get()); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->loadPlainTextString(String::fromUTF8(plainText)); } /** @@ -1653,11 +1639,7 @@ void webkit_web_view_load_request(WebKitWebView* webView, WebKitURIRequest* requ g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(WEBKIT_IS_URI_REQUEST(request)); - WKRetainPtr<WKURLRef> wkURL(AdoptWK, WKURLCreateWithUTF8CString(webkit_uri_request_get_uri(request))); - WKRetainPtr<WKURLRequestRef> wkRequest(AdoptWK, WKURLRequestCreateWithWKURL(wkURL.get())); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKPageLoadURLRequest(toAPI(page), wkRequest.get()); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->loadURLRequest(WebURLRequest::create(webkitURIRequestGetResourceRequest(request)).leakRef()); } /** @@ -1688,8 +1670,7 @@ void webkit_web_view_reload(WebKitWebView* webView) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - WKPageReload(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->reload(false); } /** @@ -1703,8 +1684,7 @@ void webkit_web_view_reload_bypass_cache(WebKitWebView* webView) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - WKPageReloadFromOrigin(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->reload(true); } /** @@ -1721,7 +1701,7 @@ void webkit_web_view_stop_loading(WebKitWebView* webView) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - WKPageStopLoading(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); + getPage(webView)->stopLoading(); } /** @@ -1756,8 +1736,7 @@ void webkit_web_view_go_back(WebKitWebView* webView) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - WKPageGoBack(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->goBack(); } /** @@ -1772,7 +1751,7 @@ gboolean webkit_web_view_can_go_back(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - return WKPageCanGoBack(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); + return getPage(webView)->canGoBack(); } /** @@ -1787,8 +1766,7 @@ void webkit_web_view_go_forward(WebKitWebView* webView) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - WKPageGoForward(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->goForward(); } /** @@ -1803,7 +1781,7 @@ gboolean webkit_web_view_can_go_forward(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - return WKPageCanGoForward(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); + return getPage(webView)->canGoForward(); } /** @@ -1884,12 +1862,11 @@ const gchar* webkit_web_view_get_custom_charset(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr<WKStringRef> wkCustomEncoding(AdoptWK, WKPageCopyCustomTextEncodingName(toAPI(page))); - if (WKStringIsEmpty(wkCustomEncoding.get())) + String customTextEncoding = getPage(webView)->customTextEncodingName(); + if (customTextEncoding.isEmpty()) return 0; - webView->priv->customTextEncoding = toImpl(wkCustomEncoding.get())->string().utf8(); + webView->priv->customTextEncoding = customTextEncoding.utf8(); return webView->priv->customTextEncoding.data(); } @@ -1908,9 +1885,7 @@ void webkit_web_view_set_custom_charset(WebKitWebView* webView, const gchar* cha { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr<WKStringRef> wkEncodingName = charset ? adoptWK(WKStringCreateWithUTF8CString(charset)) : 0; - WKPageSetCustomTextEncodingName(toAPI(page), wkEncodingName.get()); + getPage(webView)->setCustomTextEncodingName(String::fromUTF8(charset)); } /** @@ -1960,9 +1935,7 @@ void webkit_web_view_go_to_back_forward_list_item(WebKitWebView* webView, WebKit g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(WEBKIT_IS_BACK_FORWARD_LIST_ITEM(listItem)); - WKPageGoToBackForwardListItem(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))), - webkitBackForwardListItemGetWKItem(listItem)); - webkitWebViewSetIsLoading(webView, true); + getPage(webView)->goToBackForwardItem(toImpl(webkitBackForwardListItemGetWKItem(listItem))); } /** @@ -1985,7 +1958,7 @@ void webkit_web_view_set_settings(WebKitWebView* webView, WebKitSettings* settin return; webkitWebViewDisconnectSettingsSignalHandlers(webView); - webkitWebViewSetSettings(webView, settings, toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); + webkitWebViewSetSettings(webView, settings); } /** @@ -2046,11 +2019,11 @@ void webkit_web_view_set_zoom_level(WebKitWebView* webView, gdouble zoomLevel) if (webkit_web_view_get_zoom_level(webView) == zoomLevel) return; - WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); + WebPageProxy* page = getPage(webView); if (webkit_settings_get_zoom_text_only(webView->priv->settings.get())) - WKPageSetTextZoomFactor(wkPage, zoomLevel); + page->setTextZoomFactor(zoomLevel); else - WKPageSetPageZoomFactor(wkPage, zoomLevel); + page->setPageZoomFactor(zoomLevel); g_object_notify(G_OBJECT(webView), "zoom-level"); } @@ -2067,9 +2040,9 @@ gdouble webkit_web_view_get_zoom_level(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 1); - WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); + WebPageProxy* page = getPage(webView); gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webView->priv->settings.get()); - return zoomTextOnly ? WKPageGetTextZoomFactor(wkPage) : WKPageGetPageZoomFactor(wkPage); + return zoomTextOnly ? page->textZoomFactor() : page->pageZoomFactor(); } struct ValidateEditingCommandAsyncData { @@ -2114,9 +2087,7 @@ void webkit_web_view_can_execute_editing_command(WebKitWebView* webView, const c data->cancellable = cancellable; g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyValidateEditingCommandAsyncData)); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr<WKStringRef> wkCommand(AdoptWK, WKStringCreateWithUTF8CString(command)); - WKPageValidateCommand(toAPI(page), wkCommand.get(), result, didValidateCommand); + getPage(webView)->validateCommand(String::fromUTF8(command), ValidateCommandCallback::create(result, didValidateCommand)); } /** @@ -2158,9 +2129,7 @@ void webkit_web_view_execute_editing_command(WebKitWebView* webView, const char* g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(command); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr<WKStringRef> wkCommand(AdoptWK, WKStringCreateWithUTF8CString(command)); - WKPageExecuteCommand(toAPI(page), wkCommand.get()); + getPage(webView)->executeEditCommand(String::fromUTF8(command)); } /** @@ -2249,14 +2218,14 @@ void webkit_web_view_run_javascript(WebKitWebView* webView, const gchar* script, g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(script); - WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); - WKRetainPtr<WKStringRef> wkScript = adoptWK(WKStringCreateWithUTF8CString(script)); GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(webView), callback, userData, reinterpret_cast<gpointer>(webkit_web_view_run_javascript)); RunJavaScriptAsyncData* data = createRunJavaScriptAsyncData(); data->cancellable = cancellable; g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyRunJavaScriptAsyncData)); - WKPageRunJavaScriptInMainFrame(wkPage, wkScript.get(), result, webkitWebViewRunJavaScriptCallback); + + getPage(webView)->runJavaScriptInMainFrame(String::fromUTF8(script), + ScriptValueCallback::create(result, webkitWebViewRunJavaScriptCallback)); } /** @@ -2389,10 +2358,8 @@ WebKitWebInspector* webkit_web_view_get_inspector(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - if (!webView->priv->inspector) { - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - webView->priv->inspector = adoptGRef(webkitWebInspectorCreate(toAPI(page->inspector()))); - } + if (!webView->priv->inspector) + webView->priv->inspector = adoptGRef(webkitWebInspectorCreate(toAPI(getPage(webView)->inspector()))); return webView->priv->inspector.get(); } @@ -2411,12 +2378,11 @@ gboolean webkit_web_view_can_show_mime_type(WebKitWebView* webView, const char* g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); g_return_val_if_fail(mimeType, FALSE); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - return page->canShowMIMEType(String::fromUTF8(mimeType)); + return getPage(webView)->canShowMIMEType(String::fromUTF8(mimeType)); } struct ViewSaveAsyncData { - WKRetainPtr<WKDataRef> wkData; + RefPtr<WebData> webData; GRefPtr<GFile> file; GRefPtr<GCancellable> cancellable; }; @@ -2445,13 +2411,14 @@ static void getContentsAsMHTMLDataCallback(WKDataRef wkData, WKErrorRef, void* c else { // We need to retain the data until the asyncronous process // initiated by the user has finished completely. - data->wkData = wkData; + data->webData = toImpl(wkData); // If we are saving to a file we need to write the data on disk before finishing. if (g_simple_async_result_get_source_tag(result.get()) == webkit_web_view_save_to_file) { ASSERT(G_IS_FILE(data->file.get())); - g_file_replace_contents_async(data->file.get(), reinterpret_cast<const gchar*>(WKDataGetBytes(data->wkData.get())), WKDataGetSize(data->wkData.get()), 0, FALSE, G_FILE_CREATE_REPLACE_DESTINATION, - data->cancellable.get(), fileReplaceContentsCallback, g_object_ref(result.get())); + g_file_replace_contents_async(data->file.get(), reinterpret_cast<const gchar*>(data->webData->bytes()), data->webData->size(), + 0, FALSE, G_FILE_CREATE_REPLACE_DESTINATION, data->cancellable.get(), fileReplaceContentsCallback, + g_object_ref(result.get())); return; } } @@ -2488,8 +2455,7 @@ void webkit_web_view_save(WebKitWebView* webView, WebKitSaveMode saveMode, GCanc data->cancellable = cancellable; g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyViewSaveAsyncData)); - WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); - WKPageGetContentsAsMHTMLData(wkPage, false, result, getContentsAsMHTMLDataCallback); + getPage(webView)->getContentsAsMHTMLData(DataCallback::create(result, getContentsAsMHTMLDataCallback), false); } /** @@ -2516,9 +2482,9 @@ GInputStream* webkit_web_view_save_finish(WebKitWebView* webView, GAsyncResult* GInputStream* dataStream = g_memory_input_stream_new(); ViewSaveAsyncData* data = static_cast<ViewSaveAsyncData*>(g_simple_async_result_get_op_res_gpointer(simple)); - gsize length = WKDataGetSize(data->wkData.get()); + gsize length = data->webData->size(); if (length) - g_memory_input_stream_add_data(G_MEMORY_INPUT_STREAM(dataStream), g_memdup(WKDataGetBytes(data->wkData.get()), length), length, g_free); + g_memory_input_stream_add_data(G_MEMORY_INPUT_STREAM(dataStream), g_memdup(data->webData->bytes(), length), length, g_free); return dataStream; } @@ -2555,8 +2521,7 @@ void webkit_web_view_save_to_file(WebKitWebView* webView, GFile* file, WebKitSav data->cancellable = cancellable; g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyViewSaveAsyncData)); - WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); - WKPageGetContentsAsMHTMLData(wkPage, false, result, getContentsAsMHTMLDataCallback); + getPage(webView)->getContentsAsMHTMLData(DataCallback::create(result, getContentsAsMHTMLDataCallback), false); } /** diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp index 5338e2bd3..b42b2ee8f 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp @@ -775,7 +775,7 @@ static void webkit_web_view_base_class_init(WebKitWebViewBaseClass* webkitWebVie WebKitWebViewBase* webkitWebViewBaseCreate(WebContext* context, WebPageGroup* pageGroup) { WebKitWebViewBase* webkitWebViewBase = WEBKIT_WEB_VIEW_BASE(g_object_new(WEBKIT_TYPE_WEB_VIEW_BASE, NULL)); - webkitWebViewBaseCreateWebPage(webkitWebViewBase, toAPI(context), toAPI(pageGroup)); + webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, pageGroup); return webkitWebViewBase; } @@ -789,11 +789,11 @@ WebPageProxy* webkitWebViewBaseGetPage(WebKitWebViewBase* webkitWebViewBase) return webkitWebViewBase->priv->pageProxy.get(); } -void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WKContextRef context, WKPageGroupRef pageGroup) +void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebContext* context, WebPageGroup* pageGroup) { WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv; - priv->pageProxy = toImpl(context)->createWebPage(priv->pageClient.get(), toImpl(pageGroup)); + priv->pageProxy = context->createWebPage(priv->pageClient.get(), pageGroup); priv->pageProxy->initializeWebPage(); #if ENABLE(FULLSCREEN_API) diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h index 8d0f865ff..4bf2886e5 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h @@ -38,7 +38,7 @@ using namespace WebKit; WebKitWebViewBase* webkitWebViewBaseCreate(WebContext*, WebPageGroup*); GtkIMContext* webkitWebViewBaseGetIMContext(WebKitWebViewBase*); WebPageProxy* webkitWebViewBaseGetPage(WebKitWebViewBase*); -void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WKContextRef, WKPageGroupRef); +void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebContext*, WebPageGroup*); void webkitWebViewBaseSetTooltipText(WebKitWebViewBase*, const char*); void webkitWebViewBaseSetTooltipArea(WebKitWebViewBase*, const WebCore::IntRect&); void webkitWebViewBaseForwardNextKeyEvent(WebKitWebViewBase*); diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h index 5ad2853bb..6aa965d1c 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h @@ -28,33 +28,34 @@ #define WebKitWebViewPrivate_h #include "WebKitWebView.h" -#include <WebKit2/WebKit2_C.h> #include <wtf/text/CString.h> +using namespace WebKit; + void webkitWebViewLoadChanged(WebKitWebView*, WebKitLoadEvent); void webkitWebViewLoadFailed(WebKitWebView*, WebKitLoadEvent, const char* failingURI, GError*); void webkitWebViewSetEstimatedLoadProgress(WebKitWebView*, double estimatedLoadProgress); void webkitWebViewSetTitle(WebKitWebView*, const CString&); void webkitWebViewUpdateURI(WebKitWebView*); -WKPageRef webkitWebViewCreateNewPage(WebKitWebView*, WKDictionaryRef wkWindowFeatures); +WebPageProxy* webkitWebViewCreateNewPage(WebKitWebView*, ImmutableDictionary* windowFeatures); void webkitWebViewReadyToShowPage(WebKitWebView*); void webkitWebViewRunAsModal(WebKitWebView*); void webkitWebViewClosePage(WebKitWebView*); void webkitWebViewRunJavaScriptAlert(WebKitWebView*, const CString& message); bool webkitWebViewRunJavaScriptConfirm(WebKitWebView*, const CString& message); -WKStringRef webkitWebViewRunJavaScriptPrompt(WebKitWebView*, const CString& message, const CString& defaultText); +CString webkitWebViewRunJavaScriptPrompt(WebKitWebView*, const CString& message, const CString& defaultText); void webkitWebViewMakePermissionRequest(WebKitWebView*, WebKitPermissionRequest*); void webkitWebViewMakePolicyDecision(WebKitWebView*, WebKitPolicyDecisionType, WebKitPolicyDecision*); -void webkitWebViewMouseTargetChanged(WebKitWebView*, WKHitTestResultRef, unsigned modifiers); -void webkitWebViewPrintFrame(WebKitWebView*, WKFrameRef); -void webkitWebViewResourceLoadStarted(WebKitWebView*, WKFrameRef, uint64_t resourceIdentifier, WebKitURIRequest*); +void webkitWebViewMouseTargetChanged(WebKitWebView*, WebHitTestResult*, unsigned modifiers); +void webkitWebViewPrintFrame(WebKitWebView*, WebFrameProxy*); +void webkitWebViewResourceLoadStarted(WebKitWebView*, WebFrameProxy*, uint64_t resourceIdentifier, WebKitURIRequest*); void webkitWebViewRunFileChooserRequest(WebKitWebView*, WebKitFileChooserRequest*); WebKitWebResource* webkitWebViewGetLoadingWebResource(WebKitWebView*, uint64_t resourceIdentifier); void webkitWebViewRemoveLoadingWebResource(WebKitWebView*, uint64_t resourceIdentifier); WebKitWebResource* webkitWebViewResourceLoadFinished(WebKitWebView*, uint64_t resourceIdentifier); bool webkitWebViewEnterFullScreen(WebKitWebView*); bool webkitWebViewLeaveFullScreen(WebKitWebView*); -void webkitWebViewPopulateContextMenu(WebKitWebView*, WKArrayRef proposedMenu, WKHitTestResultRef); +void webkitWebViewPopulateContextMenu(WebKitWebView*, ImmutableArray* proposedMenu, WebHitTestResult*); void webkitWebViewSubmitFormRequest(WebKitWebView*, WebKitFormSubmissionRequest*); #endif // WebKitWebViewPrivate_h diff --git a/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt b/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt index 4f5b36c4d..bbf979b64 100644 --- a/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt +++ b/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt @@ -70,6 +70,7 @@ WebKitSaveMode WEBKIT_EDITING_COMMAND_CUT WEBKIT_EDITING_COMMAND_COPY WEBKIT_EDITING_COMMAND_PASTE +WEBKIT_EDITING_COMMAND_SELECT_ALL <SUBSECTION> webkit_web_view_new diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebViewEditor.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebViewEditor.cpp index 97ebe5b27..93315db68 100644 --- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebViewEditor.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebViewEditor.cpp @@ -131,10 +131,70 @@ static void testWebViewEditorCutCopyPasteEditable(EditorTest* test, gconstpointe g_assert_cmpstr(clipboardText.get(), ==, "All work and no play make Jack a dull boy."); } +static void testWebViewEditorSelectAllNonEditable(EditorTest* test, gconstpointer) +{ + static const char* selectedSpanHTML = "<html><body contentEditable=\"false\">" + "<span id=\"mainspan\">All work and no play <span id=\"subspan\">make Jack a dull</span> boy.</span>" + "<script>document.getSelection().collapse();\n" + "document.getSelection().selectAllChildren(document.getElementById('subspan'));\n" + "</script></body></html>"; + + g_assert(test->canExecuteEditingCommand(WEBKIT_EDITING_COMMAND_SELECT_ALL)); + + test->loadHtml(selectedSpanHTML, 0); + test->waitUntilLoadFinished(); + + g_assert(test->canExecuteEditingCommand(WEBKIT_EDITING_COMMAND_SELECT_ALL)); + + test->copyClipboard(); + GOwnPtr<char> clipboardText(gtk_clipboard_wait_for_text(test->m_clipboard)); + + // Initially only the subspan is selected. + g_assert_cmpstr(clipboardText.get(), ==, "make Jack a dull"); + + webkit_web_view_execute_editing_command(test->m_webView, WEBKIT_EDITING_COMMAND_SELECT_ALL); + test->copyClipboard(); + clipboardText.set(gtk_clipboard_wait_for_text(test->m_clipboard)); + + // The mainspan should be selected after calling SELECT_ALL. + g_assert_cmpstr(clipboardText.get(), ==, "All work and no play make Jack a dull boy."); +} + +static void testWebViewEditorSelectAllEditable(EditorTest* test, gconstpointer) +{ + static const char* selectedSpanHTML = "<html><body contentEditable=\"true\">" + "<span id=\"mainspan\">All work and no play <span id=\"subspan\">make Jack a dull</span> boy.</span>" + "<script>document.getSelection().collapse();\n" + "document.getSelection().selectAllChildren(document.getElementById('subspan'));\n" + "</script></body></html>"; + + g_assert(test->canExecuteEditingCommand(WEBKIT_EDITING_COMMAND_SELECT_ALL)); + + test->loadHtml(selectedSpanHTML, 0); + test->waitUntilLoadFinished(); + + g_assert(test->canExecuteEditingCommand(WEBKIT_EDITING_COMMAND_SELECT_ALL)); + + test->copyClipboard(); + GOwnPtr<char> clipboardText(gtk_clipboard_wait_for_text(test->m_clipboard)); + + // Initially only the subspan is selected. + g_assert_cmpstr(clipboardText.get(), ==, "make Jack a dull"); + + webkit_web_view_execute_editing_command(test->m_webView, WEBKIT_EDITING_COMMAND_SELECT_ALL); + test->copyClipboard(); + clipboardText.set(gtk_clipboard_wait_for_text(test->m_clipboard)); + + // The mainspan should be selected after calling SELECT_ALL. + g_assert_cmpstr(clipboardText.get(), ==, "All work and no play make Jack a dull boy."); +} + void beforeAll() { EditorTest::add("WebKitWebView", "cut-copy-paste/non-editable", testWebViewEditorCutCopyPasteNonEditable); EditorTest::add("WebKitWebView", "cut-copy-paste/editable", testWebViewEditorCutCopyPasteEditable); + EditorTest::add("WebKitWebView", "select-all/non-editable", testWebViewEditorSelectAllNonEditable); + EditorTest::add("WebKitWebView", "select-all/editable", testWebViewEditorSelectAllEditable); } void afterAll() diff --git a/Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm b/Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm index f19381891..8b4770046 100644 --- a/Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm +++ b/Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm @@ -83,7 +83,7 @@ static void setUpConnectionClient(WKProcessGroup *processGroup, WKContextRef con _data = [[WKProcessGroupData alloc] init]; if (bundleURL) - _data->_contextRef = adoptWK(WKContextCreateWithInjectedBundlePath(adoptWK(WKStringCreateWithCFString((CFStringRef)[bundleURL absoluteString])).get())); + _data->_contextRef = adoptWK(WKContextCreateWithInjectedBundlePath(adoptWK(WKStringCreateWithCFString((CFStringRef)[bundleURL path])).get())); else _data->_contextRef = adoptWK(WKContextCreate()); |