Title: [122113] trunk/Source/WebKit2
Revision
122113
Author
[email protected]
Date
2012-07-09 10:24:55 -0700 (Mon, 09 Jul 2012)

Log Message

[GTK] Add a setting to enable/disable page cache to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=90773

Reviewed by Martin Robinson.

* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_enable_page_cache):
(webkit_settings_set_enable_page_cache):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (122112 => 122113)


--- trunk/Source/WebKit2/ChangeLog	2012-07-09 16:39:15 UTC (rev 122112)
+++ trunk/Source/WebKit2/ChangeLog	2012-07-09 17:24:55 UTC (rev 122113)
@@ -1,3 +1,21 @@
+2012-07-09  Carlos Garcia Campos  <[email protected]>
+
+        [GTK] Add a setting to enable/disable page cache to WebKit2 GTK+ API
+        https://bugs.webkit.org/show_bug.cgi?id=90773
+
+        Reviewed by Martin Robinson.
+
+        * UIProcess/API/gtk/WebKitSettings.cpp:
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_get_enable_page_cache):
+        (webkit_settings_set_enable_page_cache):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+        (testWebKitSettings):
+
 2012-07-09  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r122107.

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp (122112 => 122113)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2012-07-09 16:39:15 UTC (rev 122112)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2012-07-09 17:24:55 UTC (rev 122113)
@@ -113,7 +113,8 @@
     PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE,
     PROP_MEDIA_PLAYBACK_ALLOWS_INLINE,
     PROP_DRAW_COMPOSITING_INDICATORS,
-    PROP_ENABLE_SITE_SPECIFIC_QUIRKS
+    PROP_ENABLE_SITE_SPECIFIC_QUIRKS,
+    PROP_ENABLE_PAGE_CACHE
 };
 
 static void webKitSettingsSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
@@ -241,6 +242,9 @@
     case PROP_ENABLE_SITE_SPECIFIC_QUIRKS:
         webkit_settings_set_enable_site_specific_quirks(settings, g_value_get_boolean(value));
         break;
+    case PROP_ENABLE_PAGE_CACHE:
+        webkit_settings_set_enable_page_cache(settings, g_value_get_boolean(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -372,6 +376,9 @@
     case PROP_ENABLE_SITE_SPECIFIC_QUIRKS:
         g_value_set_boolean(value, webkit_settings_get_enable_site_specific_quirks(settings));
         break;
+    case PROP_ENABLE_PAGE_CACHE:
+        g_value_set_boolean(value, webkit_settings_get_enable_page_cache(settings));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -965,7 +972,7 @@
                                                          readWriteConstructParamFlags));
 
     /**
-     * WebKitSettings::enable-site-specific-quirks:
+     * WebKitSettings:enable-site-specific-quirks:
      *
      * Whether to turn on site-specific quirks. Turning this on will
      * tell WebKit to use some site-specific workarounds for
@@ -982,6 +989,27 @@
                                                          FALSE,
                                                          readWriteConstructParamFlags));
 
+    /**
+     * WebKitSettings:enable-page-cache:
+     *
+     * Enable or disable the page cache. Disabling the page cache is
+     * generally only useful for special circumstances like low-memory
+     * scenarios or special purpose applications like static HTML
+     * viewers. This setting only controls the Page Cache, this cache
+     * is different than the disk-based or memory-based traditional
+     * resource caches, its point is to make going back and forth
+     * between pages much faster. For details about the different types
+     * of caches and their purposes see:
+     * http://webkit.org/blog/427/webkit-page-cache-i-the-basics/
+     */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_ENABLE_PAGE_CACHE,
+                                    g_param_spec_boolean("enable-page-cache",
+                                                         _("Enable page cache"),
+                                                         _("Whether the page cache should be used"),
+                                                         TRUE,
+                                                         readWriteConstructParamFlags));
+
     g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
 }
 
@@ -2492,3 +2520,38 @@
     WKPreferencesSetNeedsSiteSpecificQuirks(priv->preferences.get(), enabled);
     g_object_notify(G_OBJECT(settings), "enable-site-specific-quirks");
 }
+
+/**
+ * webkit_settings_get_enable_page_cache:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-page-cache property.
+ *
+ * Returns: %TRUE if page cache enabled or %FALSE otherwise.
+ */
+gboolean webkit_settings_get_enable_page_cache(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+    return WKPreferencesGetPageCacheEnabled(settings->priv->preferences.get());
+}
+
+/**
+ * webkit_settings_set_enable_page_cache:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-page-cache property.
+ */
+void webkit_settings_set_enable_page_cache(WebKitSettings* settings, gboolean enabled)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    bool currentValue = WKPreferencesGetPageCacheEnabled(priv->preferences.get());
+    if (currentValue == enabled)
+        return;
+
+    WKPreferencesSetPageCacheEnabled(priv->preferences.get(), enabled);
+    g_object_notify(G_OBJECT(settings), "enable-page-cache");
+}

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h (122112 => 122113)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2012-07-09 16:39:15 UTC (rev 122112)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2012-07-09 17:24:55 UTC (rev 122113)
@@ -355,6 +355,13 @@
 webkit_settings_set_enable_site_specific_quirks                (WebKitSettings *settings,
                                                                 gboolean        enabled);
 
+WEBKIT_API gboolean
+webkit_settings_get_enable_page_cache                          (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_page_cache                          (WebKitSettings *settings,
+                                                                gboolean        enabled);
+
 G_END_DECLS
 
 #endif /* WebKitSettings_h */

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (122112 => 122113)


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2012-07-09 16:39:15 UTC (rev 122112)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2012-07-09 17:24:55 UTC (rev 122113)
@@ -270,6 +270,8 @@
 webkit_settings_set_draw_compositing_indicators
 webkit_settings_get_enable_site_specific_quirks
 webkit_settings_set_enable_site_specific_quirks
+webkit_settings_get_enable_page_cache
+webkit_settings_set_enable_page_cache
 
 <SUBSECTION Standard>
 WebKitSettingsClass

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp (122112 => 122113)


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2012-07-09 16:39:15 UTC (rev 122112)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2012-07-09 17:24:55 UTC (rev 122113)
@@ -234,6 +234,11 @@
     webkit_settings_set_enable_site_specific_quirks(settings, TRUE);
     g_assert(webkit_settings_get_enable_site_specific_quirks(settings));
 
+    // By default, page cache is enabled.
+    g_assert(webkit_settings_get_enable_page_cache(settings));
+    webkit_settings_set_enable_page_cache(settings, FALSE);
+    g_assert(!webkit_settings_get_enable_page_cache(settings));
+
     g_object_unref(G_OBJECT(settings));
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to