Title: [139020] trunk
Revision
139020
Author
aba...@webkit.org
Date
2013-01-07 17:21:43 -0800 (Mon, 07 Jan 2013)

Log Message

HTMLTreeBuilder should not depend on Frame
https://bugs.webkit.org/show_bug.cgi?id=106256

Reviewed by Eric Seidel.

Source/WebCore:

Rather than have the tree builder ask the Frame whether scripting and
plugins are enabled, we now push that information to the tree builder
via HTMLParserOptions, letting us remove the Frame dependency from the
tree builder.

As a consequence of this change, the "script enabled" bit in the parser
is now locked in when the parser starts. This bit doesn't actually
control when script execute, only how the <noscript> element is parsed.

* html/parser/HTMLDocumentParser.cpp:
(WebCore::tokenizerStateForContextElement):
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::updateStateFor):
* html/parser/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::create):
(HTMLTokenizer):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
* html/parser/HTMLTreeBuilder.h:
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
(WebCore::HTMLViewSourceParser::updateTokenizerState):

LayoutTests:

I needed to update this test slightly because now we lock in the
"script enabled" bit for the parser when the parser starts. That means
we'll parse the document in a consistent way even if the "script
enabled" bit gets flipped later.

* fast/parser/noscript-with-_javascript_-disabled-expected.txt:
* fast/parser/noscript-with-_javascript_-disabled.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (139019 => 139020)


--- trunk/LayoutTests/ChangeLog	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/LayoutTests/ChangeLog	2013-01-08 01:21:43 UTC (rev 139020)
@@ -1,3 +1,18 @@
+2013-01-07  Adam Barth  <aba...@webkit.org>
+
+        HTMLTreeBuilder should not depend on Frame
+        https://bugs.webkit.org/show_bug.cgi?id=106256
+
+        Reviewed by Eric Seidel.
+
+        I needed to update this test slightly because now we lock in the
+        "script enabled" bit for the parser when the parser starts. That means
+        we'll parse the document in a consistent way even if the "script
+        enabled" bit gets flipped later.
+
+        * fast/parser/noscript-with-_javascript_-disabled-expected.txt:
+        * fast/parser/noscript-with-_javascript_-disabled.html:
+
 2013-01-07  Tony Chang  <t...@chromium.org>
 
         Remove more internals.settings that are autogenerated

Modified: trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled-expected.txt (139019 => 139020)


--- trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled-expected.txt	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled-expected.txt	2013-01-08 01:21:43 UTC (rev 139020)
@@ -1,2 +1,6 @@
-This test case verifies that contents inside <noscript> are rendered when _javascript_ is disabled.
-Succeeded!
+The text inside the 'noscript' tag inside the iframe should render:  
+
+--------
+Frame: '<!--framePath //<!--frame0-->-->'
+--------
+PASS: This test case verifies that contents inside are rendered when _javascript_ is disabled.

Modified: trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled.html (139019 => 139020)


--- trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled.html	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled.html	2013-01-08 01:21:43 UTC (rev 139020)
@@ -1,17 +1,24 @@
 <html>
 
 <script>
-if (window.testRunner)
+if (window.testRunner) {
     testRunner.dumpAsText();
+    testRunner.dumpChildFramesAsText();
     testRunner.overridePreference("WebKitJavaScriptEnabled", false);
+}
 </script>
 
 <noscript> 
 <body>
-    This test case verifies that contents inside &lt;noscript&gt; are rendered when _javascript_ is disabled.
-
-    <p>Succeeded!</p>
+    FAIL: This content should not render because whether scripting is enabled
+    (for the purposes of the 'noscript' tag) is locked in when the parser starts.
 </noscript>
 
+The text inside the 'noscript' tag inside the iframe should render:
+
+<iframe
+    src="" This test case verifies that contents inside &lt;noscript&gt; are rendered when _javascript_ is disabled.</body></noscript>">
+</iframe>
+
 </body>
 </html>

Modified: trunk/Source/WebCore/ChangeLog (139019 => 139020)


--- trunk/Source/WebCore/ChangeLog	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/ChangeLog	2013-01-08 01:21:43 UTC (rev 139020)
@@ -1,3 +1,48 @@
+2013-01-07  Adam Barth  <aba...@webkit.org>
+
+        HTMLTreeBuilder should not depend on Frame
+        https://bugs.webkit.org/show_bug.cgi?id=106256
+
+        Reviewed by Eric Seidel.
+
+        Rather than have the tree builder ask the Frame whether scripting and
+        plugins are enabled, we now push that information to the tree builder
+        via HTMLParserOptions, letting us remove the Frame dependency from the
+        tree builder.
+
+        As a consequence of this change, the "script enabled" bit in the parser
+        is now locked in when the parser starts. This bit doesn't actually
+        control when script execute, only how the <noscript> element is parsed.
+
+        * html/parser/HTMLDocumentParser.cpp:
+        (WebCore::tokenizerStateForContextElement):
+        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
+        * html/parser/HTMLMetaCharsetParser.cpp:
+        (WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
+        (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
+        * html/parser/HTMLParserOptions.cpp:
+        (WebCore::HTMLParserOptions::HTMLParserOptions):
+        * html/parser/HTMLParserOptions.h:
+        (HTMLParserOptions):
+        (WebCore::HTMLParserOptions::HTMLParserOptions):
+        * html/parser/HTMLPreloadScanner.cpp:
+        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
+        (WebCore::HTMLPreloadScanner::processToken):
+        * html/parser/HTMLTokenizer.cpp:
+        (WebCore::HTMLTokenizer::HTMLTokenizer):
+        (WebCore::HTMLTokenizer::nextToken):
+        (WebCore::HTMLTokenizer::updateStateFor):
+        * html/parser/HTMLTokenizer.h:
+        (WebCore::HTMLTokenizer::create):
+        (HTMLTokenizer):
+        * html/parser/HTMLTreeBuilder.cpp:
+        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
+        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
+        * html/parser/HTMLTreeBuilder.h:
+        * html/parser/HTMLViewSourceParser.cpp:
+        (WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
+        (WebCore::HTMLViewSourceParser::updateTokenizerState):
+
 2013-01-07  Tony Chang  <t...@chromium.org>
 
         Remove more internals.settings that are autogenerated

Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-01-08 01:21:43 UTC (rev 139020)
@@ -47,7 +47,7 @@
 
 // This is a direct transcription of step 4 from:
 // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#fragment-case
-static HTMLTokenizerState::State tokenizerStateForContextElement(Element* contextElement, bool reportErrors)
+static HTMLTokenizerState::State tokenizerStateForContextElement(Element* contextElement, bool reportErrors, const HTMLParserOptions& options)
 {
     if (!contextElement)
         return HTMLTokenizerState::DataState;
@@ -59,8 +59,8 @@
     if (contextTag.matches(styleTag)
         || contextTag.matches(xmpTag)
         || contextTag.matches(iframeTag)
-        || (contextTag.matches(noembedTag) && HTMLTreeBuilder::pluginsEnabled(contextElement->document()->frame()))
-        || (contextTag.matches(noscriptTag) && HTMLTreeBuilder::scriptEnabled(contextElement->document()->frame()))
+        || (contextTag.matches(noembedTag) && options.pluginsEnabled)
+        || (contextTag.matches(noscriptTag) && options.scriptEnabled)
         || contextTag.matches(noframesTag))
         return reportErrors ? HTMLTokenizerState::RAWTEXTState : HTMLTokenizerState::PLAINTEXTState;
     if (contextTag.matches(scriptTag))
@@ -73,7 +73,7 @@
 HTMLDocumentParser::HTMLDocumentParser(HTMLDocument* document, bool reportErrors)
     : ScriptableDocumentParser(document)
     , m_options(document)
-    , m_tokenizer(HTMLTokenizer::create(m_options.usePreHTML5ParserQuirks))
+    , m_tokenizer(HTMLTokenizer::create(m_options))
     , m_scriptRunner(HTMLScriptRunner::create(document, this))
     , m_treeBuilder(HTMLTreeBuilder::create(this, document, reportErrors, m_options))
     , m_parserScheduler(HTMLParserScheduler::create(this))
@@ -88,14 +88,14 @@
 HTMLDocumentParser::HTMLDocumentParser(DocumentFragment* fragment, Element* contextElement, FragmentScriptingPermission scriptingPermission)
     : ScriptableDocumentParser(fragment->document())
     , m_options(fragment->document())
-    , m_tokenizer(HTMLTokenizer::create(m_options.usePreHTML5ParserQuirks))
+    , m_tokenizer(HTMLTokenizer::create(m_options))
     , m_treeBuilder(HTMLTreeBuilder::create(this, fragment, contextElement, scriptingPermission, m_options))
     , m_xssAuditor(this)
     , m_endWasDelayed(false)
     , m_pumpSessionNestingLevel(0)
 {
     bool reportErrors = false; // For now document fragment parsing never reports errors.
-    m_tokenizer->setState(tokenizerStateForContextElement(contextElement, reportErrors));
+    m_tokenizer->setState(tokenizerStateForContextElement(contextElement, reportErrors, m_options));
 }
 
 HTMLDocumentParser::~HTMLDocumentParser()

Modified: trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp	2013-01-08 01:21:43 UTC (rev 139020)
@@ -28,6 +28,7 @@
 
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
+#include "HTMLParserOptions.h"
 #include "HTMLTokenizer.h"
 #include "TextCodec.h"
 #include "TextEncodingRegistry.h"
@@ -40,7 +41,7 @@
 using namespace HTMLNames;
 
 HTMLMetaCharsetParser::HTMLMetaCharsetParser()
-    : m_tokenizer(HTMLTokenizer::create(false)) // No pre-HTML5 parser quirks.
+    : m_tokenizer(HTMLTokenizer::create(HTMLParserOptions(0)))
     , m_assumedCodec(newTextCodec(Latin1Encoding()))
     , m_inHeadSection(true)
     , m_doneChecking(false)
@@ -179,7 +180,7 @@
         if (end || m_token.type() == HTMLTokenTypes::StartTag) {
             AtomicString tagName(m_token.name().data(), m_token.name().size());
             if (!end) {
-                m_tokenizer->updateStateFor(tagName, 0);
+                m_tokenizer->updateStateFor(tagName);
                 if (tagName == metaTag && processMeta()) {
                     m_doneChecking = true;
                     return true;

Modified: trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp	2013-01-08 01:21:43 UTC (rev 139020)
@@ -27,14 +27,18 @@
 #include "HTMLParserOptions.h"
 
 #include "Document.h"
+#include "Frame.h"
 #include "Settings.h"
 
 namespace WebCore {
 
 HTMLParserOptions::HTMLParserOptions(Document* document)
 {
-    ASSERT(document);
-    Settings* settings = document->settings();
+    Frame* frame = document ? document->frame() : 0;
+    scriptEnabled = frame && frame->script()->canExecuteScripts(NotAboutToExecuteScript);
+    pluginsEnabled = frame && frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin);
+
+    Settings* settings = document ? document->settings() : 0;
     usePreHTML5ParserQuirks = settings && settings->usePreHTML5ParserQuirks();
     maximumDOMTreeDepth = settings ? settings->maximumHTMLParserDOMTreeDepth() : Settings::defaultMaximumHTMLParserDOMTreeDepth;
 }

Modified: trunk/Source/WebCore/html/parser/HTMLParserOptions.h (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLParserOptions.h	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLParserOptions.h	2013-01-08 01:21:43 UTC (rev 139020)
@@ -32,15 +32,11 @@
 
 class HTMLParserOptions {
 public:
+    bool scriptEnabled;
+    bool pluginsEnabled;
     bool usePreHTML5ParserQuirks;
     unsigned maximumDOMTreeDepth;
 
-    HTMLParserOptions()
-        : usePreHTML5ParserQuirks(false)
-        , maximumDOMTreeDepth(0)
-    {
-    }
-
     explicit HTMLParserOptions(Document*);
 };
 

Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-01-08 01:21:43 UTC (rev 139020)
@@ -165,7 +165,7 @@
 HTMLPreloadScanner::HTMLPreloadScanner(Document* document, const HTMLParserOptions& options)
     : m_document(document)
     , m_cssScanner(document)
-    , m_tokenizer(HTMLTokenizer::create(options.usePreHTML5ParserQuirks))
+    , m_tokenizer(HTMLTokenizer::create(options))
     , m_inStyle(false)
 {
 }
@@ -203,7 +203,7 @@
         return;
 
     PreloadTask task(m_token);
-    m_tokenizer->updateStateFor(task.tagName(), m_document->frame());
+    m_tokenizer->updateStateFor(task.tagName());
 
     if (task.tagName() == styleTag)
         m_inStyle = true;

Modified: trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp	2013-01-08 01:21:43 UTC (rev 139020)
@@ -107,8 +107,8 @@
 #define HTML_ADVANCE_TO(stateName) ADVANCE_TO(HTMLTokenizerState, stateName)
 #define HTML_SWITCH_TO(stateName) SWITCH_TO(HTMLTokenizerState, stateName)
 
-HTMLTokenizer::HTMLTokenizer(bool usePreHTML5ParserQuirks)
-    : m_usePreHTML5ParserQuirks(usePreHTML5ParserQuirks)
+HTMLTokenizer::HTMLTokenizer(const HTMLParserOptions& options)
+    : m_options(options)
 {
     reset();
 }
@@ -343,7 +343,7 @@
             HTML_ADVANCE_TO(SelfClosingStartTagState);
         else if (cc == '>')
             return emitAndResumeIn(source, HTMLTokenizerState::DataState);
-        else if (m_usePreHTML5ParserQuirks && cc == '<')
+        else if (m_options.usePreHTML5ParserQuirks && cc == '<')
             return emitAndReconsumeIn(source, HTMLTokenizerState::DataState);
         else if (isASCIIUpper(cc)) {
             m_token->appendToName(toLowerCase(cc));
@@ -814,7 +814,7 @@
             HTML_ADVANCE_TO(SelfClosingStartTagState);
         else if (cc == '>')
             return emitAndResumeIn(source, HTMLTokenizerState::DataState);
-        else if (m_usePreHTML5ParserQuirks && cc == '<')
+        else if (m_options.usePreHTML5ParserQuirks && cc == '<')
             return emitAndReconsumeIn(source, HTMLTokenizerState::DataState);
         else if (isASCIIUpper(cc)) {
             m_token->addNewAttribute();
@@ -848,7 +848,7 @@
         } else if (cc == '>') {
             m_token->endAttributeName(source.numberOfCharactersConsumed());
             return emitAndResumeIn(source, HTMLTokenizerState::DataState);
-        } else if (m_usePreHTML5ParserQuirks && cc == '<') {
+        } else if (m_options.usePreHTML5ParserQuirks && cc == '<') {
             m_token->endAttributeName(source.numberOfCharactersConsumed());
             return emitAndReconsumeIn(source, HTMLTokenizerState::DataState);
         } else if (isASCIIUpper(cc)) {
@@ -876,7 +876,7 @@
             HTML_ADVANCE_TO(BeforeAttributeValueState);
         else if (cc == '>')
             return emitAndResumeIn(source, HTMLTokenizerState::DataState);
-        else if (m_usePreHTML5ParserQuirks && cc == '<')
+        else if (m_options.usePreHTML5ParserQuirks && cc == '<')
             return emitAndReconsumeIn(source, HTMLTokenizerState::DataState);
         else if (isASCIIUpper(cc)) {
             m_token->addNewAttribute();
@@ -1019,7 +1019,7 @@
             HTML_ADVANCE_TO(SelfClosingStartTagState);
         else if (cc == '>')
             return emitAndResumeIn(source, HTMLTokenizerState::DataState);
-        else if (m_usePreHTML5ParserQuirks && cc == '<')
+        else if (m_options.usePreHTML5ParserQuirks && cc == '<')
             return emitAndReconsumeIn(source, HTMLTokenizerState::DataState);
         else if (cc == InputStreamPreprocessor::endOfFileMarker) {
             parseError();
@@ -1589,7 +1589,7 @@
     return characters.toString();
 }
 
-void HTMLTokenizer::updateStateFor(const AtomicString& tagName, Frame* frame)
+void HTMLTokenizer::updateStateFor(const AtomicString& tagName)
 {
     if (tagName == textareaTag || tagName == titleTag)
         setState(HTMLTokenizerState::RCDATAState);
@@ -1600,9 +1600,9 @@
     else if (tagName == styleTag
         || tagName == iframeTag
         || tagName == xmpTag
-        || (tagName == noembedTag && HTMLTreeBuilder::pluginsEnabled(frame))
+        || (tagName == noembedTag && m_options.pluginsEnabled)
         || tagName == noframesTag
-        || (tagName == noscriptTag && HTMLTreeBuilder::scriptEnabled(frame)))
+        || (tagName == noscriptTag && m_options.scriptEnabled))
         setState(HTMLTokenizerState::RAWTEXTState);
 }
 

Modified: trunk/Source/WebCore/html/parser/HTMLTokenizer.h (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLTokenizer.h	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLTokenizer.h	2013-01-08 01:21:43 UTC (rev 139020)
@@ -27,14 +27,13 @@
 #ifndef HTMLTokenizer_h
 #define HTMLTokenizer_h
 
+#include "HTMLParserOptions.h"
 #include "HTMLToken.h"
 #include "MarkupTokenizerBase.h"
 #include "SegmentedString.h"
 
 namespace WebCore {
 
-class Frame;
-
 class HTMLTokenizerState {
 public:
     enum State {
@@ -120,7 +119,7 @@
     WTF_MAKE_NONCOPYABLE(HTMLTokenizer);
     WTF_MAKE_FAST_ALLOCATED;
 public:
-    static PassOwnPtr<HTMLTokenizer> create(bool usePreHTML5ParserQuirks) { return adoptPtr(new HTMLTokenizer(usePreHTML5ParserQuirks)); }
+    static PassOwnPtr<HTMLTokenizer> create(const HTMLParserOptions& options) { return adoptPtr(new HTMLTokenizer(options)); }
     ~HTMLTokenizer();
 
     void reset();
@@ -157,7 +156,7 @@
     //  * CDATA sections in foreign content will be tokenized as bogus comments
     //    instead of as character tokens.
     //
-    void updateStateFor(const AtomicString& tagName, Frame*);
+    void updateStateFor(const AtomicString& tagName);
 
     bool forceNullCharacterReplacement() const { return m_forceNullCharacterReplacement; }
     void setForceNullCharacterReplacement(bool value) { m_forceNullCharacterReplacement = value; }
@@ -166,7 +165,7 @@
     void setShouldAllowCDATA(bool value) { m_shouldAllowCDATA = value; }
 
 private:
-    explicit HTMLTokenizer(bool usePreHTML5ParserQuirks);
+    explicit HTMLTokenizer(const HTMLParserOptions&);
 
     inline bool processEntity(SegmentedString&);
 
@@ -216,7 +215,7 @@
     // token here so we remember it next time we re-enter the tokenizer.
     Vector<LChar, 32> m_bufferedEndTagName;
 
-    bool m_usePreHTML5ParserQuirks;
+    HTMLParserOptions m_options;
 };
 
 }

Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp	2013-01-08 01:21:43 UTC (rev 139020)
@@ -31,7 +31,6 @@
 #include "DOMWindow.h"
 #include "DocumentFragment.h"
 #include "DocumentType.h"
-#include "Frame.h"
 #include "HTMLDocument.h"
 #include "HTMLDocumentParser.h"
 #include "HTMLElementFactory.h"
@@ -894,11 +893,11 @@
         processGenericRawTextStartTag(token);
         return;
     }
-    if (token->name() == noembedTag && pluginsEnabled(m_document->frame())) {
+    if (token->name() == noembedTag && m_options.pluginsEnabled) {
         processGenericRawTextStartTag(token);
         return;
     }
-    if (token->name() == noscriptTag && scriptEnabled(m_document->frame())) {
+    if (token->name() == noscriptTag && m_options.scriptEnabled) {
         processGenericRawTextStartTag(token);
         return;
     }
@@ -2690,7 +2689,7 @@
         return true;
     }
     if (token->name() == noscriptTag) {
-        if (scriptEnabled(m_document->frame())) {
+        if (m_options.scriptEnabled) {
             processGenericRawTextStartTag(token);
             return true;
         }
@@ -2913,18 +2912,4 @@
 {
 }
 
-bool HTMLTreeBuilder::scriptEnabled(Frame* frame)
-{
-    if (!frame)
-        return false;
-    return frame->script()->canExecuteScripts(NotAboutToExecuteScript);
 }
-
-bool HTMLTreeBuilder::pluginsEnabled(Frame* frame)
-{
-    if (!frame)
-        return false;
-    return frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin);
-}
-
-}

Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h	2013-01-08 01:21:43 UTC (rev 139020)
@@ -91,9 +91,6 @@
 
     void setShouldSkipLeadingNewline(bool shouldSkip) { m_shouldSkipLeadingNewline = shouldSkip; }
 
-    static bool scriptEnabled(Frame*);
-    static bool pluginsEnabled(Frame*);
-
 private:
     class ExternalCharacterTokenBuffer;
     // Represents HTML5 "insertion mode"

Modified: trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp (139019 => 139020)


--- trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp	2013-01-08 01:21:43 UTC (rev 139020)
@@ -35,7 +35,7 @@
 
 HTMLViewSourceParser::HTMLViewSourceParser(HTMLViewSourceDocument* document)
     : DecodedDataDocumentParser(document)
-    , m_tokenizer(HTMLTokenizer::create(HTMLParserOptions(document).usePreHTML5ParserQuirks))
+    , m_tokenizer(HTMLTokenizer::create(HTMLParserOptions(document)))
 {
 }
 
@@ -80,7 +80,7 @@
         return;
 
     AtomicString tagName(m_token.name().data(), m_token.name().size());
-    m_tokenizer->updateStateFor(tagName, document()->frame());
+    m_tokenizer->updateStateFor(tagName);
 }
 
 void HTMLViewSourceParser::finish()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to