<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[205905] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/205905">205905</a></dd>
<dt>Author</dt> <dd>hyatt@apple.com</dd>
<dt>Date</dt> <dd>2016-09-14 08:54:54 -0700 (Wed, 14 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[CSS Parser] Enable the new sizes parser by default
https://bugs.webkit.org/show_bug.cgi?id=161931

Reviewed by Zalan Bujtas.

Source/WebCore:

Added new tests in fast/dom/HTMLImageElement/sizes.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSGrammar.y.in:
Remove the old code that parsed source size lists.

* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
* css/MediaQueryEvaluator.h:
Change to take a const Document&amp;, since the Document is not modified.

* css/SourceSizeList.cpp: Removed.
* css/SourceSizeList.h: Removed.
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSizesAttribute): Deleted.
(WebCore::CSSParser::SourceSize::SourceSize): Deleted.
(WebCore::CSSParser::sourceSize): Deleted.
* css/parser/CSSParser.h:
Remove the old sizes processing code.

* css/parser/MediaQueryParser.cpp:
(WebCore::MediaQueryParser::skipUntilComma):
(WebCore::MediaQueryParser::parseInternal):
Fix a bug I introduced when modifying this code from Blink. The Nones should have been Nots.

* css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::computeLength):
(WebCore::SizesAttributeParser::SizesAttributeParser):
(WebCore::SizesAttributeParser::calculateLengthInPixels):
(WebCore::SizesAttributeParser::mediaConditionMatches):
(WebCore::SizesAttributeParser::effectiveSizeDefaultValue):
* css/parser/SizesAttributeParser.h:
* css/parser/SizesCalcParser.cpp:
(WebCore::SizesCalcParser::SizesCalcParser):
(WebCore::SizesCalcParser::appendLength):
* css/parser/SizesCalcParser.h:
Make the sizes parsers take a Document, since having separate style and view arguments made
no sense, given that the style used is always the view's.

* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::selectImageSource):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
Switch image elements and the preload scanner over to the new code.

LayoutTests:

* fast/dom/HTMLImageElement/resources/green-16x16.png: Added.
* fast/dom/HTMLImageElement/resources/green-1x1.png: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt:
* fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html:
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1.html: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2.html: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3.html: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt: Added.
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesinvalidsexpectedtxt">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesinvalidshtml">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorecssCSSGrammaryin">trunk/Source/WebCore/css/CSSGrammar.y.in</a></li>
<li><a href="#trunkSourceWebCorecssMediaQueryEvaluatorcpp">trunk/Source/WebCore/css/MediaQueryEvaluator.cpp</a></li>
<li><a href="#trunkSourceWebCorecssMediaQueryEvaluatorh">trunk/Source/WebCore/css/MediaQueryEvaluator.h</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParsercpp">trunk/Source/WebCore/css/parser/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParserh">trunk/Source/WebCore/css/parser/CSSParser.h</a></li>
<li><a href="#trunkSourceWebCorecssparserMediaQueryParsercpp">trunk/Source/WebCore/css/parser/MediaQueryParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserSizesAttributeParsercpp">trunk/Source/WebCore/css/parser/SizesAttributeParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserSizesAttributeParserh">trunk/Source/WebCore/css/parser/SizesAttributeParser.h</a></li>
<li><a href="#trunkSourceWebCorecssparserSizesCalcParsercpp">trunk/Source/WebCore/css/parser/SizesCalcParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserSizesCalcParserh">trunk/Source/WebCore/css/parser/SizesCalcParser.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLPreloadScannercpp">trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementresourcesgreen16x16png">trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-16x16.png</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementresourcesgreen1x1png">trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-1x1.png</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c1expectedtxt">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c1html">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1.html</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c2expectedtxt">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c2html">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2.html</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c3expectedtxt">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c3html">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3.html</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c4expectedtxt">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c4html">trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4.html</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorecssSourceSizeListcpp">trunk/Source/WebCore/css/SourceSizeList.cpp</a></li>
<li><a href="#trunkSourceWebCorecssSourceSizeListh">trunk/Source/WebCore/css/SourceSizeList.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/LayoutTests/ChangeLog        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2016-09-14  Dave Hyatt  &lt;hyatt@apple.com&gt;
+
+        [CSS Parser] Enable the new sizes parser by default
+        https://bugs.webkit.org/show_bug.cgi?id=161931
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/dom/HTMLImageElement/resources/green-16x16.png: Added.
+        * fast/dom/HTMLImageElement/resources/green-1x1.png: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt:
+        * fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html:
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1.html: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2.html: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3.html: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt: Added.
+        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4.html: Added.
+
</ins><span class="cx"> 2016-09-13  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Marking imported/w3c/web-platform-tests/XMLHttpRequest/response-method.htm as failing on ios-simulator.
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementresourcesgreen16x16png"></a>
<div class="binary"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-16x16.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-16x16.png
</span><span class="cx">===================================================================
</span><del>--- trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-16x16.png        2016-09-14 15:16:04 UTC (rev 205904)
</del><ins>+++ trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-16x16.png        2016-09-14 15:54:54 UTC (rev 205905)
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-16x16.png
</span><span class="cx">___________________________________________________________________
</span><a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<ins>+application/octet-stream
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkLayoutTestsfastdomHTMLImageElementresourcesgreen1x1png"></a>
<div class="binary"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-1x1.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-1x1.png
</span><span class="cx">===================================================================
</span><del>--- trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-1x1.png        2016-09-14 15:16:04 UTC (rev 205904)
</del><ins>+++ trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-1x1.png        2016-09-14 15:54:54 UTC (rev 205905)
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/dom/HTMLImageElement/resources/green-1x1.png
</span><span class="cx">___________________________________________________________________
</span><a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<ins>+application/octet-stream
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesinvalidsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx"> PASS currentSrcFileName(elementId) is &quot;image-set-2x.png&quot;
</span><span class="cx"> PASS document.getElementById(elementId).clientWidth is 800
</span><span class="cx"> PASS currentSrcFileName(elementId) is &quot;image-set-2x.png&quot;
</span><del>-PASS document.getElementById(elementId).clientWidth is 800
</del><ins>+PASS document.getElementById(elementId).clientWidth is 56
</ins><span class="cx"> PASS currentSrcFileName(elementId) is &quot;image-set-2x.png&quot;
</span><span class="cx"> PASS document.getElementById(elementId).clientWidth is 800
</span><span class="cx"> PASS currentSrcFileName(elementId) is &quot;image-set-2x.png&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesinvalidshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -9,9 +9,10 @@
</span><span class="cx">     addEventListener(&quot;load&quot;, function() {
</span><span class="cx">         for (var i = 1; i &lt;= 9; ++i) {
</span><span class="cx">             elementId = &quot;crash&quot; + i;
</span><del>-            shouldBe('document.getElementById(elementId).clientWidth', '800');
</del><ins>+            shouldBe('document.getElementById(elementId).clientWidth', i == 8 ? '56' : '800');
</ins><span class="cx">             shouldBe('currentSrcFileName(elementId)', '&quot;image-set-2x.png&quot;');
</span><span class="cx">         }
</span><ins>+        
</ins><span class="cx">         elementId = &quot;crash10&quot;;
</span><span class="cx">         shouldBe('document.getElementById(elementId).clientWidth', '1600');
</span><span class="cx">         shouldBe('currentSrcFileName(elementId)', '&quot;image-set-4x.png&quot;');
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c1expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,175 @@
</span><ins>+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS successfullyParsed is true
+Some tests failed.
+
+TEST COMPLETE

+

+

+

+
+                                                                                                              
+
+                                              
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c1html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1.html (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1.html        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,205 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;script src=&quot;../../../../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/currentSrcHelper.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+    if (window.testRunner)
+      testRunner.dumpAsText();
+    
+    addEventListener(&quot;load&quot;, function() {
+     var paragraphs = document.getElementsByTagName('p');
+     for (var i = 0; i &lt; paragraphs.length; ++i) {
+         var p = paragraphs[i]
+         var current = p.firstElementChild;
+                     if (!current) continue
+         var ref_sizes = current.getAttribute('sizes');
+         var expect = p.firstElementChild.currentSrc;
+         if (expect)
+             expect = fileName(expect.split('?')[0]);
+         while (current = current.nextElementSibling) {
+           if (expect === '' || expect === null || expect === undefined)
+             continue
+           var got = current.currentSrc;
+           if (got)
+              got = fileName(got.split('?')[0]);
+            shouldBe('&quot;' + got + '&quot;', '&quot;' + expect + '&quot;');
+         }
+      }
+    })
+&lt;/script&gt;
+&lt;style&gt; img {  } &lt;/style&gt;
+&lt;!-- First &lt;img&gt; in a &lt;p&gt; is the reference. The following &lt;img&gt;s should be equivalent --&gt;
+&lt;!-- default is 100vw, not 300px --&gt;
+&lt;p id=&quot;par&quot;&gt;
+&lt;img srcset='../resources/green-1x1.png?a1 300w, ../resources/green-16x16.png?a1 301w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?a2 300w, ../resources/green-16x16.png?a2 301w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?b1 450w, ../resources/green-16x16.png?b1 451w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?b2 450w, ../resources/green-16x16.png?b2 451w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?c1 600w, ../resources/green-16x16.png?c1 601w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?c2 600w, ../resources/green-16x16.png?c2 601w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?d1 900w, ../resources/green-16x16.png?d1 901w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?d2 900w, ../resources/green-16x16.png?d2 901w'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?e1 50w, ../resources/green-16x16.png?e1 51w' sizes='1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e2 50w, ../resources/green-16x16.png?e2 51w' sizes='0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e3 50w, ../resources/green-16x16.png?e3 51w' sizes='-0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e4 50w, ../resources/green-16x16.png?e4 51w' sizes='+0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e5 50w, ../resources/green-16x16.png?e5 51w' sizes='+1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e6 50w, ../resources/green-16x16.png?e6 51w' sizes='.1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e7 50w, ../resources/green-16x16.png?e7 51w' sizes='0.1em'&gt;
+&lt;img srcset='../resources/green-1x1.png?e8 50w, ../resources/green-16x16.png?e8 51w' sizes='0.1ex'&gt;
+&lt;img srcset='../resources/green-1x1.png?e9 50w, ../resources/green-16x16.png?e9 51w' sizes='0.1ch'&gt;
+&lt;img srcset='../resources/green-1x1.png?e10 50w, ../resources/green-16x16.png?e10 51w' sizes='0.1rem'&gt;
+&lt;img srcset='../resources/green-1x1.png?e11 50w, ../resources/green-16x16.png?e11 51w' sizes='0.1vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e12 50w, ../resources/green-16x16.png?e12 51w' sizes='0.1vh'&gt;
+&lt;img srcset='../resources/green-1x1.png?e13 50w, ../resources/green-16x16.png?e13 51w' sizes='0.1vmin'&gt;
+&lt;img srcset='../resources/green-1x1.png?e14 50w, ../resources/green-16x16.png?e14 51w' sizes='0.1vmax'&gt;
+&lt;img srcset='../resources/green-1x1.png?e15 50w, ../resources/green-16x16.png?e15 51w' sizes='0.1cm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e16 50w, ../resources/green-16x16.png?e16 51w' sizes='1mm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e17 50w, ../resources/green-16x16.png?e17 51w' sizes='1q'&gt;
+&lt;img srcset='../resources/green-1x1.png?e18 50w, ../resources/green-16x16.png?e18 51w' sizes='0.01in'&gt;
+&lt;img srcset='../resources/green-1x1.png?e19 50w, ../resources/green-16x16.png?e19 51w' sizes='0.1pc'&gt;
+&lt;img srcset='../resources/green-1x1.png?e20 50w, ../resources/green-16x16.png?e20 51w' sizes='0.1pt'&gt;
+&lt;img srcset='../resources/green-1x1.png?e21 50w, ../resources/green-16x16.png?e21 51w' sizes='/* */1px/* */'&gt;
+&lt;img srcset='../resources/green-1x1.png?e22 50w, ../resources/green-16x16.png?e22 51w' sizes=' /**/ /**/ 1px /**/ /**/ '&gt;
+&lt;img srcset='../resources/green-1x1.png?e23 50w, ../resources/green-16x16.png?e23 51w' sizes='(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e24 50w, ../resources/green-16x16.png?e24 51w' sizes='x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e25 50w, ../resources/green-16x16.png?e25 51w' sizes='{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e26 50w, ../resources/green-16x16.png?e26 51w' sizes='[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e27 50w, ../resources/green-16x16.png?e27 51w' sizes='1px,('&gt;
+&lt;img srcset='../resources/green-1x1.png?e28 50w, ../resources/green-16x16.png?e28 51w' sizes='1px,x('&gt;
+&lt;img srcset='../resources/green-1x1.png?e29 50w, ../resources/green-16x16.png?e29 51w' sizes='1px,{'&gt;
+&lt;img srcset='../resources/green-1x1.png?e30 50w, ../resources/green-16x16.png?e30 51w' sizes='1px,['&gt;
+&lt;img srcset='../resources/green-1x1.png?e31 50w, ../resources/green-16x16.png?e31 51w' sizes='\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e32 50w, ../resources/green-16x16.png?e32 51w' sizes='x\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e33 50w, ../resources/green-16x16.png?e33 51w' sizes='\{,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e34 50w, ../resources/green-16x16.png?e34 51w' sizes='\[,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e35 50w, ../resources/green-16x16.png?e35 51w' sizes='1\p\x'&gt;
+&lt;img srcset='../resources/green-1x1.png?e36 50w, ../resources/green-16x16.png?e36 51w' sizes='calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e37 50w, ../resources/green-16x16.png?e37 51w' sizes='(min-width:0) calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e38 50w, ../resources/green-16x16.png?e38 51w' sizes='(min-width:calc(0)) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e39 50w, ../resources/green-16x16.png?e39 51w' sizes='(min-width:0) 1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e40 50w, ../resources/green-16x16.png?e40 51w' sizes='(min-width:0) 1px, (min-width:0) 100vw, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e41 50w, ../resources/green-16x16.png?e41 51w' sizes='(min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e42 50w, ../resources/green-16x16.png?e42 51w' sizes='not (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e43 50w, ../resources/green-16x16.png?e43 51w' sizes='(min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e44 50w, ../resources/green-16x16.png?e44 51w' sizes='not (min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e45 50w, ../resources/green-16x16.png?e45 51w' sizes='(min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e46 50w, ../resources/green-16x16.png?e46 51w' sizes='not (min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e47 50w, ../resources/green-16x16.png?e47 51w' sizes='(unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e48 50w, ../resources/green-16x16.png?e48 51w' sizes='not (unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e49 50w, ../resources/green-16x16.png?e49 51w' sizes='(unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e50 50w, ../resources/green-16x16.png?e50 51w' sizes='not (unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e51 50w, ../resources/green-16x16.png?e51 51w' sizes='unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e52 50w, ../resources/green-16x16.png?e52 51w' sizes='not unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e53 50w, ../resources/green-16x16.png?e53 51w' sizes='print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e54 50w, ../resources/green-16x16.png?e54 51w' sizes='not print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e55 50w, ../resources/green-16x16.png?e55 51w' sizes='unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e56 50w, ../resources/green-16x16.png?e56 51w' sizes='not unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e57 50w, ../resources/green-16x16.png?e57 51w' sizes='(min-width:0) or (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e58 50w, ../resources/green-16x16.png?e58 51w' sizes='(min-width:0) or (unknown-mf-name) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e59 50w, ../resources/green-16x16.png?e59 51w' sizes='(min-width:0) or (min-width:unknown-mf-value) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e60 50w, ../resources/green-16x16.png?e60 51w' sizes='(min-width:0) or (min-width:-1px) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e61 50w, ../resources/green-16x16.png?e61 51w' sizes='(min-width:0) or (unknown &quot;general-enclosed&quot;) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e62 50w, ../resources/green-16x16.png?e62 51w' sizes='(min-width:0) or unknown-general-enclosed(foo) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e63 50w, ../resources/green-16x16.png?e63 51w' sizes='(min-width:0) or (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e64 50w, ../resources/green-16x16.png?e64 51w' sizes='(min-width:0) or unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e65 50w, ../resources/green-16x16.png?e65 51w' sizes='(123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e66 50w, ../resources/green-16x16.png?e66 51w' sizes='not (123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e67 50w, ../resources/green-16x16.png?e67 51w' sizes='(!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e68 50w, ../resources/green-16x16.png?e68 51w' sizes='not (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e69 50w, ../resources/green-16x16.png?e69 51w' sizes='! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e70 50w, ../resources/green-16x16.png?e70 51w' sizes='not ! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e71 50w, ../resources/green-16x16.png?e71 51w' sizes='(]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e72 50w, ../resources/green-16x16.png?e72 51w' sizes='not (]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e73 50w, ../resources/green-16x16.png?e73 51w' sizes='] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e74 50w, ../resources/green-16x16.png?e74 51w' sizes='not ] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e75 50w, ../resources/green-16x16.png?e75 51w' sizes='(}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e76 50w, ../resources/green-16x16.png?e76 51w' sizes='not (}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e77 50w, ../resources/green-16x16.png?e77 51w' sizes='} 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e78 50w, ../resources/green-16x16.png?e78 51w' sizes='not } 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e79 50w, ../resources/green-16x16.png?e79 51w' sizes=') 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e80 50w, ../resources/green-16x16.png?e80 51w' sizes='not ) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e81 50w, ../resources/green-16x16.png?e81 51w' sizes='(;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e82 50w, ../resources/green-16x16.png?e82 51w' sizes='not (;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e83 50w, ../resources/green-16x16.png?e83 51w' sizes='(.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e84 50w, ../resources/green-16x16.png?e84 51w' sizes='not (.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e85 50w, ../resources/green-16x16.png?e85 51w' sizes='; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e86 50w, ../resources/green-16x16.png?e86 51w' sizes='not ; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e87 50w, ../resources/green-16x16.png?e87 51w' sizes=', 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e88 50w, ../resources/green-16x16.png?e88 51w' sizes='1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e89 50w, ../resources/green-16x16.png?e89 51w' sizes='(min-width:0) 1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e90 50w, ../resources/green-16x16.png?e90 51w' sizes='-0e-0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e91 50w, ../resources/green-16x16.png?e91 51w' sizes='+0.11e+01px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e92 50w, ../resources/green-16x16.png?e92 51w' sizes='0.2e1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e93 50w, ../resources/green-16x16.png?e93 51w' sizes='0.3E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e94 50w, ../resources/green-16x16.png?e94 51w' sizes='.4E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e95 50w, ../resources/green-16x16.png?e95 51w' sizes='all 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e96 50w, ../resources/green-16x16.png?e96 51w' sizes='all and (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e97 50w, ../resources/green-16x16.png?e97 51w' sizes='min-width:0 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e98 50w, ../resources/green-16x16.png?e98 51w' sizes='1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e99 50w, ../resources/green-16x16.png?e99 51w' sizes='1px, (min-width:0) 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e100 50w, ../resources/green-16x16.png?e100 51w' sizes='1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e101 50w, ../resources/green-16x16.png?e101 51w' sizes='(min-width:0) 1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e102 50w, ../resources/green-16x16.png?e102 51w' sizes='(&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e103 50w, ../resources/green-16x16.png?e103 51w' sizes='not (&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e104 50w, ../resources/green-16x16.png?e104 51w' sizes='(unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e105 50w, ../resources/green-16x16.png?e105 51w' sizes='not (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e106 50w, ../resources/green-16x16.png?e106 51w' sizes='(min-width:0) or (unknown-general-enclosed !) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e107 50w, ../resources/green-16x16.png?e107 51w' sizes='not ((min-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e108 50w, ../resources/green-16x16.png?e108 51w' sizes='(max-width:0) or (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e109 50w, ../resources/green-16x16.png?e109 51w' sizes='not ((max-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f48 50w, ../resources/green-16x16.png?f48 51w' sizes='calc(1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f49 50w, ../resources/green-16x16.png?f49 51w' sizes='(min-width:0) calc(1px'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?f1 50w, ../resources/green-16x16.png?f1 51w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?f2 50w, ../resources/green-16x16.png?f2 51w' sizes=''&gt;
+&lt;img srcset='../resources/green-1x1.png?f3 50w, ../resources/green-16x16.png?f3 51w' sizes=','&gt;
+&lt;img srcset='../resources/green-1x1.png?f4 50w, ../resources/green-16x16.png?f4 51w' sizes='-1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f5 50w, ../resources/green-16x16.png?f5 51w' sizes='1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f6 50w, ../resources/green-16x16.png?f6 51w' sizes='0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f7 50w, ../resources/green-16x16.png?f7 51w' sizes='0.1deg'&gt;
+&lt;img srcset='../resources/green-1x1.png?f8 50w, ../resources/green-16x16.png?f8 51w' sizes='0.1grad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f9 50w, ../resources/green-16x16.png?f9 51w' sizes='0.1rad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f10 50w, ../resources/green-16x16.png?f10 51w' sizes='0.1turn'&gt;
+&lt;img srcset='../resources/green-1x1.png?f11 50w, ../resources/green-16x16.png?f11 51w' sizes='0.1s'&gt;
+&lt;img srcset='../resources/green-1x1.png?f12 50w, ../resources/green-16x16.png?f12 51w' sizes='0.1ms'&gt;
+&lt;img srcset='../resources/green-1x1.png?f13 50w, ../resources/green-16x16.png?f13 51w' sizes='0.1Hz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f14 50w, ../resources/green-16x16.png?f14 51w' sizes='0.1kHz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f15 50w, ../resources/green-16x16.png?f15 51w' sizes='0.1dpi'&gt;
+&lt;img srcset='../resources/green-1x1.png?f16 50w, ../resources/green-16x16.png?f16 51w' sizes='0.1dpcm'&gt;
+&lt;img srcset='../resources/green-1x1.png?f17 50w, ../resources/green-16x16.png?f17 51w' sizes='0.1dppx'&gt;
+&lt;img srcset='../resources/green-1x1.png?f18 50w, ../resources/green-16x16.png?f18 51w' data-foo='1px' sizes='attr(data-foo, length, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f19 50w, ../resources/green-16x16.png?f19 51w' data-foo='1' sizes='attr(data-foo, px, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f20 50w, ../resources/green-16x16.png?f20 51w' sizes='toggle(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f21 50w, ../resources/green-16x16.png?f21 51w' sizes='inherit'&gt;
+&lt;img srcset='../resources/green-1x1.png?f22 50w, ../resources/green-16x16.png?f22 51w' sizes='auto'&gt;
+&lt;img srcset='../resources/green-1x1.png?f23 50w, ../resources/green-16x16.png?f23 51w' sizes='initial'&gt;
+&lt;img srcset='../resources/green-1x1.png?f24 50w, ../resources/green-16x16.png?f24 51w' sizes='unset'&gt;
+&lt;img srcset='../resources/green-1x1.png?f25 50w, ../resources/green-16x16.png?f25 51w' sizes='default'&gt;
+&lt;img srcset='../resources/green-1x1.png?f26 50w, ../resources/green-16x16.png?f26 51w' sizes='1/* */px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f27 50w, ../resources/green-16x16.png?f27 51w' sizes='1p/* */x'&gt;
+&lt;img srcset='../resources/green-1x1.png?f28 50w, ../resources/green-16x16.png?f28 51w' sizes='-/**/0'&gt;
+&lt;img srcset='../resources/green-1x1.png?f29 50w, ../resources/green-16x16.png?f29 51w' sizes='((),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f30 50w, ../resources/green-16x16.png?f30 51w' sizes='x(x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f31 50w, ../resources/green-16x16.png?f31 51w' sizes='{{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f32 50w, ../resources/green-16x16.png?f32 51w' sizes='[[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f33 50w, ../resources/green-16x16.png?f33 51w' sizes='1px !important'&gt;
+&lt;img srcset='../resources/green-1x1.png?f34 50w, ../resources/green-16x16.png?f34 51w' sizes='\1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f35 50w, ../resources/green-16x16.png?f35 51w' sizes='all 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f36 50w, ../resources/green-16x16.png?f36 51w' sizes='all and (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f37 50w, ../resources/green-16x16.png?f37 51w' sizes='min-width:0 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f38 50w, ../resources/green-16x16.png?f38 51w' sizes='100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f39 50w, ../resources/green-16x16.png?f39 51w' sizes='100vw, (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f40 50w, ../resources/green-16x16.png?f40 51w' sizes='foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f41 50w, ../resources/green-16x16.png?f41 51w' sizes='foo-bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f42 50w, ../resources/green-16x16.png?f42 51w' sizes='(min-width:0) 1px foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f43 50w, ../resources/green-16x16.png?f43 51w' sizes='(min-width:0) 0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f44 50w, ../resources/green-16x16.png?f44 51w' sizes='(min-width:0) 1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f45 50w, ../resources/green-16x16.png?f45 51w' sizes='-1e0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f46 50w, ../resources/green-16x16.png?f46 51w' sizes='1e1.5px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f47 50w, ../resources/green-16x16.png?f47 51w' style='--foo: 1px' sizes='var(--foo)'&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c2expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,175 @@
</span><ins>+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS successfullyParsed is true
+Some tests failed.
+
+TEST COMPLETE

+

+

+

+
+                                                                                                              
+
+                                              
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c2html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2.html (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2.html        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,206 @@
</span><ins>+&lt;!----&gt;
+&lt;script src=&quot;../../../../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/currentSrcHelper.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+    if (window.testRunner)
+    testRunner.dumpAsText();
+    
+    addEventListener(&quot;load&quot;, function() {
+                     var paragraphs = document.getElementsByTagName('p');
+                     for (var i = 0; i &lt; paragraphs.length; ++i) {
+                     var p = paragraphs[i]
+                     var current = p.firstElementChild;
+                     if (!current) continue
+                     var ref_sizes = current.getAttribute('sizes');
+                     var expect = p.firstElementChild.currentSrc;
+                     if (expect)
+                     expect = fileName(expect.split('?')[0]);
+                     while (current = current.nextElementSibling) {
+                     if (expect === '' || expect === null || expect === undefined)
+                     continue
+                     var got = current.currentSrc;
+                     if (got)
+                     got = fileName(got.split('?')[0]);
+                     shouldBe('&quot;' + got + '&quot;', '&quot;' + expect + '&quot;');
+                     }
+                     }
+                     })
+    &lt;/script&gt;
+
+&lt;style&gt; img {  } &lt;/style&gt;
+&lt;!-- First &lt;img&gt; in a &lt;p&gt; is the reference. The following &lt;img&gt;s should be equivalent --&gt;
+&lt;!-- default is 100vw, not 300px --&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?a1 300w, ../resources/green-16x16.png?a1 301w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?a2 300w, ../resources/green-16x16.png?a2 301w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?b1 450w, ../resources/green-16x16.png?b1 451w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?b2 450w, ../resources/green-16x16.png?b2 451w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?c1 600w, ../resources/green-16x16.png?c1 601w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?c2 600w, ../resources/green-16x16.png?c2 601w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?d1 900w, ../resources/green-16x16.png?d1 901w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?d2 900w, ../resources/green-16x16.png?d2 901w'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?e1 50w, ../resources/green-16x16.png?e1 51w' sizes='1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e2 50w, ../resources/green-16x16.png?e2 51w' sizes='0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e3 50w, ../resources/green-16x16.png?e3 51w' sizes='-0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e4 50w, ../resources/green-16x16.png?e4 51w' sizes='+0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e5 50w, ../resources/green-16x16.png?e5 51w' sizes='+1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e6 50w, ../resources/green-16x16.png?e6 51w' sizes='.1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e7 50w, ../resources/green-16x16.png?e7 51w' sizes='0.1em'&gt;
+&lt;img srcset='../resources/green-1x1.png?e8 50w, ../resources/green-16x16.png?e8 51w' sizes='0.1ex'&gt;
+&lt;img srcset='../resources/green-1x1.png?e9 50w, ../resources/green-16x16.png?e9 51w' sizes='0.1ch'&gt;
+&lt;img srcset='../resources/green-1x1.png?e10 50w, ../resources/green-16x16.png?e10 51w' sizes='0.1rem'&gt;
+&lt;img srcset='../resources/green-1x1.png?e11 50w, ../resources/green-16x16.png?e11 51w' sizes='0.1vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e12 50w, ../resources/green-16x16.png?e12 51w' sizes='0.1vh'&gt;
+&lt;img srcset='../resources/green-1x1.png?e13 50w, ../resources/green-16x16.png?e13 51w' sizes='0.1vmin'&gt;
+&lt;img srcset='../resources/green-1x1.png?e14 50w, ../resources/green-16x16.png?e14 51w' sizes='0.1vmax'&gt;
+&lt;img srcset='../resources/green-1x1.png?e15 50w, ../resources/green-16x16.png?e15 51w' sizes='0.1cm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e16 50w, ../resources/green-16x16.png?e16 51w' sizes='1mm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e17 50w, ../resources/green-16x16.png?e17 51w' sizes='1q'&gt;
+&lt;img srcset='../resources/green-1x1.png?e18 50w, ../resources/green-16x16.png?e18 51w' sizes='0.01in'&gt;
+&lt;img srcset='../resources/green-1x1.png?e19 50w, ../resources/green-16x16.png?e19 51w' sizes='0.1pc'&gt;
+&lt;img srcset='../resources/green-1x1.png?e20 50w, ../resources/green-16x16.png?e20 51w' sizes='0.1pt'&gt;
+&lt;img srcset='../resources/green-1x1.png?e21 50w, ../resources/green-16x16.png?e21 51w' sizes='/* */1px/* */'&gt;
+&lt;img srcset='../resources/green-1x1.png?e22 50w, ../resources/green-16x16.png?e22 51w' sizes=' /**/ /**/ 1px /**/ /**/ '&gt;
+&lt;img srcset='../resources/green-1x1.png?e23 50w, ../resources/green-16x16.png?e23 51w' sizes='(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e24 50w, ../resources/green-16x16.png?e24 51w' sizes='x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e25 50w, ../resources/green-16x16.png?e25 51w' sizes='{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e26 50w, ../resources/green-16x16.png?e26 51w' sizes='[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e27 50w, ../resources/green-16x16.png?e27 51w' sizes='1px,('&gt;
+&lt;img srcset='../resources/green-1x1.png?e28 50w, ../resources/green-16x16.png?e28 51w' sizes='1px,x('&gt;
+&lt;img srcset='../resources/green-1x1.png?e29 50w, ../resources/green-16x16.png?e29 51w' sizes='1px,{'&gt;
+&lt;img srcset='../resources/green-1x1.png?e30 50w, ../resources/green-16x16.png?e30 51w' sizes='1px,['&gt;
+&lt;img srcset='../resources/green-1x1.png?e31 50w, ../resources/green-16x16.png?e31 51w' sizes='\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e32 50w, ../resources/green-16x16.png?e32 51w' sizes='x\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e33 50w, ../resources/green-16x16.png?e33 51w' sizes='\{,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e34 50w, ../resources/green-16x16.png?e34 51w' sizes='\[,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e35 50w, ../resources/green-16x16.png?e35 51w' sizes='1\p\x'&gt;
+&lt;img srcset='../resources/green-1x1.png?e36 50w, ../resources/green-16x16.png?e36 51w' sizes='calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e37 50w, ../resources/green-16x16.png?e37 51w' sizes='(min-width:0) calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e38 50w, ../resources/green-16x16.png?e38 51w' sizes='(min-width:calc(0)) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e39 50w, ../resources/green-16x16.png?e39 51w' sizes='(min-width:0) 1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e40 50w, ../resources/green-16x16.png?e40 51w' sizes='(min-width:0) 1px, (min-width:0) 100vw, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e41 50w, ../resources/green-16x16.png?e41 51w' sizes='(min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e42 50w, ../resources/green-16x16.png?e42 51w' sizes='not (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e43 50w, ../resources/green-16x16.png?e43 51w' sizes='(min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e44 50w, ../resources/green-16x16.png?e44 51w' sizes='not (min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e45 50w, ../resources/green-16x16.png?e45 51w' sizes='(min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e46 50w, ../resources/green-16x16.png?e46 51w' sizes='not (min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e47 50w, ../resources/green-16x16.png?e47 51w' sizes='(unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e48 50w, ../resources/green-16x16.png?e48 51w' sizes='not (unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e49 50w, ../resources/green-16x16.png?e49 51w' sizes='(unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e50 50w, ../resources/green-16x16.png?e50 51w' sizes='not (unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e51 50w, ../resources/green-16x16.png?e51 51w' sizes='unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e52 50w, ../resources/green-16x16.png?e52 51w' sizes='not unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e53 50w, ../resources/green-16x16.png?e53 51w' sizes='print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e54 50w, ../resources/green-16x16.png?e54 51w' sizes='not print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e55 50w, ../resources/green-16x16.png?e55 51w' sizes='unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e56 50w, ../resources/green-16x16.png?e56 51w' sizes='not unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e57 50w, ../resources/green-16x16.png?e57 51w' sizes='(min-width:0) or (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e58 50w, ../resources/green-16x16.png?e58 51w' sizes='(min-width:0) or (unknown-mf-name) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e59 50w, ../resources/green-16x16.png?e59 51w' sizes='(min-width:0) or (min-width:unknown-mf-value) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e60 50w, ../resources/green-16x16.png?e60 51w' sizes='(min-width:0) or (min-width:-1px) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e61 50w, ../resources/green-16x16.png?e61 51w' sizes='(min-width:0) or (unknown &quot;general-enclosed&quot;) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e62 50w, ../resources/green-16x16.png?e62 51w' sizes='(min-width:0) or unknown-general-enclosed(foo) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e63 50w, ../resources/green-16x16.png?e63 51w' sizes='(min-width:0) or (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e64 50w, ../resources/green-16x16.png?e64 51w' sizes='(min-width:0) or unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e65 50w, ../resources/green-16x16.png?e65 51w' sizes='(123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e66 50w, ../resources/green-16x16.png?e66 51w' sizes='not (123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e67 50w, ../resources/green-16x16.png?e67 51w' sizes='(!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e68 50w, ../resources/green-16x16.png?e68 51w' sizes='not (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e69 50w, ../resources/green-16x16.png?e69 51w' sizes='! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e70 50w, ../resources/green-16x16.png?e70 51w' sizes='not ! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e71 50w, ../resources/green-16x16.png?e71 51w' sizes='(]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e72 50w, ../resources/green-16x16.png?e72 51w' sizes='not (]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e73 50w, ../resources/green-16x16.png?e73 51w' sizes='] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e74 50w, ../resources/green-16x16.png?e74 51w' sizes='not ] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e75 50w, ../resources/green-16x16.png?e75 51w' sizes='(}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e76 50w, ../resources/green-16x16.png?e76 51w' sizes='not (}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e77 50w, ../resources/green-16x16.png?e77 51w' sizes='} 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e78 50w, ../resources/green-16x16.png?e78 51w' sizes='not } 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e79 50w, ../resources/green-16x16.png?e79 51w' sizes=') 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e80 50w, ../resources/green-16x16.png?e80 51w' sizes='not ) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e81 50w, ../resources/green-16x16.png?e81 51w' sizes='(;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e82 50w, ../resources/green-16x16.png?e82 51w' sizes='not (;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e83 50w, ../resources/green-16x16.png?e83 51w' sizes='(.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e84 50w, ../resources/green-16x16.png?e84 51w' sizes='not (.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e85 50w, ../resources/green-16x16.png?e85 51w' sizes='; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e86 50w, ../resources/green-16x16.png?e86 51w' sizes='not ; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e87 50w, ../resources/green-16x16.png?e87 51w' sizes=', 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e88 50w, ../resources/green-16x16.png?e88 51w' sizes='1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e89 50w, ../resources/green-16x16.png?e89 51w' sizes='(min-width:0) 1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e90 50w, ../resources/green-16x16.png?e90 51w' sizes='-0e-0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e91 50w, ../resources/green-16x16.png?e91 51w' sizes='+0.11e+01px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e92 50w, ../resources/green-16x16.png?e92 51w' sizes='0.2e1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e93 50w, ../resources/green-16x16.png?e93 51w' sizes='0.3E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e94 50w, ../resources/green-16x16.png?e94 51w' sizes='.4E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e95 50w, ../resources/green-16x16.png?e95 51w' sizes='all 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e96 50w, ../resources/green-16x16.png?e96 51w' sizes='all and (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e97 50w, ../resources/green-16x16.png?e97 51w' sizes='min-width:0 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e98 50w, ../resources/green-16x16.png?e98 51w' sizes='1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e99 50w, ../resources/green-16x16.png?e99 51w' sizes='1px, (min-width:0) 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e100 50w, ../resources/green-16x16.png?e100 51w' sizes='1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e101 50w, ../resources/green-16x16.png?e101 51w' sizes='(min-width:0) 1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e102 50w, ../resources/green-16x16.png?e102 51w' sizes='(&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e103 50w, ../resources/green-16x16.png?e103 51w' sizes='not (&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e104 50w, ../resources/green-16x16.png?e104 51w' sizes='(unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e105 50w, ../resources/green-16x16.png?e105 51w' sizes='not (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e106 50w, ../resources/green-16x16.png?e106 51w' sizes='(min-width:0) or (unknown-general-enclosed !) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e107 50w, ../resources/green-16x16.png?e107 51w' sizes='not ((min-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e108 50w, ../resources/green-16x16.png?e108 51w' sizes='(max-width:0) or (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e109 50w, ../resources/green-16x16.png?e109 51w' sizes='not ((max-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f48 50w, ../resources/green-16x16.png?f48 51w' sizes='calc(1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f49 50w, ../resources/green-16x16.png?f49 51w' sizes='(min-width:0) calc(1px'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?f1 50w, ../resources/green-16x16.png?f1 51w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?f2 50w, ../resources/green-16x16.png?f2 51w' sizes=''&gt;
+&lt;img srcset='../resources/green-1x1.png?f3 50w, ../resources/green-16x16.png?f3 51w' sizes=','&gt;
+&lt;img srcset='../resources/green-1x1.png?f4 50w, ../resources/green-16x16.png?f4 51w' sizes='-1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f5 50w, ../resources/green-16x16.png?f5 51w' sizes='1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f6 50w, ../resources/green-16x16.png?f6 51w' sizes='0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f7 50w, ../resources/green-16x16.png?f7 51w' sizes='0.1deg'&gt;
+&lt;img srcset='../resources/green-1x1.png?f8 50w, ../resources/green-16x16.png?f8 51w' sizes='0.1grad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f9 50w, ../resources/green-16x16.png?f9 51w' sizes='0.1rad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f10 50w, ../resources/green-16x16.png?f10 51w' sizes='0.1turn'&gt;
+&lt;img srcset='../resources/green-1x1.png?f11 50w, ../resources/green-16x16.png?f11 51w' sizes='0.1s'&gt;
+&lt;img srcset='../resources/green-1x1.png?f12 50w, ../resources/green-16x16.png?f12 51w' sizes='0.1ms'&gt;
+&lt;img srcset='../resources/green-1x1.png?f13 50w, ../resources/green-16x16.png?f13 51w' sizes='0.1Hz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f14 50w, ../resources/green-16x16.png?f14 51w' sizes='0.1kHz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f15 50w, ../resources/green-16x16.png?f15 51w' sizes='0.1dpi'&gt;
+&lt;img srcset='../resources/green-1x1.png?f16 50w, ../resources/green-16x16.png?f16 51w' sizes='0.1dpcm'&gt;
+&lt;img srcset='../resources/green-1x1.png?f17 50w, ../resources/green-16x16.png?f17 51w' sizes='0.1dppx'&gt;
+&lt;img srcset='../resources/green-1x1.png?f18 50w, ../resources/green-16x16.png?f18 51w' data-foo='1px' sizes='attr(data-foo, length, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f19 50w, ../resources/green-16x16.png?f19 51w' data-foo='1' sizes='attr(data-foo, px, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f20 50w, ../resources/green-16x16.png?f20 51w' sizes='toggle(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f21 50w, ../resources/green-16x16.png?f21 51w' sizes='inherit'&gt;
+&lt;img srcset='../resources/green-1x1.png?f22 50w, ../resources/green-16x16.png?f22 51w' sizes='auto'&gt;
+&lt;img srcset='../resources/green-1x1.png?f23 50w, ../resources/green-16x16.png?f23 51w' sizes='initial'&gt;
+&lt;img srcset='../resources/green-1x1.png?f24 50w, ../resources/green-16x16.png?f24 51w' sizes='unset'&gt;
+&lt;img srcset='../resources/green-1x1.png?f25 50w, ../resources/green-16x16.png?f25 51w' sizes='default'&gt;
+&lt;img srcset='../resources/green-1x1.png?f26 50w, ../resources/green-16x16.png?f26 51w' sizes='1/* */px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f27 50w, ../resources/green-16x16.png?f27 51w' sizes='1p/* */x'&gt;
+&lt;img srcset='../resources/green-1x1.png?f28 50w, ../resources/green-16x16.png?f28 51w' sizes='-/**/0'&gt;
+&lt;img srcset='../resources/green-1x1.png?f29 50w, ../resources/green-16x16.png?f29 51w' sizes='((),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f30 50w, ../resources/green-16x16.png?f30 51w' sizes='x(x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f31 50w, ../resources/green-16x16.png?f31 51w' sizes='{{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f32 50w, ../resources/green-16x16.png?f32 51w' sizes='[[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f33 50w, ../resources/green-16x16.png?f33 51w' sizes='1px !important'&gt;
+&lt;img srcset='../resources/green-1x1.png?f34 50w, ../resources/green-16x16.png?f34 51w' sizes='\1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f35 50w, ../resources/green-16x16.png?f35 51w' sizes='all 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f36 50w, ../resources/green-16x16.png?f36 51w' sizes='all and (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f37 50w, ../resources/green-16x16.png?f37 51w' sizes='min-width:0 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f38 50w, ../resources/green-16x16.png?f38 51w' sizes='100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f39 50w, ../resources/green-16x16.png?f39 51w' sizes='100vw, (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f40 50w, ../resources/green-16x16.png?f40 51w' sizes='foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f41 50w, ../resources/green-16x16.png?f41 51w' sizes='foo-bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f42 50w, ../resources/green-16x16.png?f42 51w' sizes='(min-width:0) 1px foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f43 50w, ../resources/green-16x16.png?f43 51w' sizes='(min-width:0) 0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f44 50w, ../resources/green-16x16.png?f44 51w' sizes='(min-width:0) 1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f45 50w, ../resources/green-16x16.png?f45 51w' sizes='-1e0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f46 50w, ../resources/green-16x16.png?f46 51w' sizes='1e1.5px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f47 50w, ../resources/green-16x16.png?f47 51w' style='--foo: 1px' sizes='var(--foo)'&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c3expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,165 @@
</span><ins>+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS successfullyParsed is true
+Some tests failed.
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c3html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3.html (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3.html        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,206 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;script src=&quot;../../../../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/currentSrcHelper.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+    if (window.testRunner)
+    testRunner.dumpAsText();
+    
+    addEventListener(&quot;load&quot;, function() {
+                     var paragraphs = document.getElementsByTagName('p');
+                     for (var i = 0; i &lt; paragraphs.length; ++i) {
+                     var p = paragraphs[i]
+                     var current = p.firstElementChild;
+                     if (!current) continue
+                     var ref_sizes = current.getAttribute('sizes');
+                     var expect = p.firstElementChild.currentSrc;
+                     if (expect)
+                     expect = fileName(expect.split('?')[0]);
+                     while (current = current.nextElementSibling) {
+                     if (expect === '' || expect === null || expect === undefined)
+                     continue
+                     var got = current.currentSrc;
+                     if (got)
+                     got = fileName(got.split('?')[0]);
+                     shouldBe('&quot;' + got + '&quot;', '&quot;' + expect + '&quot;');
+                     }
+                     }
+                     })
+    &lt;/script&gt;
+
+&lt;style&gt; img { display:none } &lt;/style&gt;
+&lt;!-- First &lt;img&gt; in a &lt;p&gt; is the reference. The following &lt;img&gt;s should be equivalent --&gt;
+&lt;!-- default is 100vw, not 300px --&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?a1 300w, ../resources/green-16x16.png?a1 301w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?a2 300w, ../resources/green-16x16.png?a2 301w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?b1 450w, ../resources/green-16x16.png?b1 451w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?b2 450w, ../resources/green-16x16.png?b2 451w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?c1 600w, ../resources/green-16x16.png?c1 601w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?c2 600w, ../resources/green-16x16.png?c2 601w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?d1 900w, ../resources/green-16x16.png?d1 901w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?d2 900w, ../resources/green-16x16.png?d2 901w'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?e1 50w, ../resources/green-16x16.png?e1 51w' sizes='1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e2 50w, ../resources/green-16x16.png?e2 51w' sizes='0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e3 50w, ../resources/green-16x16.png?e3 51w' sizes='-0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e4 50w, ../resources/green-16x16.png?e4 51w' sizes='+0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e5 50w, ../resources/green-16x16.png?e5 51w' sizes='+1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e6 50w, ../resources/green-16x16.png?e6 51w' sizes='.1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e7 50w, ../resources/green-16x16.png?e7 51w' sizes='0.1em'&gt;
+&lt;img srcset='../resources/green-1x1.png?e8 50w, ../resources/green-16x16.png?e8 51w' sizes='0.1ex'&gt;
+&lt;img srcset='../resources/green-1x1.png?e9 50w, ../resources/green-16x16.png?e9 51w' sizes='0.1ch'&gt;
+&lt;img srcset='../resources/green-1x1.png?e10 50w, ../resources/green-16x16.png?e10 51w' sizes='0.1rem'&gt;
+&lt;img srcset='../resources/green-1x1.png?e11 50w, ../resources/green-16x16.png?e11 51w' sizes='0.1vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e12 50w, ../resources/green-16x16.png?e12 51w' sizes='0.1vh'&gt;
+&lt;img srcset='../resources/green-1x1.png?e13 50w, ../resources/green-16x16.png?e13 51w' sizes='0.1vmin'&gt;
+&lt;img srcset='../resources/green-1x1.png?e14 50w, ../resources/green-16x16.png?e14 51w' sizes='0.1vmax'&gt;
+&lt;img srcset='../resources/green-1x1.png?e15 50w, ../resources/green-16x16.png?e15 51w' sizes='0.1cm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e16 50w, ../resources/green-16x16.png?e16 51w' sizes='1mm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e17 50w, ../resources/green-16x16.png?e17 51w' sizes='1q'&gt;
+&lt;img srcset='../resources/green-1x1.png?e18 50w, ../resources/green-16x16.png?e18 51w' sizes='0.01in'&gt;
+&lt;img srcset='../resources/green-1x1.png?e19 50w, ../resources/green-16x16.png?e19 51w' sizes='0.1pc'&gt;
+&lt;img srcset='../resources/green-1x1.png?e20 50w, ../resources/green-16x16.png?e20 51w' sizes='0.1pt'&gt;
+&lt;img srcset='../resources/green-1x1.png?e21 50w, ../resources/green-16x16.png?e21 51w' sizes='/* */1px/* */'&gt;
+&lt;img srcset='../resources/green-1x1.png?e22 50w, ../resources/green-16x16.png?e22 51w' sizes=' /**/ /**/ 1px /**/ /**/ '&gt;
+&lt;img srcset='../resources/green-1x1.png?e23 50w, ../resources/green-16x16.png?e23 51w' sizes='(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e24 50w, ../resources/green-16x16.png?e24 51w' sizes='x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e25 50w, ../resources/green-16x16.png?e25 51w' sizes='{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e26 50w, ../resources/green-16x16.png?e26 51w' sizes='[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e27 50w, ../resources/green-16x16.png?e27 51w' sizes='1px,('&gt;
+&lt;img srcset='../resources/green-1x1.png?e28 50w, ../resources/green-16x16.png?e28 51w' sizes='1px,x('&gt;
+&lt;img srcset='../resources/green-1x1.png?e29 50w, ../resources/green-16x16.png?e29 51w' sizes='1px,{'&gt;
+&lt;img srcset='../resources/green-1x1.png?e30 50w, ../resources/green-16x16.png?e30 51w' sizes='1px,['&gt;
+&lt;img srcset='../resources/green-1x1.png?e31 50w, ../resources/green-16x16.png?e31 51w' sizes='\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e32 50w, ../resources/green-16x16.png?e32 51w' sizes='x\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e33 50w, ../resources/green-16x16.png?e33 51w' sizes='\{,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e34 50w, ../resources/green-16x16.png?e34 51w' sizes='\[,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e35 50w, ../resources/green-16x16.png?e35 51w' sizes='1\p\x'&gt;
+&lt;img srcset='../resources/green-1x1.png?e36 50w, ../resources/green-16x16.png?e36 51w' sizes='calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e37 50w, ../resources/green-16x16.png?e37 51w' sizes='(min-width:0) calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e38 50w, ../resources/green-16x16.png?e38 51w' sizes='(min-width:calc(0)) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e39 50w, ../resources/green-16x16.png?e39 51w' sizes='(min-width:0) 1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e40 50w, ../resources/green-16x16.png?e40 51w' sizes='(min-width:0) 1px, (min-width:0) 100vw, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e41 50w, ../resources/green-16x16.png?e41 51w' sizes='(min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e42 50w, ../resources/green-16x16.png?e42 51w' sizes='not (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e43 50w, ../resources/green-16x16.png?e43 51w' sizes='(min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e44 50w, ../resources/green-16x16.png?e44 51w' sizes='not (min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e45 50w, ../resources/green-16x16.png?e45 51w' sizes='(min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e46 50w, ../resources/green-16x16.png?e46 51w' sizes='not (min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e47 50w, ../resources/green-16x16.png?e47 51w' sizes='(unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e48 50w, ../resources/green-16x16.png?e48 51w' sizes='not (unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e49 50w, ../resources/green-16x16.png?e49 51w' sizes='(unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e50 50w, ../resources/green-16x16.png?e50 51w' sizes='not (unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e51 50w, ../resources/green-16x16.png?e51 51w' sizes='unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e52 50w, ../resources/green-16x16.png?e52 51w' sizes='not unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e53 50w, ../resources/green-16x16.png?e53 51w' sizes='print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e54 50w, ../resources/green-16x16.png?e54 51w' sizes='not print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e55 50w, ../resources/green-16x16.png?e55 51w' sizes='unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e56 50w, ../resources/green-16x16.png?e56 51w' sizes='not unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e57 50w, ../resources/green-16x16.png?e57 51w' sizes='(min-width:0) or (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e58 50w, ../resources/green-16x16.png?e58 51w' sizes='(min-width:0) or (unknown-mf-name) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e59 50w, ../resources/green-16x16.png?e59 51w' sizes='(min-width:0) or (min-width:unknown-mf-value) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e60 50w, ../resources/green-16x16.png?e60 51w' sizes='(min-width:0) or (min-width:-1px) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e61 50w, ../resources/green-16x16.png?e61 51w' sizes='(min-width:0) or (unknown &quot;general-enclosed&quot;) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e62 50w, ../resources/green-16x16.png?e62 51w' sizes='(min-width:0) or unknown-general-enclosed(foo) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e63 50w, ../resources/green-16x16.png?e63 51w' sizes='(min-width:0) or (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e64 50w, ../resources/green-16x16.png?e64 51w' sizes='(min-width:0) or unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e65 50w, ../resources/green-16x16.png?e65 51w' sizes='(123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e66 50w, ../resources/green-16x16.png?e66 51w' sizes='not (123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e67 50w, ../resources/green-16x16.png?e67 51w' sizes='(!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e68 50w, ../resources/green-16x16.png?e68 51w' sizes='not (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e69 50w, ../resources/green-16x16.png?e69 51w' sizes='! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e70 50w, ../resources/green-16x16.png?e70 51w' sizes='not ! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e71 50w, ../resources/green-16x16.png?e71 51w' sizes='(]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e72 50w, ../resources/green-16x16.png?e72 51w' sizes='not (]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e73 50w, ../resources/green-16x16.png?e73 51w' sizes='] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e74 50w, ../resources/green-16x16.png?e74 51w' sizes='not ] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e75 50w, ../resources/green-16x16.png?e75 51w' sizes='(}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e76 50w, ../resources/green-16x16.png?e76 51w' sizes='not (}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e77 50w, ../resources/green-16x16.png?e77 51w' sizes='} 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e78 50w, ../resources/green-16x16.png?e78 51w' sizes='not } 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e79 50w, ../resources/green-16x16.png?e79 51w' sizes=') 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e80 50w, ../resources/green-16x16.png?e80 51w' sizes='not ) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e81 50w, ../resources/green-16x16.png?e81 51w' sizes='(;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e82 50w, ../resources/green-16x16.png?e82 51w' sizes='not (;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e83 50w, ../resources/green-16x16.png?e83 51w' sizes='(.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e84 50w, ../resources/green-16x16.png?e84 51w' sizes='not (.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e85 50w, ../resources/green-16x16.png?e85 51w' sizes='; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e86 50w, ../resources/green-16x16.png?e86 51w' sizes='not ; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e87 50w, ../resources/green-16x16.png?e87 51w' sizes=', 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e88 50w, ../resources/green-16x16.png?e88 51w' sizes='1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e89 50w, ../resources/green-16x16.png?e89 51w' sizes='(min-width:0) 1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e90 50w, ../resources/green-16x16.png?e90 51w' sizes='-0e-0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e91 50w, ../resources/green-16x16.png?e91 51w' sizes='+0.11e+01px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e92 50w, ../resources/green-16x16.png?e92 51w' sizes='0.2e1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e93 50w, ../resources/green-16x16.png?e93 51w' sizes='0.3E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e94 50w, ../resources/green-16x16.png?e94 51w' sizes='.4E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e95 50w, ../resources/green-16x16.png?e95 51w' sizes='all 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e96 50w, ../resources/green-16x16.png?e96 51w' sizes='all and (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e97 50w, ../resources/green-16x16.png?e97 51w' sizes='min-width:0 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e98 50w, ../resources/green-16x16.png?e98 51w' sizes='1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e99 50w, ../resources/green-16x16.png?e99 51w' sizes='1px, (min-width:0) 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e100 50w, ../resources/green-16x16.png?e100 51w' sizes='1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e101 50w, ../resources/green-16x16.png?e101 51w' sizes='(min-width:0) 1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e102 50w, ../resources/green-16x16.png?e102 51w' sizes='(&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e103 50w, ../resources/green-16x16.png?e103 51w' sizes='not (&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e104 50w, ../resources/green-16x16.png?e104 51w' sizes='(unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e105 50w, ../resources/green-16x16.png?e105 51w' sizes='not (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e106 50w, ../resources/green-16x16.png?e106 51w' sizes='(min-width:0) or (unknown-general-enclosed !) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e107 50w, ../resources/green-16x16.png?e107 51w' sizes='not ((min-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e108 50w, ../resources/green-16x16.png?e108 51w' sizes='(max-width:0) or (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e109 50w, ../resources/green-16x16.png?e109 51w' sizes='not ((max-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f48 50w, ../resources/green-16x16.png?f48 51w' sizes='calc(1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f49 50w, ../resources/green-16x16.png?f49 51w' sizes='(min-width:0) calc(1px'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?f1 50w, ../resources/green-16x16.png?f1 51w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?f2 50w, ../resources/green-16x16.png?f2 51w' sizes=''&gt;
+&lt;img srcset='../resources/green-1x1.png?f3 50w, ../resources/green-16x16.png?f3 51w' sizes=','&gt;
+&lt;img srcset='../resources/green-1x1.png?f4 50w, ../resources/green-16x16.png?f4 51w' sizes='-1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f5 50w, ../resources/green-16x16.png?f5 51w' sizes='1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f6 50w, ../resources/green-16x16.png?f6 51w' sizes='0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f7 50w, ../resources/green-16x16.png?f7 51w' sizes='0.1deg'&gt;
+&lt;img srcset='../resources/green-1x1.png?f8 50w, ../resources/green-16x16.png?f8 51w' sizes='0.1grad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f9 50w, ../resources/green-16x16.png?f9 51w' sizes='0.1rad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f10 50w, ../resources/green-16x16.png?f10 51w' sizes='0.1turn'&gt;
+&lt;img srcset='../resources/green-1x1.png?f11 50w, ../resources/green-16x16.png?f11 51w' sizes='0.1s'&gt;
+&lt;img srcset='../resources/green-1x1.png?f12 50w, ../resources/green-16x16.png?f12 51w' sizes='0.1ms'&gt;
+&lt;img srcset='../resources/green-1x1.png?f13 50w, ../resources/green-16x16.png?f13 51w' sizes='0.1Hz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f14 50w, ../resources/green-16x16.png?f14 51w' sizes='0.1kHz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f15 50w, ../resources/green-16x16.png?f15 51w' sizes='0.1dpi'&gt;
+&lt;img srcset='../resources/green-1x1.png?f16 50w, ../resources/green-16x16.png?f16 51w' sizes='0.1dpcm'&gt;
+&lt;img srcset='../resources/green-1x1.png?f17 50w, ../resources/green-16x16.png?f17 51w' sizes='0.1dppx'&gt;
+&lt;img srcset='../resources/green-1x1.png?f18 50w, ../resources/green-16x16.png?f18 51w' data-foo='1px' sizes='attr(data-foo, length, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f19 50w, ../resources/green-16x16.png?f19 51w' data-foo='1' sizes='attr(data-foo, px, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f20 50w, ../resources/green-16x16.png?f20 51w' sizes='toggle(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f21 50w, ../resources/green-16x16.png?f21 51w' sizes='inherit'&gt;
+&lt;img srcset='../resources/green-1x1.png?f22 50w, ../resources/green-16x16.png?f22 51w' sizes='auto'&gt;
+&lt;img srcset='../resources/green-1x1.png?f23 50w, ../resources/green-16x16.png?f23 51w' sizes='initial'&gt;
+&lt;img srcset='../resources/green-1x1.png?f24 50w, ../resources/green-16x16.png?f24 51w' sizes='unset'&gt;
+&lt;img srcset='../resources/green-1x1.png?f25 50w, ../resources/green-16x16.png?f25 51w' sizes='default'&gt;
+&lt;img srcset='../resources/green-1x1.png?f26 50w, ../resources/green-16x16.png?f26 51w' sizes='1/* */px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f27 50w, ../resources/green-16x16.png?f27 51w' sizes='1p/* */x'&gt;
+&lt;img srcset='../resources/green-1x1.png?f28 50w, ../resources/green-16x16.png?f28 51w' sizes='-/**/0'&gt;
+&lt;img srcset='../resources/green-1x1.png?f29 50w, ../resources/green-16x16.png?f29 51w' sizes='((),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f30 50w, ../resources/green-16x16.png?f30 51w' sizes='x(x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f31 50w, ../resources/green-16x16.png?f31 51w' sizes='{{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f32 50w, ../resources/green-16x16.png?f32 51w' sizes='[[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f33 50w, ../resources/green-16x16.png?f33 51w' sizes='1px !important'&gt;
+&lt;img srcset='../resources/green-1x1.png?f34 50w, ../resources/green-16x16.png?f34 51w' sizes='\1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f35 50w, ../resources/green-16x16.png?f35 51w' sizes='all 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f36 50w, ../resources/green-16x16.png?f36 51w' sizes='all and (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f37 50w, ../resources/green-16x16.png?f37 51w' sizes='min-width:0 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f38 50w, ../resources/green-16x16.png?f38 51w' sizes='100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f39 50w, ../resources/green-16x16.png?f39 51w' sizes='100vw, (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f40 50w, ../resources/green-16x16.png?f40 51w' sizes='foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f41 50w, ../resources/green-16x16.png?f41 51w' sizes='foo-bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f42 50w, ../resources/green-16x16.png?f42 51w' sizes='(min-width:0) 1px foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f43 50w, ../resources/green-16x16.png?f43 51w' sizes='(min-width:0) 0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f44 50w, ../resources/green-16x16.png?f44 51w' sizes='(min-width:0) 1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f45 50w, ../resources/green-16x16.png?f45 51w' sizes='-1e0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f46 50w, ../resources/green-16x16.png?f46 51w' sizes='1e1.5px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f47 50w, ../resources/green-16x16.png?f47 51w' style='--foo: 1px' sizes='var(--foo)'&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c4expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,175 @@
</span><ins>+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+PASS &quot;green-1x1.png&quot; is &quot;green-1x1.png&quot;
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+FAIL &quot;green-16x16.png&quot; should be green-1x1.png. Was green-16x16.png.
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS &quot;green-16x16.png&quot; is &quot;green-16x16.png&quot;
+PASS successfullyParsed is true
+Some tests failed.
+
+TEST COMPLETE

+

+

+

+
+                                                                                                              
+
+                                              
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLImageElementsizesimagesizesw3c4html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4.html (0 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4.html        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -0,0 +1,206 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;script src=&quot;../../../../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/currentSrcHelper.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+    if (window.testRunner)
+    testRunner.dumpAsText();
+    
+    addEventListener(&quot;load&quot;, function() {
+                     var paragraphs = document.getElementsByTagName('p');
+                     for (var i = 0; i &lt; paragraphs.length; ++i) {
+                     var p = paragraphs[i]
+                     var current = p.firstElementChild;
+                     if (!current) continue
+                     var ref_sizes = current.getAttribute('sizes');
+                     var expect = p.firstElementChild.currentSrc;
+                     if (expect)
+                     expect = fileName(expect.split('?')[0]);
+                     while (current = current.nextElementSibling) {
+                     if (expect === '' || expect === null || expect === undefined)
+                     continue
+                     var got = current.currentSrc;
+                     if (got)
+                     got = fileName(got.split('?')[0]);
+                     shouldBe('&quot;' + got + '&quot;', '&quot;' + expect + '&quot;');
+                     }
+                     }
+                     })
+    &lt;/script&gt;
+
+&lt;style&gt; img { width:1000px; height:16px } &lt;/style&gt;
+&lt;!-- First &lt;img&gt; in a &lt;p&gt; is the reference. The following &lt;img&gt;s should be equivalent --&gt;
+&lt;!-- default is 100vw, not 300px --&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?a1 300w, ../resources/green-16x16.png?a1 301w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?a2 300w, ../resources/green-16x16.png?a2 301w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?b1 450w, ../resources/green-16x16.png?b1 451w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?b2 450w, ../resources/green-16x16.png?b2 451w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?c1 600w, ../resources/green-16x16.png?c1 601w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?c2 600w, ../resources/green-16x16.png?c2 601w'&gt;
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?d1 900w, ../resources/green-16x16.png?d1 901w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?d2 900w, ../resources/green-16x16.png?d2 901w'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?e1 50w, ../resources/green-16x16.png?e1 51w' sizes='1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e2 50w, ../resources/green-16x16.png?e2 51w' sizes='0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e3 50w, ../resources/green-16x16.png?e3 51w' sizes='-0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e4 50w, ../resources/green-16x16.png?e4 51w' sizes='+0'&gt;
+&lt;img srcset='../resources/green-1x1.png?e5 50w, ../resources/green-16x16.png?e5 51w' sizes='+1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e6 50w, ../resources/green-16x16.png?e6 51w' sizes='.1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e7 50w, ../resources/green-16x16.png?e7 51w' sizes='0.1em'&gt;
+&lt;img srcset='../resources/green-1x1.png?e8 50w, ../resources/green-16x16.png?e8 51w' sizes='0.1ex'&gt;
+&lt;img srcset='../resources/green-1x1.png?e9 50w, ../resources/green-16x16.png?e9 51w' sizes='0.1ch'&gt;
+&lt;img srcset='../resources/green-1x1.png?e10 50w, ../resources/green-16x16.png?e10 51w' sizes='0.1rem'&gt;
+&lt;img srcset='../resources/green-1x1.png?e11 50w, ../resources/green-16x16.png?e11 51w' sizes='0.1vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e12 50w, ../resources/green-16x16.png?e12 51w' sizes='0.1vh'&gt;
+&lt;img srcset='../resources/green-1x1.png?e13 50w, ../resources/green-16x16.png?e13 51w' sizes='0.1vmin'&gt;
+&lt;img srcset='../resources/green-1x1.png?e14 50w, ../resources/green-16x16.png?e14 51w' sizes='0.1vmax'&gt;
+&lt;img srcset='../resources/green-1x1.png?e15 50w, ../resources/green-16x16.png?e15 51w' sizes='0.1cm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e16 50w, ../resources/green-16x16.png?e16 51w' sizes='1mm'&gt;
+&lt;img srcset='../resources/green-1x1.png?e17 50w, ../resources/green-16x16.png?e17 51w' sizes='1q'&gt;
+&lt;img srcset='../resources/green-1x1.png?e18 50w, ../resources/green-16x16.png?e18 51w' sizes='0.01in'&gt;
+&lt;img srcset='../resources/green-1x1.png?e19 50w, ../resources/green-16x16.png?e19 51w' sizes='0.1pc'&gt;
+&lt;img srcset='../resources/green-1x1.png?e20 50w, ../resources/green-16x16.png?e20 51w' sizes='0.1pt'&gt;
+&lt;img srcset='../resources/green-1x1.png?e21 50w, ../resources/green-16x16.png?e21 51w' sizes='/* */1px/* */'&gt;
+&lt;img srcset='../resources/green-1x1.png?e22 50w, ../resources/green-16x16.png?e22 51w' sizes=' /**/ /**/ 1px /**/ /**/ '&gt;
+&lt;img srcset='../resources/green-1x1.png?e23 50w, ../resources/green-16x16.png?e23 51w' sizes='(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e24 50w, ../resources/green-16x16.png?e24 51w' sizes='x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e25 50w, ../resources/green-16x16.png?e25 51w' sizes='{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e26 50w, ../resources/green-16x16.png?e26 51w' sizes='[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e27 50w, ../resources/green-16x16.png?e27 51w' sizes='1px,('&gt;
+&lt;img srcset='../resources/green-1x1.png?e28 50w, ../resources/green-16x16.png?e28 51w' sizes='1px,x('&gt;
+&lt;img srcset='../resources/green-1x1.png?e29 50w, ../resources/green-16x16.png?e29 51w' sizes='1px,{'&gt;
+&lt;img srcset='../resources/green-1x1.png?e30 50w, ../resources/green-16x16.png?e30 51w' sizes='1px,['&gt;
+&lt;img srcset='../resources/green-1x1.png?e31 50w, ../resources/green-16x16.png?e31 51w' sizes='\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e32 50w, ../resources/green-16x16.png?e32 51w' sizes='x\(,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e33 50w, ../resources/green-16x16.png?e33 51w' sizes='\{,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e34 50w, ../resources/green-16x16.png?e34 51w' sizes='\[,1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e35 50w, ../resources/green-16x16.png?e35 51w' sizes='1\p\x'&gt;
+&lt;img srcset='../resources/green-1x1.png?e36 50w, ../resources/green-16x16.png?e36 51w' sizes='calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e37 50w, ../resources/green-16x16.png?e37 51w' sizes='(min-width:0) calc(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?e38 50w, ../resources/green-16x16.png?e38 51w' sizes='(min-width:calc(0)) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e39 50w, ../resources/green-16x16.png?e39 51w' sizes='(min-width:0) 1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e40 50w, ../resources/green-16x16.png?e40 51w' sizes='(min-width:0) 1px, (min-width:0) 100vw, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e41 50w, ../resources/green-16x16.png?e41 51w' sizes='(min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e42 50w, ../resources/green-16x16.png?e42 51w' sizes='not (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e43 50w, ../resources/green-16x16.png?e43 51w' sizes='(min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e44 50w, ../resources/green-16x16.png?e44 51w' sizes='not (min-width:unknown-mf-value) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e45 50w, ../resources/green-16x16.png?e45 51w' sizes='(min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e46 50w, ../resources/green-16x16.png?e46 51w' sizes='not (min-width:-1px) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e47 50w, ../resources/green-16x16.png?e47 51w' sizes='(unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e48 50w, ../resources/green-16x16.png?e48 51w' sizes='not (unknown-mf-name) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e49 50w, ../resources/green-16x16.png?e49 51w' sizes='(unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e50 50w, ../resources/green-16x16.png?e50 51w' sizes='not (unknown &quot;general-enclosed&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e51 50w, ../resources/green-16x16.png?e51 51w' sizes='unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e52 50w, ../resources/green-16x16.png?e52 51w' sizes='not unknown-general-enclosed(foo) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e53 50w, ../resources/green-16x16.png?e53 51w' sizes='print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e54 50w, ../resources/green-16x16.png?e54 51w' sizes='not print 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e55 50w, ../resources/green-16x16.png?e55 51w' sizes='unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e56 50w, ../resources/green-16x16.png?e56 51w' sizes='not unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e57 50w, ../resources/green-16x16.png?e57 51w' sizes='(min-width:0) or (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e58 50w, ../resources/green-16x16.png?e58 51w' sizes='(min-width:0) or (unknown-mf-name) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e59 50w, ../resources/green-16x16.png?e59 51w' sizes='(min-width:0) or (min-width:unknown-mf-value) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e60 50w, ../resources/green-16x16.png?e60 51w' sizes='(min-width:0) or (min-width:-1px) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e61 50w, ../resources/green-16x16.png?e61 51w' sizes='(min-width:0) or (unknown &quot;general-enclosed&quot;) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e62 50w, ../resources/green-16x16.png?e62 51w' sizes='(min-width:0) or unknown-general-enclosed(foo) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e63 50w, ../resources/green-16x16.png?e63 51w' sizes='(min-width:0) or (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e64 50w, ../resources/green-16x16.png?e64 51w' sizes='(min-width:0) or unknown-media-type 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e65 50w, ../resources/green-16x16.png?e65 51w' sizes='(123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e66 50w, ../resources/green-16x16.png?e66 51w' sizes='not (123) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e67 50w, ../resources/green-16x16.png?e67 51w' sizes='(!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e68 50w, ../resources/green-16x16.png?e68 51w' sizes='not (!) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e69 50w, ../resources/green-16x16.png?e69 51w' sizes='! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e70 50w, ../resources/green-16x16.png?e70 51w' sizes='not ! 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e71 50w, ../resources/green-16x16.png?e71 51w' sizes='(]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e72 50w, ../resources/green-16x16.png?e72 51w' sizes='not (]) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e73 50w, ../resources/green-16x16.png?e73 51w' sizes='] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e74 50w, ../resources/green-16x16.png?e74 51w' sizes='not ] 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e75 50w, ../resources/green-16x16.png?e75 51w' sizes='(}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e76 50w, ../resources/green-16x16.png?e76 51w' sizes='not (}) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e77 50w, ../resources/green-16x16.png?e77 51w' sizes='} 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e78 50w, ../resources/green-16x16.png?e78 51w' sizes='not } 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e79 50w, ../resources/green-16x16.png?e79 51w' sizes=') 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e80 50w, ../resources/green-16x16.png?e80 51w' sizes='not ) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e81 50w, ../resources/green-16x16.png?e81 51w' sizes='(;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e82 50w, ../resources/green-16x16.png?e82 51w' sizes='not (;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e83 50w, ../resources/green-16x16.png?e83 51w' sizes='(.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e84 50w, ../resources/green-16x16.png?e84 51w' sizes='not (.) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e85 50w, ../resources/green-16x16.png?e85 51w' sizes='; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e86 50w, ../resources/green-16x16.png?e86 51w' sizes='not ; 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e87 50w, ../resources/green-16x16.png?e87 51w' sizes=', 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e88 50w, ../resources/green-16x16.png?e88 51w' sizes='1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e89 50w, ../resources/green-16x16.png?e89 51w' sizes='(min-width:0) 1px,'&gt;
+&lt;img srcset='../resources/green-1x1.png?e90 50w, ../resources/green-16x16.png?e90 51w' sizes='-0e-0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e91 50w, ../resources/green-16x16.png?e91 51w' sizes='+0.11e+01px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e92 50w, ../resources/green-16x16.png?e92 51w' sizes='0.2e1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e93 50w, ../resources/green-16x16.png?e93 51w' sizes='0.3E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e94 50w, ../resources/green-16x16.png?e94 51w' sizes='.4E1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e95 50w, ../resources/green-16x16.png?e95 51w' sizes='all 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e96 50w, ../resources/green-16x16.png?e96 51w' sizes='all and (min-width:0) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e97 50w, ../resources/green-16x16.png?e97 51w' sizes='min-width:0 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e98 50w, ../resources/green-16x16.png?e98 51w' sizes='1px, 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e99 50w, ../resources/green-16x16.png?e99 51w' sizes='1px, (min-width:0) 100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?e100 50w, ../resources/green-16x16.png?e100 51w' sizes='1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e101 50w, ../resources/green-16x16.png?e101 51w' sizes='(min-width:0) 1px, foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?e102 50w, ../resources/green-16x16.png?e102 51w' sizes='(&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e103 50w, ../resources/green-16x16.png?e103 51w' sizes='not (&quot;grammar does not match&quot;) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e104 50w, ../resources/green-16x16.png?e104 51w' sizes='(unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e105 50w, ../resources/green-16x16.png?e105 51w' sizes='not (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e106 50w, ../resources/green-16x16.png?e106 51w' sizes='(min-width:0) or (unknown-general-enclosed !) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e107 50w, ../resources/green-16x16.png?e107 51w' sizes='not ((min-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e108 50w, ../resources/green-16x16.png?e108 51w' sizes='(max-width:0) or (unknown-general-enclosed !) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?e109 50w, ../resources/green-16x16.png?e109 51w' sizes='not ((max-width:0) or (unknown &quot;general-enclosed&quot;)) 100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f48 50w, ../resources/green-16x16.png?f48 51w' sizes='calc(1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f49 50w, ../resources/green-16x16.png?f49 51w' sizes='(min-width:0) calc(1px'&gt;
+
+&lt;p&gt;
+&lt;img srcset='../resources/green-1x1.png?f1 50w, ../resources/green-16x16.png?f1 51w' sizes='100vw'&gt;
+&lt;img srcset='../resources/green-1x1.png?f2 50w, ../resources/green-16x16.png?f2 51w' sizes=''&gt;
+&lt;img srcset='../resources/green-1x1.png?f3 50w, ../resources/green-16x16.png?f3 51w' sizes=','&gt;
+&lt;img srcset='../resources/green-1x1.png?f4 50w, ../resources/green-16x16.png?f4 51w' sizes='-1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f5 50w, ../resources/green-16x16.png?f5 51w' sizes='1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f6 50w, ../resources/green-16x16.png?f6 51w' sizes='0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f7 50w, ../resources/green-16x16.png?f7 51w' sizes='0.1deg'&gt;
+&lt;img srcset='../resources/green-1x1.png?f8 50w, ../resources/green-16x16.png?f8 51w' sizes='0.1grad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f9 50w, ../resources/green-16x16.png?f9 51w' sizes='0.1rad'&gt;
+&lt;img srcset='../resources/green-1x1.png?f10 50w, ../resources/green-16x16.png?f10 51w' sizes='0.1turn'&gt;
+&lt;img srcset='../resources/green-1x1.png?f11 50w, ../resources/green-16x16.png?f11 51w' sizes='0.1s'&gt;
+&lt;img srcset='../resources/green-1x1.png?f12 50w, ../resources/green-16x16.png?f12 51w' sizes='0.1ms'&gt;
+&lt;img srcset='../resources/green-1x1.png?f13 50w, ../resources/green-16x16.png?f13 51w' sizes='0.1Hz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f14 50w, ../resources/green-16x16.png?f14 51w' sizes='0.1kHz'&gt;
+&lt;img srcset='../resources/green-1x1.png?f15 50w, ../resources/green-16x16.png?f15 51w' sizes='0.1dpi'&gt;
+&lt;img srcset='../resources/green-1x1.png?f16 50w, ../resources/green-16x16.png?f16 51w' sizes='0.1dpcm'&gt;
+&lt;img srcset='../resources/green-1x1.png?f17 50w, ../resources/green-16x16.png?f17 51w' sizes='0.1dppx'&gt;
+&lt;img srcset='../resources/green-1x1.png?f18 50w, ../resources/green-16x16.png?f18 51w' data-foo='1px' sizes='attr(data-foo, length, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f19 50w, ../resources/green-16x16.png?f19 51w' data-foo='1' sizes='attr(data-foo, px, 1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f20 50w, ../resources/green-16x16.png?f20 51w' sizes='toggle(1px)'&gt;
+&lt;img srcset='../resources/green-1x1.png?f21 50w, ../resources/green-16x16.png?f21 51w' sizes='inherit'&gt;
+&lt;img srcset='../resources/green-1x1.png?f22 50w, ../resources/green-16x16.png?f22 51w' sizes='auto'&gt;
+&lt;img srcset='../resources/green-1x1.png?f23 50w, ../resources/green-16x16.png?f23 51w' sizes='initial'&gt;
+&lt;img srcset='../resources/green-1x1.png?f24 50w, ../resources/green-16x16.png?f24 51w' sizes='unset'&gt;
+&lt;img srcset='../resources/green-1x1.png?f25 50w, ../resources/green-16x16.png?f25 51w' sizes='default'&gt;
+&lt;img srcset='../resources/green-1x1.png?f26 50w, ../resources/green-16x16.png?f26 51w' sizes='1/* */px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f27 50w, ../resources/green-16x16.png?f27 51w' sizes='1p/* */x'&gt;
+&lt;img srcset='../resources/green-1x1.png?f28 50w, ../resources/green-16x16.png?f28 51w' sizes='-/**/0'&gt;
+&lt;img srcset='../resources/green-1x1.png?f29 50w, ../resources/green-16x16.png?f29 51w' sizes='((),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f30 50w, ../resources/green-16x16.png?f30 51w' sizes='x(x(),1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f31 50w, ../resources/green-16x16.png?f31 51w' sizes='{{},1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f32 50w, ../resources/green-16x16.png?f32 51w' sizes='[[],1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f33 50w, ../resources/green-16x16.png?f33 51w' sizes='1px !important'&gt;
+&lt;img srcset='../resources/green-1x1.png?f34 50w, ../resources/green-16x16.png?f34 51w' sizes='\1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f35 50w, ../resources/green-16x16.png?f35 51w' sizes='all 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f36 50w, ../resources/green-16x16.png?f36 51w' sizes='all and (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f37 50w, ../resources/green-16x16.png?f37 51w' sizes='min-width:0 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f38 50w, ../resources/green-16x16.png?f38 51w' sizes='100vw, 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f39 50w, ../resources/green-16x16.png?f39 51w' sizes='100vw, (min-width:0) 1px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f40 50w, ../resources/green-16x16.png?f40 51w' sizes='foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f41 50w, ../resources/green-16x16.png?f41 51w' sizes='foo-bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f42 50w, ../resources/green-16x16.png?f42 51w' sizes='(min-width:0) 1px foo bar'&gt;
+&lt;img srcset='../resources/green-1x1.png?f43 50w, ../resources/green-16x16.png?f43 51w' sizes='(min-width:0) 0.1%'&gt;
+&lt;img srcset='../resources/green-1x1.png?f44 50w, ../resources/green-16x16.png?f44 51w' sizes='(min-width:0) 1'&gt;
+&lt;img srcset='../resources/green-1x1.png?f45 50w, ../resources/green-16x16.png?f45 51w' sizes='-1e0px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f46 50w, ../resources/green-16x16.png?f46 51w' sizes='1e1.5px'&gt;
+&lt;img srcset='../resources/green-1x1.png?f47 50w, ../resources/green-16x16.png?f47 51w' style='--foo: 1px' sizes='var(--foo)'&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -1335,7 +1335,6 @@
</span><span class="cx">     css/SVGCSSComputedStyleDeclaration.cpp
</span><span class="cx">     css/SelectorChecker.cpp
</span><span class="cx">     css/SelectorFilter.cpp
</span><del>-    css/SourceSizeList.cpp
</del><span class="cx">     css/StyleInvalidationAnalysis.cpp
</span><span class="cx">     css/StyleMedia.cpp
</span><span class="cx">     css/StyleProperties.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/ChangeLog        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -1,3 +1,57 @@
</span><ins>+2016-09-13  Dave Hyatt  &lt;hyatt@apple.com&gt;
+
+        [CSS Parser] Enable the new sizes parser by default
+        https://bugs.webkit.org/show_bug.cgi?id=161931
+
+        Reviewed by Zalan Bujtas.
+
+        Added new tests in fast/dom/HTMLImageElement/sizes.
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSGrammar.y.in:
+        Remove the old code that parsed source size lists.
+
+        * css/MediaQueryEvaluator.cpp:
+        (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
+        * css/MediaQueryEvaluator.h:
+        Change to take a const Document&amp;, since the Document is not modified.
+
+        * css/SourceSizeList.cpp: Removed.
+        * css/SourceSizeList.h: Removed.
+        * css/parser/CSSParser.cpp:
+        (WebCore::CSSParser::parseSizesAttribute): Deleted.
+        (WebCore::CSSParser::SourceSize::SourceSize): Deleted.
+        (WebCore::CSSParser::sourceSize): Deleted.
+        * css/parser/CSSParser.h:
+        Remove the old sizes processing code.
+
+        * css/parser/MediaQueryParser.cpp:
+        (WebCore::MediaQueryParser::skipUntilComma):
+        (WebCore::MediaQueryParser::parseInternal):
+        Fix a bug I introduced when modifying this code from Blink. The Nones should have been Nots.
+
+        * css/parser/SizesAttributeParser.cpp:
+        (WebCore::SizesAttributeParser::computeLength):
+        (WebCore::SizesAttributeParser::SizesAttributeParser):
+        (WebCore::SizesAttributeParser::calculateLengthInPixels):
+        (WebCore::SizesAttributeParser::mediaConditionMatches):
+        (WebCore::SizesAttributeParser::effectiveSizeDefaultValue):
+        * css/parser/SizesAttributeParser.h:
+        * css/parser/SizesCalcParser.cpp:
+        (WebCore::SizesCalcParser::SizesCalcParser):
+        (WebCore::SizesCalcParser::appendLength):
+        * css/parser/SizesCalcParser.h:
+        Make the sizes parsers take a Document, since having separate style and view arguments made
+        no sense, given that the style used is always the view's.
+
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
+        (WebCore::HTMLImageElement::selectImageSource):
+        * html/parser/HTMLPreloadScanner.cpp:
+        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
+        Switch image elements and the preload scanner over to the new code.
+
</ins><span class="cx"> 2016-09-13  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r205887.
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -2261,8 +2261,6 @@
</span><span class="cx">                 536D5A20193E18E900CE4CAB /* HTMLSrcsetParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 536D5A1F193E18E900CE4CAB /* HTMLSrcsetParser.h */; };
</span><span class="cx">                 536D5A21193E18EE00CE4CAB /* HTMLSrcsetParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 536D5A1E193E18D000CE4CAB /* HTMLSrcsetParser.cpp */; };
</span><span class="cx">                 536D5A23193E8E0C00CE4CAB /* ParsingUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 536D5A22193E8E0C00CE4CAB /* ParsingUtilities.h */; };
</span><del>-                536D5A25193F40FC00CE4CAB /* SourceSizeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 536D5A24193F40FC00CE4CAB /* SourceSizeList.cpp */; };
-                536D5A27193F410B00CE4CAB /* SourceSizeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 536D5A26193F410B00CE4CAB /* SourceSizeList.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 53B895AF19DC7ED9009CAA93 /* Microtasks.h in Headers */ = {isa = PBXBuildFile; fileRef = 53B895AD19DC7C37009CAA93 /* Microtasks.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 53C8298D13D8D92700DE2DEB /* RenderFlexibleBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53C8298B13D8D92700DE2DEB /* RenderFlexibleBox.cpp */; };
</span><span class="cx">                 53C8298E13D8D92700DE2DEB /* RenderFlexibleBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C8298C13D8D92700DE2DEB /* RenderFlexibleBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -9300,8 +9298,6 @@
</span><span class="cx">                 536D5A1E193E18D000CE4CAB /* HTMLSrcsetParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLSrcsetParser.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 536D5A1F193E18E900CE4CAB /* HTMLSrcsetParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLSrcsetParser.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 536D5A22193E8E0C00CE4CAB /* ParsingUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsingUtilities.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                536D5A24193F40FC00CE4CAB /* SourceSizeList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SourceSizeList.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                536D5A26193F410B00CE4CAB /* SourceSizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceSizeList.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 53B895AD19DC7C37009CAA93 /* Microtasks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Microtasks.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 53C8298B13D8D92700DE2DEB /* RenderFlexibleBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderFlexibleBox.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 53C8298C13D8D92700DE2DEB /* RenderFlexibleBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderFlexibleBox.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -22579,8 +22575,6 @@
</span><span class="cx">                                 43B85ED618CBEC9700E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.in */,
</span><span class="cx">                                 26AA0F9A18D2973D00419381 /* SelectorPseudoElementTypeMap.in */,
</span><span class="cx">                                 43107BE118CC19DE00CC18E8 /* SelectorPseudoTypeMap.h */,
</span><del>-                                536D5A24193F40FC00CE4CAB /* SourceSizeList.cpp */,
-                                536D5A26193F410B00CE4CAB /* SourceSizeList.h */,
</del><span class="cx">                                 8386A96C19F61B2E00E1EC4A /* StyleBuilder.h */,
</span><span class="cx">                                 83B9687919F8AB83004EF7AF /* StyleBuilderConverter.h */,
</span><span class="cx">                                 835D363619FF6193004C93AB /* StyleBuilderCustom.h */,
</span><span class="lines">@@ -26446,7 +26440,6 @@
</span><span class="cx">                                 CDC8B5AD1804AE5D0016E685 /* SourceBufferPrivateClient.h in Headers */,
</span><span class="cx">                                 84A81F420FC7E02700955300 /* SourceGraphic.h in Headers */,
</span><span class="cx">                                 076306D817E149D0005A7C4E /* SourceInfo.h in Headers */,
</span><del>-                                536D5A27193F410B00CE4CAB /* SourceSizeList.h in Headers */,
</del><span class="cx">                                 D01A27AE10C9BFD800026A42 /* SpaceSplitString.h in Headers */,
</span><span class="cx">                                 626CDE0F1140424C001E5A68 /* SpatialNavigation.h in Headers */,
</span><span class="cx">                                 AA2A5AD416A4861100975A25 /* SpeechSynthesis.h in Headers */,
</span><span class="lines">@@ -30017,7 +30010,6 @@
</span><span class="cx">                                 CDC8B5AA18047FF10016E685 /* SourceBufferPrivateAVFObjC.mm in Sources */,
</span><span class="cx">                                 84A81F410FC7E02700955300 /* SourceGraphic.cpp in Sources */,
</span><span class="cx">                                 076306D717E149CF005A7C4E /* SourceInfo.cpp in Sources */,
</span><del>-                                536D5A25193F40FC00CE4CAB /* SourceSizeList.cpp in Sources */,
</del><span class="cx">                                 D01A27AD10C9BFD800026A42 /* SpaceSplitString.cpp in Sources */,
</span><span class="cx">                                 626CDE0E1140424C001E5A68 /* SpatialNavigation.cpp in Sources */,
</span><span class="cx">                                 AA2A5AD516A4861400975A25 /* SpeechSynthesis.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSGrammaryin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSGrammar.y.in (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSGrammar.y.in        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/CSSGrammar.y.in        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx">     MediaQuery* mediaQuery;
</span><span class="cx">     MediaQuery::Restrictor mediaQueryRestrictor;
</span><span class="cx">     MediaQueryExpression* mediaQueryExpression;
</span><del>-    Vector&lt;CSSParser::SourceSize&gt;* sourceSizeList;
</del><span class="cx">     Vector&lt;MediaQueryExpression&gt;* mediaQueryExpressionList;
</span><span class="cx">     StyleKeyframe* keyframe;
</span><span class="cx">     Vector&lt;RefPtr&lt;StyleKeyframe&gt;&gt;* keyframeRuleList;
</span><span class="lines">@@ -274,15 +273,6 @@
</span><span class="cx"> %type &lt;mediaQueryExpression&gt; media_query_expression base_media_query_expression
</span><span class="cx"> %destructor { delete $$; } media_query_expression base_media_query_expression
</span><span class="cx"> 
</span><del>-%type &lt;sourceSizeList&gt; source_size_list
-%destructor { delete $$; } source_size_list
-
-%type &lt;mediaQueryExpression&gt; maybe_source_media_query_expression
-%destructor { delete $$; } maybe_source_media_query_expression
-
-%type &lt;value&gt; source_size_length
-%destructor { destroy($$); } source_size_length
-
</del><span class="cx"> %type &lt;mediaQueryExpressionList&gt; media_query_expression_list maybe_and_media_query_expression_list
</span><span class="cx"> %destructor { delete $$; } media_query_expression_list maybe_and_media_query_expression_list
</span><span class="cx"> 
</span><span class="lines">@@ -378,7 +368,6 @@
</span><span class="cx">   | webkit_decls maybe_space
</span><span class="cx">   | webkit_value maybe_space
</span><span class="cx">   | webkit_mediaquery maybe_space
</span><del>-  | webkit_source_size_list maybe_space
</del><span class="cx">   | webkit_selector maybe_space
</span><span class="cx">   | webkit_keyframe_rule maybe_space
</span><span class="cx">   | webkit_supports_condition maybe_space
</span><span class="lines">@@ -567,35 +556,6 @@
</span><span class="cx"> 
</span><span class="cx"> maybe_media_value: /*empty*/ { $$ = nullptr; } | ':' maybe_space expr maybe_space { $$ = $3; } ;
</span><span class="cx"> 
</span><del>-webkit_source_size_list:
-    WEBKIT_SIZESATTR_SYM WHITESPACE source_size_list maybe_space '}' {
-        parser-&gt;m_sourceSizeList = std::unique_ptr&lt;Vector&lt;CSSParser::SourceSize&gt;&gt;($3);
-    }
-    ;
-
-source_size_list:
-    maybe_source_media_query_expression source_size_length {
-        $$ = new Vector&lt;CSSParser::SourceSize&gt;;
-        if (auto result = parser-&gt;sourceSize(WTFMove(*$1), $2))
-            $$-&gt;append(WTFMove(result.value()));
-        delete $1;
-    }
-    | source_size_list maybe_space ',' maybe_space maybe_source_media_query_expression source_size_length {
-        $$ = $1;
-        if (auto result = parser-&gt;sourceSize(WTFMove(*$5), $6))
-            $$-&gt;append(WTFMove(result.value()));
-        delete $5;
-    }
-    ;
-
-maybe_source_media_query_expression:
-    /* empty */ {
-        $$ = new MediaQueryExpression;
-    }
-    | base_media_query_expression maybe_space;
-
-source_size_length: unary_term | calc_function;
-
</del><span class="cx"> base_media_query_expression: '(' maybe_space IDENT maybe_space maybe_media_value ')' {
</span><span class="cx">         std::unique_ptr&lt;CSSParserValueList&gt; mediaValue($5);
</span><span class="cx">         $3.convertToASCIILowercaseInPlace();
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaQueryEvaluatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-MediaQueryEvaluator::MediaQueryEvaluator(const String&amp; acceptedMediaType, Document&amp; document, const RenderStyle* style)
</del><ins>+MediaQueryEvaluator::MediaQueryEvaluator(const String&amp; acceptedMediaType, const Document&amp; document, const RenderStyle* style)
</ins><span class="cx">     : m_mediaType(acceptedMediaType)
</span><span class="cx">     , m_frame(document.frame())
</span><span class="cx">     , m_style(style)
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaQueryEvaluatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.h (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaQueryEvaluator.h        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.h        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     MediaQueryEvaluator(const String&amp; acceptedMediaType, bool mediaFeatureResult = false);
</span><span class="cx"> 
</span><span class="cx">     // Creates evaluator which evaluates full media queries.
</span><del>-    WEBCORE_EXPORT MediaQueryEvaluator(const String&amp; acceptedMediaType, Document&amp;, const RenderStyle*);
</del><ins>+    WEBCORE_EXPORT MediaQueryEvaluator(const String&amp; acceptedMediaType, const Document&amp;, const RenderStyle*);
</ins><span class="cx"> 
</span><span class="cx">     bool mediaTypeMatch(const String&amp; mediaTypeToMatch) const;
</span><span class="cx">     bool mediaTypeMatchSpecific(const char* mediaTypeToMatch) const;
</span></span></pre></div>
<a id="trunkSourceWebCorecssSourceSizeListcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/css/SourceSizeList.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SourceSizeList.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/SourceSizeList.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -1,84 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Yoav Weiss &lt;yoav@yoav.ws&gt;
- * Copyright (C) 2015 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include &quot;config.h&quot;
-#include &quot;SourceSizeList.h&quot;
-
-#include &quot;CSSParser.h&quot;
-#include &quot;CSSToLengthConversionData.h&quot;
-#include &quot;MediaList.h&quot;
-#include &quot;MediaQueryEvaluator.h&quot;
-#include &quot;RenderStyle.h&quot;
-#include &quot;RenderView.h&quot;
-
-namespace WebCore {
-
-static bool match(const MediaQueryExpression&amp; expression, const RenderStyle&amp; style, Document&amp; document)
-{
-    return expression.mediaFeature().isEmpty() || MediaQueryEvaluator { &quot;screen&quot;, document, &amp;style }.evaluate(expression);
-}
-
-static float defaultLength(const RenderStyle&amp; style, RenderView&amp; renderer)
-{
-    return clampTo&lt;float&gt;(CSSPrimitiveValue::computeNonCalcLengthDouble({ &amp;style, &amp;style, &amp;renderer }, CSSPrimitiveValue::CSS_VW, 100.0));
-}
-
-static float computeLength(CSSValue&amp; value, const RenderStyle&amp; style, RenderView&amp; renderer)
-{
-    CSSToLengthConversionData conversionData(&amp;style, &amp;style, &amp;renderer);
-    if (is&lt;CSSPrimitiveValue&gt;(value)) {
-        CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
-        if (!primitiveValue.isLength())
-            return defaultLength(style, renderer);
-
-        // Because we evaluate &quot;sizes&quot; at parse time (before style has been resolved), the font metrics used for these specific units
-        // are not available. The font selector's internal consistency isn't guaranteed just yet, so we can just temporarily clear
-        // the pointer to it for the duration of the unit evaluation. This is acceptible because the style always comes from the
-        // RenderView, which has its font information hardcoded in resolveForDocument() to be -webkit-standard, whose operations
-        // don't require a font selector.
-        if (!primitiveValue.isCalculated() &amp;&amp; (primitiveValue.primitiveType() == CSSPrimitiveValue::CSS_EXS || primitiveValue.primitiveType() == CSSPrimitiveValue::CSS_CHS)) {
-            RefPtr&lt;FontSelector&gt; fontSelector = style.fontCascade().fontSelector();
-            style.fontCascade().update(nullptr);
-            float result = primitiveValue.computeLength&lt;float&gt;(conversionData);
-            style.fontCascade().update(fontSelector.get());
-            return result;
-        }
-
-        return primitiveValue.computeLength&lt;float&gt;(conversionData);
-    }
-    if (is&lt;CSSCalcValue&gt;(value))
-        return downcast&lt;CSSCalcValue&gt;(value).computeLengthPx(conversionData);
-    return defaultLength(style, renderer);
-}
-
-float parseSizesAttribute(Document&amp; document, StringView sizesAttribute)
-{
-    auto* renderer = document.renderView();
-    if (!renderer)
-        return 0;
-    auto&amp; style = renderer-&gt;style();
-    for (auto&amp; sourceSize : CSSParser(HTMLStandardMode).parseSizesAttribute(sizesAttribute)) {
-        if (match(sourceSize.expression, style, document))
-            return computeLength(sourceSize.length.get(), style, *renderer);
-    }
-    return defaultLength(style, *renderer);
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCorecssSourceSizeListh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/css/SourceSizeList.h (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SourceSizeList.h        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/SourceSizeList.h        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -1,31 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Yoav Weiss &lt;yoav@yoav.ws&gt;
- * Copyright (C) 2015 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#pragma once
-
-#include &lt;wtf/Forward.h&gt;
-
-namespace WebCore {
-
-class Document;
-
-float parseSizesAttribute(Document&amp;, StringView sizesAttribute);
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -1597,59 +1597,6 @@
</span><span class="cx">     return WTFMove(m_mediaQuery);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Vector&lt;CSSParser::SourceSize&gt; CSSParser::parseSizesAttribute(StringView string)
-{
-    Vector&lt;SourceSize&gt; result;
-
-    if (string.isEmpty())
-        return result;
-
-    ASSERT(!m_sourceSizeList);
-
-    setupParser(&quot;@-webkit-sizesattr &quot;, string, &quot;}&quot;);
-    cssyyparse(this);
-
-    if (!m_sourceSizeList)
-        return result;
-
-    result = WTFMove(*m_sourceSizeList);
-    m_sourceSizeList = nullptr;
-    return result;
-}
-
-// FIXME(141289): The following two constructors are only needed because of a bug in MSVC 2013 (and prior).
-// We should remove this code as soon as a Visual Studio update that fixes this problem is released.
-
-CSSParser::SourceSize::SourceSize(CSSParser::SourceSize&amp;&amp; original)
-    : expression(WTFMove(original.expression))
-    , length(WTFMove(original.length))
-{
-}
-
-CSSParser::SourceSize::SourceSize(MediaQueryExpression&amp;&amp; expression, Ref&lt;CSSValue&gt;&amp;&amp; value)
-    : expression(WTFMove(expression))
-    , length(WTFMove(value))
-{
-}
-
-Optional&lt;CSSParser::SourceSize&gt; CSSParser::sourceSize(MediaQueryExpression&amp;&amp; expression, CSSParserValue&amp; parserValue)
-{
-    RefPtr&lt;CSSValue&gt; value;
-    if (isCalculation(parserValue)) {
-        auto* args = parserValue.function-&gt;args.get();
-        if (args &amp;&amp; args-&gt;size())
-            value = CSSCalcValue::create(parserValue.function-&gt;name, *args, CalculationRangeNonNegative);
-    }
-    if (!value)
-        value = parserValue.createCSSValue();
-    destroy(parserValue);
-    if (!value)
-        return Nullopt;
-    // FIXME: Calling the constructor explicitly here to work around an MSVC bug.
-    // For other compilers, we did not need to define the constructors and we could use aggregate initialization syntax.
-    return SourceSize(WTFMove(expression), value.releaseNonNull());
-}
-
</del><span class="cx"> static inline void filterProperties(bool important, const ParsedPropertyVector&amp; input, Vector&lt;CSSProperty, 256&gt;&amp; output, size_t&amp; unusedEntries, std::bitset&lt;numCSSProperties&gt;&amp; seenProperties, HashSet&lt;AtomicString&gt;&amp; seenCustomProperties)
</span><span class="cx"> {
</span><span class="cx">     // Add properties in reverse order so that highest priority definitions are reached first. Duplicate definitions can then be ignored when found.
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.h (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.h        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/parser/CSSParser.h        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;CSSValueKeywords.h&quot;
</span><span class="cx"> #include &quot;Color.h&quot;
</span><span class="cx"> #include &quot;MediaQuery.h&quot;
</span><del>-#include &quot;SourceSizeList.h&quot;
</del><span class="cx"> #include &quot;StyleRuleImport.h&quot;
</span><span class="cx"> #include &quot;WebKitCSSFilterValue.h&quot;
</span><span class="cx"> #include &lt;memory&gt;
</span><span class="lines">@@ -427,7 +426,6 @@
</span><span class="cx">     RefPtr&lt;StyleRuleBase&gt; m_rule;
</span><span class="cx">     RefPtr&lt;StyleKeyframe&gt; m_keyframe;
</span><span class="cx">     std::unique_ptr&lt;MediaQuery&gt; m_mediaQuery;
</span><del>-    std::unique_ptr&lt;Vector&lt;SourceSize&gt;&gt; m_sourceSizeList;
</del><span class="cx">     std::unique_ptr&lt;CSSParserValueList&gt; m_valueList;
</span><span class="cx">     bool m_supportsCondition { false };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserMediaQueryParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/MediaQueryParser.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/MediaQueryParser.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/parser/MediaQueryParser.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -215,7 +215,7 @@
</span><span class="cx">     if ((type == CommaToken &amp;&amp; !m_blockWatcher.blockLevel()) || type == EOFToken) {
</span><span class="cx">         m_state = ReadRestrictor;
</span><span class="cx">         m_mediaQueryData.clear();
</span><del>-        MediaQuery query = MediaQuery(MediaQuery::None, &quot;all&quot;, Vector&lt;MediaQueryExpression&gt;());
</del><ins>+        MediaQuery query = MediaQuery(MediaQuery::Not, &quot;all&quot;, Vector&lt;MediaQueryExpression&gt;());
</ins><span class="cx">         m_querySet-&gt;addMediaQuery(WTFMove(query));
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx">         processToken(CSSParserToken(EOFToken));
</span><span class="cx"> 
</span><span class="cx">     if (m_state != ReadAnd &amp;&amp; m_state != ReadRestrictor &amp;&amp; m_state != Done &amp;&amp; m_state != ReadMediaNot) {
</span><del>-        MediaQuery query = MediaQuery(MediaQuery::None, &quot;all&quot;, Vector&lt;MediaQueryExpression&gt;());
</del><ins>+        MediaQuery query = MediaQuery(MediaQuery::Not, &quot;all&quot;, Vector&lt;MediaQueryExpression&gt;());
</ins><span class="cx">         m_querySet-&gt;addMediaQuery(WTFMove(query));
</span><span class="cx">     } else if (m_mediaQueryData.currentMediaQueryChanged())
</span><span class="cx">         commitMediaQuery();
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserSizesAttributeParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/SizesAttributeParser.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/SizesAttributeParser.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/parser/SizesAttributeParser.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -39,9 +39,14 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-float SizesAttributeParser::computeLength(double value, CSSPrimitiveValue::UnitTypes type, const RenderStyle&amp; style, RenderView&amp; renderer)
</del><ins>+float SizesAttributeParser::computeLength(double value, CSSPrimitiveValue::UnitTypes type, const Document&amp; document)
</ins><span class="cx"> {
</span><del>-    CSSToLengthConversionData conversionData(&amp;style, &amp;style, &amp;renderer);
</del><ins>+    auto* renderer = document.renderView();
+    if (!renderer)
+        return 0;
+    auto&amp; style = renderer-&gt;style();
+
+    CSSToLengthConversionData conversionData(&amp;style, &amp;style, renderer);
</ins><span class="cx">     
</span><span class="cx">     // Because we evaluate &quot;sizes&quot; at parse time (before style has been resolved), the font metrics used for these specific units
</span><span class="cx">     // are not available. The font selector's internal consistency isn't guaranteed just yet, so we can just temporarily clear
</span><span class="lines">@@ -59,9 +64,8 @@
</span><span class="cx">     return clampTo&lt;float&gt;(CSSPrimitiveValue::computeNonCalcLengthDouble(conversionData, type, value));
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-SizesAttributeParser::SizesAttributeParser(const String&amp; attribute, const RenderStyle&amp; style, RenderView&amp; view)
-    : m_style(style)
-    , m_view(view)
</del><ins>+SizesAttributeParser::SizesAttributeParser(const String&amp; attribute, const Document&amp; document)
+    : m_document(document)
</ins><span class="cx">     , m_length(0)
</span><span class="cx">     , m_lengthWasSet(false)
</span><span class="cx"> {
</span><span class="lines">@@ -82,11 +86,11 @@
</span><span class="cx">     if (type == DimensionToken) {
</span><span class="cx">         if (!CSSPrimitiveValue::isLength(startToken.unitType()))
</span><span class="cx">             return false;
</span><del>-        result = computeLength(startToken.numericValue(), startToken.unitType(), m_style, m_view);
</del><ins>+        result = computeLength(startToken.numericValue(), startToken.unitType(), m_document);
</ins><span class="cx">         if (result &gt;= 0)
</span><span class="cx">             return true;
</span><span class="cx">     } else if (type == FunctionToken) {
</span><del>-        SizesCalcParser calcParser(range, m_style, m_view);
</del><ins>+        SizesCalcParser calcParser(range, m_document);
</ins><span class="cx">         if (!calcParser.isValid())
</span><span class="cx">             return false;
</span><span class="cx">         result = calcParser.result();
</span><span class="lines">@@ -102,7 +106,11 @@
</span><span class="cx"> bool SizesAttributeParser::mediaConditionMatches(const MediaQuerySet&amp; mediaCondition)
</span><span class="cx"> {
</span><span class="cx">     // A Media Condition cannot have a media type other than screen.
</span><del>-    return MediaQueryEvaluator { &quot;screen&quot;, m_view.document(), &amp;m_style }.evaluate(mediaCondition, m_view.document().styleResolverIfExists());
</del><ins>+    auto* renderer = m_document.renderView();
+    if (!renderer)
+        return false;
+    auto&amp; style = renderer-&gt;style();
+    return MediaQueryEvaluator { &quot;screen&quot;, m_document, &amp;style }.evaluate(mediaCondition, m_document.styleResolverIfExists());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool SizesAttributeParser::parse(CSSParserTokenRange range)
</span><span class="lines">@@ -143,7 +151,11 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned SizesAttributeParser::effectiveSizeDefaultValue()
</span><span class="cx"> {
</span><del>-    return clampTo&lt;float&gt;(CSSPrimitiveValue::computeNonCalcLengthDouble({ &amp;m_style, &amp;m_style, &amp;m_view }, CSSPrimitiveValue::CSS_VW, 100.0));
</del><ins>+    auto* renderer = m_document.renderView();
+    if (!renderer)
+        return 0;
+    auto&amp; style = renderer-&gt;style();
+    return clampTo&lt;float&gt;(CSSPrimitiveValue::computeNonCalcLengthDouble({ &amp;style, &amp;style, renderer }, CSSPrimitiveValue::CSS_VW, 100.0));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserSizesAttributeParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/SizesAttributeParser.h (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/SizesAttributeParser.h        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/parser/SizesAttributeParser.h        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -36,17 +36,16 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class CSSValue;
</span><del>-class RenderStyle;
-class RenderView;
</del><ins>+class Document;
</ins><span class="cx">     
</span><span class="cx"> class SizesAttributeParser {
</span><span class="cx"> public:
</span><del>-    SizesAttributeParser(const String&amp;, const RenderStyle&amp;, RenderView&amp;);
</del><ins>+    SizesAttributeParser(const String&amp;, const Document&amp;);
</ins><span class="cx"> 
</span><span class="cx">     float length();
</span><span class="cx"> 
</span><del>-    static float defaultLength(const RenderStyle&amp;, RenderView&amp;);
-    static float computeLength(double value, CSSPrimitiveValue::UnitTypes, const RenderStyle&amp;, RenderView&amp;);
</del><ins>+    static float defaultLength(const Document&amp;);
+    static float computeLength(double value, CSSPrimitiveValue::UnitTypes, const Document&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool parse(CSSParserTokenRange);
</span><span class="lines">@@ -55,8 +54,7 @@
</span><span class="cx">     bool mediaConditionMatches(const MediaQuerySet&amp; mediaCondition);
</span><span class="cx">     unsigned effectiveSizeDefaultValue();
</span><span class="cx"> 
</span><del>-    const RenderStyle&amp; m_style;
-    RenderView&amp; m_view;
</del><ins>+    const Document&amp; m_document;
</ins><span class="cx">     RefPtr&lt;MediaQuerySet&gt; m_mediaCondition;
</span><span class="cx">     float m_length;
</span><span class="cx">     bool m_lengthWasSet;
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserSizesCalcParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/SizesCalcParser.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/SizesCalcParser.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/parser/SizesCalcParser.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -36,10 +36,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-SizesCalcParser::SizesCalcParser(CSSParserTokenRange range, const RenderStyle&amp; style, RenderView&amp; view)
</del><ins>+SizesCalcParser::SizesCalcParser(CSSParserTokenRange range, const Document&amp; document)
</ins><span class="cx">     : m_result(0)
</span><del>-    , m_style(style)
-    , m_view(view)
</del><ins>+    , m_document(document)
</ins><span class="cx"> {
</span><span class="cx">     m_isValid = calcToReversePolishNotation(range) &amp;&amp; calculate();
</span><span class="cx"> }
</span><span class="lines">@@ -96,7 +95,7 @@
</span><span class="cx"> bool SizesCalcParser::appendLength(const CSSParserToken&amp; token)
</span><span class="cx"> {
</span><span class="cx">     SizesCalcValue value;
</span><del>-    double result = SizesAttributeParser::computeLength(token.numericValue(), token.unitType(), m_style, m_view);
</del><ins>+    double result = SizesAttributeParser::computeLength(token.numericValue(), token.unitType(), m_document);
</ins><span class="cx">     value.value = result;
</span><span class="cx">     value.isLength = true;
</span><span class="cx">     m_valueList.append(value);
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserSizesCalcParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/SizesCalcParser.h (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/SizesCalcParser.h        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/css/parser/SizesCalcParser.h        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -35,8 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class RenderStyle;
-class RenderView;
</del><ins>+class Document;
</ins><span class="cx"> 
</span><span class="cx"> struct SizesCalcValue {
</span><span class="cx">     double value;
</span><span class="lines">@@ -60,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx"> class SizesCalcParser {
</span><span class="cx"> public:
</span><del>-    SizesCalcParser(CSSParserTokenRange, const RenderStyle&amp;, RenderView&amp;);
</del><ins>+    SizesCalcParser(CSSParserTokenRange, const Document&amp;);
</ins><span class="cx"> 
</span><span class="cx">     float result() const;
</span><span class="cx">     bool isValid() const { return m_isValid; }
</span><span class="lines">@@ -76,8 +75,7 @@
</span><span class="cx">     Vector&lt;SizesCalcValue&gt; m_valueList;
</span><span class="cx">     bool m_isValid;
</span><span class="cx">     float m_result;
</span><del>-    const RenderStyle&amp; m_style;
-    RenderView&amp; m_view;
</del><ins>+    const Document&amp; m_document;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -41,9 +41,10 @@
</span><span class="cx"> #include &quot;NodeTraversal.h&quot;
</span><span class="cx"> #include &quot;Page.h&quot;
</span><span class="cx"> #include &quot;RenderImage.h&quot;
</span><ins>+#include &quot;RenderView.h&quot;
</ins><span class="cx"> #include &quot;Settings.h&quot;
</span><span class="cx"> #include &quot;ShadowRoot.h&quot;
</span><del>-#include &quot;SourceSizeList.h&quot;
</del><ins>+#include &quot;SizesAttributeParser.h&quot;
</ins><span class="cx"> #include &lt;wtf/text/StringBuilder.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><span class="lines">@@ -177,7 +178,7 @@
</span><span class="cx">         if (!evaluation)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        auto sourceSize = parseSizesAttribute(document(), source.attributeWithoutSynchronization(sizesAttr).string());
</del><ins>+        auto sourceSize = SizesAttributeParser(source.attributeWithoutSynchronization(sizesAttr).string(), document()).length();
</ins><span class="cx">         auto candidate = bestFitSourceForImageAttributes(document().deviceScaleFactor(), nullAtom, srcset, sourceSize);
</span><span class="cx">         if (!candidate.isEmpty())
</span><span class="cx">             return candidate;
</span><span class="lines">@@ -191,7 +192,7 @@
</span><span class="cx">     ImageCandidate candidate = bestFitSourceFromPictureElement();
</span><span class="cx">     if (candidate.isEmpty()) {
</span><span class="cx">         // If we don't have a &lt;picture&gt; or didn't find a source, then we use our own attributes.
</span><del>-        float sourceSize = parseSizesAttribute(document(), attributeWithoutSynchronization(sizesAttr).string());
</del><ins>+        auto sourceSize = SizesAttributeParser(attributeWithoutSynchronization(sizesAttr).string(), document()).length();
</ins><span class="cx">         candidate = bestFitSourceForImageAttributes(document().deviceScaleFactor(), attributeWithoutSynchronization(srcAttr), attributeWithoutSynchronization(srcsetAttr), sourceSize);
</span><span class="cx">     }
</span><span class="cx">     setBestFitURLAndDPRFromImageCandidate(candidate);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLPreloadScannercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (205904 => 205905)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp        2016-09-14 15:16:04 UTC (rev 205904)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp        2016-09-14 15:54:54 UTC (rev 205905)
</span><span class="lines">@@ -36,7 +36,8 @@
</span><span class="cx"> #include &quot;LinkRelAttribute.h&quot;
</span><span class="cx"> #include &quot;MediaList.h&quot;
</span><span class="cx"> #include &quot;MediaQueryEvaluator.h&quot;
</span><del>-#include &quot;SourceSizeList.h&quot;
</del><ins>+#include &quot;RenderView.h&quot;
+#include &quot;SizesAttributeParser.h&quot;
</ins><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -118,7 +119,8 @@
</span><span class="cx">         }
</span><span class="cx">         
</span><span class="cx">         if (m_tagId == TagId::Source &amp;&amp; !pictureState.isEmpty() &amp;&amp; !pictureState.last() &amp;&amp; m_mediaMatched &amp;&amp; !m_srcSetAttribute.isEmpty()) {
</span><del>-            float sourceSize = parseSizesAttribute(document, m_sizesAttribute);
</del><ins>+            
+            auto sourceSize = SizesAttributeParser(m_sizesAttribute, document).length();
</ins><span class="cx">             ImageCandidate imageCandidate = bestFitSourceForImageAttributes(m_deviceScaleFactor, m_urlToLoad, m_srcSetAttribute, sourceSize);
</span><span class="cx">             if (!imageCandidate.isEmpty()) {
</span><span class="cx">                 pictureState.last() = true;
</span><span class="lines">@@ -128,7 +130,7 @@
</span><span class="cx">         
</span><span class="cx">         // Resolve between src and srcSet if we have them and the tag is img.
</span><span class="cx">         if (m_tagId == TagId::Img &amp;&amp; !m_srcSetAttribute.isEmpty()) {
</span><del>-            float sourceSize = parseSizesAttribute(document, m_sizesAttribute);
</del><ins>+            auto sourceSize = SizesAttributeParser(m_sizesAttribute, document).length();
</ins><span class="cx">             ImageCandidate imageCandidate = bestFitSourceForImageAttributes(m_deviceScaleFactor, m_urlToLoad, m_srcSetAttribute, sourceSize);
</span><span class="cx">             setUrlToLoad(imageCandidate.string.toString(), true);
</span><span class="cx">         }
</span></span></pre>
</div>
</div>

</body>
</html>