[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:43:08 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 06c6d6c53be06ff2b18b3e728b7daa3e0fde0bd4
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat May 24 00:29:19 2003 +0000

    	Fix for 3229799, images missing on geocities page.  Residual style
    	needs to understand when you reopen tags at a malformed table
    	content boundary and make sure the newly-reopened tags also know
    	they are malformed table content so that they get cleaned up
    	properly.
    
            Reviewed by darin
    
            * khtml/html/htmlparser.cpp:
            (KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
            (KHTMLParser::reopenResidualStyleTags):
            (KHTMLParser::popBlock):
            * khtml/html/htmlparser.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4423 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index e73fd1d..8d95a8a 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,19 @@
+2003-05-23  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3229799, images missing on geocities page.  Residual style
+	needs to understand when you reopen tags at a malformed table 
+	content boundary and make sure the newly-reopened tags also know
+	they are malformed table content so that they get cleaned up
+	properly.
+	
+        Reviewed by darin
+
+        * khtml/html/htmlparser.cpp:
+        (KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
+        (KHTMLParser::reopenResidualStyleTags):
+        (KHTMLParser::popBlock):
+        * khtml/html/htmlparser.h:
+
 2003-05-22  David Hyatt  <hyatt at apple.com>
 
 	Fix for 3248176, failed assertion on blizzard's world of warcraft
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index e73fd1d..8d95a8a 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,19 @@
+2003-05-23  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3229799, images missing on geocities page.  Residual style
+	needs to understand when you reopen tags at a malformed table 
+	content boundary and make sure the newly-reopened tags also know
+	they are malformed table content so that they get cleaned up
+	properly.
+	
+        Reviewed by darin
+
+        * khtml/html/htmlparser.cpp:
+        (KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
+        (KHTMLParser::reopenResidualStyleTags):
+        (KHTMLParser::popBlock):
+        * khtml/html/htmlparser.h:
+
 2003-05-22  David Hyatt  <hyatt at apple.com>
 
 	Fix for 3248176, failed assertion on blizzard's world of warcraft
diff --git a/WebCore/khtml/html/htmlparser.cpp b/WebCore/khtml/html/htmlparser.cpp
index a47f847..eee62de 100644
--- a/WebCore/khtml/html/htmlparser.cpp
+++ b/WebCore/khtml/html/htmlparser.cpp
@@ -1348,10 +1348,11 @@ void KHTMLParser::handleResidualStyleCloseTagAcrossBlocks(HTMLStackElem* elem)
         curr = blockStack;
     }
 
-    reopenResidualStyleTags(residualStyleStack);
+    reopenResidualStyleTags(residualStyleStack, false); // FIXME: Deal with stray table content some day
+                                                        // if it becomes necessary to do so.
 }
 
-void KHTMLParser::reopenResidualStyleTags(HTMLStackElem* elem)
+void KHTMLParser::reopenResidualStyleTags(HTMLStackElem* elem, bool inMalformedTable)
 {
     // Nothing required.
     if (!elem)
@@ -1369,6 +1370,12 @@ void KHTMLParser::reopenResidualStyleTags(HTMLStackElem* elem)
         // Now push a new stack element for this node we just created.
         pushBlock(elem->id, elem->level);
 
+        // Set our strayTableContent boolean if needed, so that the reopened tag also knows
+        // that it is inside a malformed table.
+        blockStack->strayTableContent = !inStrayTableContent && inMalformedTable;
+        if (blockStack->strayTableContent)
+            inStrayTableContent = true;
+        
         // Update |current| manually to point to the new node.
         current = newNode;
         
@@ -1424,14 +1431,25 @@ void KHTMLParser::popBlock( int _id )
 
     bool isAffectedByStyle = isAffectedByResidualStyle(Elem->id);
     HTMLStackElem* residualStyleStack = 0;
-    
+
+    bool residualStyleInMalformedTable = false;
     Elem = blockStack;
     while (Elem)
     {
         if (Elem->id == _id)
         {
+            bool strayTable = inStrayTableContent;
+            NodeImpl* shiftedContentParent = current ? current->parentNode() : 0;
             popOneBlock();
             Elem = 0;
+
+            // This element was the root of some malformed content just inside a <table>.  If
+            // we end up needing to reopen residual style tags, the root of the reopened chain
+            // must also know that it is the root of malformed content inside a <table>.
+            if (strayTable && !inStrayTableContent && residualStyleStack) {
+                residualStyleInMalformedTable = true;
+                current = shiftedContentParent;
+            }
         }
         else
         {
@@ -1467,7 +1485,7 @@ void KHTMLParser::popBlock( int _id )
         }
     }
 
-    reopenResidualStyleTags(residualStyleStack);
+    reopenResidualStyleTags(residualStyleStack, residualStyleInMalformedTable);
 }
 
 void KHTMLParser::popOneBlock(bool delBlock)
diff --git a/WebCore/khtml/html/htmlparser.h b/WebCore/khtml/html/htmlparser.h
index eac4eb2..be98c79 100644
--- a/WebCore/khtml/html/htmlparser.h
+++ b/WebCore/khtml/html/htmlparser.h
@@ -130,7 +130,7 @@ protected:
     bool isResidualStyleTag(int _id);
     bool isAffectedByResidualStyle(int _id);
     void handleResidualStyleCloseTagAcrossBlocks(HTMLStackElem* elem);
-    void reopenResidualStyleTags(HTMLStackElem* elem);
+    void reopenResidualStyleTags(HTMLStackElem* elem, bool inMalformedTable);
     
     ushort *forbiddenTag;
     

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list