Commit 53111cd9 authored by noel@chromium.org's avatar noel@chromium.org

Revert of Fix CH Width header when preloadScanner and <picture> are involved...

Revert of Fix CH Width header when preloadScanner and <picture> are involved (patchset #3 id:40001 of https://codereview.chromium.org/1214663004/)

Reason for revert:
Seems to have broken the Mac10.9 Tests (dbg) on the chromium waterfall, see build #7701



Original issue's description:
> Fix CH Width header when preloadScanner and <picture> are involved
> 
> When images are loaded by the preloader and <picture> is involved,
> there was a bug where the sent sizes value was related to the fallback
> <img> tag rather than the picked resource.
> This CL fixes that.
> 
> BUG=458983
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197948

TBR=mkwst@chromium.org,yoav@yoav.ws
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=458983

Review URL: https://codereview.chromium.org/1217703002

git-svn-id: svn://svn.chromium.org/blink/trunk@197949 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent e7e58fab
...@@ -164,19 +164,15 @@ public: ...@@ -164,19 +164,15 @@ public:
processAttribute(htmlTokenAttribute.name, htmlTokenAttribute.value); processAttribute(htmlTokenAttribute.name, htmlTokenAttribute.value);
} }
void handlePictureSourceURL(PictureData& pictureData) void handlePictureSourceURL(String& sourceURL)
{ {
if (match(m_tagImpl, sourceTag) && m_matchedMediaAttribute && pictureData.sourceURL.isEmpty()) { if (match(m_tagImpl, sourceTag) && m_matchedMediaAttribute && sourceURL.isEmpty())
pictureData.sourceURL = m_srcsetImageCandidate.toString(); sourceURL = m_srcsetImageCandidate.toString();
pictureData.sourceSizeSet = m_sourceSizeSet; else if (match(m_tagImpl, imgTag) && !sourceURL.isEmpty())
pictureData.sourceSize = m_sourceSize; setUrlToLoad(sourceURL, AllowURLReplacement);
pictureData.picked = true;
} else if (match(m_tagImpl, imgTag) && !pictureData.sourceURL.isEmpty()) {
setUrlToLoad(pictureData.sourceURL, AllowURLReplacement);
}
} }
PassOwnPtr<PreloadRequest> createPreloadRequest(const KURL& predictedBaseURL, const SegmentedString& source, const ClientHintsPreferences& clientHintsPreferences, const PictureData& pictureData) PassOwnPtr<PreloadRequest> createPreloadRequest(const KURL& predictedBaseURL, const SegmentedString& source, const ClientHintsPreferences& clientHintsPreferences)
{ {
PreloadRequest::RequestType requestType = PreloadRequest::RequestTypePreload; PreloadRequest::RequestType requestType = PreloadRequest::RequestTypePreload;
if (shouldPreconnect()) if (shouldPreconnect())
...@@ -186,14 +182,8 @@ public: ...@@ -186,14 +182,8 @@ public:
TextPosition position = TextPosition(source.currentLine(), source.currentColumn()); TextPosition position = TextPosition(source.currentLine(), source.currentColumn());
FetchRequest::ResourceWidth resourceWidth; FetchRequest::ResourceWidth resourceWidth;
float sourceSize = m_sourceSize; if (m_sourceSizeSet) {
bool sourceSizeSet = m_sourceSizeSet; resourceWidth.width = m_sourceSize;
if (pictureData.picked) {
sourceSizeSet = pictureData.sourceSizeSet;
sourceSize = pictureData.sourceSize;
}
if (sourceSizeSet) {
resourceWidth.width = sourceSize;
resourceWidth.isSet = true; resourceWidth.isSet = true;
} else { } else {
resourceWidth.isSet = m_widthValueSet; resourceWidth.isSet = m_widthValueSet;
...@@ -570,15 +560,15 @@ void TokenPreloadScanner::scanCommon(const Token& token, const SegmentedString& ...@@ -570,15 +560,15 @@ void TokenPreloadScanner::scanCommon(const Token& token, const SegmentedString&
if (match(tagImpl, pictureTag)) { if (match(tagImpl, pictureTag)) {
m_inPicture = true; m_inPicture = true;
m_pictureData = PictureData(); m_pictureSourceURL = String();
return; return;
} }
StartTagScanner scanner(tagImpl, m_documentParameters->mediaValues); StartTagScanner scanner(tagImpl, m_documentParameters->mediaValues);
scanner.processAttributes(token.attributes()); scanner.processAttributes(token.attributes());
if (m_inPicture) if (m_inPicture)
scanner.handlePictureSourceURL(m_pictureData); scanner.handlePictureSourceURL(m_pictureSourceURL);
OwnPtr<PreloadRequest> request = scanner.createPreloadRequest(m_predictedBaseElementURL, source, m_clientHintsPreferences, m_pictureData); OwnPtr<PreloadRequest> request = scanner.createPreloadRequest(m_predictedBaseElementURL, source, m_clientHintsPreferences);
if (request) if (request)
requests.append(request.release()); requests.append(request.release());
return; return;
......
...@@ -109,19 +109,6 @@ private: ...@@ -109,19 +109,6 @@ private:
size_t templateCount; size_t templateCount;
}; };
struct PictureData {
PictureData()
: sourceSize(0.0)
, sourceSizeSet(false)
, picked(false)
{
}
String sourceURL;
float sourceSize;
bool sourceSizeSet;
bool picked;
};
CSSPreloadScanner m_cssScanner; CSSPreloadScanner m_cssScanner;
const KURL m_documentURL; const KURL m_documentURL;
KURL m_predictedBaseElementURL; KURL m_predictedBaseElementURL;
...@@ -129,7 +116,7 @@ private: ...@@ -129,7 +116,7 @@ private:
bool m_inPicture; bool m_inPicture;
bool m_isAppCacheEnabled; bool m_isAppCacheEnabled;
bool m_isCSPEnabled; bool m_isCSPEnabled;
PictureData m_pictureData; String m_pictureSourceURL;
size_t m_templateCount; size_t m_templateCount;
OwnPtr<CachedDocumentParameters> m_documentParameters; OwnPtr<CachedDocumentParameters> m_documentParameters;
ClientHintsPreferences m_clientHintsPreferences; ClientHintsPreferences m_clientHintsPreferences;
......
...@@ -292,18 +292,4 @@ TEST_F(HTMLPreloadScannerTest, testDisables) ...@@ -292,18 +292,4 @@ TEST_F(HTMLPreloadScannerTest, testDisables)
test(testCase); test(testCase);
} }
TEST_F(HTMLPreloadScannerTest, testPicture)
{
TestCase testCases[] = {
{"http://example.test", "<picture><source srcset='srcset_bla.gif'><img src='bla.gif'></picture>", "srcset_bla.gif", "http://example.test/", Resource::Image, 0},
{"http://example.test", "<picture><source sizes='50vw' srcset='srcset_bla.gif'><img src='bla.gif'></picture>", "srcset_bla.gif", "http://example.test/", Resource::Image, 250},
{"http://example.test", "<picture><source sizes='50vw' srcset='srcset_bla.gif'><img sizes='50w' src='bla.gif'></picture>", "srcset_bla.gif", "http://example.test/", Resource::Image, 250},
{"http://example.test", "<picture><source srcset='srcset_bla.gif' sizes='50vw'><img sizes='50w' src='bla.gif'></picture>", "srcset_bla.gif", "http://example.test/", Resource::Image, 250},
{"http://example.test", "<picture><source srcset='srcset_bla.gif'><img sizes='50w' src='bla.gif'></picture>", "srcset_bla.gif", "http://example.test/", Resource::Image, 0},
};
for (const auto& testCase : testCases)
test(testCase);
}
} // namespace blink } // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment