Index: third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp |
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp b/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp |
index ddc46de7168501f4685931938c7b73beb50a55e5..4ba4c7590cf6130736c465278da5c853eee7c3fb 100644 |
--- a/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp |
+++ b/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp |
@@ -442,7 +442,7 @@ private: |
IntegrityMetadataSet m_integrityMetadata; |
}; |
-TokenPreloadScanner::TokenPreloadScanner(const KURL& documentURL, PassOwnPtr<CachedDocumentParameters> documentParameters) |
+TokenPreloadScanner::TokenPreloadScanner(const KURL& documentURL, PassOwnPtr<CachedDocumentParameters> documentParameters, const MediaValuesCached::MediaValuesCachedData& mediaValuesCachedData) |
: m_documentURL(documentURL) |
, m_inStyle(false) |
, m_inPicture(false) |
@@ -450,9 +450,10 @@ TokenPreloadScanner::TokenPreloadScanner(const KURL& documentURL, PassOwnPtr<Cac |
, m_isCSPEnabled(false) |
, m_templateCount(0) |
, m_documentParameters(documentParameters) |
+ , m_mediaValues(MediaValuesCached::create(mediaValuesCachedData)) |
{ |
ASSERT(m_documentParameters.get()); |
- ASSERT(m_documentParameters->mediaValues.get()); |
+ ASSERT(m_mediaValues.get()); |
} |
TokenPreloadScanner::~TokenPreloadScanner() |
@@ -489,16 +490,16 @@ void TokenPreloadScanner::scan(const CompactHTMLToken& token, const SegmentedStr |
scanCommon(token, source, requests); |
} |
-static void handleMetaViewport(const String& attributeValue, CachedDocumentParameters* documentParameters) |
+static void handleMetaViewport(const String& attributeValue, const CachedDocumentParameters* documentParameters, MediaValuesCached* mediaValues) |
{ |
if (!documentParameters->viewportMetaEnabled) |
return; |
ViewportDescription description(ViewportDescription::ViewportMeta); |
HTMLMetaElement::getViewportDescriptionFromContentAttribute(attributeValue, description, nullptr, documentParameters->viewportMetaZeroValuesQuirk); |
- FloatSize initialViewport(documentParameters->mediaValues->deviceWidth(), documentParameters->mediaValues->deviceHeight()); |
+ FloatSize initialViewport(mediaValues->deviceWidth(), mediaValues->deviceHeight()); |
PageScaleConstraints constraints = description.resolve(initialViewport, documentParameters->defaultViewportMinWidth); |
- documentParameters->mediaValues->setViewportHeight(constraints.layoutSize.height()); |
- documentParameters->mediaValues->setViewportWidth(constraints.layoutSize.width()); |
+ mediaValues->setViewportHeight(constraints.layoutSize.height()); |
+ mediaValues->setViewportWidth(constraints.layoutSize.width()); |
} |
static void handleMetaReferrer(const String& attributeValue, CachedDocumentParameters* documentParameters, CSSPreloadScanner* cssScanner) |
@@ -510,7 +511,7 @@ static void handleMetaReferrer(const String& attributeValue, CachedDocumentParam |
} |
template <typename Token> |
-static void handleMetaNameAttribute(const Token& token, CachedDocumentParameters* documentParameters, CSSPreloadScanner* cssScanner) |
+static void handleMetaNameAttribute(const Token& token, CachedDocumentParameters* documentParameters, MediaValuesCached* mediaValues, CSSPreloadScanner* cssScanner) |
{ |
const typename Token::Attribute* nameAttribute = token.getAttributeItem(nameAttr); |
if (!nameAttribute) |
@@ -523,7 +524,7 @@ static void handleMetaNameAttribute(const Token& token, CachedDocumentParameters |
String contentAttributeValue(contentAttribute->value); |
if (equalIgnoringCase(nameAttributeValue, "viewport")) { |
- handleMetaViewport(contentAttributeValue, documentParameters); |
+ handleMetaViewport(contentAttributeValue, documentParameters, mediaValues); |
return; |
} |
@@ -607,7 +608,7 @@ void TokenPreloadScanner::scanCommon(const Token& token, const SegmentedString& |
return; |
} |
- handleMetaNameAttribute(token, m_documentParameters.get(), &m_cssScanner); |
+ handleMetaNameAttribute(token, m_documentParameters.get(), m_mediaValues.get(), &m_cssScanner); |
} |
if (match(tagImpl, pictureTag)) { |
@@ -616,7 +617,7 @@ void TokenPreloadScanner::scanCommon(const Token& token, const SegmentedString& |
return; |
} |
- StartTagScanner scanner(tagImpl, m_documentParameters->mediaValues); |
+ StartTagScanner scanner(tagImpl, m_mediaValues); |
scanner.processAttributes(token.attributes()); |
if (m_inPicture) |
scanner.handlePictureSourceURL(m_pictureData); |
@@ -641,8 +642,8 @@ void TokenPreloadScanner::updatePredictedBaseURL(const Token& token) |
} |
} |
-HTMLPreloadScanner::HTMLPreloadScanner(const HTMLParserOptions& options, const KURL& documentURL, PassOwnPtr<CachedDocumentParameters> documentParameters) |
- : m_scanner(documentURL, documentParameters) |
+HTMLPreloadScanner::HTMLPreloadScanner(const HTMLParserOptions& options, const KURL& documentURL, PassOwnPtr<CachedDocumentParameters> documentParameters, const MediaValuesCached::MediaValuesCachedData& mediaValuesCachedData) |
+ : m_scanner(documentURL, documentParameters, mediaValuesCachedData) |
, m_tokenizer(HTMLTokenizer::create(options)) |
{ |
} |
@@ -678,16 +679,11 @@ void HTMLPreloadScanner::scan(ResourcePreloader* preloader, const KURL& starting |
preloader->takeAndPreload(requests); |
} |
-CachedDocumentParameters::CachedDocumentParameters(Document* document, PassRefPtrWillBeRawPtr<MediaValuesCached> givenMediaValues) |
+CachedDocumentParameters::CachedDocumentParameters(Document* document) |
{ |
ASSERT(isMainThread()); |
ASSERT(document); |
doHtmlPreloadScanning = !document->settings() || document->settings()->doHtmlPreloadScanning(); |
- if (givenMediaValues) |
- mediaValues = givenMediaValues; |
- else |
- mediaValues = MediaValuesCached::create(*document); |
- ASSERT(mediaValues->isSafeToSendToAnotherThread()); |
defaultViewportMinWidth = document->viewportDefaultMinWidth(); |
viewportMetaZeroValuesQuirk = document->settings() && document->settings()->viewportMetaZeroValuesQuirk(); |
viewportMetaEnabled = document->settings() && document->settings()->viewportMetaEnabled(); |