[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