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

Unified Diff: third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp

Issue 1738133002: Add support for media attribute on link (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review nits Created 4 years, 9 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
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 8eaded2449197dab7cc11f7e781f8d8fdf8485b7..2b5f60ea17b352b699df4391477bc76c7bf05b82 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp
@@ -486,26 +486,29 @@ void TokenPreloadScanner::rewindTo(TokenPreloadScannerCheckpoint checkpointIndex
m_checkpoints.clear();
}
-void TokenPreloadScanner::scan(const HTMLToken& token, const SegmentedString& source, PreloadRequestStream& requests)
+void TokenPreloadScanner::scan(const HTMLToken& token, const SegmentedString& source, PreloadRequestStream& requests, ViewportDescriptionWrapper* viewport)
{
- scanCommon(token, source, requests);
+ scanCommon(token, source, requests, viewport);
}
-void TokenPreloadScanner::scan(const CompactHTMLToken& token, const SegmentedString& source, PreloadRequestStream& requests)
+void TokenPreloadScanner::scan(const CompactHTMLToken& token, const SegmentedString& source, PreloadRequestStream& requests, ViewportDescriptionWrapper* viewport)
{
- scanCommon(token, source, requests);
+ scanCommon(token, source, requests, viewport);
}
-static void handleMetaViewport(const String& attributeValue, const CachedDocumentParameters* documentParameters, MediaValuesCached* mediaValues)
+static void handleMetaViewport(const String& attributeValue, const CachedDocumentParameters* documentParameters, MediaValuesCached* mediaValues, ViewportDescriptionWrapper* viewport)
{
if (!documentParameters->viewportMetaEnabled)
return;
ViewportDescription description(ViewportDescription::ViewportMeta);
HTMLMetaElement::getViewportDescriptionFromContentAttribute(attributeValue, description, nullptr, documentParameters->viewportMetaZeroValuesQuirk);
+ if (viewport) {
+ viewport->description = description;
+ viewport->set = true;
+ }
FloatSize initialViewport(mediaValues->deviceWidth(), mediaValues->deviceHeight());
PageScaleConstraints constraints = description.resolve(initialViewport, documentParameters->defaultViewportMinWidth);
- mediaValues->setViewportHeight(constraints.layoutSize.height());
- mediaValues->setViewportWidth(constraints.layoutSize.width());
+ mediaValues->overrideViewportDimensions(constraints.layoutSize.width(), constraints.layoutSize.height());
}
static void handleMetaReferrer(const String& attributeValue, CachedDocumentParameters* documentParameters, CSSPreloadScanner* cssScanner)
@@ -517,7 +520,7 @@ static void handleMetaReferrer(const String& attributeValue, CachedDocumentParam
}
template <typename Token>
-static void handleMetaNameAttribute(const Token& token, CachedDocumentParameters* documentParameters, MediaValuesCached* mediaValues, CSSPreloadScanner* cssScanner)
+static void handleMetaNameAttribute(const Token& token, CachedDocumentParameters* documentParameters, MediaValuesCached* mediaValues, CSSPreloadScanner* cssScanner, ViewportDescriptionWrapper* viewport)
{
const typename Token::Attribute* nameAttribute = token.getAttributeItem(nameAttr);
if (!nameAttribute)
@@ -530,7 +533,7 @@ static void handleMetaNameAttribute(const Token& token, CachedDocumentParameters
String contentAttributeValue(contentAttribute->value());
if (equalIgnoringCase(nameAttributeValue, "viewport")) {
- handleMetaViewport(contentAttributeValue, documentParameters, mediaValues);
+ handleMetaViewport(contentAttributeValue, documentParameters, mediaValues, viewport);
return;
}
@@ -540,7 +543,7 @@ static void handleMetaNameAttribute(const Token& token, CachedDocumentParameters
}
template <typename Token>
-void TokenPreloadScanner::scanCommon(const Token& token, const SegmentedString& source, PreloadRequestStream& requests)
+void TokenPreloadScanner::scanCommon(const Token& token, const SegmentedString& source, PreloadRequestStream& requests, ViewportDescriptionWrapper* viewport)
{
if (!m_documentParameters->doHtmlPreloadScanning)
return;
@@ -614,7 +617,7 @@ void TokenPreloadScanner::scanCommon(const Token& token, const SegmentedString&
return;
}
- handleMetaNameAttribute(token, m_documentParameters.get(), m_mediaValues.get(), &m_cssScanner);
+ handleMetaNameAttribute(token, m_documentParameters.get(), m_mediaValues.get(), &m_cssScanner, viewport);
}
if (match(tagImpl, pictureTag)) {
@@ -663,7 +666,7 @@ void HTMLPreloadScanner::appendToEnd(const SegmentedString& source)
m_source.append(source);
}
-void HTMLPreloadScanner::scan(ResourcePreloader* preloader, const KURL& startingBaseElementURL)
+void HTMLPreloadScanner::scan(ResourcePreloader* preloader, const KURL& startingBaseElementURL, ViewportDescriptionWrapper* viewport)
{
ASSERT(isMainThread()); // HTMLTokenizer::updateStateFor only works on the main thread.
@@ -678,7 +681,7 @@ void HTMLPreloadScanner::scan(ResourcePreloader* preloader, const KURL& starting
while (m_tokenizer->nextToken(m_source, m_token)) {
if (m_token.type() == HTMLToken::StartTag)
m_tokenizer->updateStateFor(attemptStaticStringCreation(m_token.name(), Likely8Bit));
- m_scanner.scan(m_token, m_source, requests);
+ m_scanner.scan(m_token, m_source, requests, viewport);
m_token.clear();
}

Powered by Google App Engine
This is Rietveld 408576698