[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

jer.noble at apple.com jer.noble at apple.com
Sun Feb 20 22:44:53 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit a5a90d69486d4be9d95d094f13555070e3138a0f
Author: jer.noble at apple.com <jer.noble at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 11 00:29:21 2011 +0000

    2011-01-10  Jer Noble  <jer.noble at apple.com>
    
            Reviewed by Simon Fraser.
    
            https://bugs.webkit.org/show_bug.cgi?id=52095
            REGRESSION (r75277): 2 test cases (<1%) had incorrect layout
    
            Fixes tests:
                fullscreen/full-screen-remove-ancestor.html
                fullscreen/full-screen-remove.html
    
            Revert change made in r75326, now that the underlying issue has been fixed.
    
            * fullscreen/full-screen-remove-ancestor-expected.txt:
            * fullscreen/full-screen-remove-expected.txt:
    2011-01-10  Jer Noble  <jer.noble at apple.com>
    
            Reviewed by Simon Fraser.
    
            https://bugs.webkit.org/show_bug.cgi?id=52095
            REGRESSION (r75277): 2 test cases (<1%) had incorrect layout
    
            Fixes tests:
                fullscreen/full-screen-remove-ancestor.html
                fullscreen/full-screen-remove.html
    
            Previously, the above tests were failing because DRT dumped the contents of their
            <script> tags, though all the explicit tests were passing.  This was caused by
            the document's render tree being left in an inconsistent state when a full screen
            element's ancestor was removed from the DOM.
    
            In nodeWillBeRemoved(), match the code in webkitDidExitFullScreen().
            Don't detach the documentElement, but rather simply call recalcStyle(Force).
    
            * dom/Document.cpp:
            (WebCore::Document::nodeWillBeRemoved):
            * rendering/RenderFullScreen.cpp:
            (RenderFullScreen::setAnimating): #if ENABLED -> # if USE
            * rendering/RenderFullScreen.h:
            (WebCore::RenderFullScreen::RenderFullScreen): RenderFullScreen should be an anonymous renderer.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75450 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index bd04498..039789a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,19 @@
+2011-01-10  Jer Noble  <jer.noble at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        https://bugs.webkit.org/show_bug.cgi?id=52095
+        REGRESSION (r75277): 2 test cases (<1%) had incorrect layout
+        
+        Fixes tests:
+            fullscreen/full-screen-remove-ancestor.html
+            fullscreen/full-screen-remove.html
+            
+        Revert change made in r75326, now that the underlying issue has been fixed.
+
+        * fullscreen/full-screen-remove-ancestor-expected.txt:
+        * fullscreen/full-screen-remove-expected.txt:
+
 2011-01-10  Mihai Parparita  <mihaip at chromium.org>
 
         Unreviewed Chromium test expectations update.
diff --git a/LayoutTests/fullscreen/full-screen-remove-ancestor-expected.txt b/LayoutTests/fullscreen/full-screen-remove-ancestor-expected.txt
index 70479f3..d9a0ab3 100644
--- a/LayoutTests/fullscreen/full-screen-remove-ancestor-expected.txt
+++ b/LayoutTests/fullscreen/full-screen-remove-ancestor-expected.txt
@@ -1,42 +1,6 @@
-
 EVENT(webkitfullscreenchange)
 EXPECTED (document.webkitCurrentFullScreenElement == '[object HTMLElement]') OK
 EVENT(webkitfullscreenchange)
 EXPECTED (document.webkitCurrentFullScreenElement == '[object HTMLHtmlElement]') OK
 END OF TEST
 
-
-
-    // Bail out early if the full screen API is not enabled or is missing:
-    if (Element.prototype.webkitRequestFullScreen == undefined) {
-        logResult(false, "Element.prototype.webkitRequestFullScreen == undefined");
-        endTest();
-    } else {
-        var callback;
-        var fullscreenChanged = function(event)
-        {
-            if (callback)
-                callback(event)
-        };
-        waitForEvent(document, 'webkitfullscreenchange', fullscreenChanged);
-
-        var span = document.getElementsByTagName('span')[0];
-        var div = span.parentNode;
-
-        var spanEnteredFullScreen = function(event) {
-            callback = documentEnteredFullScreen;
-            testExpected("document.webkitCurrentFullScreenElement", span);
-            document.body.removeChild(div);
-        };
-
-        var documentEnteredFullScreen = function(event) {
-            callback = null;
-            testExpected("document.webkitCurrentFullScreenElement", document.documentElement);
-            endTest();
-        };
-
-        callback = spanEnteredFullScreen;
-        span.webkitRequestFullScreen();
-    }
-
-
diff --git a/LayoutTests/fullscreen/full-screen-remove-expected.txt b/LayoutTests/fullscreen/full-screen-remove-expected.txt
index 8dc2714..d9a0ab3 100644
--- a/LayoutTests/fullscreen/full-screen-remove-expected.txt
+++ b/LayoutTests/fullscreen/full-screen-remove-expected.txt
@@ -1,41 +1,6 @@
-
 EVENT(webkitfullscreenchange)
 EXPECTED (document.webkitCurrentFullScreenElement == '[object HTMLElement]') OK
 EVENT(webkitfullscreenchange)
 EXPECTED (document.webkitCurrentFullScreenElement == '[object HTMLHtmlElement]') OK
 END OF TEST
 
-
-
-    // Bail out early if the full screen API is not enabled or is missing:
-    if (Element.prototype.webkitRequestFullScreen == undefined) {
-        logResult(false, "Element.prototype.webkitRequestFullScreen == undefined");
-        endTest();
-    } else {
-        var callback;
-        var fullscreenChanged = function(event)
-        {
-            if (callback)
-                callback(event)
-        };
-        waitForEvent(document, 'webkitfullscreenchange', fullscreenChanged);
-    
-        var span = document.getElementsByTagName('span')[0];
-    
-        var spanEnteredFullScreen = function(event) {
-            callback = documentEnteredFullScreen;
-            testExpected("document.webkitCurrentFullScreenElement", span);
-            span.parentNode.removeChild(span);
-        };
-    
-        var documentEnteredFullScreen = function(event) {
-            callback = null;
-            testExpected("document.webkitCurrentFullScreenElement", document.documentElement);
-            endTest();
-        };
-    
-        callback = spanEnteredFullScreen;
-        span.webkitRequestFullScreen();
-    }
-
-
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 8170f43..ba84174 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,29 @@
+2011-01-10  Jer Noble  <jer.noble at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        https://bugs.webkit.org/show_bug.cgi?id=52095
+        REGRESSION (r75277): 2 test cases (<1%) had incorrect layout
+        
+        Fixes tests:
+            fullscreen/full-screen-remove-ancestor.html
+            fullscreen/full-screen-remove.html
+            
+        Previously, the above tests were failing because DRT dumped the contents of their
+        <script> tags, though all the explicit tests were passing.  This was caused by
+        the document's render tree being left in an inconsistent state when a full screen
+        element's ancestor was removed from the DOM.
+        
+        In nodeWillBeRemoved(), match the code in webkitDidExitFullScreen().
+        Don't detach the documentElement, but rather simply call recalcStyle(Force).
+
+        * dom/Document.cpp:
+        (WebCore::Document::nodeWillBeRemoved):
+        * rendering/RenderFullScreen.cpp:
+        (RenderFullScreen::setAnimating): #if ENABLED -> # if USE
+        * rendering/RenderFullScreen.h:
+        (WebCore::RenderFullScreen::RenderFullScreen): RenderFullScreen should be an anonymous renderer.
+
 2011-01-10  Martin Robinson  <mrobinson at igalia.com>
 
         Reviewed by Xan Lopez.
diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp
index e4b1128..1e12958 100644
--- a/Source/WebCore/dom/Document.cpp
+++ b/Source/WebCore/dom/Document.cpp
@@ -3389,11 +3389,13 @@ void Document::nodeWillBeRemoved(Node* n)
     ASSERT(n);
     if (n->contains(m_fullScreenElement.get())) {
         ASSERT(n != documentElement());
+        
+        if (m_fullScreenRenderer)
+            m_fullScreenRenderer->remove();
+
         setFullScreenRenderer(0);
         m_fullScreenElement = documentElement();
-        m_fullScreenElement->setNeedsStyleRecalc();
-        m_fullScreenElement->detach();
-        updateStyleIfNeeded();
+        recalcStyle(Force);
         m_fullScreenChangeDelayTimer.startOneShot(0);
     }
 #endif
diff --git a/Source/WebCore/rendering/RenderFullScreen.cpp b/Source/WebCore/rendering/RenderFullScreen.cpp
index 7cd452f..cc53a6e 100644
--- a/Source/WebCore/rendering/RenderFullScreen.cpp
+++ b/Source/WebCore/rendering/RenderFullScreen.cpp
@@ -35,7 +35,7 @@ using namespace WebCore;
 void RenderFullScreen::setAnimating(bool animating)
 {
     m_isAnimating = animating;
-#if ENABLE(ACCELERATED_COMPOSITING)
+#if USE(ACCELERATED_COMPOSITING)
     if (layer())
         layer()->contentChanged(RenderLayer::FullScreenChanged);
 #endif
diff --git a/Source/WebCore/rendering/RenderFullScreen.h b/Source/WebCore/rendering/RenderFullScreen.h
index 52d4ee2..30f95c1 100644
--- a/Source/WebCore/rendering/RenderFullScreen.h
+++ b/Source/WebCore/rendering/RenderFullScreen.h
@@ -33,7 +33,7 @@ namespace WebCore {
 
 class RenderFullScreen : public RenderFlexibleBox {
 public:
-    RenderFullScreen(Node* node) : RenderFlexibleBox(node) { setReplaced(false); setIsAnonymous(false); }
+    RenderFullScreen(Node* node) : RenderFlexibleBox(node) { setReplaced(false); }
     virtual bool isRenderFullScreen() const { return true; }
     virtual const char* renderName() const { return "RenderFullScreen"; }
     

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list