Title: [145528] releases/WebKitGTK/webkit-2.0/Source/WebKit2
Revision
145528
Author
carlo...@webkit.org
Date
2013-03-12 05:09:56 -0700 (Tue, 12 Mar 2013)

Log Message

[GTK] Add webkit_web_context_set_disk_cache_directory to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=111848

Reviewed by Gustavo Noronha Silva.

This allow applications to set a custom directory for the disk
cache.

* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_disk_cache_directory):
* UIProcess/API/gtk/WebKitWebContext.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
* UIProcess/API/gtk/tests/TestMain.cpp:
(removeNonEmptyDirectory):
(main): Use a different temporary disk cache directory for every
test.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.0/Source/WebKit2/ChangeLog (145527 => 145528)


--- releases/WebKitGTK/webkit-2.0/Source/WebKit2/ChangeLog	2013-03-12 12:00:23 UTC (rev 145527)
+++ releases/WebKitGTK/webkit-2.0/Source/WebKit2/ChangeLog	2013-03-12 12:09:56 UTC (rev 145528)
@@ -1,5 +1,24 @@
 2013-03-12  Carlos Garcia Campos  <cgar...@igalia.com>
 
+        [GTK] Add webkit_web_context_set_disk_cache_directory to WebKit2 GTK+ API
+        https://bugs.webkit.org/show_bug.cgi?id=111848
+
+        Reviewed by Gustavo Noronha Silva.
+
+        This allow applications to set a custom directory for the disk
+        cache.
+
+        * UIProcess/API/gtk/WebKitWebContext.cpp:
+        (webkit_web_context_set_disk_cache_directory):
+        * UIProcess/API/gtk/WebKitWebContext.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+        * UIProcess/API/gtk/tests/TestMain.cpp:
+        (removeNonEmptyDirectory):
+        (main): Use a different temporary disk cache directory for every
+        test.
+
+2013-03-12  Carlos Garcia Campos  <cgar...@igalia.com>
+
         [SOUP] Soup disk cache should respect the diskCacheDirectory from the process initial parameters
         https://bugs.webkit.org/show_bug.cgi?id=111845
 

Modified: releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (145527 => 145528)


--- releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp	2013-03-12 12:00:23 UTC (rev 145527)
+++ releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp	2013-03-12 12:09:56 UTC (rev 145528)
@@ -774,6 +774,23 @@
 }
 
 /**
+ * webkit_web_context_set_disk_cache_directory:
+ * @context: a #WebKitWebContext
+ * @directory: the directory to set
+ *
+ * Set the directory where disk cache files will be stored
+ * This method must be called before loading anything in this context, otherwise
+ * it will not have any effect.
+ */
+void webkit_web_context_set_disk_cache_directory(WebKitWebContext* context, const char* directory)
+{
+    g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
+    g_return_if_fail(directory);
+
+    context->priv->context->setDiskCacheDirectory(WebCore::filenameToString(directory));
+}
+
+/**
  * webkit_web_context_prefetch_dns:
  * @context: a #WebKitWebContext
  * @hostname: a hostname to be resolved

Modified: releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h (145527 => 145528)


--- releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h	2013-03-12 12:00:23 UTC (rev 145527)
+++ releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h	2013-03-12 12:09:56 UTC (rev 145528)
@@ -192,6 +192,10 @@
 webkit_web_context_prefetch_dns                     (WebKitWebContext              *context,
                                                      const gchar                   *hostname);
 
+WEBKIT_API void
+webkit_web_context_set_disk_cache_directory         (WebKitWebContext              *context,
+                                                     const gchar                   *directory);
+
 G_END_DECLS
 
 #endif

Modified: releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (145527 => 145528)


--- releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-03-12 12:00:23 UTC (rev 145527)
+++ releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-03-12 12:09:56 UTC (rev 145528)
@@ -47,6 +47,7 @@
 webkit_web_context_get_tls_errors_policy
 webkit_web_context_set_web_extensions_directory
 webkit_web_context_prefetch_dns
+webkit_web_context_set_disk_cache_directory
 
 <SUBSECTION URI Scheme>
 WebKitURISchemeRequestCallback

Modified: releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp (145527 => 145528)


--- releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp	2013-03-12 12:00:23 UTC (rev 145527)
+++ releases/WebKitGTK/webkit-2.0/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp	2013-03-12 12:09:56 UTC (rev 145528)
@@ -20,7 +20,10 @@
 #include "config.h"
 #include "TestMain.h"
 
+#include <glib/gstdio.h>
 #include <gtk/gtk.h>
+#include <webkit2/webkit2.h>
+#include <wtf/gobject/GOwnPtr.h>
 
 void beforeAll();
 void afterAll();
@@ -35,6 +38,19 @@
     g_resource_unref(resource);
 }
 
+static void removeNonEmptyDirectory(const char* directoryPath)
+{
+    GDir* directory = g_dir_open(directoryPath, 0, 0);
+    g_assert(directory);
+    const char* fileName;
+    while ((fileName = g_dir_read_name(directory))) {
+        GOwnPtr<char> filePath(g_build_filename(directoryPath, fileName, 0));
+        g_unlink(filePath.get());
+    }
+    g_dir_close(directory);
+    g_rmdir(directoryPath);
+}
+
 int main(int argc, char** argv)
 {
     gtk_test_init(&argc, &argv, 0);
@@ -45,9 +61,15 @@
 
     registerGResource();
 
+    GOwnPtr<char> diskCacheTempDirectory(g_dir_make_tmp("WebKit2TestsDiskCache-XXXXXX", 0));
+    g_assert(diskCacheTempDirectory.get());
+    webkit_web_context_set_disk_cache_directory(webkit_web_context_get_default(), diskCacheTempDirectory.get());
+
     beforeAll();
     int returnValue = g_test_run();
     afterAll();
 
+    removeNonEmptyDirectory(diskCacheTempDirectory.get());
+
     return returnValue;
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to