Index: Source/core/html/parser/HTMLDocumentParser.cpp |
diff --git a/Source/core/html/parser/HTMLDocumentParser.cpp b/Source/core/html/parser/HTMLDocumentParser.cpp |
index e47d69c940d90657cd80fe17e0c88b532d325383..8484a0dafceed52c8d38b813f59bf47187ecb5f3 100644 |
--- a/Source/core/html/parser/HTMLDocumentParser.cpp |
+++ b/Source/core/html/parser/HTMLDocumentParser.cpp |
@@ -27,6 +27,7 @@ |
#include "core/html/parser/HTMLDocumentParser.h" |
#include "HTMLNames.h" |
+#include "core/css/MediaQueryEvaluator.h" |
#include "core/dom/DocumentFragment.h" |
#include "core/dom/Element.h" |
#include "core/html/parser/AtomicHTMLToken.h" |
@@ -478,7 +479,7 @@ void HTMLDocumentParser::forcePlaintextForTextDocument() |
// This method is called before any data is appended, so we have to start |
// the background parser ourselves. |
if (!m_haveBackgroundParser) |
- startBackgroundParser(); |
+ startBackgroundParser(MediaValues::create(document())); |
HTMLParserThread::shared()->postTask(bind(&BackgroundHTMLParser::forcePlaintextForTextDocument, m_backgroundParser)); |
} else |
@@ -548,7 +549,7 @@ void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode) |
if (isWaitingForScripts()) { |
ASSERT(m_tokenizer->state() == HTMLTokenizer::DataState); |
if (!m_preloadScanner) { |
- m_preloadScanner = adoptPtr(new HTMLPreloadScanner(m_options, document()->url())); |
+ m_preloadScanner = adoptPtr(new HTMLPreloadScanner(m_options, document()->url(), MediaValues::create(document()))); |
m_preloadScanner->appendToEnd(m_input.current()); |
} |
m_preloadScanner->scan(m_preloader.get(), document()->baseElementURL()); |
@@ -623,7 +624,7 @@ void HTMLDocumentParser::insert(const SegmentedString& source) |
// Check the document.write() output with a separate preload scanner as |
// the main scanner can't deal with insertions. |
if (!m_insertionPreloadScanner) |
- m_insertionPreloadScanner = adoptPtr(new HTMLPreloadScanner(m_options, document()->url())); |
+ m_insertionPreloadScanner = adoptPtr(new HTMLPreloadScanner(m_options, document()->url(), MediaValues::create(document()))); |
m_insertionPreloadScanner->appendToEnd(source); |
m_insertionPreloadScanner->scan(m_preloader.get(), document()->baseElementURL()); |
} |
@@ -631,7 +632,7 @@ void HTMLDocumentParser::insert(const SegmentedString& source) |
endIfDelayed(); |
} |
-void HTMLDocumentParser::startBackgroundParser() |
+void HTMLDocumentParser::startBackgroundParser(PassRefPtr<MediaValues> mediaValues) |
{ |
ASSERT(shouldUseThreading()); |
ASSERT(!m_haveBackgroundParser); |
@@ -647,7 +648,7 @@ void HTMLDocumentParser::startBackgroundParser() |
config->parser = m_weakFactory.createWeakPtr(); |
config->xssAuditor = adoptPtr(new XSSAuditor); |
config->xssAuditor->init(document(), &m_xssAuditorDelegate); |
- config->preloadScanner = adoptPtr(new TokenPreloadScanner(document()->url().copy())); |
+ config->preloadScanner = adoptPtr(new TokenPreloadScanner(document()->url().copy(), mediaValues)); |
ASSERT(config->xssAuditor->isSafeToSendToAnotherThread()); |
ASSERT(config->preloadScanner->isSafeToSendToAnotherThread()); |
@@ -670,8 +671,9 @@ void HTMLDocumentParser::append(PassRefPtr<StringImpl> inputSource) |
return; |
if (shouldUseThreading()) { |
- if (!m_haveBackgroundParser) |
- startBackgroundParser(); |
+ if (!m_haveBackgroundParser) { |
+ startBackgroundParser(MediaValues::create(document())); |
+ } |
ASSERT(inputSource->hasOneRef()); |
Closure closure = bind(&BackgroundHTMLParser::append, m_backgroundParser, String(inputSource)); |