Diff
Modified: trunk/Source/WebKit2/ChangeLog (218097 => 218098)
--- trunk/Source/WebKit2/ChangeLog 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/ChangeLog 2017-06-12 12:58:50 UTC (rev 218098)
@@ -1,5 +1,46 @@
2017-06-12 Carlos Garcia Campos <[email protected]>
+ [GTK] Prefer to use private WebKitWebView API over WebKitWebViewBase
+ https://bugs.webkit.org/show_bug.cgi?id=173254
+
+ Reviewed by Žan Doberšek.
+
+ WebKitWebViewBase is specific to the GTK+ API, but WebKitWebView should be present in any glib-based API. Add
+ webkitWebViewCreatePage() and webkitWebViewGetPage() and use them when possible instead of the WebKitWebViewBase
+ ones.
+
+ * UIProcess/API/gtk/WebKitAutomationSession.cpp:
+ * UIProcess/API/gtk/WebKitContextMenuClient.cpp:
+ (attachContextMenuClientToView):
+ * UIProcess/API/gtk/WebKitFindController.cpp:
+ (getPage):
+ (webkitFindControllerDispose):
+ (webkitFindControllerConstructed):
+ (webKitFindControllerPerform):
+ (webkit_find_controller_search_finish):
+ * UIProcess/API/gtk/WebKitFormClient.cpp:
+ (attachFormClientToView):
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (attachLoaderClientToView):
+ * UIProcess/API/gtk/WebKitPolicyClient.cpp:
+ (attachPolicyClientToView):
+ * UIProcess/API/gtk/WebKitPrintOperation.cpp:
+ (drawPagesForPrintingCompleted):
+ (webkitPrintOperationPrintPagesForFrame):
+ (webkit_print_operation_run_dialog):
+ (webkit_print_operation_print):
+ * UIProcess/API/gtk/WebKitUIClient.cpp:
+ (attachUIClientToView):
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkitWebContextCreatePageForWebView):
+ (webkitWebContextWebViewDestroyed):
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewCreatePage):
+ (webkitWebViewGetPage):
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h:
+
+2017-06-12 Carlos Garcia Campos <[email protected]>
+
[GTK] getPage() in WebKitWebView should return a reference instead of a pointer
https://bugs.webkit.org/show_bug.cgi?id=173251
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitAutomationSession.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitAutomationSession.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitAutomationSession.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -23,8 +23,7 @@
#include "APIAutomationSessionClient.h"
#include "WebKitAutomationSessionPrivate.h"
#include "WebKitPrivate.h"
-#include "WebKitWebView.h"
-#include "WebKitWebViewBasePrivate.h"
+#include "WebKitWebViewPrivate.h"
#include <glib/gi18n-lib.h>
#include <wtf/text/CString.h>
@@ -86,7 +85,7 @@
if (!webView || !webkit_web_view_is_controlled_by_automation(webView))
return nullptr;
- return webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
+ return &webkitWebViewGetPage(webView);
}
WebKitAutomationSession* m_session;
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -22,7 +22,6 @@
#include "APIContextMenuClient.h"
#include "WebContextMenuItem.h"
-#include "WebKitWebViewBasePrivate.h"
#include "WebKitWebViewPrivate.h"
using namespace WebKit;
@@ -57,7 +56,6 @@
void attachContextMenuClientToView(WebKitWebView* webView)
{
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
- page->setContextMenuClient(std::make_unique<ContextMenuClient>(webView));
+ webkitWebViewGetPage(webView).setContextMenuClient(std::make_unique<ContextMenuClient>(webView));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -23,8 +23,7 @@
#include "APIFindClient.h"
#include "WebKitEnumTypes.h"
#include "WebKitPrivate.h"
-#include "WebKitWebView.h"
-#include "WebKitWebViewBasePrivate.h"
+#include "WebKitWebViewPrivate.h"
#include <glib/gi18n-lib.h>
#include <wtf/glib/GRefPtr.h>
#include <wtf/text/CString.h>
@@ -102,9 +101,9 @@
| (findOptions & FindOptionsWrapAround ? WEBKIT_FIND_OPTIONS_WRAP_AROUND : 0));
}
-static inline WebPageProxy* getPage(WebKitFindController* findController)
+static inline WebPageProxy& getPage(WebKitFindController* findController)
{
- return webkitWebViewBaseGetPage(reinterpret_cast<WebKitWebViewBase*>(findController->priv->webView));
+ return webkitWebViewGetPage(findController->priv->webView);
}
class FindClient final : public API::FindClient {
@@ -136,7 +135,7 @@
static void webkitFindControllerDispose(GObject* object)
{
WebKitFindController* findController = WEBKIT_FIND_CONTROLLER(object);
- getPage(findController)->setFindClient(nullptr);
+ getPage(findController).setFindClient(nullptr);
G_OBJECT_CLASS(webkit_find_controller_parent_class)->dispose(object);
}
@@ -146,7 +145,7 @@
G_OBJECT_CLASS(webkit_find_controller_parent_class)->constructed(object);
WebKitFindController* findController = WEBKIT_FIND_CONTROLLER(object);
- getPage(findController)->setFindClient(std::make_unique<FindClient>(findController));
+ getPage(findController).setFindClient(std::make_unique<FindClient>(findController));
}
static void webkitFindControllerGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec)
@@ -374,7 +373,7 @@
{
WebKitFindControllerPrivate* priv = findController->priv;
if (operation == CountOperation) {
- getPage(findController)->countStringMatches(String::fromUTF8(priv->searchText.data()),
+ getPage(findController).countStringMatches(String::fromUTF8(priv->searchText.data()),
static_cast<WebKit::FindOptions>(priv->findOptions), priv->maxMatchCount);
return;
}
@@ -390,8 +389,7 @@
// extra unmarkAllTextMatches() + markAllTextMatches()
findOptions |= FindOptionsShowHighlight;
- getPage(findController)->findString(String::fromUTF8(priv->searchText.data()), static_cast<WebKit::FindOptions>(findOptions),
- priv->maxMatchCount);
+ getPage(findController).findString(String::fromUTF8(priv->searchText.data()), static_cast<WebKit::FindOptions>(findOptions), priv->maxMatchCount);
}
static inline void webKitFindControllerSetSearchData(WebKitFindController* findController, const gchar* searchText, guint32 findOptions, guint maxMatchCount)
@@ -508,5 +506,5 @@
{
g_return_if_fail(WEBKIT_IS_FIND_CONTROLLER(findController));
- getPage(findController)->hideFindUI();
+ getPage(findController).hideFindUI();
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -24,7 +24,6 @@
#include "WebFormSubmissionListenerProxy.h"
#include "WebKitFormSubmissionRequestPrivate.h"
#include "WebKitPrivate.h"
-#include "WebKitWebViewBasePrivate.h"
#include "WebKitWebViewPrivate.h"
#include <wtf/glib/GRefPtr.h>
@@ -49,6 +48,5 @@
void attachFormClientToView(WebKitWebView* webView)
{
- auto* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
- page->setFormClient(std::make_unique<FormClient>(webView));
+ webkitWebViewGetPage(webView).setFormClient(std::make_unique<FormClient>(webView));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -25,7 +25,6 @@
#include "WebKitBackForwardListPrivate.h"
#include "WebKitPrivate.h"
#include "WebKitURIResponsePrivate.h"
-#include "WebKitWebViewBasePrivate.h"
#include "WebKitWebViewPrivate.h"
#include <wtf/glib/GUniquePtr.h>
#include <wtf/text/CString.h>
@@ -121,7 +120,6 @@
void attachLoaderClientToView(WebKitWebView* webView)
{
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
- page->setLoaderClient(std::make_unique<LoaderClient>(webView));
+ webkitWebViewGetPage(webView).setLoaderClient(std::make_unique<LoaderClient>(webView));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -23,7 +23,6 @@
#include "APIPolicyClient.h"
#include "WebKitNavigationPolicyDecisionPrivate.h"
#include "WebKitResponsePolicyDecisionPrivate.h"
-#include "WebKitWebViewBasePrivate.h"
#include "WebKitWebViewPrivate.h"
#include "WebsitePolicies.h"
#include <wtf/glib/GRefPtr.h>
@@ -62,6 +61,5 @@
void attachPolicyClientToView(WebKitWebView* webView)
{
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
- page->setPolicyClient(std::make_unique<PolicyClient>(webView));
+ webkitWebViewGetPage(webView).setPolicyClient(std::make_unique<PolicyClient>(webView));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -23,7 +23,7 @@
#include "WebKitPrintCustomWidgetPrivate.h"
#include "WebKitPrintOperationPrivate.h"
#include "WebKitPrivate.h"
-#include "WebKitWebViewBasePrivate.h"
+#include "WebKitWebViewPrivate.h"
#include "WebPageProxy.h"
#include <WebCore/GtkUtilities.h>
#include <WebCore/NotImplemented.h>
@@ -307,10 +307,8 @@
static void drawPagesForPrintingCompleted(API::Error* wkPrintError, WebKitPrintOperation* printOperation)
{
// When running synchronously WebPageProxy::printFrame() calls endPrinting().
- if (printOperation->priv->printMode == PrintInfo::PrintModeAsync && printOperation->priv->webView) {
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
- page->endPrinting();
- }
+ if (printOperation->priv->printMode == PrintInfo::PrintModeAsync && printOperation->priv->webView)
+ webkitWebViewGetPage(printOperation->priv->webView).endPrinting();
const WebCore::ResourceError& resourceError = wkPrintError ? wkPrintError->platformError() : WebCore::ResourceError();
if (!resourceError.isNull()) {
@@ -324,9 +322,9 @@
static void webkitPrintOperationPrintPagesForFrame(WebKitPrintOperation* printOperation, WebFrameProxy* webFrame, GtkPrintSettings* printSettings, GtkPageSetup* pageSetup)
{
PrintInfo printInfo(printSettings, pageSetup, printOperation->priv->printMode);
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
+ auto& page = webkitWebViewGetPage(printOperation->priv->webView);
g_object_ref(printOperation);
- page->drawPagesForPrinting(webFrame, printInfo, PrintFinishedCallback::create([printOperation](API::Error* printError, CallbackBase::Error) {
+ page.drawPagesForPrinting(webFrame, printInfo, PrintFinishedCallback::create([printOperation](API::Error* printError, CallbackBase::Error) {
drawPagesForPrintingCompleted(printError, adoptGRef(printOperation).get());
}));
}
@@ -466,8 +464,8 @@
{
g_return_val_if_fail(WEBKIT_IS_PRINT_OPERATION(printOperation), WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL);
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
- return webkitPrintOperationRunDialogForFrame(printOperation, parent, page->mainFrame());
+ auto& page = webkitWebViewGetPage(printOperation->priv->webView);
+ return webkitPrintOperationRunDialogForFrame(printOperation, parent, page.mainFrame());
}
/**
@@ -491,6 +489,6 @@
GRefPtr<GtkPrintSettings> printSettings = priv->printSettings ? priv->printSettings : adoptGRef(gtk_print_settings_new());
GRefPtr<GtkPageSetup> pageSetup = priv->pageSetup ? priv->pageSetup : adoptGRef(gtk_page_setup_new());
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
- webkitPrintOperationPrintPagesForFrame(printOperation, page->mainFrame(), printSettings.get(), pageSetup.get());
+ auto& page = webkitWebViewGetPage(printOperation->priv->webView);
+ webkitPrintOperationPrintPagesForFrame(printOperation, page.mainFrame(), printSettings.get(), pageSetup.get());
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -28,7 +28,6 @@
#include "WebKitPrivate.h"
#include "WebKitURIRequestPrivate.h"
#include "WebKitUserMediaPermissionRequestPrivate.h"
-#include "WebKitWebViewBasePrivate.h"
#include "WebKitWebViewPrivate.h"
#include "WebKitWindowPropertiesPrivate.h"
#include "WebPageProxy.h"
@@ -217,7 +216,6 @@
void attachUIClientToView(WebKitWebView* webView)
{
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
- page->setUIClient(std::make_unique<UIClient>(webView));
+ webkitWebViewGetPage(webView).setUIClient(std::make_unique<UIClient>(webView));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -49,7 +49,6 @@
#include "WebKitURISchemeRequestPrivate.h"
#include "WebKitUserContentManagerPrivate.h"
#include "WebKitWebContextPrivate.h"
-#include "WebKitWebViewBasePrivate.h"
#include "WebKitWebViewPrivate.h"
#include "WebKitWebsiteDataManagerPrivate.h"
#include "WebNotificationManagerProxy.h"
@@ -1601,8 +1600,6 @@
void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
{
- WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView);
-
// FIXME: icon database private mode is global, not per page, so while there are
// pages in private mode we need to enable the private mode in the icon database.
webkitWebContextEnableIconDatabasePrivateBrowsingIfNeeded(context, webView);
@@ -1610,7 +1607,7 @@
auto pageConfiguration = API::PageConfiguration::create();
pageConfiguration->setProcessPool(context->priv->processPool.get());
pageConfiguration->setPreferences(webkitSettingsGetPreferences(webkit_web_view_get_settings(webView)));
- pageConfiguration->setRelatedPage(relatedView ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(relatedView)) : nullptr);
+ pageConfiguration->setRelatedPage(relatedView ? &webkitWebViewGetPage(relatedView) : nullptr);
pageConfiguration->setUserContentController(userContentManager ? webkitUserContentManagerGetUserContentControllerProxy(userContentManager) : nullptr);
pageConfiguration->setControlledByAutomation(webkit_web_view_is_controlled_by_automation(webView));
@@ -1619,17 +1616,15 @@
manager = context->priv->websiteDataManager.get();
pageConfiguration->setWebsiteDataStore(&webkitWebsiteDataManagerGetDataStore(manager));
pageConfiguration->setSessionID(pageConfiguration->websiteDataStore()->websiteDataStore().sessionID());
- webkitWebViewBaseCreateWebPage(webViewBase, WTFMove(pageConfiguration));
+ webkitWebViewCreatePage(webView, WTFMove(pageConfiguration));
- WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
- context->priv->webViews.set(page->pageID(), webView);
+ context->priv->webViews.set(webkit_web_view_get_page_id(webView), webView);
}
void webkitWebContextWebViewDestroyed(WebKitWebContext* context, WebKitWebView* webView)
{
webkitWebContextDisableIconDatabasePrivateBrowsingIfNeeded(context, webView);
- WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
- context->priv->webViews.remove(page->pageID());
+ context->priv->webViews.remove(webkit_web_view_get_page_id(webView));
}
WebKitWebView* webkitWebContextGetWebViewForPage(WebKitWebContext* context, WebPageProxy* page)
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2017-06-12 12:58:50 UTC (rev 218098)
@@ -1894,6 +1894,16 @@
webView->priv->authenticationRequest.clear();
}
+void webkitWebViewCreatePage(WebKitWebView* webView, Ref<API::PageConfiguration>&& configuration)
+{
+ webkitWebViewBaseCreateWebPage(WEBKIT_WEB_VIEW_BASE(webView), WTFMove(configuration));
+}
+
+WebPageProxy& webkitWebViewGetPage(WebKitWebView* webView)
+{
+ return getPage(webView);
+}
+
void webkitWebViewLoadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent)
{
WebKitWebViewPrivate* priv = webView->priv;
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h (218097 => 218098)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h 2017-06-12 12:54:52 UTC (rev 218097)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h 2017-06-12 12:58:50 UTC (rev 218098)
@@ -24,16 +24,20 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef WebKitWebViewPrivate_h
-#define WebKitWebViewPrivate_h
+#pragma once
+#include "APIPageConfiguration.h"
#include "InstallMissingMediaPluginsPermissionRequest.h"
#include "WebContextMenuItemData.h"
#include "WebHitTestResultData.h"
#include "WebImage.h"
+#include "WebKitPrivate.h"
#include "WebKitWebView.h"
+#include "WebPageProxy.h"
#include <wtf/text/CString.h>
+void webkitWebViewCreatePage(WebKitWebView*, Ref<API::PageConfiguration>&&);
+WebKit::WebPageProxy& webkitWebViewGetPage(WebKitWebView*);
void webkitWebViewLoadChanged(WebKitWebView*, WebKitLoadEvent);
void webkitWebViewLoadFailed(WebKitWebView*, WebKitLoadEvent, const char* failingURI, GError*);
void webkitWebViewLoadFailedWithTLSErrors(WebKitWebView*, const char* failingURI, GError*, GTlsCertificateFlags, GTlsCertificate*);
@@ -68,5 +72,3 @@
void webkitWebViewSelectionDidChange(WebKitWebView*);
void webkitWebViewRequestInstallMissingMediaPlugins(WebKitWebView*, WebKit::InstallMissingMediaPluginsPermissionRequest&);
WebKitWebsiteDataManager* webkitWebViewGetWebsiteDataManager(WebKitWebView*);
-
-#endif // WebKitWebViewPrivate_h