[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 15:22:01 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit fae20ca3d5bdfc847d0975b65cc3d3172f106cec
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Nov 2 01:36:43 2010 +0000

    2010-11-01  Jennifer Braithwaite  <jennb at google.com>
    
            Reviewed by Martin Robinson.
    
            GTK: Update resource tracking when moving a frame between documents
            https://bugs.webkit.org/show_bug.cgi?id=48362
    
            * WebCoreSupport/FrameLoaderClientGtk.cpp:
            (WebKit::FrameLoaderClient::transferLoadingResourceFromPage):
            Assign resource id to current web view and remove from former web view.
            * webkit/webkitprivate.h:
            * webkit/webkitwebview.cpp:
            (webkit_web_view_remove_resource):
            Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71090 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 7ed213d..e5f97e9 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,18 @@
+2010-11-01  Jennifer Braithwaite  <jennb at google.com>
+
+        Reviewed by Martin Robinson.
+
+        GTK: Update resource tracking when moving a frame between documents
+        https://bugs.webkit.org/show_bug.cgi?id=48362
+
+        * WebCoreSupport/FrameLoaderClientGtk.cpp:
+        (WebKit::FrameLoaderClient::transferLoadingResourceFromPage):
+        Assign resource id to current web view and remove from former web view.
+        * webkit/webkitprivate.h:
+        * webkit/webkitwebview.cpp:
+        (webkit_web_view_remove_resource):
+        Added.
+
 2010-11-01  Mario Sanchez Prada  <msanchez at igalia.com>
 
         Reviewed by Martin Robinson.
diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
index 20aafc2..88a6a43 100644
--- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
@@ -620,8 +620,16 @@ void FrameLoaderClient::didTransferChildFrameToNewDocument(WebCore::Page*)
     ASSERT(core(getViewFromFrame(m_frame)) == coreFrame->page());
 }
 
-void FrameLoaderClient::transferLoadingResourceFromPage(unsigned long, WebCore::DocumentLoader*, const WebCore::ResourceRequest&, WebCore::Page*)
+void FrameLoaderClient::transferLoadingResourceFromPage(unsigned long identifier, WebCore::DocumentLoader* docLoader, const WebCore::ResourceRequest& request, WebCore::Page* oldPage)
 {
+    ASSERT(oldPage != core(m_frame)->page());
+
+    GOwnPtr<gchar> identifierString(toString(identifier));
+    ASSERT(!webkit_web_view_get_resource(getViewFromFrame(m_frame), identifierString.get()));
+
+    assignIdentifierToInitialRequest(identifier, docLoader, request);
+
+    webkit_web_view_remove_resource(kit(oldPage), identifierString.get());
 }
 
 void FrameLoaderClient::redirectDataToPlugin(Widget* pluginWidget)
diff --git a/WebKit/gtk/webkit/webkitprivate.h b/WebKit/gtk/webkit/webkitprivate.h
index 261c437..3ac3563 100644
--- a/WebKit/gtk/webkit/webkitprivate.h
+++ b/WebKit/gtk/webkit/webkitprivate.h
@@ -278,6 +278,9 @@ extern "C" {
     void
     webkit_web_view_add_resource(WebKitWebView*, const char*, WebKitWebResource*);
 
+    void
+    webkit_web_view_remove_resource(WebKitWebView*, const char*);
+
     WebKitWebResource*
     webkit_web_view_get_resource(WebKitWebView*, char*);
 
diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp
index bba969a..a3d6c21 100644
--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -4647,6 +4647,16 @@ void webkit_web_view_add_resource(WebKitWebView* webView, const char* identifier
     g_hash_table_insert(priv->subResources.get(), g_strdup(identifier), webResource);
 }
 
+void webkit_web_view_remove_resource(WebKitWebView* webView, const char* identifier)
+{
+    WebKitWebViewPrivate* priv = webView->priv;
+    if (g_str_equal(identifier, priv->mainResourceIdentifier.data())) {
+        priv->mainResourceIdentifier = "";
+        priv->mainResource = 0;
+    } else
+      g_hash_table_remove(priv->subResources.get(), identifier);
+}
+
 WebKitWebResource* webkit_web_view_get_resource(WebKitWebView* webView, char* identifier)
 {
     WebKitWebViewPrivate* priv = webView->priv;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list