Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(527)

Unified Diff: sky/engine/core/html/parser/HTMLTreeBuilder.cpp

Issue 666913005: Delete HTMLStackItem (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/core/html/parser/HTMLTreeBuilder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/core/html/parser/HTMLTreeBuilder.cpp
diff --git a/sky/engine/core/html/parser/HTMLTreeBuilder.cpp b/sky/engine/core/html/parser/HTMLTreeBuilder.cpp
index 3336f2b725b7ca78860af81b81358fcddce9b880..b654d24b19fadd26a4189d45cf41e50df81c2534 100644
--- a/sky/engine/core/html/parser/HTMLTreeBuilder.cpp
+++ b/sky/engine/core/html/parser/HTMLTreeBuilder.cpp
@@ -35,7 +35,6 @@
#include "core/html/parser/AtomicHTMLToken.h"
#include "core/html/parser/HTMLDocumentParser.h"
#include "core/html/parser/HTMLParserIdioms.h"
-#include "core/html/parser/HTMLStackItem.h"
#include "core/html/parser/HTMLToken.h"
#include "core/html/parser/HTMLTokenizer.h"
@@ -58,7 +57,7 @@ HTMLTreeBuilder::HTMLTreeBuilder(HTMLDocumentParser* parser, HTMLDocument* docum
, m_scriptToProcessStartPosition(uninitializedPositionValue1())
, m_options(options)
{
- m_tree.openElements()->pushRootNode(HTMLStackItem::create(document, HTMLStackItem::ItemForContextElement));
+ m_tree.openElements()->pushRootNode(document);
}
// FIXME: Member variables should be grouped into self-initializing structs to
@@ -83,7 +82,7 @@ HTMLTreeBuilder::HTMLTreeBuilder(HTMLDocumentParser* parser, DocumentFragment* f
// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#fragment-case
// For efficiency, we skip step 4.2 ("Let root be a new html element with no attributes")
// and instead use the DocumentFragment as a root node.
- m_tree.openElements()->pushRootNode(HTMLStackItem::create(fragment, HTMLStackItem::ItemForDocumentFragmentNode));
+ m_tree.openElements()->pushRootNode(fragment);
}
HTMLTreeBuilder::~HTMLTreeBuilder()
@@ -119,7 +118,6 @@ HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext(DocumentFragment
: m_fragment(fragment)
{
ASSERT(!fragment->hasChildren());
- m_contextElementStackItem = HTMLStackItem::create(contextElement, HTMLStackItem::ItemForContextElement);
}
HTMLTreeBuilder::FragmentParsingContext::~FragmentParsingContext()
@@ -129,7 +127,6 @@ HTMLTreeBuilder::FragmentParsingContext::~FragmentParsingContext()
void HTMLTreeBuilder::FragmentParsingContext::trace(Visitor* visitor)
{
visitor->trace(m_fragment);
- visitor->trace(m_contextElementStackItem);
}
PassRefPtrWillBeRawPtr<Element> HTMLTreeBuilder::takeScriptToProcess(TextPosition& scriptStartPosition)
@@ -197,9 +194,9 @@ void HTMLTreeBuilder::processEndTag(AtomicHTMLToken* token)
if (mode == HTMLMode) {
HTMLElementStack::ElementRecord* record = m_tree.openElements()->topRecord();
while (record->next()) {
- RefPtrWillBeRawPtr<HTMLStackItem> item = record->stackItem();
- if (item->hasLocalName(token->name())) {
- m_tree.openElements()->popUntilPopped(item->element());
+ RefPtrWillBeRawPtr<Element> element = record->element();
+ if (element->hasLocalName(token->name())) {
+ m_tree.openElements()->popUntilPopped(element.get());
ASSERT(m_tree.openElements()->topNode());
return;
}
@@ -211,7 +208,7 @@ void HTMLTreeBuilder::processEndTag(AtomicHTMLToken* token)
ASSERT(mode == TextMode);
if (token->name() == HTMLNames::scriptTag) {
// Pause ourselves so that parsing stops until the script can be processed by the caller.
- ASSERT(m_tree.currentStackItem()->hasLocalName(HTMLNames::scriptTag.localName()));
+ ASSERT(m_tree.currentElement()->hasLocalName(HTMLNames::scriptTag.localName()));
if (scriptingContentIsAllowed(m_tree.parserContentPolicy()))
m_scriptToProcess = m_tree.currentElement();
m_tree.openElements()->pop();
« no previous file with comments | « sky/engine/core/html/parser/HTMLTreeBuilder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698