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

cmarrin at apple.com cmarrin at apple.com
Wed Dec 22 14:51:59 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 7826be57e05491c4f582c78c1c2b27c7588b6919
Author: cmarrin at apple.com <cmarrin at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 22 18:44:59 2010 +0000

    2010-10-21  Chris Marrin  <cmarrin at apple.com>
    
            Reviewed by Adam Roben.
    
            Content in <iframe> doesn't appear when going back to http://webkit.org/blog/386/3d-transforms/
            https://bugs.webkit.org/show_bug.cgi?id=32447
    
            Added documentDidBecomeActive() when document comes back from cache to cause compositing
            layers in iframes to be reattached.
    
            There is no layout test, but I added a manual test. This test is ready to be a layout test
            but currently DRT disables the WebCore page cache, so the back/forward essentially do a
            page load which does not exhibit the bug.
    
            * history/CachedFrame.cpp:
            (WebCore::CachedFrameBase::restore):
            * manual-tests/compositing/show-composited-iframe-on-back-button.html: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70321 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 94d5af0..1b7a984 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2010-10-21  Chris Marrin  <cmarrin at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Content in <iframe> doesn't appear when going back to http://webkit.org/blog/386/3d-transforms/
+        https://bugs.webkit.org/show_bug.cgi?id=32447
+
+        Added documentDidBecomeActive() when document comes back from cache to cause compositing
+        layers in iframes to be reattached.
+
+        There is no layout test, but I added a manual test. This test is ready to be a layout test
+        but currently DRT disables the WebCore page cache, so the back/forward essentially do a 
+        page load which does not exhibit the bug.
+
+        * history/CachedFrame.cpp:
+        (WebCore::CachedFrameBase::restore):
+        * manual-tests/compositing/show-composited-iframe-on-back-button.html: Added.
+
 2010-10-22  Patrick Gansterer  <paroga at webkit.org>
 
         Reviewed by Adam Roben.
diff --git a/WebCore/history/CachedFrame.cpp b/WebCore/history/CachedFrame.cpp
index 470e03f..a3ef401 100644
--- a/WebCore/history/CachedFrame.cpp
+++ b/WebCore/history/CachedFrame.cpp
@@ -115,6 +115,8 @@ void CachedFrameBase::restore()
     if (m_document->hasListenerType(Document::TOUCH_LISTENER))
         m_document->page()->chrome()->client()->needTouchEvents(true);
 #endif
+
+    m_document->documentDidBecomeActive();
 }
 
 CachedFrame::CachedFrame(Frame* frame)
diff --git a/WebCore/manual-tests/compositing/show-composited-iframe-on-back-button.html b/WebCore/manual-tests/compositing/show-composited-iframe-on-back-button.html
new file mode 100644
index 0000000..fff8888
--- /dev/null
+++ b/WebCore/manual-tests/compositing/show-composited-iframe-on-back-button.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <!--
+        This content was originally intended as a layout test, but the sequencing performed by 
+        queueBackNavigation/queueForwardNavigation differs somehow from what occurs when hitting 
+        the back and forward buttons, so the error does not occur. I've left all the LayoutTestController 
+        logic in the test in case this is fixed in the future.
+    -->
+    
+    <title>Show composited iframe contents when navigating back to page</title>
+    <style type="text/css" media="screen">
+        #box {
+            background-color: red;
+            width: 100px;
+            height: 100px;
+            -webkit-transform: translateZ(0);
+        }
+        iframe {
+            margin: 20px;
+            height: 250px;
+            width: 250px;
+            border: 1px solid black;
+        }
+    
+        .composited {
+            -webkit-transform: translateZ(0);
+        }
+    
+    </style>
+    <script type="text/javascript" charset="utf-8">
+        var dumpLayerTree = function()
+        {
+            if (window.layoutTestController) {
+                document.getElementById('layers').innerHTML += "Layer Tree after\n\n"+layoutTestController.layerTreeAsText()+"\n\n";
+            }
+        }
+        
+        if (window.layoutTestController) {
+            layoutTestController.dumpAsText();
+        }
+        
+        function onPageShow(evt)
+        {
+            if (!evt.persisted && window.layoutTestController) {
+                // this is the first time the page has been loaded, then setup the
+                // to-be-tested scenario.
+                document.getElementById('layers').innerHTML = "Layer Tree before\n\n"+layoutTestController.layerTreeAsText()+"\n\n";
+                layoutTestController.queueLoad("resources/subframe.html");
+                layoutTestController.queueBackNavigation(1);
+                layoutTestController.queueForwardNavigation(1);
+                layoutTestController.queueBackNavigation(1);
+                layoutTestController.queueNonLoadingScript("dumpLayerTree()");
+            }
+        }
+
+        window.onpageshow = onPageShow;
+    </script>
+</head>
+<body>
+<p>
+    This page has a composited iframe. When navigating to a new page and then back to this one, the iframe contents should show up.
+</p>
+    Click on the following URL and then click back. When navigating back to this page, the blue box inside the black rectangle
+    should show up.
+</p>
+<pre>
+              <a href="http://apple.com">http://apple.com</a>
+</pre>
+    <div id=box></div>
+    <iframe id="iframe" scrolling="no" src="resources/composited-subframe.html"></iframe>
+<br>
+<pre id="layers"></pre>
+</body>
+</html>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list