[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.2.3-2-25-gb2c19be

Gustavo Noronha Silva gns at gnome.org
Mon Sep 6 13:09:34 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 31e4e68e93b116b1c948c85ca94273640d78427e
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Jun 26 00:31:54 2010 +0000

    <rdar://problem/8000667> Certain text is repeated before and after a line break
    
    Reviewed by Sam Weinig.
    
    WebCore:
    
    Test: fast/text/bidi-explicit-embedding-past-end.html
    
    * platform/text/BidiResolver.h:
    (WebCore::::createBidiRunsForLine): Committing explicit embedding past the end of the range
    creates BidiRuns up to the end of the range, so at that point, we can stop iterating.
    
    LayoutTests:
    
    * fast/text/bidi-explicit-embedding-past-end-expected.checksum: Added.
    * fast/text/bidi-explicit-embedding-past-end-expected.png: Added.
    * fast/text/bidi-explicit-embedding-past-end-expected.txt: Added.
    * fast/text/bidi-explicit-embedding-past-end.html: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@61921 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index e93559b..fbe08eb 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-06-25  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        <rdar://problem/8000667> Certain text is repeated before and after a line break
+
+        * fast/text/bidi-explicit-embedding-past-end-expected.checksum: Added.
+        * fast/text/bidi-explicit-embedding-past-end-expected.png: Added.
+        * fast/text/bidi-explicit-embedding-past-end-expected.txt: Added.
+        * fast/text/bidi-explicit-embedding-past-end.html: Added.
+
 2010-06-23  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Reviewed by Eric Seidel.
diff --git a/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.checksum b/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.checksum
new file mode 100644
index 0000000..a13940f
--- /dev/null
+++ b/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.checksum
@@ -0,0 +1 @@
+5fb318ab9ea441f697f7413d33c022ca
\ No newline at end of file
diff --git a/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.png b/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.png
new file mode 100644
index 0000000..081ef26
Binary files /dev/null and b/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.png differ
diff --git a/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.txt b/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.txt
new file mode 100644
index 0000000..f7b32e7
--- /dev/null
+++ b/LayoutTests/fast/text/bidi-explicit-embedding-past-end-expected.txt
@@ -0,0 +1,12 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock {DIV} at (0,0) size 100x100
+        RenderText {#text} at (0,0) size 50x50
+          text run at (0,0) width 50: "a"
+        RenderInline {SPAN} at (0,0) size 100x50 [color=#0000FF]
+          RenderText {#text} at (0,50) size 100x50
+            text run at (0,50) width 100: ".."
+        RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/fast/text/bidi-explicit-embedding-past-end.html b/LayoutTests/fast/text/bidi-explicit-embedding-past-end.html
new file mode 100644
index 0000000..9fca5ea
--- /dev/null
+++ b/LayoutTests/fast/text/bidi-explicit-embedding-past-end.html
@@ -0,0 +1,5 @@
+<!-- The correct rendering is a single 50x50 black box on the first line and a 100x50 black box on
+     the following line. -->
+<div style="font-family: ahem; font-size: 50px; width: 100px;">
+    a <span dir="ltr" style="color: blue;">..</span>
+</div>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d24485f..e021d13 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-06-25  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        <rdar://problem/8000667> Certain text is repeated before and after a line break
+
+        Test: fast/text/bidi-explicit-embedding-past-end.html
+
+        * platform/text/BidiResolver.h:
+        (WebCore::::createBidiRunsForLine): Committing explicit embedding past the end of the range
+        creates BidiRuns up to the end of the range, so at that point, we can stop iterating.
+
 2010-06-23  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Reviewed by Eric Seidel.
diff --git a/WebCore/platform/text/BidiResolver.h b/WebCore/platform/text/BidiResolver.h
index 286cdcd..a99fd01 100644
--- a/WebCore/platform/text/BidiResolver.h
+++ b/WebCore/platform/text/BidiResolver.h
@@ -806,35 +806,33 @@ void BidiResolver<Iterator, Run>::createBidiRunsForLine(const Iterator& end, boo
             break;
         }
 
-        if (pastEnd) {
-            if (eor == current) {
-                if (!reachedEndOfLine) {
-                    eor = endOfLine;
-                    switch (m_status.eor) {
-                        case LeftToRight:
-                        case RightToLeft:
-                        case ArabicNumber:
-                            m_direction = m_status.eor;
-                            break;
-                        case EuropeanNumber:
-                            m_direction = m_status.lastStrong == LeftToRight ? LeftToRight : EuropeanNumber;
-                            break;
-                        default:
-                            ASSERT(false);
-                    }
-                    appendRun();
+        if (pastEnd && eor == current) {
+            if (!reachedEndOfLine) {
+                eor = endOfLine;
+                switch (m_status.eor) {
+                    case LeftToRight:
+                    case RightToLeft:
+                    case ArabicNumber:
+                        m_direction = m_status.eor;
+                        break;
+                    case EuropeanNumber:
+                        m_direction = m_status.lastStrong == LeftToRight ? LeftToRight : EuropeanNumber;
+                        break;
+                    default:
+                        ASSERT(false);
                 }
-                current = end;
-                m_status = stateAtEnd.m_status;
-                sor = stateAtEnd.sor; 
-                eor = stateAtEnd.eor;
-                last = stateAtEnd.last;
-                reachedEndOfLine = stateAtEnd.reachedEndOfLine;
-                lastBeforeET = stateAtEnd.lastBeforeET;
-                emptyRun = stateAtEnd.emptyRun;
-                m_direction = OtherNeutral;
-                break;
+                appendRun();
             }
+            current = end;
+            m_status = stateAtEnd.m_status;
+            sor = stateAtEnd.sor; 
+            eor = stateAtEnd.eor;
+            last = stateAtEnd.last;
+            reachedEndOfLine = stateAtEnd.reachedEndOfLine;
+            lastBeforeET = stateAtEnd.lastBeforeET;
+            emptyRun = stateAtEnd.emptyRun;
+            m_direction = OtherNeutral;
+            break;
         }
 
         // set m_status.last as needed.
@@ -887,8 +885,21 @@ void BidiResolver<Iterator, Run>::createBidiRunsForLine(const Iterator& end, boo
         }
 
         increment();
-        if (!m_currentExplicitEmbeddingSequence.isEmpty())
+        if (!m_currentExplicitEmbeddingSequence.isEmpty()) {
             commitExplicitEmbedding();
+            if (pastEnd) {
+                current = end;
+                m_status = stateAtEnd.m_status;
+                sor = stateAtEnd.sor; 
+                eor = stateAtEnd.eor;
+                last = stateAtEnd.last;
+                reachedEndOfLine = stateAtEnd.reachedEndOfLine;
+                lastBeforeET = stateAtEnd.lastBeforeET;
+                emptyRun = stateAtEnd.emptyRun;
+                m_direction = OtherNeutral;
+                break;
+            }
+        }
 
         if (emptyRun && (dirCurrent == RightToLeftEmbedding
                 || dirCurrent == LeftToRightEmbedding

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list