Changeset 218098 in webkit


Ignore:
Timestamp:
Jun 12, 2017 5:58:50 AM (7 years ago)
Author:
Carlos Garcia Campos
Message:

[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:
Location:
trunk/Source/WebKit2
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r218097 r218098  
     12017-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Prefer to use private WebKitWebView API over WebKitWebViewBase
     4        https://bugs.webkit.org/show_bug.cgi?id=173254
     5
     6        Reviewed by Žan Doberšek.
     7
     8        WebKitWebViewBase is specific to the GTK+ API, but WebKitWebView should be present in any glib-based API. Add
     9        webkitWebViewCreatePage() and webkitWebViewGetPage() and use them when possible instead of the WebKitWebViewBase
     10        ones.
     11
     12        * UIProcess/API/gtk/WebKitAutomationSession.cpp:
     13        * UIProcess/API/gtk/WebKitContextMenuClient.cpp:
     14        (attachContextMenuClientToView):
     15        * UIProcess/API/gtk/WebKitFindController.cpp:
     16        (getPage):
     17        (webkitFindControllerDispose):
     18        (webkitFindControllerConstructed):
     19        (webKitFindControllerPerform):
     20        (webkit_find_controller_search_finish):
     21        * UIProcess/API/gtk/WebKitFormClient.cpp:
     22        (attachFormClientToView):
     23        * UIProcess/API/gtk/WebKitLoaderClient.cpp:
     24        (attachLoaderClientToView):
     25        * UIProcess/API/gtk/WebKitPolicyClient.cpp:
     26        (attachPolicyClientToView):
     27        * UIProcess/API/gtk/WebKitPrintOperation.cpp:
     28        (drawPagesForPrintingCompleted):
     29        (webkitPrintOperationPrintPagesForFrame):
     30        (webkit_print_operation_run_dialog):
     31        (webkit_print_operation_print):
     32        * UIProcess/API/gtk/WebKitUIClient.cpp:
     33        (attachUIClientToView):
     34        * UIProcess/API/gtk/WebKitWebContext.cpp:
     35        (webkitWebContextCreatePageForWebView):
     36        (webkitWebContextWebViewDestroyed):
     37        * UIProcess/API/gtk/WebKitWebView.cpp:
     38        (webkitWebViewCreatePage):
     39        (webkitWebViewGetPage):
     40        * UIProcess/API/gtk/WebKitWebViewPrivate.h:
     41
    1422017-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>
    243
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitAutomationSession.cpp

    r216006 r218098  
    2424#include "WebKitAutomationSessionPrivate.h"
    2525#include "WebKitPrivate.h"
    26 #include "WebKitWebView.h"
    27 #include "WebKitWebViewBasePrivate.h"
     26#include "WebKitWebViewPrivate.h"
    2827#include <glib/gi18n-lib.h>
    2928#include <wtf/text/CString.h>
     
    8786            return nullptr;
    8887
    89         return webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
     88        return &webkitWebViewGetPage(webView);
    9089    }
    9190
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp

    r191491 r218098  
    2323#include "APIContextMenuClient.h"
    2424#include "WebContextMenuItem.h"
    25 #include "WebKitWebViewBasePrivate.h"
    2625#include "WebKitWebViewPrivate.h"
    2726
     
    5857void attachContextMenuClientToView(WebKitWebView* webView)
    5958{
    60     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
    61     page->setContextMenuClient(std::make_unique<ContextMenuClient>(webView));
     59    webkitWebViewGetPage(webView).setContextMenuClient(std::make_unique<ContextMenuClient>(webView));
    6260}
    6361
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp

    r217961 r218098  
    2424#include "WebKitEnumTypes.h"
    2525#include "WebKitPrivate.h"
    26 #include "WebKitWebView.h"
    27 #include "WebKitWebViewBasePrivate.h"
     26#include "WebKitWebViewPrivate.h"
    2827#include <glib/gi18n-lib.h>
    2928#include <wtf/glib/GRefPtr.h>
     
    103102}
    104103
    105 static inline WebPageProxy* getPage(WebKitFindController* findController)
    106 {
    107     return webkitWebViewBaseGetPage(reinterpret_cast<WebKitWebViewBase*>(findController->priv->webView));
     104static inline WebPageProxy& getPage(WebKitFindController* findController)
     105{
     106    return webkitWebViewGetPage(findController->priv->webView);
    108107}
    109108
     
    137136{
    138137    WebKitFindController* findController = WEBKIT_FIND_CONTROLLER(object);
    139     getPage(findController)->setFindClient(nullptr);
     138    getPage(findController).setFindClient(nullptr);
    140139
    141140    G_OBJECT_CLASS(webkit_find_controller_parent_class)->dispose(object);
     
    147146
    148147    WebKitFindController* findController = WEBKIT_FIND_CONTROLLER(object);
    149     getPage(findController)->setFindClient(std::make_unique<FindClient>(findController));
     148    getPage(findController).setFindClient(std::make_unique<FindClient>(findController));
    150149}
    151150
     
    375374    WebKitFindControllerPrivate* priv = findController->priv;
    376375    if (operation == CountOperation) {
    377         getPage(findController)->countStringMatches(String::fromUTF8(priv->searchText.data()),
     376        getPage(findController).countStringMatches(String::fromUTF8(priv->searchText.data()),
    378377            static_cast<WebKit::FindOptions>(priv->findOptions), priv->maxMatchCount);
    379378        return;
     
    391390        findOptions |= FindOptionsShowHighlight;
    392391
    393     getPage(findController)->findString(String::fromUTF8(priv->searchText.data()), static_cast<WebKit::FindOptions>(findOptions),
    394                                         priv->maxMatchCount);
     392    getPage(findController).findString(String::fromUTF8(priv->searchText.data()), static_cast<WebKit::FindOptions>(findOptions), priv->maxMatchCount);
    395393}
    396394
     
    509507    g_return_if_fail(WEBKIT_IS_FIND_CONTROLLER(findController));
    510508
    511     getPage(findController)->hideFindUI();
    512 }
     509    getPage(findController).hideFindUI();
     510}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp

    r217963 r218098  
    2525#include "WebKitFormSubmissionRequestPrivate.h"
    2626#include "WebKitPrivate.h"
    27 #include "WebKitWebViewBasePrivate.h"
    2827#include "WebKitWebViewPrivate.h"
    2928#include <wtf/glib/GRefPtr.h>
     
    5049void attachFormClientToView(WebKitWebView* webView)
    5150{
    52     auto* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
    53     page->setFormClient(std::make_unique<FormClient>(webView));
     51    webkitWebViewGetPage(webView).setFormClient(std::make_unique<FormClient>(webView));
    5452}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp

    r194419 r218098  
    2626#include "WebKitPrivate.h"
    2727#include "WebKitURIResponsePrivate.h"
    28 #include "WebKitWebViewBasePrivate.h"
    2928#include "WebKitWebViewPrivate.h"
    3029#include <wtf/glib/GUniquePtr.h>
     
    122121void attachLoaderClientToView(WebKitWebView* webView)
    123122{
    124     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
    125     page->setLoaderClient(std::make_unique<LoaderClient>(webView));
     123    webkitWebViewGetPage(webView).setLoaderClient(std::make_unique<LoaderClient>(webView));
    126124}
    127125
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp

    r209604 r218098  
    2424#include "WebKitNavigationPolicyDecisionPrivate.h"
    2525#include "WebKitResponsePolicyDecisionPrivate.h"
    26 #include "WebKitWebViewBasePrivate.h"
    2726#include "WebKitWebViewPrivate.h"
    2827#include "WebsitePolicies.h"
     
    6362void attachPolicyClientToView(WebKitWebView* webView)
    6463{
    65     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
    66     page->setPolicyClient(std::make_unique<PolicyClient>(webView));
     64    webkitWebViewGetPage(webView).setPolicyClient(std::make_unique<PolicyClient>(webView));
    6765}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrintOperation.cpp

    r211481 r218098  
    2424#include "WebKitPrintOperationPrivate.h"
    2525#include "WebKitPrivate.h"
    26 #include "WebKitWebViewBasePrivate.h"
     26#include "WebKitWebViewPrivate.h"
    2727#include "WebPageProxy.h"
    2828#include <WebCore/GtkUtilities.h>
     
    308308{
    309309    // When running synchronously WebPageProxy::printFrame() calls endPrinting().
    310     if (printOperation->priv->printMode == PrintInfo::PrintModeAsync && printOperation->priv->webView) {
    311         WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
    312         page->endPrinting();
    313     }
     310    if (printOperation->priv->printMode == PrintInfo::PrintModeAsync && printOperation->priv->webView)
     311        webkitWebViewGetPage(printOperation->priv->webView).endPrinting();
    314312
    315313    const WebCore::ResourceError& resourceError = wkPrintError ? wkPrintError->platformError() : WebCore::ResourceError();
     
    325323{
    326324    PrintInfo printInfo(printSettings, pageSetup, printOperation->priv->printMode);
    327     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
     325    auto& page = webkitWebViewGetPage(printOperation->priv->webView);
    328326    g_object_ref(printOperation);
    329     page->drawPagesForPrinting(webFrame, printInfo, PrintFinishedCallback::create([printOperation](API::Error* printError, CallbackBase::Error) {
     327    page.drawPagesForPrinting(webFrame, printInfo, PrintFinishedCallback::create([printOperation](API::Error* printError, CallbackBase::Error) {
    330328        drawPagesForPrintingCompleted(printError, adoptGRef(printOperation).get());
    331329    }));
     
    467465    g_return_val_if_fail(WEBKIT_IS_PRINT_OPERATION(printOperation), WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL);
    468466
    469     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
    470     return webkitPrintOperationRunDialogForFrame(printOperation, parent, page->mainFrame());
     467    auto& page = webkitWebViewGetPage(printOperation->priv->webView);
     468    return webkitPrintOperationRunDialogForFrame(printOperation, parent, page.mainFrame());
    471469}
    472470
     
    492490    GRefPtr<GtkPageSetup> pageSetup = priv->pageSetup ? priv->pageSetup : adoptGRef(gtk_page_setup_new());
    493491
    494     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(printOperation->priv->webView));
    495     webkitPrintOperationPrintPagesForFrame(printOperation, page->mainFrame(), printSettings.get(), pageSetup.get());
    496 }
     492    auto& page = webkitWebViewGetPage(printOperation->priv->webView);
     493    webkitPrintOperationPrintPagesForFrame(printOperation, page.mainFrame(), printSettings.get(), pageSetup.get());
     494}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp

    r217571 r218098  
    2929#include "WebKitURIRequestPrivate.h"
    3030#include "WebKitUserMediaPermissionRequestPrivate.h"
    31 #include "WebKitWebViewBasePrivate.h"
    3231#include "WebKitWebViewPrivate.h"
    3332#include "WebKitWindowPropertiesPrivate.h"
     
    218217void attachUIClientToView(WebKitWebView* webView)
    219218{
    220     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
    221     page->setUIClient(std::make_unique<UIClient>(webView));
     219    webkitWebViewGetPage(webView).setUIClient(std::make_unique<UIClient>(webView));
    222220}
    223221
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp

    r216794 r218098  
    5050#include "WebKitUserContentManagerPrivate.h"
    5151#include "WebKitWebContextPrivate.h"
    52 #include "WebKitWebViewBasePrivate.h"
    5352#include "WebKitWebViewPrivate.h"
    5453#include "WebKitWebsiteDataManagerPrivate.h"
     
    16021601void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
    16031602{
    1604     WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView);
    1605 
    16061603    // FIXME: icon database private mode is global, not per page, so while there are
    16071604    // pages in private mode we need to enable the private mode in the icon database.
     
    16111608    pageConfiguration->setProcessPool(context->priv->processPool.get());
    16121609    pageConfiguration->setPreferences(webkitSettingsGetPreferences(webkit_web_view_get_settings(webView)));
    1613     pageConfiguration->setRelatedPage(relatedView ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(relatedView)) : nullptr);
     1610    pageConfiguration->setRelatedPage(relatedView ? &webkitWebViewGetPage(relatedView) : nullptr);
    16141611    pageConfiguration->setUserContentController(userContentManager ? webkitUserContentManagerGetUserContentControllerProxy(userContentManager) : nullptr);
    16151612    pageConfiguration->setControlledByAutomation(webkit_web_view_is_controlled_by_automation(webView));
     
    16201617    pageConfiguration->setWebsiteDataStore(&webkitWebsiteDataManagerGetDataStore(manager));
    16211618    pageConfiguration->setSessionID(pageConfiguration->websiteDataStore()->websiteDataStore().sessionID());
    1622     webkitWebViewBaseCreateWebPage(webViewBase, WTFMove(pageConfiguration));
    1623 
    1624     WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
    1625     context->priv->webViews.set(page->pageID(), webView);
     1619    webkitWebViewCreatePage(webView, WTFMove(pageConfiguration));
     1620
     1621    context->priv->webViews.set(webkit_web_view_get_page_id(webView), webView);
    16261622}
    16271623
     
    16291625{
    16301626    webkitWebContextDisableIconDatabasePrivateBrowsingIfNeeded(context, webView);
    1631     WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
    1632     context->priv->webViews.remove(page->pageID());
     1627    context->priv->webViews.remove(webkit_web_view_get_page_id(webView));
    16331628}
    16341629
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp

    r218097 r218098  
    18951895}
    18961896
     1897void webkitWebViewCreatePage(WebKitWebView* webView, Ref<API::PageConfiguration>&& configuration)
     1898{
     1899    webkitWebViewBaseCreateWebPage(WEBKIT_WEB_VIEW_BASE(webView), WTFMove(configuration));
     1900}
     1901
     1902WebPageProxy& webkitWebViewGetPage(WebKitWebView* webView)
     1903{
     1904    return getPage(webView);
     1905}
     1906
    18971907void webkitWebViewLoadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent)
    18981908{
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h

    r218064 r218098  
    2525 */
    2626
    27 #ifndef WebKitWebViewPrivate_h
    28 #define WebKitWebViewPrivate_h
     27#pragma once
    2928
     29#include "APIPageConfiguration.h"
    3030#include "InstallMissingMediaPluginsPermissionRequest.h"
    3131#include "WebContextMenuItemData.h"
    3232#include "WebHitTestResultData.h"
    3333#include "WebImage.h"
     34#include "WebKitPrivate.h"
    3435#include "WebKitWebView.h"
     36#include "WebPageProxy.h"
    3537#include <wtf/text/CString.h>
    3638
     39void webkitWebViewCreatePage(WebKitWebView*, Ref<API::PageConfiguration>&&);
     40WebKit::WebPageProxy& webkitWebViewGetPage(WebKitWebView*);
    3741void webkitWebViewLoadChanged(WebKitWebView*, WebKitLoadEvent);
    3842void webkitWebViewLoadFailed(WebKitWebView*, WebKitLoadEvent, const char* failingURI, GError*);
     
    6973void webkitWebViewRequestInstallMissingMediaPlugins(WebKitWebView*, WebKit::InstallMissingMediaPluginsPermissionRequest&);
    7074WebKitWebsiteDataManager* webkitWebViewGetWebsiteDataManager(WebKitWebView*);
    71 
    72 #endif // WebKitWebViewPrivate_h
Note: See TracChangeset for help on using the changeset viewer.