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

abarth at webkit.org abarth at webkit.org
Wed Dec 22 11:43:20 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 2cfb5b36533e010f125bb112ae9c805f46ccf6e5
Author: abarth at webkit.org <abarth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Aug 5 00:34:36 2010 +0000

    2010-08-04  Adam Barth  <abarth at webkit.org>
    
            Reviewed by Eric Seidel.
    
            Pick up spec change w.r.t. replacement character and <frameset>
            https://bugs.webkit.org/show_bug.cgi?id=43073
    
            * html5lib/runner-expected-html5.txt:
    2010-08-04  Adam Barth  <abarth at webkit.org>
    
            Reviewed by Eric Seidel.
    
            Pick up spec change w.r.t. replacement character and <frameset>
            https://bugs.webkit.org/show_bug.cgi?id=43073
    
            Apparently this fixes parsing for some home router configuration pages.
    
            * html/HTMLTreeBuilder.cpp:
            (WebCore::HTMLTreeBuilder::processCharacterBuffer):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64698 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index b89a73e..f62c25d 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,12 @@
+2010-08-04  Adam Barth  <abarth at webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Pick up spec change w.r.t. replacement character and <frameset>
+        https://bugs.webkit.org/show_bug.cgi?id=43073
+
+        * html5lib/runner-expected-html5.txt:
+
 2010-08-04  Andrew Wilson  <atwilson at chromium.org>
 
         Unreviewed change to Chromium test expectations to mark hyphenate-locale.html as failing.
diff --git a/LayoutTests/html5lib/runner-expected-html5.txt b/LayoutTests/html5lib/runner-expected-html5.txt
index 3a5442b..232fcf3 100644
--- a/LayoutTests/html5lib/runner-expected-html5.txt
+++ b/LayoutTests/html5lib/runner-expected-html5.txt
@@ -162,10 +162,6 @@ resources/tests18.dat: PASS
 
 resources/tests19.dat:
 63
-77
-78
-80
-81
 101
 102
 
@@ -190,56 +186,6 @@ Expected:
 |   <body>
 |     <keygen>
 
-Test 77 of 102 in resources/tests19.dat failed. Input:
-<html>�<frameset></frameset>
-Got:
-| <html>
-|   <head>
-|   <body>
-|     "�"
-Expected:
-| <html>
-|   <head>
-|   <frameset>
-
-Test 78 of 102 in resources/tests19.dat failed. Input:
-<html> � <frameset></frameset>
-Got:
-| <html>
-|   <head>
-|   <body>
-|     "� "
-Expected:
-| <html>
-|   <head>
-|   <frameset>
-
-Test 80 of 102 in resources/tests19.dat failed. Input:
-<html>��<frameset></frameset>
-Got:
-| <html>
-|   <head>
-|   <body>
-|     "��"
-Expected:
-| <html>
-|   <head>
-|   <frameset>
-
-Test 81 of 102 in resources/tests19.dat failed. Input:
-<html>�
- <frameset></frameset>
-Got:
-| <html>
-|   <head>
-|   <body>
-|     "�
- "
-Expected:
-| <html>
-|   <head>
-|   <frameset>
-
 Test 101 of 102 in resources/tests19.dat failed. Input:
 <!doctype html><figcaption><article></figcaption>a
 Got:
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 365662c..7c64743 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-08-04  Adam Barth  <abarth at webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Pick up spec change w.r.t. replacement character and <frameset>
+        https://bugs.webkit.org/show_bug.cgi?id=43073
+
+        Apparently this fixes parsing for some home router configuration pages.
+
+        * html/HTMLTreeBuilder.cpp:
+        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
+
 2010-08-04  Gavin Barraclough  <barraclough at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebCore/html/HTMLTreeBuilder.cpp b/WebCore/html/HTMLTreeBuilder.cpp
index ec15f9f..75858e7 100644
--- a/WebCore/html/HTMLTreeBuilder.cpp
+++ b/WebCore/html/HTMLTreeBuilder.cpp
@@ -61,20 +61,37 @@ static const int uninitializedLineNumberValue = -1;
 
 namespace {
 
-inline bool isTreeBuilderWhitepace(UChar cc)
+inline bool isTreeBuilderWhitepace(UChar c)
 {
-    return cc == '\t' || cc == '\x0A' || cc == '\x0C' || cc == '\x0D' || cc == ' ';
+    // FIXME: Consider branch permutations.
+    return c == '\t' || c == '\x0A' || c == '\x0C' || c == '\x0D' || c == ' ';
 }
 
-inline bool hasNonWhitespace(const String& string)
+inline bool isTreeBuilderWhitepaceOrReplacementCharacter(UChar c)
+{
+    return isTreeBuilderWhitepace(c) || c == 0xFFFD;
+}
+
+template<bool isSpecialCharacter(UChar c)>
+inline bool isAllSpecialCharacters(const String& string)
 {
     const UChar* characters = string.characters();
     const unsigned length = string.length();
     for (unsigned i = 0; i < length; ++i) {
-        if (!isTreeBuilderWhitepace(characters[i]))
-            return true;
+        if (!isSpecialCharacter(characters[i]))
+            return false;
     }
-    return false;
+    return true;
+}
+
+inline bool isAllWhitespace(const String& string)
+{
+    return isAllSpecialCharacters<isTreeBuilderWhitepace>(string);
+}
+
+inline bool isAllWhitespaceOrReplacementCharacters(const String& string)
+{
+    return isAllSpecialCharacters<isTreeBuilderWhitepaceOrReplacementCharacter>(string);
 }
 
 bool shouldUseLegacyTreeBuilder(Document* document)
@@ -2491,7 +2508,7 @@ ReprocessBuffer:
         m_tree.reconstructTheActiveFormattingElements();
         String characters = buffer.takeRemaining();
         m_tree.insertTextNode(characters);
-        if (m_framesetOk && hasNonWhitespace(characters))
+        if (m_framesetOk && !isAllWhitespaceOrReplacementCharacters(characters))
             m_framesetOk = false;
         break;
     }
@@ -2565,7 +2582,7 @@ ReprocessBuffer:
         ASSERT(insertionMode() == InForeignContentMode);
         String characters = buffer.takeRemaining();
         m_tree.insertTextNode(characters);
-        if (m_framesetOk && hasNonWhitespace(characters))
+        if (m_framesetOk && !isAllWhitespace(characters))
             m_framesetOk = false;
         break;
     }
@@ -2709,7 +2726,7 @@ void HTMLTreeBuilder::defaultForAfterHead()
 void HTMLTreeBuilder::defaultForInTableText()
 {
     String characters = String::adopt(m_pendingTableCharacters);
-    if (hasNonWhitespace(characters)) {
+    if (!isAllWhitespace(characters)) {
         // FIXME: parse error
         HTMLConstructionSite::RedirectToFosterParentGuard redirecter(m_tree);
         m_tree.reconstructTheActiveFormattingElements();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list