Title: [97047] trunk/Source/WebKit2
Revision
97047
Author
carlo...@webkit.org
Date
2011-10-10 02:20:19 -0700 (Mon, 10 Oct 2011)

Log Message

[GTK] Add methods to reload the view to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=69613

Reviewed by Martin Robinson.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_reload):
(webkit_web_view_reload_bypass_cache):
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/tests/testloading.c:
(loadReloadProvisionalLoadStarted):
(loadReloadLoadFinished):
(testLoadTimeoutFinishLoop):
(testLoadReload):
(main):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (97046 => 97047)


--- trunk/Source/WebKit2/ChangeLog	2011-10-10 09:03:28 UTC (rev 97046)
+++ trunk/Source/WebKit2/ChangeLog	2011-10-10 09:20:19 UTC (rev 97047)
@@ -1,3 +1,21 @@
+2011-10-10  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GTK] Add methods to reload the view to WebKit2 GTK+ API
+        https://bugs.webkit.org/show_bug.cgi?id=69613
+
+        Reviewed by Martin Robinson.
+
+        * UIProcess/API/gtk/WebKitWebView.cpp:
+        (webkit_web_view_reload):
+        (webkit_web_view_reload_bypass_cache):
+        * UIProcess/API/gtk/WebKitWebView.h:
+        * UIProcess/API/gtk/tests/testloading.c:
+        (loadReloadProvisionalLoadStarted):
+        (loadReloadLoadFinished):
+        (testLoadTimeoutFinishLoop):
+        (testLoadReload):
+        (main):
+
 2011-10-09  Luke Macpherson   <macpher...@chromium.org>
 
         Fix Lion, Leopard and Snow Leopard builds after changeset 97034 <http://trac.webkit.org/changeset/97034>

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (97046 => 97047)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2011-10-10 09:03:28 UTC (rev 97046)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2011-10-10 09:20:19 UTC (rev 97047)
@@ -252,6 +252,34 @@
 }
 
 /**
+ * webkit_web_view_reload:
+ * @web_view: a #WebKitWebView
+ *
+ * Reloads the current contents of @web_view.
+ * See also webkit_web_view_reload_bypass_cache().
+ */
+void webkit_web_view_reload(WebKitWebView* webView)
+{
+    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
+
+    WKPageReload(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))));
+}
+
+/**
+ * webkit_web_view_reload_bypass_cache:
+ * @webView: a #WebKitWebView
+ *
+ * Reloads the current contents of @web_view without
+ * using any cached data.
+ */
+void webkit_web_view_reload_bypass_cache(WebKitWebView* webView)
+{
+    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
+
+    WKPageReloadFromOrigin(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))));
+}
+
+/**
  * webkit_web_view_go_back:
  * @web_view: a #WebKitWebView
  *

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h (97046 => 97047)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h	2011-10-10 09:03:28 UTC (rev 97046)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h	2011-10-10 09:20:19 UTC (rev 97047)
@@ -96,6 +96,12 @@
                                      const gchar           *unreachable_uri);
 
 WEBKIT_API void
+webkit_web_view_reload              (WebKitWebView         *web_view);
+
+WEBKIT_API void
+webkit_web_view_reload_bypass_cache (WebKitWebView         *web_view);
+
+WEBKIT_API void
 webkit_web_view_go_back             (WebKitWebView         *web_view);
 
 WEBKIT_API void

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/testloading.c (97046 => 97047)


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/testloading.c	2011-10-10 09:03:28 UTC (rev 97046)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/testloading.c	2011-10-10 09:20:19 UTC (rev 97047)
@@ -285,6 +285,65 @@
     g_main_loop_run(fixture->loop);
 }
 
+static gboolean loadReloadProvisionalLoadStarted(WebKitWebLoaderClient *client, WebLoadingFixture *fixture)
+{
+    g_assert(!fixture->hasBeenProvisional);
+    fixture->hasBeenProvisional = TRUE;
+
+    return TRUE;
+}
+
+static gboolean loadReloadLoadFinished(WebKitWebLoaderClient *client, WebLoadingFixture *fixture)
+{
+    g_assert(!fixture->hasBeenFinished);
+    fixture->hasBeenFinished = TRUE;
+    g_main_loop_quit(fixture->loop);
+
+    return TRUE;
+}
+
+static gboolean testLoadTimeoutFinishLoop(WebLoadingFixture *fixture)
+{
+    g_main_loop_quit(fixture->loop);
+
+    return FALSE;
+}
+
+static void testLoadReload(WebLoadingFixture *fixture, gconstpointer data)
+{
+    char *uriString;
+    WebKitWebLoaderClient *client = webkit_web_view_get_loader_client(fixture->webView);
+
+    g_signal_connect(client, "provisional-load-started", G_CALLBACK(loadReloadProvisionalLoadStarted), fixture);
+    g_signal_connect(client, "load-finished", G_CALLBACK(loadReloadLoadFinished), fixture);
+
+    /* Check nothing happens when there's nothing to reload */
+    webkit_web_view_reload(fixture->webView);
+    g_timeout_add_seconds(1, (GSourceFunc)testLoadTimeoutFinishLoop, fixture);
+    g_main_loop_run(fixture->loop);
+
+    g_assert(!fixture->hasBeenProvisional);
+    g_assert(!fixture->hasBeenFinished);
+
+    uriString = getURIForPath("/");
+    webkit_web_view_load_uri(fixture->webView, uriString);
+    g_free(uriString);
+
+    g_main_loop_run(fixture->loop);
+
+    g_assert(fixture->hasBeenProvisional);
+    g_assert(fixture->hasBeenFinished);
+
+    fixture->hasBeenProvisional = FALSE;
+    fixture->hasBeenFinished = FALSE;
+
+    webkit_web_view_reload(fixture->webView);
+    g_main_loop_run(fixture->loop);
+
+    g_assert(fixture->hasBeenProvisional);
+    g_assert(fixture->hasBeenFinished);
+}
+
 int main(int argc, char **argv)
 {
     SoupServer *server;
@@ -323,6 +382,11 @@
                webLoadingFixtureSetup,
                testLoadProgress,
                webLoadingFixtureTeardown);
+    g_test_add("/webkit2/loading/reload",
+               WebLoadingFixture, NULL,
+               webLoadingFixtureSetup,
+               testLoadReload,
+               webLoadingFixtureTeardown);
 
     return g_test_run();
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to