[GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Jul 2014 12:42:53 +0000 (12:42 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Jul 2014 12:42:53 +0000 (12:42 +0000)
https://bugs.webkit.org/show_bug.cgi?id=133729

Patch by Adrian Perez de Castro <aperez@igalia.com> 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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171742 268f45cc-cd09-0410-ab3c-d52691b4dbfc

22 files changed:
Source/WebKit2/ChangeLog
Source/WebKit2/PlatformGTK.cmake
Source/WebKit2/UIProcess/API/C/gtk/WKView.cpp
Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp
Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp
Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h
Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp [deleted file]
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.h [deleted file]
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroupPrivate.h [deleted file]
Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt
Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk.types
Source/WebKit2/UIProcess/API/gtk/webkit2.h
Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt
Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp
Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebViewGroup.cpp [deleted file]

index 49ac84d..8703bcc 100644 (file)
@@ -1,3 +1,78 @@
+2014-07-29  Adrian Perez de Castro  <aperez@igalia.com>
+
+        [GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
+        https://bugs.webkit.org/show_bug.cgi?id=133729
+
+        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.
+
+        * 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().
+
 2014-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         Implement webkit_web_view_load_string() in WebKit2
index 818e0ef..0478a97 100644 (file)
@@ -234,9 +234,6 @@ list(APPEND WebKit2_SOURCES
     UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp
     UIProcess/API/gtk/WebKitWebViewBaseAccessible.h
     UIProcess/API/gtk/WebKitWebViewBasePrivate.h
-    UIProcess/API/gtk/WebKitWebViewGroup.cpp
-    UIProcess/API/gtk/WebKitWebViewGroup.h
-    UIProcess/API/gtk/WebKitWebViewGroupPrivate.h
     UIProcess/API/gtk/WebKitWebViewPrivate.h
     UIProcess/API/gtk/WebKitWindowProperties.cpp
     UIProcess/API/gtk/WebKitWindowProperties.h
@@ -366,7 +363,6 @@ set(WebKit2GTK_INSTALLED_HEADERS
     ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWebResource.h
     ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWebView.h
     ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWebViewBase.h
-    ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWebViewGroup.h
     ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitWindowProperties.h
     ${WEBKIT2_DIR}/UIProcess/API/gtk/webkit2.h
 )
index bc7b83f..6b0c76f 100644 (file)
@@ -37,7 +37,7 @@ using namespace WebCore;
 
 WKViewRef WKViewCreate(WKContextRef contextRef, WKPageGroupRef pageGroupRef)
 {
-    return toAPI(webkitWebViewBaseCreate(toImpl(contextRef), toImpl(pageGroupRef), nullptr, nullptr));
+    return toAPI(webkitWebViewBaseCreate(toImpl(contextRef), nullptr, toImpl(pageGroupRef), nullptr, nullptr));
 }
 
 WKPageRef WKViewGetPage(WKViewRef viewRef)
index 8fb6c22..d969c5b 100644 (file)
@@ -34,6 +34,8 @@
 #include "ExperimentalFeatures.h"
 #include "WebKitPrivate.h"
 #include "WebKitSettingsPrivate.h"
+#include "WebPageProxy.h"
+#include "WebPreferences.h"
 #include <WebCore/UserAgentGtk.h>
 #include <glib/gi18n-lib.h>
 #include <wtf/text/CString.h>
@@ -70,13 +72,12 @@ struct _WebKitSettingsPrivate {
 
 /**
  * SECTION:WebKitSettings
- * @short_description: Control the behaviour of #WebKitWebView<!-- -->s
- * @see_also: #WebKitWebViewGroup, #WebKitWebView
+ * @short_description: Control the behaviour of a #WebKitWebView
  *
- * #WebKitSettings can be applied to a #WebKitWebViewGroup to control text charset,
+ * #WebKitSettings can be applied to a #WebKitWebView to control text charset,
  * color, font sizes, printing mode, script support, loading of images and various
- * other things on the #WebKitWebView<!-- -->s of the group.
- * After creation, a #WebKitSettings object contains default settings.
+ * other things on a #WebKitWebView. After creation, a #WebKitSettings object
+ * contains default settings.
  *
  * <informalexample><programlisting>
  * /<!-- -->* Disable JavaScript. *<!-- -->/
@@ -1223,7 +1224,7 @@ WebPreferences* webkitSettingsGetPreferences(WebKitSettings* settings)
  * webkit_settings_new:
  *
  * Creates a new #WebKitSettings instance with default values. It must
- * be manually attached to a #WebKitWebViewGroup.
+ * be manually attached to a #WebKitWebView.
  * See also webkit_settings_new_with_settings().
  *
  * Returns: a new #WebKitSettings instance.
@@ -1240,7 +1241,7 @@ WebKitSettings* webkit_settings_new()
  *    %NULL-terminated
  *
  * Creates a new #WebKitSettings instance with the given settings. It must
- * be manually attached to a #WebKitWebViewGroup.
+ * be manually attached to a #WebKitWebView.
  *
  * Returns: a new #WebKitSettings instance.
  */
index 8c080ca..ff7fe46 100644 (file)
 #include "WebKitPrivate.h"
 #include "WebKitRequestManagerClient.h"
 #include "WebKitSecurityManagerPrivate.h"
+#include "WebKitSettingsPrivate.h"
 #include "WebKitTextChecker.h"
 #include "WebKitURISchemeRequestPrivate.h"
 #include "WebKitUserContentManagerPrivate.h"
 #include "WebKitWebContextPrivate.h"
 #include "WebKitWebViewBasePrivate.h"
-#include "WebKitWebViewGroupPrivate.h"
+#include "WebKitWebViewPrivate.h"
 #include "WebResourceCacheManagerProxy.h"
 #include <WebCore/FileSystem.h>
 #include <WebCore/IconDatabase.h>
@@ -156,7 +157,6 @@ struct _WebKitWebContextPrivate {
     WebKitTLSErrorsPolicy tlsErrorsPolicy;
 
     HashMap<uint64_t, WebKitWebView*> webViews;
-    GRefPtr<WebKitWebViewGroup> defaultWebViewGroup;
 
     CString webExtensionsDirectory;
     GRefPtr<GVariant> webExtensionsInitializationUserData;
@@ -1051,19 +1051,16 @@ void webkitWebContextDidFinishLoadingCustomProtocol(WebKitWebContext* context, u
     context->priv->uriSchemeRequests.remove(customProtocolID);
 }
 
-void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitWebViewGroup* webViewGroup, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
+void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
 {
     WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView);
-    WebPageGroup* pageGroup = webViewGroup ? webkitWebViewGroupGetPageGroup(webViewGroup) : 0;
     WebPageProxy* relatedPage = relatedView ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(relatedView)) : nullptr;
+    WebPreferences* preferences = webkitSettingsGetPreferences(webkit_web_view_get_settings(webView));
     WebUserContentControllerProxy* userContentControllerProxy = userContentManager ? webkitUserContentManagerGetUserContentControllerProxy(userContentManager) : nullptr;
-    webkitWebViewBaseCreateWebPage(webViewBase, context->priv->context.get(), pageGroup, userContentControllerProxy, relatedPage);
+    webkitWebViewBaseCreateWebPage(webViewBase, context->priv->context.get(), preferences, nullptr, userContentControllerProxy, relatedPage);
 
     WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
     context->priv->webViews.set(page->pageID(), webView);
-
-    if (!pageGroup && !context->priv->defaultWebViewGroup)
-        context->priv->defaultWebViewGroup = adoptGRef(webkitWebViewGroupCreate(&page->pageGroup()));
 }
 
 void webkitWebContextWebViewDestroyed(WebKitWebContext* context, WebKitWebView* webView)
@@ -1076,8 +1073,3 @@ WebKitWebView* webkitWebContextGetWebViewForPage(WebKitWebContext* context, WebP
 {
     return page ? context->priv->webViews.get(page->pageID()) : 0;
 }
-
-WebKitWebViewGroup* webkitWebContextGetDefaultWebViewGroup(WebKitWebContext* context)
-{
-    return context->priv->defaultWebViewGroup.get();
-}
index 76dcd36..47916c0 100644 (file)
@@ -31,7 +31,6 @@
 #include "WebKitPrivate.h"
 #include "WebKitUserContentManager.h"
 #include "WebKitWebContext.h"
-#include "WebKitWebViewGroup.h"
 #include "WebSoupCustomProtocolRequestManager.h"
 
 WebKit::WebContext* webkitWebContextGetContext(WebKitWebContext*);
@@ -43,10 +42,9 @@ WebKit::WebSoupCustomProtocolRequestManager* webkitWebContextGetRequestManager(W
 void webkitWebContextStartLoadingCustomProtocol(WebKitWebContext*, uint64_t customProtocolID, API::URLRequest*);
 void webkitWebContextStopLoadingCustomProtocol(WebKitWebContext*, uint64_t customProtocolID);
 void webkitWebContextDidFinishLoadingCustomProtocol(WebKitWebContext*, uint64_t customProtocolID);
-void webkitWebContextCreatePageForWebView(WebKitWebContext*, WebKitWebView*, WebKitWebViewGroup*, WebKitUserContentManager*, WebKitWebView*);
+void webkitWebContextCreatePageForWebView(WebKitWebContext*, WebKitWebView*, WebKitUserContentManager*, WebKitWebView*);
 void webkitWebContextWebViewDestroyed(WebKitWebContext*, WebKitWebView*);
 WebKitWebView* webkitWebContextGetWebViewForPage(WebKitWebContext*, WebKit::WebPageProxy*);
-WebKitWebViewGroup* webkitWebContextGetDefaultWebViewGroup(WebKitWebContext*);
 GVariant* webkitWebContextInitializeWebExtensions(WebKitWebContext*);
 
 #endif // WebKitWebContextPrivate_h
index dd52a1c..d42bb81 100644 (file)
@@ -48,6 +48,7 @@
 #include "WebKitPrivate.h"
 #include "WebKitResponsePolicyDecision.h"
 #include "WebKitScriptDialogPrivate.h"
+#include "WebKitSettingsPrivate.h"
 #include "WebKitUIClient.h"
 #include "WebKitURIRequestPrivate.h"
 #include "WebKitURIResponsePrivate.h"
@@ -55,7 +56,6 @@
 #include "WebKitWebInspectorPrivate.h"
 #include "WebKitWebResourcePrivate.h"
 #include "WebKitWebViewBasePrivate.h"
-#include "WebKitWebViewGroupPrivate.h"
 #include "WebKitWebViewPrivate.h"
 #include "WebKitWindowPropertiesPrivate.h"
 #include <JavaScriptCore/APICast.h>
@@ -132,7 +132,7 @@ enum {
 
     PROP_WEB_CONTEXT,
     PROP_RELATED_VIEW,
-    PROP_GROUP,
+    PROP_SETTINGS,
     PROP_USER_CONTENT_MANAGER,
     PROP_TITLE,
     PROP_ESTIMATED_LOAD_PROGRESS,
@@ -170,8 +170,6 @@ struct _WebKitWebViewPrivate {
 
     GRefPtr<WebKitBackForwardList> backForwardList;
     GRefPtr<WebKitSettings> settings;
-    unsigned long settingsChangedHandlerID;
-    GRefPtr<WebKitWebViewGroup> group;
     GRefPtr<WebKitUserContentManager> userContentManager;
     GRefPtr<WebKitWindowProperties> windowProperties;
 
@@ -376,11 +374,15 @@ static void faviconChangedCallback(WebKitFaviconDatabase*, const char* pageURI,
 
 static void webkitWebViewUpdateSettings(WebKitWebView* webView)
 {
-    // We keep a ref of the current settings to disconnect the signals when settings change in the group.
-    webView->priv->settings = webkit_web_view_get_settings(webView);
+    // The "settings" property is set on construction, and in that
+    // case webkit_web_view_set_settings() will be called *before* the
+    // WebPageProxy has been created so we should do an early return.
+    WebPageProxy* page = getPage(webView);
+    if (!page)
+        return;
 
     WebKitSettings* settings = webView->priv->settings.get();
-    WebPageProxy* page = getPage(webView);
+    page->setPreferences(*webkitSettingsGetPreferences(settings));
     page->setCanRunModal(webkit_settings_get_allow_modal_dialogs(settings));
     page->setCustomUserAgent(String::fromUTF8(webkit_settings_get_user_agent(settings)));
 
@@ -399,20 +401,6 @@ static void webkitWebViewDisconnectSettingsSignalHandlers(WebKitWebView* webView
     g_signal_handlers_disconnect_by_func(settings, reinterpret_cast<gpointer>(userAgentChanged), webView);
 }
 
-static void webkitWebViewSettingsChanged(WebKitWebViewGroup*, GParamSpec*, WebKitWebView* webView)
-{
-    webkitWebViewDisconnectSettingsSignalHandlers(webView);
-    webkitWebViewUpdateSettings(webView);
-}
-
-static void webkitWebViewDisconnectSettingsChangedSignalHandler(WebKitWebView* webView)
-{
-    WebKitWebViewPrivate* priv = webView->priv;
-    if (priv->settingsChangedHandlerID)
-        g_signal_handler_disconnect(webkit_web_view_get_group(webView), priv->settingsChangedHandlerID);
-    priv->settingsChangedHandlerID = 0;
-}
-
 static void webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(WebKitWebView* webView)
 {
     WebKitWebViewPrivate* priv = webView->priv;
@@ -503,10 +491,13 @@ static void webkitWebViewConstructed(GObject* object)
 
     WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
     WebKitWebViewPrivate* priv = webView->priv;
-    webkitWebContextCreatePageForWebView(priv->context, webView, priv->group.get(), priv->userContentManager.get(), priv->relatedView);
+    if (!priv->settings)
+        priv->settings = adoptGRef(webkit_settings_new());
+    webkitWebContextCreatePageForWebView(priv->context, webView, priv->userContentManager.get(), priv->relatedView);
     // The related view is only valid during the construction.
     priv->relatedView = nullptr;
 
+    webkitWebViewUpdateSettings(webView);
     webkitWebViewBaseSetDownloadRequestHandler(WEBKIT_WEB_VIEW_BASE(webView), webkitWebViewHandleDownloadRequest);
 
     attachLoaderClientToView(webView);
@@ -518,10 +509,6 @@ static void webkitWebViewConstructed(GObject* object)
 
     priv->backForwardList = adoptGRef(webkitBackForwardListCreate(&getPage(webView)->backForwardList()));
     priv->windowProperties = adoptGRef(webkitWindowPropertiesCreate());
-
-    webkitWebViewUpdateSettings(webView);
-    priv->settingsChangedHandlerID =
-        g_signal_connect(webkit_web_view_get_group(webView), "notify::settings", G_CALLBACK(webkitWebViewSettingsChanged), webView);
 }
 
 static void webkitWebViewSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
@@ -539,9 +526,9 @@ static void webkitWebViewSetProperty(GObject* object, guint propId, const GValue
         webView->priv->relatedView = relatedView ? WEBKIT_WEB_VIEW(relatedView) : nullptr;
         break;
     }
-    case PROP_GROUP: {
-        gpointer group = g_value_get_object(value);
-        webView->priv->group = group ? WEBKIT_WEB_VIEW_GROUP(group) : 0;
+    case PROP_SETTINGS: {
+        if (gpointer settings = g_value_get_object(value))
+            webkit_web_view_set_settings(webView, WEBKIT_SETTINGS(settings));
         break;
     }
     case PROP_USER_CONTENT_MANAGER: {
@@ -565,8 +552,8 @@ static void webkitWebViewGetProperty(GObject* object, guint propId, GValue* valu
     case PROP_WEB_CONTEXT:
         g_value_set_object(value, webView->priv->context);
         break;
-    case PROP_GROUP:
-        g_value_set_object(value, webkit_web_view_get_group(webView));
+    case PROP_SETTINGS:
+        g_value_set_object(value, webkit_web_view_get_settings(webView));
         break;
     case PROP_USER_CONTENT_MANAGER:
         g_value_set_object(value, webkit_web_view_get_user_content_manager(webView));
@@ -599,7 +586,6 @@ static void webkitWebViewDispose(GObject* object)
     WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
     webkitWebViewCancelFaviconRequest(webView);
     webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(webView);
-    webkitWebViewDisconnectSettingsChangedSignalHandler(webView);
     webkitWebViewDisconnectSettingsSignalHandlers(webView);
     webkitWebViewDisconnectFaviconDatabaseSignalHandlers(webView);
 
@@ -666,19 +652,21 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
             static_cast<GParamFlags>(WEBKIT_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)));
 
     /**
-     * WebKitWebView:group:
+     * WebKitWebView:settings:
      *
-     * The #WebKitWebViewGroup of the view.
+     * The #WebKitSettings of the view.
+     *
+     * Since: 2.6
      */
     g_object_class_install_property(
         gObjectClass,
-        PROP_GROUP,
+        PROP_SETTINGS,
         g_param_spec_object(
-            "group",
-            _("WebView Group"),
-            _("The WebKitWebViewGroup of the view"),
-            WEBKIT_TYPE_WEB_VIEW_GROUP,
-            static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
+            "settings",
+            _("WebView settings"),
+            _("The WebKitSettings of the view"),
+            WEBKIT_TYPE_SETTINGS,
+            static_cast<GParamFlags>(WEBKIT_PARAM_WRITABLE | G_PARAM_CONSTRUCT)));
 
     /**
      * WebKitWebView:user-content-manager:
@@ -1897,7 +1885,7 @@ void webkitWebViewSubmitFormRequest(WebKitWebView* webView, WebKitFormSubmission
 
 void webkitWebViewHandleAuthenticationChallenge(WebKitWebView* webView, AuthenticationChallengeProxy* authenticationChallenge)
 {
-    gboolean privateBrowsingEnabled = webkit_settings_get_enable_private_browsing(webkit_web_view_get_settings(webView));
+    gboolean privateBrowsingEnabled = webkit_settings_get_enable_private_browsing(webView->priv->settings.get());
     webView->priv->authenticationRequest = adoptGRef(webkitAuthenticationRequestCreate(authenticationChallenge, privateBrowsingEnabled));
     gboolean returnValue;
     g_signal_emit(webView, signals[AUTHENTICATE], 0, webView->priv->authenticationRequest.get(), &returnValue);
@@ -1911,9 +1899,11 @@ void webkitWebViewInsecureContentDetected(WebKitWebView* webView, WebKitInsecure
 /**
  * webkit_web_view_new:
  *
- * Creates a new #WebKitWebView with the default #WebKitWebContext and the
- * default #WebKitWebViewGroup.
- * See also webkit_web_view_new_with_context() and webkit_web_view_new_with_group().
+ * Creates a new #WebKitWebView with the default #WebKitWebContext and
+ * no #WebKitUserContentManager associated with it.
+ * See also webkit_web_view_new_with_context(),
+ * webkit_web_view_new_with_user_content_manager(), and
+ * webkit_web_view_new_with_settings().
  *
  * Returns: The newly created #WebKitWebView widget
  */
@@ -1926,9 +1916,10 @@ GtkWidget* webkit_web_view_new()
  * webkit_web_view_new_with_context:
  * @context: the #WebKitWebContext to be used by the #WebKitWebView
  *
- * Creates a new #WebKitWebView with the given #WebKitWebContext and the
- * default #WebKitWebViewGroup.
- * See also webkit_web_view_new_with_group().
+ * Creates a new #WebKitWebView with the given #WebKitWebContext and
+ * no #WebKitUserContentManager associated with it.
+ * See also webkit_web_view_new_with_user_content_manager() and
+ * webkit_web_view_new_with_settings().
  *
  * Returns: The newly created #WebKitWebView widget
  */
@@ -1951,7 +1942,8 @@ GtkWidget* webkit_web_view_new_with_context(WebKitWebContext* context)
  * You can also use this method to implement other process models based on %WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES,
  * like for example, sharing the same web process for all the views in the same security domain.
  *
- * The newly created #WebKitWebView will also have the same #WebKitUserContentManager as @web_view.
+ * The newly created #WebKitWebView will also have the same #WebKitUserContentManager
+ * and #WebKitSettings as @web_view.
  *
  * Returns: (transfer full): The newly created #WebKitWebView widget
  *
@@ -1963,25 +1955,27 @@ GtkWidget* webkit_web_view_new_with_related_view(WebKitWebView* webView)
 
     return GTK_WIDGET(g_object_new(WEBKIT_TYPE_WEB_VIEW,
         "user-content-manager", webView->priv->userContentManager.get(),
+        "settings", webView->priv->settings.get(),
         "related-view", webView,
         nullptr));
 }
 
 /**
- * webkit_web_view_new_with_group:
- * @group: a #WebKitWebViewGroup
+ * webkit_web_view_new_with_settings:
+ * @settings: a #WebKitSettings
  *
- * Creates a new #WebKitWebView with the given #WebKitWebViewGroup.
- * The view will be part of @group and it will be affected by the
- * group properties like the settings.
+ * Creates a new #WebKitWebView with the given #WebKitSettings.
+ * See also webkit_web_view_new_with_context(), and
+ * webkit_web_view_new_with_user_content_manager().
  *
  * Returns: The newly created #WebKitWebView widget
+ *
+ * Since: 2.6
  */
-GtkWidget* webkit_web_view_new_with_group(WebKitWebViewGroup* group)
+GtkWidget* webkit_web_view_new_with_settings(WebKitSettings* settings)
 {
-    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW_GROUP(group), 0);
-
-    return GTK_WIDGET(g_object_new(WEBKIT_TYPE_WEB_VIEW, "group", group, NULL));
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), nullptr);
+    return GTK_WIDGET(g_object_new(WEBKIT_TYPE_WEB_VIEW, "settings", settings, nullptr));
 }
 
 /**
@@ -2019,24 +2013,6 @@ WebKitWebContext* webkit_web_view_get_context(WebKitWebView *webView)
 }
 
 /**
- * webkit_web_view_get_group:
- * @web_view: a #WebKitWebView
- *
- * Gets the group @web_view belongs to.
- *
- * Returns: (transfer none): the #WebKitWebViewGroup to which the view belongs
- */
-WebKitWebViewGroup* webkit_web_view_get_group(WebKitWebView* webView)
-{
-    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
-
-    if (webView->priv->group)
-        return webView->priv->group.get();
-
-    return webkitWebContextGetDefaultWebViewGroup(webView->priv->context);
-}
-
-/**
  * webkit_web_view_get_user_content_manager:
  * @web_view: a #WebKitWebView
  *
@@ -2530,16 +2506,30 @@ void webkit_web_view_go_to_back_forward_list_item(WebKitWebView* webView, WebKit
  * @web_view: a #WebKitWebView
  * @settings: a #WebKitSettings
  *
- * Sets the #WebKitSettings to be applied to @web_view.
- * This is a convenient method to set new settings to the
- * #WebKitWebViewGroup @web_view belongs to.
- * New settings are applied immediately on all #WebKitWebView<!-- -->s
- * in the @web_view group.
- * See also webkit_web_view_group_set_settings().
+ * Sets the #WebKitSettings to be applied to @web_view. The
+ * existing #WebKitSettings of @web_view will be replaced by
+ * @settings. New settings are applied immediately on @web_view.
+ * The same #WebKitSettings object can be shared
+ * by multiple #WebKitWebView<!-- -->s.
  */
 void webkit_web_view_set_settings(WebKitWebView* webView, WebKitSettings* settings)
 {
-    webkit_web_view_group_set_settings(webkit_web_view_get_group(webView), settings);
+    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    if (webView->priv->settings == settings)
+        return;
+
+    // The "settings" property is set on construction, and in that
+    // case webkit_web_view_set_settings() will be called *before*
+    // any settings have been assigned. In that case there are no
+    // signal handlers to disconnect.
+    if (webView->priv->settings)
+        webkitWebViewDisconnectSettingsSignalHandlers(webView);
+
+    webView->priv->settings = settings;
+    webkitWebViewUpdateSettings(webView);
+    g_object_notify(G_OBJECT(webView), "settings");
 }
 
 /**
@@ -2547,19 +2537,25 @@ void webkit_web_view_set_settings(WebKitWebView* webView, WebKitSettings* settin
  * @web_view: a #WebKitWebView
  *
  * Gets the #WebKitSettings currently applied to @web_view.
- * This is a convenient method to get the settings of the
- * #WebKitWebViewGroup @web_view belongs to.
- * #WebKitSettings objects are shared by all the #WebKitWebView<!-- -->s
- * in the same #WebKitWebViewGroup, so modifying
+ * If no other #WebKitSettings have been explicitly applied to
+ * @web_view with webkit_web_view_set_settings(), the default
+ * #WebKitSettings will be returned. This method always returns
+ * a valid #WebKitSettings object.
+ * To modify any of the @web_view settings, you can either create
+ * a new #WebKitSettings object with webkit_settings_new(), setting
+ * the desired preferences, and then replace the existing @web_view
+ * settings with webkit_web_view_set_settings() or get the existing
+ * @web_view settings and update it directly. #WebKitSettings objects
+ * can be shared by multiple #WebKitWebView<!-- -->s, so modifying
  * the settings of a #WebKitWebView would affect other
- * #WebKitWebView<!-- -->s of the same group.
- * See also webkit_web_view_group_get_settings().
+ * #WebKitWebView<!-- -->s using the same #WebKitSettings.
  *
  * Returns: (transfer none): the #WebKitSettings attached to @web_view
  */
 WebKitSettings* webkit_web_view_get_settings(WebKitWebView* webView)
 {
-    return webkit_web_view_group_get_settings(webkit_web_view_get_group(webView));
+    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr);
+    return webView->priv->settings.get();
 }
 
 /**
@@ -2594,7 +2590,7 @@ void webkit_web_view_set_zoom_level(WebKitWebView* webView, gdouble zoomLevel)
         return;
 
     WebPageProxy* page = getPage(webView);
-    if (webkit_settings_get_zoom_text_only(webkit_web_view_get_settings(webView)))
+    if (webkit_settings_get_zoom_text_only(webView->priv->settings.get()))
         page->setTextZoomFactor(zoomLevel);
     else
         page->setPageZoomFactor(zoomLevel);
@@ -2615,7 +2611,7 @@ gdouble webkit_web_view_get_zoom_level(WebKitWebView* webView)
     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 1);
 
     WebPageProxy* page = getPage(webView);
-    gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webkit_web_view_get_settings(webView));
+    gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webView->priv->settings.get());
     return zoomTextOnly ? page->textZoomFactor() : page->pageZoomFactor();
 }
 
index 8a4729e..2c694c3 100644 (file)
@@ -49,7 +49,6 @@
 #include <webkit2/WebKitWebInspector.h>
 #include <webkit2/WebKitWebResource.h>
 #include <webkit2/WebKitWebViewBase.h>
-#include <webkit2/WebKitWebViewGroup.h>
 #include <webkit2/WebKitWindowProperties.h>
 
 G_BEGIN_DECLS
@@ -256,10 +255,10 @@ WEBKIT_API GtkWidget *
 webkit_web_view_new_with_context                     (WebKitWebContext          *context);
 
 WEBKIT_API GtkWidget *
-webkit_web_view_new_with_related_view                (WebKitWebView             *web_view);
+webkit_web_view_new_with_settings                    (WebKitSettings            *settings);
 
 WEBKIT_API GtkWidget *
-webkit_web_view_new_with_group                       (WebKitWebViewGroup        *group);
+webkit_web_view_new_with_related_view                (WebKitWebView             *web_view);
 
 WEBKIT_API GtkWidget *
 webkit_web_view_new_with_user_content_manager        (WebKitUserContentManager  *user_content_manager);
@@ -267,9 +266,6 @@ webkit_web_view_new_with_user_content_manager        (WebKitUserContentManager
 WEBKIT_API WebKitWebContext *
 webkit_web_view_get_context                          (WebKitWebView             *web_view);
 
-WEBKIT_API WebKitWebViewGroup *
-webkit_web_view_get_group                            (WebKitWebView             *web_view);
-
 WEBKIT_API void
 webkit_web_view_load_uri                             (WebKitWebView             *web_view,
                                                       const gchar               *uri);
index 0969b9c..b6f47df 100644 (file)
@@ -946,10 +946,10 @@ static void webkit_web_view_base_class_init(WebKitWebViewBaseClass* webkitWebVie
     containerClass->forall = webkitWebViewBaseContainerForall;
 }
 
-WebKitWebViewBase* webkitWebViewBaseCreate(WebContext* context, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
+WebKitWebViewBase* webkitWebViewBaseCreate(WebContext* context, WebPreferences* preferences, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
 {
     WebKitWebViewBase* webkitWebViewBase = WEBKIT_WEB_VIEW_BASE(g_object_new(WEBKIT_TYPE_WEB_VIEW_BASE, NULL));
-    webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, pageGroup, userContentController, relatedPage);
+    webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, preferences, pageGroup, userContentController, relatedPage);
     return webkitWebViewBase;
 }
 
@@ -972,7 +972,7 @@ void webkitWebViewBaseUpdatePreferences(WebKitWebViewBase* webkitWebViewBase)
         return;
 #endif
 
-    priv->pageProxy->pageGroup().preferences().setAcceleratedCompositingEnabled(false);
+    priv->pageProxy->preferences().setAcceleratedCompositingEnabled(false);
 }
 
 #if HAVE(GTK_SCALE_FACTOR)
@@ -982,11 +982,12 @@ static void deviceScaleFactorChanged(WebKitWebViewBase* webkitWebViewBase)
 }
 #endif // HAVE(GTK_SCALE_FACTOR)
 
-void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebContext* context, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebContext* context, WebPreferences* preferences, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
 {
     WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
 
     WebPageConfiguration webPageConfiguration;
+    webPageConfiguration.preferences = preferences;
     webPageConfiguration.pageGroup = pageGroup;
     webPageConfiguration.relatedPage = relatedPage;
     webPageConfiguration.userContentController = userContentController;
index dfe2285..b987dd6 100644 (file)
 #include "WebKitWebViewBase.h"
 #include "WebPageProxy.h"
 
-WebKitWebViewBase* webkitWebViewBaseCreate(WebKit::WebContext*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
+WebKitWebViewBase* webkitWebViewBaseCreate(WebKit::WebContext*, WebKit::WebPreferences*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
 GtkIMContext* webkitWebViewBaseGetIMContext(WebKitWebViewBase*);
 WebKit::WebPageProxy* webkitWebViewBaseGetPage(WebKitWebViewBase*);
-void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebContext*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebContext*, WebKit::WebPreferences*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
 void webkitWebViewBaseSetTooltipText(WebKitWebViewBase*, const char*);
 void webkitWebViewBaseSetTooltipArea(WebKitWebViewBase*, const WebCore::IntRect&);
 void webkitWebViewBaseForwardNextKeyEvent(WebKitWebViewBase*);
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp
deleted file mode 100644 (file)
index c8a6507..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Copyright (C) 2013 Igalia S.L.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "WebKitWebViewGroup.h"
-
-#include "APIArray.h"
-#include "APIString.h"
-#include "WebKitPrivate.h"
-#include "WebKitSettingsPrivate.h"
-#include "WebKitWebViewGroupPrivate.h"
-#include <glib/gi18n-lib.h>
-#include <wtf/gobject/GRefPtr.h>
-#include <wtf/text/CString.h>
-
-using namespace WebKit;
-
-/**
- * SECTION: WebKitWebViewGroup
- * @Short_description: Group of web views
- * @Title: WebKitWebViewGroup
- * @See_also: #WebKitWebView, #WebKitSettings
- *
- * A WebKitWebViewGroup represents a group of #WebKitWebView<!-- -->s that
- * share things like settings. There's a default WebKitWebViewGroup where
- * all #WebKitWebView<!-- -->s of the same #WebKitWebContext are added by default.
- * To create a #WebKitWebView in a different WebKitWebViewGroup you can use
- * webkit_web_view_new_with_group().
- *
- * WebKitWebViewGroups are identified by a unique name given when the group is
- * created with webkit_web_view_group_new().
- * WebKitWebViewGroups have a #WebKitSettings to control the settings of all
- * #WebKitWebView<!-- -->s of the group. You can get the settings with
- * webkit_web_view_group_get_settings() to handle the settings, or you can set
- * your own #WebKitSettings with webkit_web_view_group_set_settings(). When
- * the #WebKitSettings of a WebKitWebViewGroup changes, the signal notify::settings
- * is emitted on the group.
- */
-
-enum {
-    PROP_0,
-
-    PROP_SETTINGS
-};
-
-struct _WebKitWebViewGroupPrivate {
-    RefPtr<WebPageGroup> pageGroup;
-    CString name;
-    GRefPtr<WebKitSettings> settings;
-};
-
-WEBKIT_DEFINE_TYPE(WebKitWebViewGroup, webkit_web_view_group, G_TYPE_OBJECT)
-
-static inline WebCore::UserContentInjectedFrames toWebCoreUserContentInjectedFrames(WebKitInjectedContentFrames kitFrames)
-{
-    switch (kitFrames) {
-    case WEBKIT_INJECTED_CONTENT_FRAMES_ALL:
-        return WebCore::InjectInAllFrames;
-    case WEBKIT_INJECTED_CONTENT_FRAMES_TOP_ONLY:
-        return WebCore::InjectInTopFrameOnly;
-    default:
-        ASSERT_NOT_REACHED();
-        return WebCore::InjectInAllFrames;
-    }
-}
-
-static void webkitWebViewGroupSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
-{
-    WebKitWebViewGroup* group = WEBKIT_WEB_VIEW_GROUP(object);
-
-    switch (propId) {
-    case PROP_SETTINGS:
-        webkit_web_view_group_set_settings(group, WEBKIT_SETTINGS(g_value_get_object(value)));
-        break;
-    default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
-    }
-}
-
-static void webkitWebViewGroupGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec)
-{
-    WebKitWebViewGroup* group = WEBKIT_WEB_VIEW_GROUP(object);
-
-    switch (propId) {
-    case PROP_SETTINGS:
-        g_value_set_object(value, webkit_web_view_group_get_settings(group));
-        break;
-    default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
-    }
-}
-
-static void webkitWebViewGroupConstructed(GObject* object)
-{
-    G_OBJECT_CLASS(webkit_web_view_group_parent_class)->constructed(object);
-
-    WebKitWebViewGroupPrivate* priv = WEBKIT_WEB_VIEW_GROUP(object)->priv;
-    priv->settings = adoptGRef(webkit_settings_new());
-}
-
-static void webkit_web_view_group_class_init(WebKitWebViewGroupClass* hitTestResultClass)
-{
-    GObjectClass* objectClass = G_OBJECT_CLASS(hitTestResultClass);
-    objectClass->set_property = webkitWebViewGroupSetProperty;
-    objectClass->get_property = webkitWebViewGroupGetProperty;
-    objectClass->constructed = webkitWebViewGroupConstructed;
-
-    /**
-     * WebKitWebViewGroup:settings:
-     *
-     * The #WebKitSettings of the web view group.
-     */
-    g_object_class_install_property(
-        objectClass,
-        PROP_SETTINGS,
-        g_param_spec_object(
-            "settings",
-            _("Settings"),
-            _("The settings of the web view group"),
-            WEBKIT_TYPE_SETTINGS,
-            WEBKIT_PARAM_READWRITE));
-}
-
-static void webkitWebViewGroupAttachSettingsToPageGroup(WebKitWebViewGroup* group)
-{
-    group->priv->pageGroup->setPreferences(webkitSettingsGetPreferences(group->priv->settings.get()));
-}
-
-WebKitWebViewGroup* webkitWebViewGroupCreate(WebPageGroup* pageGroup)
-{
-    WebKitWebViewGroup* group = WEBKIT_WEB_VIEW_GROUP(g_object_new(WEBKIT_TYPE_WEB_VIEW_GROUP, NULL));
-    group->priv->pageGroup = pageGroup;
-    webkitWebViewGroupAttachSettingsToPageGroup(group);
-    return group;
-}
-
-WebPageGroup* webkitWebViewGroupGetPageGroup(WebKitWebViewGroup* group)
-{
-    return group->priv->pageGroup.get();
-}
-
-/**
- * webkit_web_view_group_new:
- * @name: (allow-none): the name of the group
- *
- * Creates a new #WebKitWebViewGroup with the given @name.
- * If @name is %NULL a unique identifier name will be created
- * automatically.
- * The newly created #WebKitWebViewGroup doesn't contain any
- * #WebKitWebView, web views are added to the new group when created
- * with webkit_web_view_new_with_group() passing the group.
- *
- * Returns: (transfer full): a new #WebKitWebViewGroup
- */
-WebKitWebViewGroup* webkit_web_view_group_new(const char* name)
-{
-    WebKitWebViewGroup* group = WEBKIT_WEB_VIEW_GROUP(g_object_new(WEBKIT_TYPE_WEB_VIEW_GROUP, NULL));
-    group->priv->pageGroup = WebPageGroup::create(name ? String::fromUTF8(name) : String());
-    webkitWebViewGroupAttachSettingsToPageGroup(group);
-    return group;
-}
-
-/**
- * webkit_web_view_group_get_name:
- * @group: a #WebKitWebViewGroup
- *
- * Gets the name that uniquely identifies the #WebKitWebViewGroup.
- *
- * Returns: the name of @group
- */
-const char* webkit_web_view_group_get_name(WebKitWebViewGroup* group)
-{
-    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW_GROUP(group), 0);
-
-    WebKitWebViewGroupPrivate* priv = group->priv;
-    if (priv->name.isNull())
-        priv->name = priv->pageGroup->identifier().utf8();
-
-    return priv->name.data();
-}
-
-/**
- * webkit_web_view_group_get_settings:
- * @group: a #WebKitWebViewGroup
- *
- * Gets the #WebKitSettings of the #WebKitWebViewGroup.
- *
- * Returns: (transfer none): the settings of @group
- */
-WebKitSettings* webkit_web_view_group_get_settings(WebKitWebViewGroup* group)
-{
-    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW_GROUP(group), 0);
-
-    return group->priv->settings.get();
-}
-
-/**
- * webkit_web_view_group_set_settings:
- * @group: a #WebKitWebViewGroup
- * @settings: a #WebKitSettings
- *
- * Sets a new #WebKitSettings for the #WebKitWebViewGroup. The settings will
- * affect to all the #WebKitWebView<!-- -->s of the group.
- * #WebKitWebViewGroup<!-- -->s always have a #WebKitSettings so if you just want to
- * modify a setting you can use webkit_web_view_group_get_settings() and modify the
- * returned #WebKitSettings instead.
- * Setting the same #WebKitSettings multiple times doesn't have any effect.
- * You can monitor the settings of a #WebKitWebViewGroup by connecting to the
- * notify::settings signal of @group.
- */
-void webkit_web_view_group_set_settings(WebKitWebViewGroup* group, WebKitSettings* settings)
-{
-    g_return_if_fail(WEBKIT_IS_WEB_VIEW_GROUP(group));
-    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
-
-    if (group->priv->settings == settings)
-        return;
-
-    group->priv->settings = settings;
-    webkitWebViewGroupAttachSettingsToPageGroup(group);
-    g_object_notify(G_OBJECT(group), "settings");
-}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.h b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.h
deleted file mode 100644 (file)
index 836ea17..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2013 Igalia S.L.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#if !defined(__WEBKIT2_H_INSIDE__) && !defined(WEBKIT2_COMPILATION)
-#error "Only <webkit2/webkit2.h> can be included directly."
-#endif
-
-#ifndef WebKitWebViewGroup_h
-#define WebKitWebViewGroup_h
-
-#include <glib-object.h>
-#include <webkit2/WebKitDefines.h>
-#include <webkit2/WebKitSettings.h>
-
-G_BEGIN_DECLS
-
-#define WEBKIT_TYPE_WEB_VIEW_GROUP            (webkit_web_view_group_get_type())
-#define WEBKIT_WEB_VIEW_GROUP(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_VIEW_GROUP, WebKitWebViewGroup))
-#define WEBKIT_IS_WEB_VIEW_GROUP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_VIEW_GROUP))
-#define WEBKIT_WEB_VIEW_GROUP_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  WEBKIT_TYPE_WEB_VIEW_GROUP, WebKitWebViewGroupClass))
-#define WEBKIT_IS_WEB_VIEW_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  WEBKIT_TYPE_WEB_VIEW_GROUP))
-#define WEBKIT_WEB_VIEW_GROUP_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_WEB_VIEW_GROUP, WebKitWebViewGroupClass))
-
-typedef struct _WebKitWebViewGroup        WebKitWebViewGroup;
-typedef struct _WebKitWebViewGroupClass   WebKitWebViewGroupClass;
-typedef struct _WebKitWebViewGroupPrivate WebKitWebViewGroupPrivate;
-
-struct _WebKitWebViewGroup {
-    GObject parent;
-
-    WebKitWebViewGroupPrivate *priv;
-};
-
-struct _WebKitWebViewGroupClass {
-    GObjectClass parent_class;
-
-    void (*_webkit_reserved0) (void);
-    void (*_webkit_reserved1) (void);
-    void (*_webkit_reserved2) (void);
-    void (*_webkit_reserved3) (void);
-};
-
-/**
- * WebKitInjectedContentFrames:
- * @WEBKIT_INJECTED_CONTENT_FRAMES_ALL: Content will be injected into all frames.
- * @WEBKIT_INJECTED_CONTENT_FRAMES_TOP_ONLY: Content will only be injected into the main frame.
- *
- * Enum values used for determining into which frames content is injected.
- */
-typedef enum {
-    WEBKIT_INJECTED_CONTENT_FRAMES_ALL,
-    WEBKIT_INJECTED_CONTENT_FRAMES_TOP_ONLY,
-} WebKitInjectedContentFrames;
-
-WEBKIT_API GType
-webkit_web_view_group_get_type                     (void);
-
-WEBKIT_API WebKitWebViewGroup *
-webkit_web_view_group_new                          (const gchar                 *name);
-
-WEBKIT_API const gchar *
-webkit_web_view_group_get_name                     (WebKitWebViewGroup          *group);
-
-WEBKIT_API WebKitSettings *
-webkit_web_view_group_get_settings                 (WebKitWebViewGroup          *group);
-
-WEBKIT_API void
-webkit_web_view_group_set_settings                 (WebKitWebViewGroup          *group,
-                                                    WebKitSettings              *settings);
-
-G_END_DECLS
-
-#endif
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroupPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroupPrivate.h
deleted file mode 100644 (file)
index 5fd8656..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2013 Igalia S.L.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef WebKitWebViewGroupPrivate_h
-#define WebKitWebViewGroupPrivate_h
-
-#include "WebKitWebViewGroup.h"
-#include "WebPageGroup.h"
-
-WebKitWebViewGroup* webkitWebViewGroupCreate(WebKit::WebPageGroup*);
-WebKit::WebPageGroup* webkitWebViewGroupGetPageGroup(WebKitWebViewGroup*);
-
-#endif // WebKitWebViewGroupPrivate_h
index 6302c0a..847545b 100644 (file)
@@ -43,7 +43,6 @@
     <xi:include href="xml/WebKitContextMenuItem.xml"/>
     <xi:include href="xml/WebKitFormSubmissionRequest.xml"/>
     <xi:include href="xml/WebKitSecurityManager.xml"/>
-    <xi:include href="xml/WebKitWebViewGroup.xml"/>
     <xi:include href="xml/WebKitCertificateInfo.xml"/>
   </chapter>
 
index 8f9f616..b9e8141 100644 (file)
@@ -134,10 +134,9 @@ WEBKIT_EDITING_COMMAND_REDO
 webkit_web_view_new
 webkit_web_view_new_with_context
 webkit_web_view_new_with_related_view
-webkit_web_view_new_with_group
+webkit_web_view_new_with_settings
 webkit_web_view_new_with_user_content_manager
 webkit_web_view_get_context
-webkit_web_view_get_group
 webkit_web_view_get_user_content_manager
 webkit_web_view_load_uri
 webkit_web_view_load_html
@@ -1060,29 +1059,6 @@ webkit_security_manager_get_type
 </SECTION>
 
 <SECTION>
-<FILE>WebKitWebViewGroup</FILE>
-WebKitWebViewGroup
-WebKitInjectedContentFrames
-webkit_web_view_group_new
-webkit_web_view_group_get_name
-webkit_web_view_group_get_settings
-webkit_web_view_group_set_settings
-
-<SUBSECTION Standard>
-WebKitWebViewGroupClass
-WEBKIT_TYPE_WEB_VIEW_GROUP
-WEBKIT_WEB_VIEW_GROUP
-WEBKIT_IS_WEB_VIEW_GROUP
-WEBKIT_WEB_VIEW_GROUP_CLASS
-WEBKIT_IS_WEB_VIEW_GROUP_CLASS
-WEBKIT_WEB_VIEW_GROUP_GET_CLASS
-
-<SUBSECTION Private>
-WebKitWebViewGroupPrivate
-webkit_web_view_group_get_type
-</SECTION>
-
-<SECTION>
 <FILE>WebKitWebExtension</FILE>
 WebKitWebExtension
 WebKitWebExtensionInitializeFunction
index 4b583ba..2446dc2 100644 (file)
@@ -21,7 +21,6 @@ webkit_web_inspector_get_type
 webkit_uri_scheme_request_get_type
 webkit_context_menu_get_type
 webkit_context_menu_item_get_type
-webkit_web_view_group_get_type
 webkit_web_extension_get_type
 webkit_web_page_get_type
 webkit_authentication_request_get_type
index 52ccad3..97c2765 100644 (file)
@@ -69,7 +69,6 @@
 #include <webkit2/WebKitWebResource.h>
 #include <webkit2/WebKitWebView.h>
 #include <webkit2/WebKitWebViewBase.h>
-#include <webkit2/WebKitWebViewGroup.h>
 #include <webkit2/WebKitWindowProperties.h>
 
 #undef __WEBKIT2_H_INSIDE__
index 1eda7e8..50e45c4 100644 (file)
@@ -62,7 +62,7 @@ WebPageProxy* WebInspectorProxy::platformCreateInspectorPage()
 {
     ASSERT(m_page);
     ASSERT(!m_inspectorView);
-    m_inspectorView = GTK_WIDGET(webkitWebViewBaseCreate(&page()->process().context(), inspectorPageGroup(), nullptr, m_page));
+    m_inspectorView = GTK_WIDGET(webkitWebViewBaseCreate(&page()->process().context(), nullptr, inspectorPageGroup(), nullptr, m_page));
     g_object_add_weak_pointer(G_OBJECT(m_inspectorView), reinterpret_cast<void**>(&m_inspectorView));
     return webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(m_inspectorView));
 }
index 0ae41a1..7768b37 100644 (file)
@@ -1,3 +1,23 @@
+2014-07-29  Adrian Perez de Castro  <aperez@igalia.com>
+
+        [GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
+        https://bugs.webkit.org/show_bug.cgi?id=133729
+
+        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.
+
+        * 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.
+
 2014-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         Implement webkit_web_view_load_string() in WebKit2
index 172b38a..265bc2d 100644 (file)
@@ -109,7 +109,6 @@ ADD_WK2_TEST(TestWebKitPolicyClient TestWebKitPolicyClient.cpp)
 ADD_WK2_TEST(TestWebKitSettings TestWebKitSettings.cpp)
 ADD_WK2_TEST(TestWebKitVersion TestWebKitVersion.cpp)
 ADD_WK2_TEST(TestWebViewEditor TestWebViewEditor.cpp)
-ADD_WK2_TEST(TestWebKitWebViewGroup TestWebKitWebViewGroup.cpp)
 ADD_WK2_TEST(TestWebKitWebContext TestWebKitWebContext.cpp)
 ADD_WK2_TEST(TestWebKitWebView TestWebKitWebView.cpp)
 ADD_WK2_TEST(TestWebKitUserContentManager TestWebKitUserContentManager.cpp)
index ed19fab..058543e 100644 (file)
@@ -46,10 +46,12 @@ static void testWebViewCustomCharset(WebViewTest* test, gconstpointer)
 static void testWebViewSettings(WebViewTest* test, gconstpointer)
 {
     WebKitSettings* defaultSettings = webkit_web_view_get_settings(test->m_webView);
+    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(defaultSettings));
     g_assert(defaultSettings);
     g_assert(webkit_settings_get_enable_javascript(defaultSettings));
 
     GRefPtr<WebKitSettings> newSettings = adoptGRef(webkit_settings_new());
+    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(newSettings.get()));
     g_object_set(G_OBJECT(newSettings.get()), "enable-javascript", FALSE, NULL);
     webkit_web_view_set_settings(test->m_webView, newSettings.get());
 
@@ -63,10 +65,15 @@ static void testWebViewSettings(WebViewTest* test, gconstpointer)
     g_assert(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView2.get())) == settings);
 
     GRefPtr<WebKitSettings> newSettings2 = adoptGRef(webkit_settings_new());
+    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(newSettings2.get()));
     webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webView2.get()), newSettings2.get());
     settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView2.get()));
     g_assert(settings == newSettings2.get());
     g_assert(webkit_settings_get_enable_javascript(settings));
+
+    GRefPtr<GtkWidget> webView3 = webkit_web_view_new_with_settings(newSettings2.get());
+    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView3.get()));
+    g_assert(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView3.get())) == newSettings2.get());
 }
 
 static void testWebViewZoomLevel(WebViewTest* test, gconstpointer)
diff --git a/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebViewGroup.cpp b/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebViewGroup.cpp
deleted file mode 100644 (file)
index ccba89d..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2013 Igalia S.L.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2,1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include "WebKitTestServer.h"
-#include "WebViewTest.h"
-#include <cstdarg>
-#include <gtk/gtk.h>
-#include <webkit2/webkit2.h>
-#include <wtf/gobject/GRefPtr.h>
-
-static void testWebViewGroupDefault(Test* test, gconstpointer)
-{
-    // Default group is shared by all WebViews by default.
-    GRefPtr<WebKitWebView> webView1 = WEBKIT_WEB_VIEW(webkit_web_view_new());
-    GRefPtr<WebKitWebView> webView2 = WEBKIT_WEB_VIEW(webkit_web_view_new());
-    g_assert(webkit_web_view_get_group(webView1.get()) == webkit_web_view_get_group(webView2.get()));
-
-    // Settings are shared by all web view in the same group.
-    g_assert(webkit_web_view_get_settings(webView1.get()) == webkit_web_view_get_settings(webView2.get()));
-    g_assert(webkit_web_view_get_settings(webView1.get()) == webkit_web_view_group_get_settings(webkit_web_view_get_group(webView2.get())));
-}
-
-static void testWebViewGroupNewGroup(Test* test, gconstpointer)
-{
-    // Passing 0 as group name generates the name automatically.
-    GRefPtr<WebKitWebViewGroup> viewGroup1 = adoptGRef(webkit_web_view_group_new(0));
-    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(viewGroup1.get()));
-    g_assert(webkit_web_view_group_get_name(viewGroup1.get()));
-
-    // New group with a given name.
-    GRefPtr<WebKitWebViewGroup> viewGroup2 = adoptGRef(webkit_web_view_group_new("TestGroup2"));
-    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(viewGroup2.get()));
-    g_assert_cmpstr(webkit_web_view_group_get_name(viewGroup2.get()), ==, "TestGroup2");
-    g_assert_cmpstr(webkit_web_view_group_get_name(viewGroup2.get()), !=, webkit_web_view_group_get_name(viewGroup1.get()));
-
-    // Every group has its own settings.
-    g_assert(webkit_web_view_group_get_settings(viewGroup1.get()) != webkit_web_view_group_get_settings(viewGroup2.get()));
-}
-
-static void testWebViewNewWithGroup(Test* test, gconstpointer)
-{
-    GRefPtr<WebKitWebViewGroup> viewGroup1 = adoptGRef(webkit_web_view_group_new("TestGroup1"));
-    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(viewGroup1.get()));
-    GRefPtr<WebKitWebView> webView1 = WEBKIT_WEB_VIEW(webkit_web_view_new_with_group(viewGroup1.get()));
-    g_assert(webkit_web_view_get_group(webView1.get()) == viewGroup1.get());
-
-    GRefPtr<WebKitWebView> webView2 = WEBKIT_WEB_VIEW(webkit_web_view_new());
-    g_assert(webkit_web_view_get_group(webView2.get()) != viewGroup1.get());
-
-    // Settings should be different for views in different groups.
-    g_assert(webkit_web_view_get_settings(webView1.get()) != webkit_web_view_get_settings(webView2.get()));
-}
-
-static void testWebViewGroupSettings(Test* test, gconstpointer)
-{
-    GRefPtr<WebKitWebViewGroup> viewGroup1 = adoptGRef(webkit_web_view_group_new("TestGroup1"));
-    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(viewGroup1.get()));
-    GRefPtr<WebKitSettings> newSettings = adoptGRef(webkit_settings_new_with_settings("enable-javascript", FALSE, nullptr));
-    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(newSettings.get()));
-    webkit_web_view_group_set_settings(viewGroup1.get(), newSettings.get());
-    g_assert(webkit_web_view_group_get_settings(viewGroup1.get()) == newSettings.get());
-
-    GRefPtr<WebKitWebView> webView1 = WEBKIT_WEB_VIEW(webkit_web_view_new_with_group(viewGroup1.get()));
-    GRefPtr<WebKitWebView> webView2 = WEBKIT_WEB_VIEW(webkit_web_view_new());
-    WebKitSettings* webView1Settings = webkit_web_view_get_settings(webView1.get());
-    WebKitSettings* webView2Settings = webkit_web_view_get_settings(webView2.get());
-    g_assert(webView1Settings != webView2Settings);
-    g_assert(webkit_settings_get_enable_javascript(webView1Settings) != webkit_settings_get_enable_javascript(webView2Settings));
-
-    webkit_web_view_set_settings(webView1.get(), webView2Settings);
-    g_assert(webkit_web_view_get_settings(webView1.get()) == webView2Settings);
-    g_assert(webkit_web_view_group_get_settings(webkit_web_view_get_group(webView1.get())) == webView2Settings);
-}
-
-void beforeAll()
-{
-    Test::add("WebKitWebViewGroup", "default-group", testWebViewGroupDefault);
-    Test::add("WebKitWebViewGroup", "new-group", testWebViewGroupNewGroup);
-    Test::add("WebKitWebView", "new-with-group", testWebViewNewWithGroup);
-    Test::add("WebKitWebViewGroup", "settings", testWebViewGroupSettings);
-}
-
-void afterAll()
-{
-}