From 715be629d51174233403237bfc563cf150087dc8 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 25 Sep 2012 13:02:02 +0200 Subject: Imported WebKit commit ce614b0924ba46f78d4435e28ff93c8525fbb7cc (http://svn.webkit.org/repository/webkit/trunk@129485) New snapshot that includes MingW build fixes --- Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp | 197 +++++++++------------ 1 file changed, 81 insertions(+), 116 deletions(-) (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp') 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 #include #include @@ -60,7 +61,6 @@ #include #include -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(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 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 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 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(WKRetain(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(newWebView))))); + RefPtr 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 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 contextMenu = adoptGRef(webkitContextMenuCreate(wkProposedMenu)); - if (WKHitTestResultIsContentEditable(wkHitTestResult)) + GRefPtr contextMenu = adoptGRef(webkitContextMenuCreate(toAPI(proposedMenu))); + if (webHitTestResult->isContentEditable()) webkitWebViewCreateAndAppendInputMethodsMenuItem(webView, contextMenu.get()); - GRefPtr hitTestResult = adoptGRef(webkitHitTestResultCreate(wkHitTestResult)); + GRefPtr hitTestResult = adoptGRef(webkitHitTestResultCreate(toAPI(webHitTestResult))); GOwnPtr 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 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 contentRef(AdoptWK, WKStringCreateWithUTF8CString(content)); - WKRetainPtr 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 htmlString(AdoptWK, WKStringCreateWithUTF8CString(content)); - WKRetainPtr contentURL(AdoptWK, WKURLCreateWithUTF8CString(contentURI)); - WKRetainPtr 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 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 wkURL(AdoptWK, WKURLCreateWithUTF8CString(webkit_uri_request_get_uri(request))); - WKRetainPtr 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 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 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(destroyValidateEditingCommandAsyncData)); - WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)); - WKRetainPtr 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 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 wkScript = adoptWK(WKStringCreateWithUTF8CString(script)); GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(webView), callback, userData, reinterpret_cast(webkit_web_view_run_javascript)); RunJavaScriptAsyncData* data = createRunJavaScriptAsyncData(); data->cancellable = cancellable; g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast(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 wkData; + RefPtr webData; GRefPtr file; GRefPtr 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(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(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(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(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(destroyViewSaveAsyncData)); - WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); - WKPageGetContentsAsMHTMLData(wkPage, false, result, getContentsAsMHTMLDataCallback); + getPage(webView)->getContentsAsMHTMLData(DataCallback::create(result, getContentsAsMHTMLDataCallback), false); } /** -- cgit v1.2.1