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

hyatt at apple.com hyatt at apple.com
Wed Dec 22 14:01:56 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 705ae2e5a9ec53cfec552c2252db4d525b688929
Author: hyatt at apple.com <hyatt at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 1 17:43:59 2010 +0000

    https://bugs.webkit.org/show_bug.cgi?id=46995, make direction propagate up to the viewport from the root element.
    
    Reviewed by Dan Bernstein.
    
    WebCore:
    
    Added fast/css/rtl-to-viewport.html
    
    * css/CSSStyleSelector.cpp:
    (WebCore::CSSStyleSelector::styleForDocument):
    * rendering/RenderBox.cpp:
    (WebCore::RenderBox::styleDidChange):
    
    LayoutTests:
    
    * fast/css/rtl-to-viewport.html: Added.
    * platform/mac/fast/css/rtl-to-viewport-expected.checksum: Added.
    * platform/mac/fast/css/rtl-to-viewport-expected.png: Added.
    * platform/mac/fast/css/rtl-to-viewport-expected.txt: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68897 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 6f3e917..72f725a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-10-01  David Hyatt  <hyatt at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        https://bugs.webkit.org/show_bug.cgi?id=46995, make direction propagate up to the viewport from the root element.
+
+        * fast/css/rtl-to-viewport.html: Added.
+        * platform/mac/fast/css/rtl-to-viewport-expected.checksum: Added.
+        * platform/mac/fast/css/rtl-to-viewport-expected.png: Added.
+        * platform/mac/fast/css/rtl-to-viewport-expected.txt: Added.
+
 2010-10-01  Alexey Proskuryakov  <ap at apple.com>
 
         Reviewed by Anders Carlsson.
diff --git a/LayoutTests/fast/css/rtl-to-viewport.html b/LayoutTests/fast/css/rtl-to-viewport.html
new file mode 100644
index 0000000..5dd5e9e
--- /dev/null
+++ b/LayoutTests/fast/css/rtl-to-viewport.html
@@ -0,0 +1,2 @@
+<!doctype html>
+<html style="overflow:hidden; direction:rtl; width:100px;height:100px; border:2px solid black">This is rtl.</html>
diff --git a/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.checksum b/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.checksum
new file mode 100644
index 0000000..fd3d7c6
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.checksum
@@ -0,0 +1 @@
+91c9447998d61e95ab03b1f2e92a1f10
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.png b/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.png
new file mode 100644
index 0000000..f4e1000
Binary files /dev/null and b/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.txt b/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.txt
new file mode 100644
index 0000000..6bbd628
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/css/rtl-to-viewport-expected.txt
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (696,0) size 104x104
+  RenderBlock {HTML} at (696,0) size 104x104 [border: (2px solid #000000)]
+    RenderBody {BODY} at (10,10) size 84x18
+      RenderText {#text} at (21,0) size 63x18
+        text run at (21,0) width 4 RTL: "."
+        text run at (25,0) width 59: "This is rtl"
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a65ff41..5a9f097 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-10-01  David Hyatt  <hyatt at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        https://bugs.webkit.org/show_bug.cgi?id=46995, make direction propagate up to the viewport from the root element.
+
+        Added fast/css/rtl-to-viewport.html
+
+        * css/CSSStyleSelector.cpp:
+        (WebCore::CSSStyleSelector::styleForDocument):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::styleDidChange):
+
 2010-10-01  Alexey Proskuryakov  <ap at apple.com>
 
         Reviewed by Anders Carlsson.
diff --git a/WebCore/css/CSSStyleSelector.cpp b/WebCore/css/CSSStyleSelector.cpp
index 86b93b4..fc470c9 100644
--- a/WebCore/css/CSSStyleSelector.cpp
+++ b/WebCore/css/CSSStyleSelector.cpp
@@ -1107,8 +1107,12 @@ PassRefPtr<RenderStyle> CSSStyleSelector::styleForDocument(Document* document)
     documentStyle->setZoom(frame ? frame->pageZoomFactor() : 1);
     
     Element* docElement = document->documentElement();
-    if (docElement && docElement->renderer())
+    if (docElement && docElement->renderer()) {
+        // Use the direction and block-flow of the document element to set the
+        // viewport's direction and block-flow.
         documentStyle->setBlockFlow(docElement->renderer()->style()->blockFlow());
+        documentStyle->setDirection(docElement->renderer()->style()->direction());
+    }
 
     FontDescription fontDescription;
     fontDescription.setUsePrinterFont(document->printing());
diff --git a/WebCore/rendering/RenderBox.cpp b/WebCore/rendering/RenderBox.cpp
index 195ae2b..4b52920 100644
--- a/WebCore/rendering/RenderBox.cpp
+++ b/WebCore/rendering/RenderBox.cpp
@@ -300,11 +300,16 @@ void RenderBox::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle
     // Set the text color if we're the body.
     if (isBody())
         document()->setTextColor(style()->visitedDependentColor(CSSPropertyColor));
-    else if (oldStyle && isRoot() && oldStyle->blockFlow() != style()->blockFlow()) {
-        // Propagate the new block flow up to the RenderView.
+    else if (isRoot() && (!oldStyle || oldStyle->blockFlow() != style()->blockFlow() || oldStyle->direction() != style()->direction())) {
+        // Propagate the new block flow and direction up to the RenderView.
+        // FIXME: WinIE seems to propagate from the <body> as well.  We may want to consider doing that at some point.
         RenderView* viewRenderer = view();
-        viewRenderer->style()->setBlockFlow(style()->blockFlow());
-        viewRenderer->setNeedsLayoutAndPrefWidthsRecalc();
+        RenderStyle* viewStyle = viewRenderer->style();
+        if (viewStyle->blockFlow() != style()->blockFlow() || viewStyle->direction() != style()->direction()) {
+            viewStyle->setBlockFlow(style()->blockFlow());
+            viewStyle->setDirection(style()->direction());
+            viewRenderer->setNeedsLayoutAndPrefWidthsRecalc();
+        }
     }
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list