Title: [145359] releases/WebKitGTK/webkit-2.0/Source/WebKit2
Revision
145359
Author
[email protected]
Date
2013-03-11 06:15:17 -0700 (Mon, 11 Mar 2013)

Log Message

WebKitWebPage::document-loaded signal emitted multiple times

Patch by Manuel Rego Casasnovas <[email protected]> on 2013-03-11
Reviewed by Carlos Garcia Campos.

This happens in websites with multiple frames, because the signal
is emitted for every frame.

* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(didFinishDocumentLoadForFrame): Add an early return to make sure
the WebKitWebPage::document-loaded signal is only emitted for the
main frame.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.0/Source/WebKit2/ChangeLog (145358 => 145359)


--- releases/WebKitGTK/webkit-2.0/Source/WebKit2/ChangeLog	2013-03-11 13:07:19 UTC (rev 145358)
+++ releases/WebKitGTK/webkit-2.0/Source/WebKit2/ChangeLog	2013-03-11 13:15:17 UTC (rev 145359)
@@ -1,3 +1,17 @@
+2013-03-11  Manuel Rego Casasnovas  <[email protected]>
+
+        WebKitWebPage::document-loaded signal emitted multiple times
+
+        Reviewed by Carlos Garcia Campos.
+
+        This happens in websites with multiple frames, because the signal
+        is emitted for every frame.
+
+        * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
+        (didFinishDocumentLoadForFrame): Add an early return to make sure
+        the WebKitWebPage::document-loaded signal is only emitted for the
+        main frame.
+
 2013-03-10  Claudio Saavedra  <[email protected]>
 
         [GTK][WK2] Add API to retrieve a snapshot from a webview

Modified: releases/WebKitGTK/webkit-2.0/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp (145358 => 145359)


--- releases/WebKitGTK/webkit-2.0/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp	2013-03-11 13:07:19 UTC (rev 145358)
+++ releases/WebKitGTK/webkit-2.0/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp	2013-03-11 13:15:17 UTC (rev 145359)
@@ -106,8 +106,11 @@
     webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), toImpl(frame)->coreFrame()->document()->url().string().utf8());
 }
 
-static void didFinishDocumentLoadForFrame(WKBundlePageRef, WKBundleFrameRef, WKTypeRef*, const void *clientInfo)
+static void didFinishDocumentLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef*, const void *clientInfo)
 {
+    if (!WKBundleFrameIsMainFrame(frame))
+        return;
+
     g_signal_emit(WEBKIT_WEB_PAGE(clientInfo), signals[DOCUMENT_LOADED], 0);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to