Title: [124353] trunk/Source/WebCore
- Revision
- 124353
- Author
- [email protected]
- Date
- 2012-08-01 12:03:14 -0700 (Wed, 01 Aug 2012)
Log Message
HTMLTreeBuilder passes a wrong token when pushing the head element
https://bugs.webkit.org/show_bug.cgi?id=92838
Patch by Kwang Yul Seo <[email protected]> on 2012-08-01
Reviewed by Adam Barth.
When the tree builder pushes the head element in the "after head" insertion mode,
it creates a HTMLStackItem from a wrong token.
Added HTMLConstructionSite::headStackItem() to retrieve the stack item for the head
element. Modified the tree builder to pass the correct stack item when pushing the head
element in the "after head" insertion mode.
No new tests, covered by existing tests.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
* html/parser/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSite::head):
(WebCore::HTMLConstructionSite::headStackItem):
(HTMLConstructionSite):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (124352 => 124353)
--- trunk/Source/WebCore/ChangeLog 2012-08-01 18:55:03 UTC (rev 124352)
+++ trunk/Source/WebCore/ChangeLog 2012-08-01 19:03:14 UTC (rev 124353)
@@ -1,3 +1,28 @@
+2012-08-01 Kwang Yul Seo <[email protected]>
+
+ HTMLTreeBuilder passes a wrong token when pushing the head element
+ https://bugs.webkit.org/show_bug.cgi?id=92838
+
+ Reviewed by Adam Barth.
+
+ When the tree builder pushes the head element in the "after head" insertion mode,
+ it creates a HTMLStackItem from a wrong token.
+
+ Added HTMLConstructionSite::headStackItem() to retrieve the stack item for the head
+ element. Modified the tree builder to pass the correct stack item when pushing the head
+ element in the "after head" insertion mode.
+
+ No new tests, covered by existing tests.
+
+ * html/parser/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
+ * html/parser/HTMLConstructionSite.h:
+ (WebCore::HTMLConstructionSite::head):
+ (WebCore::HTMLConstructionSite::headStackItem):
+ (HTMLConstructionSite):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::processStartTag):
+
2012-08-01 Andrei Bucur <[email protected]>
[CSS Regions] The regionLayoutUpdate event should be dispatched on the NamedFlow object
Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp (124352 => 124353)
--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp 2012-08-01 18:55:03 UTC (rev 124352)
+++ trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp 2012-08-01 19:03:14 UTC (rev 124353)
@@ -277,9 +277,9 @@
void HTMLConstructionSite::insertHTMLHeadElement(AtomicHTMLToken* token)
{
ASSERT(!shouldFosterParent());
- m_head = createHTMLElement(token);
- attachLater(currentNode(), m_head);
- m_openElements.pushHTMLHeadElement(HTMLStackItem::create(m_head, token));
+ m_head = HTMLStackItem::create(createHTMLElement(token), token);
+ attachLater(currentNode(), m_head->element());
+ m_openElements.pushHTMLHeadElement(m_head);
}
void HTMLConstructionSite::insertHTMLBodyElement(AtomicHTMLToken* token)
Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.h (124352 => 124353)
--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.h 2012-08-01 18:55:03 UTC (rev 124352)
+++ trunk/Source/WebCore/html/parser/HTMLConstructionSite.h 2012-08-01 19:03:14 UTC (rev 124353)
@@ -118,7 +118,8 @@
HTMLElementStack* openElements() const { return &m_openElements; }
HTMLFormattingElementList* activeFormattingElements() const { return &m_activeFormattingElements; }
- Element* head() const { return m_head.get(); }
+ Element* head() const { return m_head->element(); }
+ HTMLStackItem* headStackItem() const { return m_head.get(); }
void setForm(HTMLFormElement*);
HTMLFormElement* form() const { return m_form.get(); }
@@ -166,7 +167,7 @@
// and a Document in all other cases.
ContainerNode* m_attachmentRoot;
- RefPtr<Element> m_head;
+ RefPtr<HTMLStackItem> m_head;
RefPtr<HTMLFormElement> m_form;
mutable HTMLElementStack m_openElements;
mutable HTMLFormattingElementList m_activeFormattingElements;
Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (124352 => 124353)
--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp 2012-08-01 18:55:03 UTC (rev 124352)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp 2012-08-01 19:03:14 UTC (rev 124353)
@@ -1190,7 +1190,7 @@
|| token->name() == titleTag) {
parseError(token);
ASSERT(m_tree.head());
- m_tree.openElements()->pushHTMLHeadElement(HTMLStackItem::create(m_tree.head(), token));
+ m_tree.openElements()->pushHTMLHeadElement(m_tree.headStackItem());
processStartTagForInHead(token);
m_tree.openElements()->removeHTMLHeadElement(m_tree.head());
return;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes