| Index: third_party/WebKit/Source/core/html/parser/HTMLTreeBuilderSimulator.h
|
| diff --git a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilderSimulator.h b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilderSimulator.h
|
| index 1d4d898b03dffd9cfa45d9777589daa763e7976e..3b0f3749eec13250c6ae6615e4225b9c4b606c50 100644
|
| --- a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilderSimulator.h
|
| +++ b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilderSimulator.h
|
| @@ -26,7 +26,6 @@
|
| #ifndef HTMLTreeBuilderSimulator_h
|
| #define HTMLTreeBuilderSimulator_h
|
|
|
| -#include "core/CoreExport.h"
|
| #include "core/html/parser/HTMLParserOptions.h"
|
| #include "wtf/Vector.h"
|
|
|
| @@ -36,7 +35,7 @@ class CompactHTMLToken;
|
| class HTMLTokenizer;
|
| class HTMLTreeBuilder;
|
|
|
| -class CORE_EXPORT HTMLTreeBuilderSimulator {
|
| +class HTMLTreeBuilderSimulator {
|
| USING_FAST_MALLOC(HTMLTreeBuilderSimulator);
|
| private:
|
| enum Namespace {
|
| @@ -45,16 +44,6 @@ private:
|
| MathML
|
| };
|
|
|
| - struct StateFlags {
|
| - unsigned ns : 2; // Namespace
|
| - unsigned isHTMLIntegrationPoint : 1;
|
| -
|
| - bool operator==(const StateFlags& other) const
|
| - {
|
| - return ns == other.ns && isHTMLIntegrationPoint == other.isHTMLIntegrationPoint;
|
| - }
|
| - };
|
| -
|
| public:
|
| enum SimulatedToken {
|
| ScriptStart,
|
| @@ -62,35 +51,24 @@ public:
|
| OtherToken
|
| };
|
|
|
| - // The state of the tree builder simulator is an abbreviated stack
|
| - // of open elements that only contains entries for namespace
|
| - // changes, or elements which may change whether the current node
|
| - // is a HTML integration point.
|
| - typedef Vector<StateFlags, 1> State;
|
| + typedef Vector<Namespace, 1> State;
|
|
|
| explicit HTMLTreeBuilderSimulator(const HTMLParserOptions&);
|
|
|
| static State stateFor(HTMLTreeBuilder*);
|
|
|
| - const State& state() const { return m_stack; }
|
| - void setState(const State& state) { m_stack = state; }
|
| + const State& state() const { return m_namespaceStack; }
|
| + void setState(const State& state) { m_namespaceStack = state; }
|
|
|
| SimulatedToken simulate(const CompactHTMLToken&, HTMLTokenizer*);
|
|
|
| private:
|
| - bool inForeignContent() const { return currentNamespace() != HTML; }
|
| - Namespace currentNamespace() const { return static_cast<Namespace>(m_stack.last().ns); }
|
| - bool stackContainsNamespace(Namespace namespaceOfInterest) const
|
| - {
|
| - for (const auto& entry : m_stack) {
|
| - if (static_cast<Namespace>(entry.ns) == namespaceOfInterest)
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| + explicit HTMLTreeBuilderSimulator(HTMLTreeBuilder*);
|
| +
|
| + bool inForeignContent() const { return m_namespaceStack.last() != HTML; }
|
|
|
| HTMLParserOptions m_options;
|
| - State m_stack;
|
| + State m_namespaceStack;
|
| };
|
|
|
| } // namespace blink
|
|
|