Changeset 171742 in webkit


Ignore:
Timestamp:
Jul 29, 2014 5:42:53 AM (10 years ago)
Author:
commit-queue@webkit.org
Message:

[GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=133729

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-07-29
Reviewed by Carlos Garcia Campos.

Removes WebKitWebViewGroup, effectively reverting the changes
introduced by r149117. The motivation for WebKitWebViewGroup
was using the user style sheet injection API, which has been
moved into WebKitUserContentManager, rendering it unneeded.

Source/WebKit2:

  • PlatformGTK.cmake: Remove WebKitWebViewGroup source files

from the build.

  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewCreate): Accomodate for changes in the signature of
webkitWebViewBaseCreate().

  • UIProcess/API/gtk/WebKitSettings.cpp: Update API documentation.
  • UIProcess/API/gtk/WebKitWebContext.cpp: Remove the default web

view group from WebKitWebContext.
(webkitWebContextCreatePageForWebView): Allow passing a
WebPreferences object at construction.
(webkitWebContextGetDefaultWebViewGroup): Deleted.

  • UIProcess/API/gtk/WebKitWebContextPrivate.h: Ditto.
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewUpdateSettings): Use WebPageProxy::setPreferences()
directly. Handle the case when webkit_web_view_set_settings()
is called on construction by doing an early-return.
(webkitWebViewConstructed): Call webkitWebViewUpdateSettings()
after creating the internal WebPageProxy object.
(webkitWebViewSetProperty): Removed "group" property, added
"settings" property.
(webkitWebViewGetProperty): Ditto.
(webkitWebViewDispose): Do not disconnect signal handler for
the (now unexistant) WebKitWebViewGroup.
(webkit_web_view_class_init): Removed "group" property, added
"settings" property.
(webkitWebViewHandleAuthenticationChallenge): Access the
WebKitWebSettings directly.
(webkit_web_view_new_with_related_view): Make new views share
settings with their related view.
(webkit_web_view_new_with_settings): Added.
(webkit_web_view_set_settings): Access the settings directly in
the WebKitWebView.
(webkit_web_view_get_settings): Ditto.
(webkit_web_view_set_zoom_level): Ditto.
(webkit_web_view_get_zoom_level): Ditto.
(webkitWebViewSettingsChanged): Deleted.
(webkitWebViewDisconnectSettingsChangedSignalHandler): Deleted.
(webkit_web_view_new_with_group): Deleted.
(webkit_web_view_get_group): Deleted.

  • UIProcess/API/gtk/WebKitWebView.h: Removed API methods related

to WebKitWebViewGroup.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCreate): Allow passing a WebPreferences object
for constructing the WebPageProxy.
(webkitWebViewBaseUpdatePreferences): Instead of going through
the page group, use WebPageProxy::preferences() directly.
(webkitWebViewBaseCreateWebPage): Allow passing a WebPreferences
object for constructing the WebPageProxy.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Update the

prototypes of the internal functions.

  • UIProcess/API/gtk/WebKitWebViewGroup.cpp: Removed.
  • UIProcess/API/gtk/WebKitWebViewGroup.h: Removed.
  • UIProcess/API/gtk/WebKitWebViewGroupPrivate.h: Removed.
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Change public API

bits in the documentation.

  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
  • UIProcess/API/gtk/docs/webkit2gtk.types: Ditto.
  • UIProcess/API/gtk/webkit2.h: Removed WebKitWebViewGroup.h header.
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Accomodate for changes in the signature of
webkitWebViewBaseCreate().

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Remove tests

for WebKitWebViewGroup.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewSettings):
Restore the assertions that check that settings objects are
released. Add test for webkit_web_view_new_with_settings().

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebViewGroup.cpp: Removed.
Location:
trunk
Files:
4 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r171740 r171742  
     12014-07-29  Adrian Perez de Castro  <aperez@igalia.com>
     2
     3        [GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
     4        https://bugs.webkit.org/show_bug.cgi?id=133729
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Removes WebKitWebViewGroup, effectively reverting the changes
     9        introduced by r149117. The motivation for WebKitWebViewGroup
     10        was using the user style sheet injection API, which has been
     11        moved into WebKitUserContentManager, rendering it unneeded.
     12
     13        * PlatformGTK.cmake: Remove WebKitWebViewGroup source files
     14        from the build.
     15        * UIProcess/API/C/gtk/WKView.cpp:
     16        (WKViewCreate): Accomodate for changes in the signature of
     17        webkitWebViewBaseCreate().
     18        * UIProcess/API/gtk/WebKitSettings.cpp: Update API documentation.
     19        * UIProcess/API/gtk/WebKitWebContext.cpp: Remove the default web
     20        view group from WebKitWebContext.
     21        (webkitWebContextCreatePageForWebView): Allow passing a
     22        WebPreferences object at construction.
     23        (webkitWebContextGetDefaultWebViewGroup): Deleted.
     24        * UIProcess/API/gtk/WebKitWebContextPrivate.h: Ditto.
     25        * UIProcess/API/gtk/WebKitWebView.cpp:
     26        (webkitWebViewUpdateSettings): Use WebPageProxy::setPreferences()
     27        directly. Handle the case when webkit_web_view_set_settings()
     28        is called on construction by doing an early-return.
     29        (webkitWebViewConstructed): Call webkitWebViewUpdateSettings()
     30        after creating the internal WebPageProxy object.
     31        (webkitWebViewSetProperty): Removed "group" property, added
     32        "settings" property.
     33        (webkitWebViewGetProperty): Ditto.
     34        (webkitWebViewDispose): Do not disconnect signal handler for
     35        the (now unexistant) WebKitWebViewGroup.
     36        (webkit_web_view_class_init): Removed "group" property, added
     37        "settings" property.
     38        (webkitWebViewHandleAuthenticationChallenge): Access the
     39        WebKitWebSettings directly.
     40        (webkit_web_view_new_with_related_view): Make new views share
     41        settings with their related view.
     42        (webkit_web_view_new_with_settings): Added.
     43        (webkit_web_view_set_settings): Access the settings directly in
     44        the WebKitWebView.
     45        (webkit_web_view_get_settings): Ditto.
     46        (webkit_web_view_set_zoom_level): Ditto.
     47        (webkit_web_view_get_zoom_level): Ditto.
     48        (webkitWebViewSettingsChanged): Deleted.
     49        (webkitWebViewDisconnectSettingsChangedSignalHandler): Deleted.
     50        (webkit_web_view_new_with_group): Deleted.
     51        (webkit_web_view_get_group): Deleted.
     52        * UIProcess/API/gtk/WebKitWebView.h: Removed API methods related
     53        to WebKitWebViewGroup.
     54        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
     55        (webkitWebViewBaseCreate): Allow passing a WebPreferences object
     56        for constructing the WebPageProxy.
     57        (webkitWebViewBaseUpdatePreferences): Instead of going through
     58        the page group, use WebPageProxy::preferences() directly.
     59        (webkitWebViewBaseCreateWebPage): Allow passing a WebPreferences
     60        object for constructing the WebPageProxy.
     61        * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Update the
     62        prototypes of the internal functions.
     63        * UIProcess/API/gtk/WebKitWebViewGroup.cpp: Removed.
     64        * UIProcess/API/gtk/WebKitWebViewGroup.h: Removed.
     65        * UIProcess/API/gtk/WebKitWebViewGroupPrivate.h: Removed.
     66        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Change public API
     67        bits in the documentation.
     68        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
     69        * UIProcess/API/gtk/docs/webkit2gtk.types: Ditto.
     70        * UIProcess/API/gtk/webkit2.h: Removed WebKitWebViewGroup.h header.
     71        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
     72        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
     73        Accomodate for changes in the signature of
     74        webkitWebViewBaseCreate().
     75
    1762014-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
    277
  • trunk/Source/WebKit2/PlatformGTK.cmake

    r170891 r171742  
    235235    UIProcess/API/gtk/WebKitWebViewBaseAccessible.h
    236236    UIProcess/API/gtk/WebKitWebViewBasePrivate.h
    237     UIProcess/API/gtk/WebKitWebViewGroup.cpp
    238     UIProcess/API/gtk/WebKitWebViewGroup.h
    239     UIProcess/API/gtk/WebKitWebViewGroupPrivate.h
    240237    UIProcess/API/gtk/WebKitWebViewPrivate.h
    241238    UIProcess/API/gtk/WebKitWindowProperties.cpp
     
    367364    ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWebView.h
    368365    ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWebViewBase.h
    369     ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWebViewGroup.h
    370366    ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWindowProperties.h
    371367    ${WEBKIT2_DIR}/UIProcess/API/gtk/webkit2.h
  • trunk/Source/WebKit2/UIProcess/API/C/gtk/WKView.cpp

    r170891 r171742  
    3838WKViewRef WKViewCreate(WKContextRef contextRef, WKPageGroupRef pageGroupRef)
    3939{
    40     return toAPI(webkitWebViewBaseCreate(toImpl(contextRef), toImpl(pageGroupRef), nullptr, nullptr));
     40    return toAPI(webkitWebViewBaseCreate(toImpl(contextRef), nullptr, toImpl(pageGroupRef), nullptr, nullptr));
    4141}
    4242
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp

    r170258 r171742  
    3535#include "WebKitPrivate.h"
    3636#include "WebKitSettingsPrivate.h"
     37#include "WebPageProxy.h"
     38#include "WebPreferences.h"
    3739#include <WebCore/UserAgentGtk.h>
    3840#include <glib/gi18n-lib.h>
     
    7173/**
    7274 * SECTION:WebKitSettings
    73  * @short_description: Control the behaviour of #WebKitWebView<!-- -->s
    74  * @see_also: #WebKitWebViewGroup, #WebKitWebView
    75  *
    76  * #WebKitSettings can be applied to a #WebKitWebViewGroup to control text charset,
     75 * @short_description: Control the behaviour of a #WebKitWebView
     76 *
     77 * #WebKitSettings can be applied to a #WebKitWebView to control text charset,
    7778 * color, font sizes, printing mode, script support, loading of images and various
    78  * other things on the #WebKitWebView<!-- -->s of the group.
    79  * After creation, a #WebKitSettings object contains default settings.
     79 * other things on a #WebKitWebView. After creation, a #WebKitSettings object
     80 * contains default settings.
    8081 *
    8182 * <informalexample><programlisting>
     
    12241225 *
    12251226 * Creates a new #WebKitSettings instance with default values. It must
    1226  * be manually attached to a #WebKitWebViewGroup.
     1227 * be manually attached to a #WebKitWebView.
    12271228 * See also webkit_settings_new_with_settings().
    12281229 *
     
    12411242 *
    12421243 * Creates a new #WebKitSettings instance with the given settings. It must
    1243  * be manually attached to a #WebKitWebViewGroup.
     1244 * be manually attached to a #WebKitWebView.
    12441245 *
    12451246 * Returns: a new #WebKitSettings instance.
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp

    r170891 r171742  
    3838#include "WebKitRequestManagerClient.h"
    3939#include "WebKitSecurityManagerPrivate.h"
     40#include "WebKitSettingsPrivate.h"
    4041#include "WebKitTextChecker.h"
    4142#include "WebKitURISchemeRequestPrivate.h"
     
    4344#include "WebKitWebContextPrivate.h"
    4445#include "WebKitWebViewBasePrivate.h"
    45 #include "WebKitWebViewGroupPrivate.h"
     46#include "WebKitWebViewPrivate.h"
    4647#include "WebResourceCacheManagerProxy.h"
    4748#include <WebCore/FileSystem.h>
     
    157158
    158159    HashMap<uint64_t, WebKitWebView*> webViews;
    159     GRefPtr<WebKitWebViewGroup> defaultWebViewGroup;
    160160
    161161    CString webExtensionsDirectory;
     
    10521052}
    10531053
    1054 void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitWebViewGroup* webViewGroup, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
     1054void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
    10551055{
    10561056    WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView);
    1057     WebPageGroup* pageGroup = webViewGroup ? webkitWebViewGroupGetPageGroup(webViewGroup) : 0;
    10581057    WebPageProxy* relatedPage = relatedView ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(relatedView)) : nullptr;
     1058    WebPreferences* preferences = webkitSettingsGetPreferences(webkit_web_view_get_settings(webView));
    10591059    WebUserContentControllerProxy* userContentControllerProxy = userContentManager ? webkitUserContentManagerGetUserContentControllerProxy(userContentManager) : nullptr;
    1060     webkitWebViewBaseCreateWebPage(webViewBase, context->priv->context.get(), pageGroup, userContentControllerProxy, relatedPage);
     1060    webkitWebViewBaseCreateWebPage(webViewBase, context->priv->context.get(), preferences, nullptr, userContentControllerProxy, relatedPage);
    10611061
    10621062    WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
    10631063    context->priv->webViews.set(page->pageID(), webView);
    1064 
    1065     if (!pageGroup && !context->priv->defaultWebViewGroup)
    1066         context->priv->defaultWebViewGroup = adoptGRef(webkitWebViewGroupCreate(&page->pageGroup()));
    10671064}
    10681065
     
    10771074    return page ? context->priv->webViews.get(page->pageID()) : 0;
    10781075}
    1079 
    1080 WebKitWebViewGroup* webkitWebContextGetDefaultWebViewGroup(WebKitWebContext* context)
    1081 {
    1082     return context->priv->defaultWebViewGroup.get();
    1083 }
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h

    r170891 r171742  
    3232#include "WebKitUserContentManager.h"
    3333#include "WebKitWebContext.h"
    34 #include "WebKitWebViewGroup.h"
    3534#include "WebSoupCustomProtocolRequestManager.h"
    3635
     
    4443void webkitWebContextStopLoadingCustomProtocol(WebKitWebContext*, uint64_t customProtocolID);
    4544void webkitWebContextDidFinishLoadingCustomProtocol(WebKitWebContext*, uint64_t customProtocolID);
    46 void webkitWebContextCreatePageForWebView(WebKitWebContext*, WebKitWebView*, WebKitWebViewGroup*, WebKitUserContentManager*, WebKitWebView*);
     45void webkitWebContextCreatePageForWebView(WebKitWebContext*, WebKitWebView*, WebKitUserContentManager*, WebKitWebView*);
    4746void webkitWebContextWebViewDestroyed(WebKitWebContext*, WebKitWebView*);
    4847WebKitWebView* webkitWebContextGetWebViewForPage(WebKitWebContext*, WebKit::WebPageProxy*);
    49 WebKitWebViewGroup* webkitWebContextGetDefaultWebViewGroup(WebKitWebContext*);
    5048GVariant* webkitWebContextInitializeWebExtensions(WebKitWebContext*);
    5149
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp

    r171740 r171742  
    4949#include "WebKitResponsePolicyDecision.h"
    5050#include "WebKitScriptDialogPrivate.h"
     51#include "WebKitSettingsPrivate.h"
    5152#include "WebKitUIClient.h"
    5253#include "WebKitURIRequestPrivate.h"
     
    5657#include "WebKitWebResourcePrivate.h"
    5758#include "WebKitWebViewBasePrivate.h"
    58 #include "WebKitWebViewGroupPrivate.h"
    5959#include "WebKitWebViewPrivate.h"
    6060#include "WebKitWindowPropertiesPrivate.h"
     
    133133    PROP_WEB_CONTEXT,
    134134    PROP_RELATED_VIEW,
    135     PROP_GROUP,
     135    PROP_SETTINGS,
    136136    PROP_USER_CONTENT_MANAGER,
    137137    PROP_TITLE,
     
    171171    GRefPtr<WebKitBackForwardList> backForwardList;
    172172    GRefPtr<WebKitSettings> settings;
    173     unsigned long settingsChangedHandlerID;
    174     GRefPtr<WebKitWebViewGroup> group;
    175173    GRefPtr<WebKitUserContentManager> userContentManager;
    176174    GRefPtr<WebKitWindowProperties> windowProperties;
     
    377375static void webkitWebViewUpdateSettings(WebKitWebView* webView)
    378376{
    379     // We keep a ref of the current settings to disconnect the signals when settings change in the group.
    380     webView->priv->settings = webkit_web_view_get_settings(webView);
     377    // The "settings" property is set on construction, and in that
     378    // case webkit_web_view_set_settings() will be called *before* the
     379    // WebPageProxy has been created so we should do an early return.
     380    WebPageProxy* page = getPage(webView);
     381    if (!page)
     382        return;
    381383
    382384    WebKitSettings* settings = webView->priv->settings.get();
    383     WebPageProxy* page = getPage(webView);
     385    page->setPreferences(*webkitSettingsGetPreferences(settings));
    384386    page->setCanRunModal(webkit_settings_get_allow_modal_dialogs(settings));
    385387    page->setCustomUserAgent(String::fromUTF8(webkit_settings_get_user_agent(settings)));
     
    398400    g_signal_handlers_disconnect_by_func(settings, reinterpret_cast<gpointer>(zoomTextOnlyChanged), webView);
    399401    g_signal_handlers_disconnect_by_func(settings, reinterpret_cast<gpointer>(userAgentChanged), webView);
    400 }
    401 
    402 static void webkitWebViewSettingsChanged(WebKitWebViewGroup*, GParamSpec*, WebKitWebView* webView)
    403 {
    404     webkitWebViewDisconnectSettingsSignalHandlers(webView);
    405     webkitWebViewUpdateSettings(webView);
    406 }
    407 
    408 static void webkitWebViewDisconnectSettingsChangedSignalHandler(WebKitWebView* webView)
    409 {
    410     WebKitWebViewPrivate* priv = webView->priv;
    411     if (priv->settingsChangedHandlerID)
    412         g_signal_handler_disconnect(webkit_web_view_get_group(webView), priv->settingsChangedHandlerID);
    413     priv->settingsChangedHandlerID = 0;
    414402}
    415403
     
    504492    WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
    505493    WebKitWebViewPrivate* priv = webView->priv;
    506     webkitWebContextCreatePageForWebView(priv->context, webView, priv->group.get(), priv->userContentManager.get(), priv->relatedView);
     494    if (!priv->settings)
     495        priv->settings = adoptGRef(webkit_settings_new());
     496    webkitWebContextCreatePageForWebView(priv->context, webView, priv->userContentManager.get(), priv->relatedView);
    507497    // The related view is only valid during the construction.
    508498    priv->relatedView = nullptr;
    509499
     500    webkitWebViewUpdateSettings(webView);
    510501    webkitWebViewBaseSetDownloadRequestHandler(WEBKIT_WEB_VIEW_BASE(webView), webkitWebViewHandleDownloadRequest);
    511502
     
    519510    priv->backForwardList = adoptGRef(webkitBackForwardListCreate(&getPage(webView)->backForwardList()));
    520511    priv->windowProperties = adoptGRef(webkitWindowPropertiesCreate());
    521 
    522     webkitWebViewUpdateSettings(webView);
    523     priv->settingsChangedHandlerID =
    524         g_signal_connect(webkit_web_view_get_group(webView), "notify::settings", G_CALLBACK(webkitWebViewSettingsChanged), webView);
    525512}
    526513
     
    540527        break;
    541528    }
    542     case PROP_GROUP: {
    543         gpointer group = g_value_get_object(value);
    544         webView->priv->group = group ? WEBKIT_WEB_VIEW_GROUP(group) : 0;
     529    case PROP_SETTINGS: {
     530        if (gpointer settings = g_value_get_object(value))
     531            webkit_web_view_set_settings(webView, WEBKIT_SETTINGS(settings));
    545532        break;
    546533    }
     
    566553        g_value_set_object(value, webView->priv->context);
    567554        break;
    568     case PROP_GROUP:
    569         g_value_set_object(value, webkit_web_view_get_group(webView));
     555    case PROP_SETTINGS:
     556        g_value_set_object(value, webkit_web_view_get_settings(webView));
    570557        break;
    571558    case PROP_USER_CONTENT_MANAGER:
     
    600587    webkitWebViewCancelFaviconRequest(webView);
    601588    webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(webView);
    602     webkitWebViewDisconnectSettingsChangedSignalHandler(webView);
    603589    webkitWebViewDisconnectSettingsSignalHandlers(webView);
    604590    webkitWebViewDisconnectFaviconDatabaseSignalHandlers(webView);
     
    667653
    668654    /**
    669      * WebKitWebView:group:
    670      *
    671      * The #WebKitWebViewGroup of the view.
     655     * WebKitWebView:settings:
     656     *
     657     * The #WebKitSettings of the view.
     658     *
     659     * Since: 2.6
    672660     */
    673661    g_object_class_install_property(
    674662        gObjectClass,
    675         PROP_GROUP,
     663        PROP_SETTINGS,
    676664        g_param_spec_object(
    677             "group",
    678             _("WebView Group"),
    679             _("The WebKitWebViewGroup of the view"),
    680             WEBKIT_TYPE_WEB_VIEW_GROUP,
    681             static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
     665            "settings",
     666            _("WebView settings"),
     667            _("The WebKitSettings of the view"),
     668            WEBKIT_TYPE_SETTINGS,
     669            static_cast<GParamFlags>(WEBKIT_PARAM_WRITABLE | G_PARAM_CONSTRUCT)));
    682670
    683671    /**
     
    18981886void webkitWebViewHandleAuthenticationChallenge(WebKitWebView* webView, AuthenticationChallengeProxy* authenticationChallenge)
    18991887{
    1900     gboolean privateBrowsingEnabled = webkit_settings_get_enable_private_browsing(webkit_web_view_get_settings(webView));
     1888    gboolean privateBrowsingEnabled = webkit_settings_get_enable_private_browsing(webView->priv->settings.get());
    19011889    webView->priv->authenticationRequest = adoptGRef(webkitAuthenticationRequestCreate(authenticationChallenge, privateBrowsingEnabled));
    19021890    gboolean returnValue;
     
    19121900 * webkit_web_view_new:
    19131901 *
    1914  * Creates a new #WebKitWebView with the default #WebKitWebContext and the
    1915  * default #WebKitWebViewGroup.
    1916  * See also webkit_web_view_new_with_context() and webkit_web_view_new_with_group().
     1902 * Creates a new #WebKitWebView with the default #WebKitWebContext and
     1903 * no #WebKitUserContentManager associated with it.
     1904 * See also webkit_web_view_new_with_context(),
     1905 * webkit_web_view_new_with_user_content_manager(), and
     1906 * webkit_web_view_new_with_settings().
    19171907 *
    19181908 * Returns: The newly created #WebKitWebView widget
     
    19271917 * @context: the #WebKitWebContext to be used by the #WebKitWebView
    19281918 *
    1929  * Creates a new #WebKitWebView with the given #WebKitWebContext and the
    1930  * default #WebKitWebViewGroup.
    1931  * See also webkit_web_view_new_with_group().
     1919 * Creates a new #WebKitWebView with the given #WebKitWebContext and
     1920 * no #WebKitUserContentManager associated with it.
     1921 * See also webkit_web_view_new_with_user_content_manager() and
     1922 * webkit_web_view_new_with_settings().
    19321923 *
    19331924 * Returns: The newly created #WebKitWebView widget
     
    19521943 * like for example, sharing the same web process for all the views in the same security domain.
    19531944 *
    1954  * The newly created #WebKitWebView will also have the same #WebKitUserContentManager as @web_view.
     1945 * The newly created #WebKitWebView will also have the same #WebKitUserContentManager
     1946 * and #WebKitSettings as @web_view.
    19551947 *
    19561948 * Returns: (transfer full): The newly created #WebKitWebView widget
     
    19641956    return GTK_WIDGET(g_object_new(WEBKIT_TYPE_WEB_VIEW,
    19651957        "user-content-manager", webView->priv->userContentManager.get(),
     1958        "settings", webView->priv->settings.get(),
    19661959        "related-view", webView,
    19671960        nullptr));
     
    19691962
    19701963/**
    1971  * webkit_web_view_new_with_group:
    1972  * @group: a #WebKitWebViewGroup
    1973  *
    1974  * Creates a new #WebKitWebView with the given #WebKitWebViewGroup.
    1975  * The view will be part of @group and it will be affected by the
    1976  * group properties like the settings.
     1964 * webkit_web_view_new_with_settings:
     1965 * @settings: a #WebKitSettings
     1966 *
     1967 * Creates a new #WebKitWebView with the given #WebKitSettings.
     1968 * See also webkit_web_view_new_with_context(), and
     1969 * webkit_web_view_new_with_user_content_manager().
    19771970 *
    19781971 * Returns: The newly created #WebKitWebView widget
    1979  */
    1980 GtkWidget* webkit_web_view_new_with_group(WebKitWebViewGroup* group)
    1981 {
    1982     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW_GROUP(group), 0);
    1983 
    1984     return GTK_WIDGET(g_object_new(WEBKIT_TYPE_WEB_VIEW, "group", group, NULL));
     1972 *
     1973 * Since: 2.6
     1974 */
     1975GtkWidget* webkit_web_view_new_with_settings(WebKitSettings* settings)
     1976{
     1977    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), nullptr);
     1978    return GTK_WIDGET(g_object_new(WEBKIT_TYPE_WEB_VIEW, "settings", settings, nullptr));
    19851979}
    19861980
     
    20172011
    20182012    return webView->priv->context;
    2019 }
    2020 
    2021 /**
    2022  * webkit_web_view_get_group:
    2023  * @web_view: a #WebKitWebView
    2024  *
    2025  * Gets the group @web_view belongs to.
    2026  *
    2027  * Returns: (transfer none): the #WebKitWebViewGroup to which the view belongs
    2028  */
    2029 WebKitWebViewGroup* webkit_web_view_get_group(WebKitWebView* webView)
    2030 {
    2031     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
    2032 
    2033     if (webView->priv->group)
    2034         return webView->priv->group.get();
    2035 
    2036     return webkitWebContextGetDefaultWebViewGroup(webView->priv->context);
    20372013}
    20382014
     
    25312507 * @settings: a #WebKitSettings
    25322508 *
    2533  * Sets the #WebKitSettings to be applied to @web_view.
    2534  * This is a convenient method to set new settings to the
    2535  * #WebKitWebViewGroup @web_view belongs to.
    2536  * New settings are applied immediately on all #WebKitWebView<!-- -->s
    2537  * in the @web_view group.
    2538  * See also webkit_web_view_group_set_settings().
     2509 * Sets the #WebKitSettings to be applied to @web_view. The
     2510 * existing #WebKitSettings of @web_view will be replaced by
     2511 * @settings. New settings are applied immediately on @web_view.
     2512 * The same #WebKitSettings object can be shared
     2513 * by multiple #WebKitWebView<!-- -->s.
    25392514 */
    25402515void webkit_web_view_set_settings(WebKitWebView* webView, WebKitSettings* settings)
    25412516{
    2542     webkit_web_view_group_set_settings(webkit_web_view_get_group(webView), settings);
     2517    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     2518    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     2519
     2520    if (webView->priv->settings == settings)
     2521        return;
     2522
     2523    // The "settings" property is set on construction, and in that
     2524    // case webkit_web_view_set_settings() will be called *before*
     2525    // any settings have been assigned. In that case there are no
     2526    // signal handlers to disconnect.
     2527    if (webView->priv->settings)
     2528        webkitWebViewDisconnectSettingsSignalHandlers(webView);
     2529
     2530    webView->priv->settings = settings;
     2531    webkitWebViewUpdateSettings(webView);
     2532    g_object_notify(G_OBJECT(webView), "settings");
    25432533}
    25442534
     
    25482538 *
    25492539 * Gets the #WebKitSettings currently applied to @web_view.
    2550  * This is a convenient method to get the settings of the
    2551  * #WebKitWebViewGroup @web_view belongs to.
    2552  * #WebKitSettings objects are shared by all the #WebKitWebView<!-- -->s
    2553  * in the same #WebKitWebViewGroup, so modifying
     2540 * If no other #WebKitSettings have been explicitly applied to
     2541 * @web_view with webkit_web_view_set_settings(), the default
     2542 * #WebKitSettings will be returned. This method always returns
     2543 * a valid #WebKitSettings object.
     2544 * To modify any of the @web_view settings, you can either create
     2545 * a new #WebKitSettings object with webkit_settings_new(), setting
     2546 * the desired preferences, and then replace the existing @web_view
     2547 * settings with webkit_web_view_set_settings() or get the existing
     2548 * @web_view settings and update it directly. #WebKitSettings objects
     2549 * can be shared by multiple #WebKitWebView<!-- -->s, so modifying
    25542550 * the settings of a #WebKitWebView would affect other
    2555  * #WebKitWebView<!-- -->s of the same group.
    2556  * See also webkit_web_view_group_get_settings().
     2551 * #WebKitWebView<!-- -->s using the same #WebKitSettings.
    25572552 *
    25582553 * Returns: (transfer none): the #WebKitSettings attached to @web_view
     
    25602555WebKitSettings* webkit_web_view_get_settings(WebKitWebView* webView)
    25612556{
    2562     return webkit_web_view_group_get_settings(webkit_web_view_get_group(webView));
     2557    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr);
     2558    return webView->priv->settings.get();
    25632559}
    25642560
     
    25952591
    25962592    WebPageProxy* page = getPage(webView);
    2597     if (webkit_settings_get_zoom_text_only(webkit_web_view_get_settings(webView)))
     2593    if (webkit_settings_get_zoom_text_only(webView->priv->settings.get()))
    25982594        page->setTextZoomFactor(zoomLevel);
    25992595    else
     
    26162612
    26172613    WebPageProxy* page = getPage(webView);
    2618     gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webkit_web_view_get_settings(webView));
     2614    gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webView->priv->settings.get());
    26192615    return zoomTextOnly ? page->textZoomFactor() : page->pageZoomFactor();
    26202616}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h

    r171740 r171742  
    5050#include <webkit2/WebKitWebResource.h>
    5151#include <webkit2/WebKitWebViewBase.h>
    52 #include <webkit2/WebKitWebViewGroup.h>
    5352#include <webkit2/WebKitWindowProperties.h>
    5453
     
    257256
    258257WEBKIT_API GtkWidget *
     258webkit_web_view_new_with_settings                    (WebKitSettings            *settings);
     259
     260WEBKIT_API GtkWidget *
    259261webkit_web_view_new_with_related_view                (WebKitWebView             *web_view);
    260 
    261 WEBKIT_API GtkWidget *
    262 webkit_web_view_new_with_group                       (WebKitWebViewGroup        *group);
    263262
    264263WEBKIT_API GtkWidget *
     
    267266WEBKIT_API WebKitWebContext *
    268267webkit_web_view_get_context                          (WebKitWebView             *web_view);
    269 
    270 WEBKIT_API WebKitWebViewGroup *
    271 webkit_web_view_get_group                            (WebKitWebView             *web_view);
    272268
    273269WEBKIT_API void
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp

    r170891 r171742  
    947947}
    948948
    949 WebKitWebViewBase* webkitWebViewBaseCreate(WebContext* context, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
     949WebKitWebViewBase* webkitWebViewBaseCreate(WebContext* context, WebPreferences* preferences, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
    950950{
    951951    WebKitWebViewBase* webkitWebViewBase = WEBKIT_WEB_VIEW_BASE(g_object_new(WEBKIT_TYPE_WEB_VIEW_BASE, NULL));
    952     webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, pageGroup, userContentController, relatedPage);
     952    webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, preferences, pageGroup, userContentController, relatedPage);
    953953    return webkitWebViewBase;
    954954}
     
    973973#endif
    974974
    975     priv->pageProxy->pageGroup().preferences().setAcceleratedCompositingEnabled(false);
     975    priv->pageProxy->preferences().setAcceleratedCompositingEnabled(false);
    976976}
    977977
     
    983983#endif // HAVE(GTK_SCALE_FACTOR)
    984984
    985 void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebContext* context, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
     985void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebContext* context, WebPreferences* preferences, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
    986986{
    987987    WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
    988988
    989989    WebPageConfiguration webPageConfiguration;
     990    webPageConfiguration.preferences = preferences;
    990991    webPageConfiguration.pageGroup = pageGroup;
    991992    webPageConfiguration.relatedPage = relatedPage;
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h

    r170891 r171742  
    3535#include "WebPageProxy.h"
    3636
    37 WebKitWebViewBase* webkitWebViewBaseCreate(WebKit::WebContext*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
     37WebKitWebViewBase* webkitWebViewBaseCreate(WebKit::WebContext*, WebKit::WebPreferences*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
    3838GtkIMContext* webkitWebViewBaseGetIMContext(WebKitWebViewBase*);
    3939WebKit::WebPageProxy* webkitWebViewBaseGetPage(WebKitWebViewBase*);
    40 void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebContext*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
     40void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebContext*, WebKit::WebPreferences*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
    4141void webkitWebViewBaseSetTooltipText(WebKitWebViewBase*, const char*);
    4242void webkitWebViewBaseSetTooltipArea(WebKitWebViewBase*, const WebCore::IntRect&);
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml

    r171740 r171742  
    4444    <xi:include href="xml/WebKitFormSubmissionRequest.xml"/>
    4545    <xi:include href="xml/WebKitSecurityManager.xml"/>
    46     <xi:include href="xml/WebKitWebViewGroup.xml"/>
    4746    <xi:include href="xml/WebKitCertificateInfo.xml"/>
    4847  </chapter>
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt

    r171740 r171742  
    135135webkit_web_view_new_with_context
    136136webkit_web_view_new_with_related_view
    137 webkit_web_view_new_with_group
     137webkit_web_view_new_with_settings
    138138webkit_web_view_new_with_user_content_manager
    139139webkit_web_view_get_context
    140 webkit_web_view_get_group
    141140webkit_web_view_get_user_content_manager
    142141webkit_web_view_load_uri
     
    10611060
    10621061<SECTION>
    1063 <FILE>WebKitWebViewGroup</FILE>
    1064 WebKitWebViewGroup
    1065 WebKitInjectedContentFrames
    1066 webkit_web_view_group_new
    1067 webkit_web_view_group_get_name
    1068 webkit_web_view_group_get_settings
    1069 webkit_web_view_group_set_settings
    1070 
    1071 <SUBSECTION Standard>
    1072 WebKitWebViewGroupClass
    1073 WEBKIT_TYPE_WEB_VIEW_GROUP
    1074 WEBKIT_WEB_VIEW_GROUP
    1075 WEBKIT_IS_WEB_VIEW_GROUP
    1076 WEBKIT_WEB_VIEW_GROUP_CLASS
    1077 WEBKIT_IS_WEB_VIEW_GROUP_CLASS
    1078 WEBKIT_WEB_VIEW_GROUP_GET_CLASS
    1079 
    1080 <SUBSECTION Private>
    1081 WebKitWebViewGroupPrivate
    1082 webkit_web_view_group_get_type
    1083 </SECTION>
    1084 
    1085 <SECTION>
    10861062<FILE>WebKitWebExtension</FILE>
    10871063WebKitWebExtension
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk.types

    r157781 r171742  
    2222webkit_context_menu_get_type
    2323webkit_context_menu_item_get_type
    24 webkit_web_view_group_get_type
    2524webkit_web_extension_get_type
    2625webkit_web_page_get_type
  • trunk/Source/WebKit2/UIProcess/API/gtk/webkit2.h

    r170891 r171742  
    7070#include <webkit2/WebKitWebView.h>
    7171#include <webkit2/WebKitWebViewBase.h>
    72 #include <webkit2/WebKitWebViewGroup.h>
    7372#include <webkit2/WebKitWindowProperties.h>
    7473
  • trunk/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp

    r170891 r171742  
    6363    ASSERT(m_page);
    6464    ASSERT(!m_inspectorView);
    65     m_inspectorView = GTK_WIDGET(webkitWebViewBaseCreate(&page()->process().context(), inspectorPageGroup(), nullptr, m_page));
     65    m_inspectorView = GTK_WIDGET(webkitWebViewBaseCreate(&page()->process().context(), nullptr, inspectorPageGroup(), nullptr, m_page));
    6666    g_object_add_weak_pointer(G_OBJECT(m_inspectorView), reinterpret_cast<void**>(&m_inspectorView));
    6767    return webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(m_inspectorView));
  • trunk/Tools/ChangeLog

    r171740 r171742  
     12014-07-29  Adrian Perez de Castro  <aperez@igalia.com>
     2
     3        [GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
     4        https://bugs.webkit.org/show_bug.cgi?id=133729
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Removes WebKitWebViewGroup, effectively reverting the changes
     9        introduced by r149117. The motivation for WebKitWebViewGroup
     10        was using the user style sheet injection API, which has been
     11        moved into WebKitUserContentManager, rendering it unneeded.
     12
     13        * TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Remove tests
     14        for WebKitWebViewGroup.
     15        * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
     16        (testWebViewSettings):
     17        Restore the assertions that check that settings objects are
     18        released. Add test for webkit_web_view_new_with_settings().
     19        * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebViewGroup.cpp: Removed.
     20
    1212014-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
    222
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt

    r170891 r171742  
    110110ADD_WK2_TEST(TestWebKitVersion TestWebKitVersion.cpp)
    111111ADD_WK2_TEST(TestWebViewEditor TestWebViewEditor.cpp)
    112 ADD_WK2_TEST(TestWebKitWebViewGroup TestWebKitWebViewGroup.cpp)
    113112ADD_WK2_TEST(TestWebKitWebContext TestWebKitWebContext.cpp)
    114113ADD_WK2_TEST(TestWebKitWebView TestWebKitWebView.cpp)
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp

    r164634 r171742  
    4747{
    4848    WebKitSettings* defaultSettings = webkit_web_view_get_settings(test->m_webView);
     49    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(defaultSettings));
    4950    g_assert(defaultSettings);
    5051    g_assert(webkit_settings_get_enable_javascript(defaultSettings));
    5152
    5253    GRefPtr<WebKitSettings> newSettings = adoptGRef(webkit_settings_new());
     54    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(newSettings.get()));
    5355    g_object_set(G_OBJECT(newSettings.get()), "enable-javascript", FALSE, NULL);
    5456    webkit_web_view_set_settings(test->m_webView, newSettings.get());
     
    6466
    6567    GRefPtr<WebKitSettings> newSettings2 = adoptGRef(webkit_settings_new());
     68    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(newSettings2.get()));
    6669    webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webView2.get()), newSettings2.get());
    6770    settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView2.get()));
    6871    g_assert(settings == newSettings2.get());
    6972    g_assert(webkit_settings_get_enable_javascript(settings));
     73
     74    GRefPtr<GtkWidget> webView3 = webkit_web_view_new_with_settings(newSettings2.get());
     75    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView3.get()));
     76    g_assert(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView3.get())) == newSettings2.get());
    7077}
    7178
Note: See TracChangeset for help on using the changeset viewer.