No subject
Fri Mar 7 15:32:22 PST 2014
This is not a regression and I cannot fix that easily so I left a fixme.
Tests: fast/css/data-attribute-style-sharing-1.html
fast/css/data-attribute-style-sharing-2.html
fast/css/data-attribute-style-sharing-3.html
fast/css/data-attribute-style-sharing-4.html
fast/css/data-attribute-style-sharing-5.html
fast/css/data-attribute-style-sharing-6.html
fast/css/data-attribute-style-sharing-7.html
fast/css/readonly-attribute-style-sharing-1.html
fast/css/readonly-attribute-style-sharing-2.html
fast/css/readonly-attribute-style-sharing-3.html
fast/css/readonly-attribute-style-sharing-4.html
fast/css/readonly-attribute-style-sharing-5.html
fast/css/readonly-attribute-style-sharing-6.html
fast/css/readonly-attribute-style-sharing-7.html
fast/css/type-attribute-style-sharing-1.html
fast/css/type-attribute-style-sharing-2.html
fast/css/type-attribute-style-sharing-3.html
fast/css/type-attribute-style-sharing-4.html
fast/css/type-attribute-style-sharing-5.html
fast/css/type-attribute-style-sharing-6.html
fast/css/type-attribute-style-sharing-7.html
* css/RuleSet.cpp:
(WebCore::containsUncommonAttributeSelector):
(WebCore::RuleData::RuleData):
(WebCore::selectorListContainsAttributeSelector): Deleted.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::canShareStyleWithElement):
LayoutTests:
* fast/css/data-attribute-style-sharing-1-expected.html: Added.
* fast/css/data-attribute-style-sharing-1.html: Added.
* fast/css/data-attribute-style-sharing-2-expected.html: Added.
* fast/css/data-attribute-style-sharing-2.html: Added.
* fast/css/data-attribute-style-sharing-3-expected.html: Added.
* fast/css/data-attribute-style-sharing-3.html: Added.
* fast/css/data-attribute-style-sharing-4-expected.html: Added.
* fast/css/data-attribute-style-sharing-4.html: Added.
* fast/css/data-attribute-style-sharing-5-expected.html: Added.
* fast/css/data-attribute-style-sharing-5.html: Added.
* fast/css/data-attribute-style-sharing-6-expected.html: Added.
* fast/css/data-attribute-style-sharing-6.html: Added.
* fast/css/data-attribute-style-sharing-7-expected.html: Added.
* fast/css/data-attribute-style-sharing-7.html: Added.
* fast/css/readonly-attribute-style-sharing-1-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-1.html: Added.
* fast/css/readonly-attribute-style-sharing-2-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-2.html: Added.
* fast/css/readonly-attribute-style-sharing-3-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-3.html: Added.
* fast/css/readonly-attribute-style-sharing-4-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-4.html: Added.
* fast/css/readonly-attribute-style-sharing-5-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-5.html: Added.
* fast/css/readonly-attribute-style-sharing-6-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-6.html: Added.
* fast/css/readonly-attribute-style-sharing-7-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-7.html: Added.
* fast/css/type-attribute-style-sharing-1-expected.html: Added.
* fast/css/type-attribute-style-sharing-1.html: Added.
* fast/css/type-attribute-style-sharing-2-expected.html: Added.
* fast/css/type-attribute-style-sharing-2.html: Added.
* fast/css/type-attribute-style-sharing-3-expected.html: Added.
* fast/css/type-attribute-style-sharing-3.html: Added.
* fast/css/type-attribute-style-sharing-4-expected.html: Added.
* fast/css/type-attribute-style-sharing-4.html: Added.
* fast/css/type-attribute-style-sharing-5-expected.html: Added.
* fast/css/type-attribute-style-sharing-5.html: Added.
* fast/css/type-attribute-style-sharing-6-expected.html: Added.
* fast/css/type-attribute-style-sharing-6.html: Added.
* fast/css/type-attribute-style-sharing-7-expected.html: Added.
* fast/css/type-attribute-style-sharing-7.html: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssRuleSetcpp">trunk/Source/WebCore/css/RuleSet.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing1expectedhtml">trunk/LayoutTests/fast/css/data-attribute-style-sharing-1-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing1html">trunk/LayoutTests/fast/css/data-attribute-style-sharing-1.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing2expectedhtml">trunk/LayoutTests/fast/css/data-attribute-style-sharing-2-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing2html">trunk/LayoutTests/fast/css/data-attribute-style-sharing-2.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing3expectedhtml">trunk/LayoutTests/fast/css/data-attribute-style-sharing-3-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing3html">trunk/LayoutTests/fast/css/data-attribute-style-sharing-3.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing4expectedhtml">trunk/LayoutTests/fast/css/data-attribute-style-sharing-4-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing4html">trunk/LayoutTests/fast/css/data-attribute-style-sharing-4.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing5expectedhtml">trunk/LayoutTests/fast/css/data-attribute-style-sharing-5-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing5html">trunk/LayoutTests/fast/css/data-attribute-style-sharing-5.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing6expectedhtml">trunk/LayoutTests/fast/css/data-attribute-style-sharing-6-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing6html">trunk/LayoutTests/fast/css/data-attribute-style-sharing-6.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing7expectedhtml">trunk/LayoutTests/fast/css/data-attribute-style-sharing-7-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssdataattributestylesharing7html">trunk/LayoutTests/fast/css/data-attribute-style-sharing-7.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing1expectedhtml">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing1html">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing2expectedhtml">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing2html">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing3expectedhtml">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing3html">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing4expectedhtml">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing4html">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing5expectedhtml">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing5html">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing6expectedhtml">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing6html">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing7expectedhtml">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssreadonlyattributestylesharing7html">trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing1expectedhtml">trunk/LayoutTests/fast/css/type-attribute-style-sharing-1-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing1html">trunk/LayoutTests/fast/css/type-attribute-style-sharing-1.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing2expectedhtml">trunk/LayoutTests/fast/css/type-attribute-style-sharing-2-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing2html">trunk/LayoutTests/fast/css/type-attribute-style-sharing-2.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing3expectedhtml">trunk/LayoutTests/fast/css/type-attribute-style-sharing-3-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing3html">trunk/LayoutTests/fast/css/type-attribute-style-sharing-3.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing4expectedhtml">trunk/LayoutTests/fast/css/type-attribute-style-sharing-4-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing4html">trunk/LayoutTests/fast/css/type-attribute-style-sharing-4.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing5expectedhtml">trunk/LayoutTests/fast/css/type-attribute-style-sharing-5-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing5html">trunk/LayoutTests/fast/css/type-attribute-style-sharing-5.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing6expectedhtml">trunk/LayoutTests/fast/css/type-attribute-style-sharing-6-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing6html">trunk/LayoutTests/fast/css/type-attribute-style-sharing-6.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing7expectedhtml">trunk/LayoutTests/fast/css/type-attribute-style-sharing-7-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcsstypeattributestylesharing7html">trunk/LayoutTests/fast/css/type-attribute-style-sharing-7.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (176863 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog 2014-12-05 20:51:02 UTC (rev 176863)
+++ trunk/LayoutTests/ChangeLog 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -1,3 +1,53 @@
</span><ins>+2014-12-05 Benjamin Poulain <bpoulain at apple.com>
+
+ Fix style sharing with the "type" and "readonly" attributes
+ https://bugs.webkit.org/show_bug.cgi?id=139283
+
+ Reviewed by Antti Koivisto.
+
+ * fast/css/data-attribute-style-sharing-1-expected.html: Added.
+ * fast/css/data-attribute-style-sharing-1.html: Added.
+ * fast/css/data-attribute-style-sharing-2-expected.html: Added.
+ * fast/css/data-attribute-style-sharing-2.html: Added.
+ * fast/css/data-attribute-style-sharing-3-expected.html: Added.
+ * fast/css/data-attribute-style-sharing-3.html: Added.
+ * fast/css/data-attribute-style-sharing-4-expected.html: Added.
+ * fast/css/data-attribute-style-sharing-4.html: Added.
+ * fast/css/data-attribute-style-sharing-5-expected.html: Added.
+ * fast/css/data-attribute-style-sharing-5.html: Added.
+ * fast/css/data-attribute-style-sharing-6-expected.html: Added.
+ * fast/css/data-attribute-style-sharing-6.html: Added.
+ * fast/css/data-attribute-style-sharing-7-expected.html: Added.
+ * fast/css/data-attribute-style-sharing-7.html: Added.
+ * fast/css/readonly-attribute-style-sharing-1-expected.html: Added.
+ * fast/css/readonly-attribute-style-sharing-1.html: Added.
+ * fast/css/readonly-attribute-style-sharing-2-expected.html: Added.
+ * fast/css/readonly-attribute-style-sharing-2.html: Added.
+ * fast/css/readonly-attribute-style-sharing-3-expected.html: Added.
+ * fast/css/readonly-attribute-style-sharing-3.html: Added.
+ * fast/css/readonly-attribute-style-sharing-4-expected.html: Added.
+ * fast/css/readonly-attribute-style-sharing-4.html: Added.
+ * fast/css/readonly-attribute-style-sharing-5-expected.html: Added.
+ * fast/css/readonly-attribute-style-sharing-5.html: Added.
+ * fast/css/readonly-attribute-style-sharing-6-expected.html: Added.
+ * fast/css/readonly-attribute-style-sharing-6.html: Added.
+ * fast/css/readonly-attribute-style-sharing-7-expected.html: Added.
+ * fast/css/readonly-attribute-style-sharing-7.html: Added.
+ * fast/css/type-attribute-style-sharing-1-expected.html: Added.
+ * fast/css/type-attribute-style-sharing-1.html: Added.
+ * fast/css/type-attribute-style-sharing-2-expected.html: Added.
+ * fast/css/type-attribute-style-sharing-2.html: Added.
+ * fast/css/type-attribute-style-sharing-3-expected.html: Added.
+ * fast/css/type-attribute-style-sharing-3.html: Added.
+ * fast/css/type-attribute-style-sharing-4-expected.html: Added.
+ * fast/css/type-attribute-style-sharing-4.html: Added.
+ * fast/css/type-attribute-style-sharing-5-expected.html: Added.
+ * fast/css/type-attribute-style-sharing-5.html: Added.
+ * fast/css/type-attribute-style-sharing-6-expected.html: Added.
+ * fast/css/type-attribute-style-sharing-6.html: Added.
+ * fast/css/type-attribute-style-sharing-7-expected.html: Added.
+ * fast/css/type-attribute-style-sharing-7.html: Added.
+
</ins><span class="cx"> 2014-12-04 Dean Jackson <dino at apple.com>
</span><span class="cx">
</span><span class="cx"> css3/viewport-percentage-lengths tests are flakey on WK1 Mavericks Debug
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing1expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-1-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-1-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-1-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+ <head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>No data-webkit</div>
+ <div style="background-color: red;">data-webkit defined</div>
+ <div style="background-color: red;">data-webkit defined empty</div>
+ <div style="background-color: blue;">data-webkit is foobar</div>
+ </div>
+ <div>
+ <span>No data-webkit</span>
+ <span style="background-color: red;">data-webkit defined</span>
+ <span style="background-color: red;">data-webkit defined empty</span>
+ <span style="background-color: blue;">data-webkit is foobar</span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input style="background-color: red;" value="data-webkit defined">
+ <input style="background-color: red;" value="data-webkit defined empty">
+ <input style="background-color: blue;" value="data-webkit is foobar">
+ </div>
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing1html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-1.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-1.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-1.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ [data-webkit] {
+ background-color: red;
+ }
+ [data-webkit=foobar] {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>No data-webkit</div>
+ <div data-webkit>data-webkit defined</div>
+ <div data-webkit="">data-webkit defined empty</div>
+ <div data-webkit="foobar">data-webkit is foobar</div>
+ </div>
+ <div>
+ <span>No data-webkit</span>
+ <span data-webkit>data-webkit defined</span>
+ <span data-webkit="">data-webkit defined empty</span>
+ <span data-webkit="foobar">data-webkit is foobar</span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing2expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-2-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-2-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-2-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div style="background-color: blue;">No data-webkit</div>
+ <div style="background-color: blue;">data-webkit defined</div>
+ <div style="background-color: blue;">data-webkit defined empty</div>
+ <div>data-webkit is foobar</div>
+ </div>
+ <div>
+ <span style="background-color: blue;">No data-webkit</span>
+ <span style="background-color: blue;">data-webkit defined</span>
+ <span style="background-color: blue;">data-webkit defined empty</span>
+ <span>data-webkit is foobar</span>
+ </div>
+ <div>
+ <input style="background-color: blue;" value="No data-webkit">
+ <input style="background-color: blue;" value="data-webkit defined">
+ <input style="background-color: blue;" value="data-webkit defined empty">
+ <input value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing2html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-2.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-2.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-2.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ div > :not([data-webkit]) {
+ background-color: red;
+ }
+ div > :not([data-webkit=foobar]) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>No data-webkit</div>
+ <div data-webkit>data-webkit defined</div>
+ <div data-webkit="">data-webkit defined empty</div>
+ <div data-webkit="foobar">data-webkit is foobar</div>
+ </div>
+ <div>
+ <span>No data-webkit</span>
+ <span data-webkit>data-webkit defined</span>
+ <span data-webkit="">data-webkit defined empty</span>
+ <span data-webkit="foobar">data-webkit is foobar</span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing3expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-3-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-3-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-3-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+ <head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>No data-webkit</div>
+ <div style="background-color: red;">data-webkit defined</div>
+ <div style="background-color: red;">data-webkit defined empty</div>
+ <div style="background-color: blue;">data-webkit is foobar</div>
+ </div>
+ <div>
+ <span>No data-webkit</span>
+ <span style="background-color: red;">data-webkit defined</span>
+ <span style="background-color: red;">data-webkit defined empty</span>
+ <span style="background-color: blue;">data-webkit is foobar</span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input style="background-color: red;" value="data-webkit defined">
+ <input style="background-color: red;" value="data-webkit defined empty">
+ <input style="background-color: blue;" value="data-webkit is foobar">
+ </div>
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing3html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-3.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-3.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-3.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([data-webkit]) {
+ background-color: red;
+ }
+ :matches([data-webkit=foobar]) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>No data-webkit</div>
+ <div data-webkit>data-webkit defined</div>
+ <div data-webkit="">data-webkit defined empty</div>
+ <div data-webkit="foobar">data-webkit is foobar</div>
+ </div>
+ <div>
+ <span>No data-webkit</span>
+ <span data-webkit>data-webkit defined</span>
+ <span data-webkit="">data-webkit defined empty</span>
+ <span data-webkit="foobar">data-webkit is foobar</span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing4expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-4-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-4-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-4-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+ <head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>No data-webkit</div>
+ <div style="background-color: red;">data-webkit defined</div>
+ <div style="background-color: red;">data-webkit defined empty</div>
+ <div style="background-color: blue;">data-webkit is foobar</div>
+ </div>
+ <div>
+ <span>No data-webkit</span>
+ <span style="background-color: red;">data-webkit defined</span>
+ <span style="background-color: red;">data-webkit defined empty</span>
+ <span style="background-color: blue;">data-webkit is foobar</span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input style="background-color: red;" value="data-webkit defined">
+ <input style="background-color: red;" value="data-webkit defined empty">
+ <input style="background-color: blue;" value="data-webkit is foobar">
+ </div>
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing4html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-4.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-4.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-4.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches(:matches(:matches([data-webkit]))) {
+ background-color: red;
+ }
+ :matches(:matches(:matches([data-webkit=foobar]))) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>No data-webkit</div>
+ <div data-webkit>data-webkit defined</div>
+ <div data-webkit="">data-webkit defined empty</div>
+ <div data-webkit="foobar">data-webkit is foobar</div>
+ </div>
+ <div>
+ <span>No data-webkit</span>
+ <span data-webkit>data-webkit defined</span>
+ <span data-webkit="">data-webkit defined empty</span>
+ <span data-webkit="foobar">data-webkit is foobar</span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing5expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-5-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-5-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-5-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </div>
+ <div data-webkit>
+ Padding
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ Padding
+ </div>
+ <div data-webkit="">
+ Padding
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ Padding
+ </div>
+ <div data-webkit="foobar">
+ Padding
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </span>
+ <span data-webkit>
+ Padding
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ Padding
+ </span>
+ <span data-webkit="">
+ Padding
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ Padding
+ </span>
+ <span data-webkit="foobar">
+ Padding
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing5html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-5.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-5.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-5.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ [data-webkit] > * {
+ background-color: red;
+ }
+ [data-webkit=foobar] > * {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </div>
+ <div data-webkit>
+ Padding
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ Padding
+ </div>
+ <div data-webkit="">
+ Padding
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ Padding
+ </div>
+ <div data-webkit="foobar">
+ Padding
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </span>
+ <span data-webkit>
+ Padding
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ Padding
+ </span>
+ <span data-webkit="">
+ Padding
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ Padding
+ </span>
+ <span data-webkit="foobar">
+ Padding
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing6expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-6-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-6-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-6-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </div>
+ <div data-webkit>
+ Padding
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ Padding
+ </div>
+ <div data-webkit="">
+ Padding
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ Padding
+ </div>
+ <div data-webkit="foobar">
+ Padding
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </span>
+ <span data-webkit>
+ Padding
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ Padding
+ </span>
+ <span data-webkit="">
+ Padding
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ Padding
+ </span>
+ <span data-webkit="foobar">
+ Padding
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing6html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-6.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-6.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-6.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([data-webkit]) > * {
+ background-color: red;
+ }
+ :matches([data-webkit=foobar]) > * {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </div>
+ <div data-webkit>
+ Padding
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ Padding
+ </div>
+ <div data-webkit="">
+ Padding
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ Padding
+ </div>
+ <div data-webkit="foobar">
+ Padding
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </span>
+ <span data-webkit>
+ Padding
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ Padding
+ </span>
+ <span data-webkit="">
+ Padding
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ Padding
+ </span>
+ <span data-webkit="foobar">
+ Padding
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing7expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-7-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-7-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-7-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </div>
+ <div data-webkit>
+ Padding
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ Padding
+ </div>
+ <div data-webkit="">
+ Padding
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ Padding
+ </div>
+ <div data-webkit="foobar">
+ Padding
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </span>
+ <span data-webkit>
+ Padding
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ <span style="background-color: red;">data-webkit defined<span>
+ Padding
+ </span>
+ <span data-webkit="">
+ Padding
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ <span style="background-color: red;">data-webkit defined empty<span>
+ Padding
+ </span>
+ <span data-webkit="foobar">
+ Padding
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ <span style="background-color: blue;">data-webkit is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssdataattributestylesharing7html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/data-attribute-style-sharing-7.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/data-attribute-style-sharing-7.html (rev 0)
+++ trunk/LayoutTests/fast/css/data-attribute-style-sharing-7.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([data-webkit] > *) {
+ background-color: red;
+ }
+ :matches([data-webkit=foobar] > *) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore data attributes.</p>
+ <div>
+ <div>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </div>
+ <div data-webkit>
+ Padding
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ Padding
+ </div>
+ <div data-webkit="">
+ Padding
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ Padding
+ </div>
+ <div data-webkit="foobar">
+ Padding
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ <span>No data-webkit<span>
+ Padding
+ </span>
+ <span data-webkit>
+ Padding
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ <span>data-webkit defined<span>
+ Padding
+ </span>
+ <span data-webkit="">
+ Padding
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ <span>data-webkit defined empty<span>
+ Padding
+ </span>
+ <span data-webkit="foobar">
+ Padding
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ <span>data-webkit is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No data-webkit">
+ <input data-webkit value="data-webkit defined">
+ <input data-webkit="" value="data-webkit defined empty">
+ <input data-webkit="foobar" value="data-webkit is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing1expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>No readonly</div>
+ <div style="background-color: red;">Readonly defined</div>
+ <div style="background-color: red;">Readonly defined empty</div>
+ <div style="background-color: blue;">Readonly is foobar</div>
+ </div>
+ <div>
+ <span>No readonly</span>
+ <span style="background-color: red;">Readonly defined</span>
+ <span style="background-color: red;">Readonly defined empty</span>
+ <span style="background-color: blue;">Readonly is foobar</span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly style="background-color: red;" value="Readonly defined">
+ <input readonly="" style="background-color: red;" value="Readonly defined empty">
+ <input readonly="foobar" style="background-color: blue;" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing1html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-1.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ [readonly] {
+ background-color: red;
+ }
+ [readonly=foobar] {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>No readonly</div>
+ <div readonly>Readonly defined</div>
+ <div readonly="">Readonly defined empty</div>
+ <div readonly="foobar">Readonly is foobar</div>
+ </div>
+ <div>
+ <span>No readonly</span>
+ <span readonly>Readonly defined</span>
+ <span readonly="">Readonly defined empty</span>
+ <span readonly="foobar">Readonly is foobar</span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing2expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div style="background-color: blue;">No readonly</div>
+ <div style="background-color: blue;">Readonly defined</div>
+ <div style="background-color: blue;">Readonly defined empty</div>
+ <div>Readonly is foobar</div>
+ </div>
+ <div>
+ <span style="background-color: blue;">No readonly</span>
+ <span style="background-color: blue;">Readonly defined</span>
+ <span style="background-color: blue;">Readonly defined empty</span>
+ <span>Readonly is foobar</span>
+ </div>
+ <div>
+ <input style="background-color: blue;" value="No readonly">
+ <input readonly style="background-color: blue;" value="Readonly defined">
+ <input readonly="" style="background-color: blue;" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing2html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-2.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ div > :not([readonly]) {
+ background-color: red;
+ }
+ div > :not([readonly=foobar]) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>No readonly</div>
+ <div readonly>Readonly defined</div>
+ <div readonly="">Readonly defined empty</div>
+ <div readonly="foobar">Readonly is foobar</div>
+ </div>
+ <div>
+ <span>No readonly</span>
+ <span readonly>Readonly defined</span>
+ <span readonly="">Readonly defined empty</span>
+ <span readonly="foobar">Readonly is foobar</span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing3expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>No readonly</div>
+ <div style="background-color: red;">Readonly defined</div>
+ <div style="background-color: red;">Readonly defined empty</div>
+ <div style="background-color: blue;">Readonly is foobar</div>
+ </div>
+ <div>
+ <span>No readonly</span>
+ <span style="background-color: red;">Readonly defined</span>
+ <span style="background-color: red;">Readonly defined empty</span>
+ <span style="background-color: blue;">Readonly is foobar</span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly style="background-color: red;" value="Readonly defined">
+ <input readonly="" style="background-color: red;" value="Readonly defined empty">
+ <input readonly="foobar" style="background-color: blue;" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing3html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-3.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([readonly]) {
+ background-color: red;
+ }
+ :matches([readonly=foobar]) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>No readonly</div>
+ <div readonly>Readonly defined</div>
+ <div readonly="">Readonly defined empty</div>
+ <div readonly="foobar">Readonly is foobar</div>
+ </div>
+ <div>
+ <span>No readonly</span>
+ <span readonly>Readonly defined</span>
+ <span readonly="">Readonly defined empty</span>
+ <span readonly="foobar">Readonly is foobar</span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing4expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>No readonly</div>
+ <div style="background-color: red;">Readonly defined</div>
+ <div style="background-color: red;">Readonly defined empty</div>
+ <div style="background-color: blue;">Readonly is foobar</div>
+ </div>
+ <div>
+ <span>No readonly</span>
+ <span style="background-color: red;">Readonly defined</span>
+ <span style="background-color: red;">Readonly defined empty</span>
+ <span style="background-color: blue;">Readonly is foobar</span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly style="background-color: red;" value="Readonly defined">
+ <input readonly="" style="background-color: red;" value="Readonly defined empty">
+ <input readonly="foobar" style="background-color: blue;" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing4html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-4.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches(:matches(:matches([readonly]))) {
+ background-color: red;
+ }
+ :matches(:matches(:matches([readonly=foobar]))) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>No readonly</div>
+ <div readonly>Readonly defined</div>
+ <div readonly="">Readonly defined empty</div>
+ <div readonly="foobar">Readonly is foobar</div>
+ </div>
+ <div>
+ <span>No readonly</span>
+ <span readonly>Readonly defined</span>
+ <span readonly="">Readonly defined empty</span>
+ <span readonly="foobar">Readonly is foobar</span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing5expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </div>
+ <div readonly>
+ Padding
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ Padding
+ </div>
+ <div readonly="">
+ Padding
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ Padding
+ </div>
+ <div readonly="foobar">
+ Padding
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </span>
+ <span readonly>
+ Padding
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ Padding
+ </span>
+ <span readonly="">
+ Padding
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ Padding
+ </span>
+ <span readonly="foobar">
+ Padding
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing5html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-5.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ [readonly] > * {
+ background-color: red;
+ }
+ [readonly=foobar] > * {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </div>
+ <div readonly>
+ Padding
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ Padding
+ </div>
+ <div readonly="">
+ Padding
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ Padding
+ </div>
+ <div readonly="foobar">
+ Padding
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </span>
+ <span readonly>
+ Padding
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ Padding
+ </span>
+ <span readonly="">
+ Padding
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ Padding
+ </span>
+ <span readonly="foobar">
+ Padding
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing6expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </div>
+ <div readonly>
+ Padding
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ Padding
+ </div>
+ <div readonly="">
+ Padding
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ Padding
+ </div>
+ <div readonly="foobar">
+ Padding
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </span>
+ <span readonly>
+ Padding
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ Padding
+ </span>
+ <span readonly="">
+ Padding
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ Padding
+ </span>
+ <span readonly="foobar">
+ Padding
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing6html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-6.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([readonly]) > * {
+ background-color: red;
+ }
+ :matches([readonly=foobar]) > * {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </div>
+ <div readonly>
+ Padding
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ Padding
+ </div>
+ <div readonly="">
+ Padding
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ Padding
+ </div>
+ <div readonly="foobar">
+ Padding
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </span>
+ <span readonly>
+ Padding
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ Padding
+ </span>
+ <span readonly="">
+ Padding
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ Padding
+ </span>
+ <span readonly="foobar">
+ Padding
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing7expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </div>
+ <div readonly>
+ Padding
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ Padding
+ </div>
+ <div readonly="">
+ Padding
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ Padding
+ </div>
+ <div readonly="foobar">
+ Padding
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </span>
+ <span readonly>
+ Padding
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ <span style="background-color: red;">Readonly defined<span>
+ Padding
+ </span>
+ <span readonly="">
+ Padding
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ <span style="background-color: red;">Readonly defined empty<span>
+ Padding
+ </span>
+ <span readonly="foobar">
+ Padding
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ <span style="background-color: blue;">Readonly is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssreadonlyattributestylesharing7html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7.html (rev 0)
+++ trunk/LayoutTests/fast/css/readonly-attribute-style-sharing-7.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([readonly] > *) {
+ background-color: red;
+ }
+ :matches([readonly=foobar] > *) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "readonly" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </div>
+ <div readonly>
+ Padding
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ Padding
+ </div>
+ <div readonly="">
+ Padding
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ Padding
+ </div>
+ <div readonly="foobar">
+ Padding
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No readonly<span>
+ <span>No readonly<span>
+ <span>No readonly<span>
+ Padding
+ </span>
+ <span readonly>
+ Padding
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ <span>Readonly defined<span>
+ Padding
+ </span>
+ <span readonly="">
+ Padding
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ <span>Readonly defined empty<span>
+ Padding
+ </span>
+ <span readonly="foobar">
+ Padding
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ <span>Readonly is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No readonly">
+ <input readonly value="Readonly defined">
+ <input readonly="" value="Readonly defined empty">
+ <input readonly="foobar" value="Readonly is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing1expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-1-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-1-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-1-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>No type</div>
+ <div style="background-color: red;">Type defined</div>
+ <div style="background-color: red;">Type defined empty</div>
+ <div style="background-color: blue;">Type is foobar</div>
+ </div>
+ <div>
+ <span>No type</span>
+ <span style="background-color: red;">Type defined</span>
+ <span style="background-color: red;">Type defined empty</span>
+ <span style="background-color: blue;">Type is foobar</span>
+ </div>
+ <div>
+ <input value="No type">
+ <input style="background-color: red;" value="Type defined">
+ <input style="background-color: red;" value="Type defined empty">
+ <input style="background-color: blue;" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing1html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-1.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-1.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-1.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ [type] {
+ background-color: red;
+ }
+ [type=foobar] {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>No type</div>
+ <div type>Type defined</div>
+ <div type="">Type defined empty</div>
+ <div type="foobar">Type is foobar</div>
+ </div>
+ <div>
+ <span>No type</span>
+ <span type>Type defined</span>
+ <span type="">Type defined empty</span>
+ <span type="foobar">Type is foobar</span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing2expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-2-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-2-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-2-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div style="background-color: blue;">No type</div>
+ <div style="background-color: blue;">Type defined</div>
+ <div style="background-color: blue;">Type defined empty</div>
+ <div>Type is foobar</div>
+ </div>
+ <div>
+ <span style="background-color: blue;">No type</span>
+ <span style="background-color: blue;">Type defined</span>
+ <span style="background-color: blue;">Type defined empty</span>
+ <span>Type is foobar</span>
+ </div>
+ <div>
+ <input style="background-color: blue;" value="No type">
+ <input style="background-color: blue;" value="Type defined">
+ <input style="background-color: blue;" value="Type defined empty">
+ <input value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing2html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-2.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-2.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-2.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ div > :not([type]) {
+ background-color: red;
+ }
+ div > :not([type=foobar]) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>No type</div>
+ <div type>Type defined</div>
+ <div type="">Type defined empty</div>
+ <div type="foobar">Type is foobar</div>
+ </div>
+ <div>
+ <span>No type</span>
+ <span type>Type defined</span>
+ <span type="">Type defined empty</span>
+ <span type="foobar">Type is foobar</span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing3expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-3-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-3-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-3-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>No type</div>
+ <div style="background-color: red;">Type defined</div>
+ <div style="background-color: red;">Type defined empty</div>
+ <div style="background-color: blue;">Type is foobar</div>
+ </div>
+ <div>
+ <span>No type</span>
+ <span style="background-color: red;">Type defined</span>
+ <span style="background-color: red;">Type defined empty</span>
+ <span style="background-color: blue;">Type is foobar</span>
+ </div>
+ <div>
+ <input value="No type">
+ <input style="background-color: red;" value="Type defined">
+ <input style="background-color: red;" value="Type defined empty">
+ <input style="background-color: blue;" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing3html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-3.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-3.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-3.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([type]) {
+ background-color: red;
+ }
+ :matches([type=foobar]) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>No type</div>
+ <div type>Type defined</div>
+ <div type="">Type defined empty</div>
+ <div type="foobar">Type is foobar</div>
+ </div>
+ <div>
+ <span>No type</span>
+ <span type>Type defined</span>
+ <span type="">Type defined empty</span>
+ <span type="foobar">Type is foobar</span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing4expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-4-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-4-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-4-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>No type</div>
+ <div style="background-color: red;">Type defined</div>
+ <div style="background-color: red;">Type defined empty</div>
+ <div style="background-color: blue;">Type is foobar</div>
+ </div>
+ <div>
+ <span>No type</span>
+ <span style="background-color: red;">Type defined</span>
+ <span style="background-color: red;">Type defined empty</span>
+ <span style="background-color: blue;">Type is foobar</span>
+ </div>
+ <div>
+ <input value="No type">
+ <input style="background-color: red;" value="Type defined">
+ <input style="background-color: red;" value="Type defined empty">
+ <input style="background-color: blue;" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing4html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-4.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-4.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-4.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches(:matches(:matches([type]))) {
+ background-color: red;
+ }
+ :matches(:matches(:matches([type=foobar]))) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>No type</div>
+ <div type>Type defined</div>
+ <div type="">Type defined empty</div>
+ <div type="foobar">Type is foobar</div>
+ </div>
+ <div>
+ <span>No type</span>
+ <span type>Type defined</span>
+ <span type="">Type defined empty</span>
+ <span type="foobar">Type is foobar</span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing5expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-5-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-5-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-5-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </div>
+ <div type>
+ Padding
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ Padding
+ </div>
+ <div type="">
+ Padding
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ Padding
+ </div>
+ <div type="foobar">
+ Padding
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </span>
+ <span type>
+ Padding
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ Padding
+ </span>
+ <span type="">
+ Padding
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ Padding
+ </span>
+ <span type="foobar">
+ Padding
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing5html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-5.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-5.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-5.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ [type] > * {
+ background-color: red;
+ }
+ [type=foobar] > * {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </div>
+ <div type>
+ Padding
+ <span>Type defined<span>
+ <span>Type defined<span>
+ <span>Type defined<span>
+ Padding
+ </div>
+ <div type="">
+ Padding
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ Padding
+ </div>
+ <div type="foobar">
+ Padding
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </span>
+ <span type>
+ Padding
+ <span>Type defined<span>
+ <span>Type defined<span>
+ <span>Type defined<span>
+ Padding
+ </span>
+ <span type="">
+ Padding
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ Padding
+ </span>
+ <span type="foobar">
+ Padding
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing6expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-6-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-6-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-6-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </div>
+ <div type>
+ Padding
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ Padding
+ </div>
+ <div type="">
+ Padding
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ Padding
+ </div>
+ <div type="foobar">
+ Padding
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </span>
+ <span type>
+ Padding
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ Padding
+ </span>
+ <span type="">
+ Padding
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ Padding
+ </span>
+ <span type="foobar">
+ Padding
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing6html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-6.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-6.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-6.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([type]) > * {
+ background-color: red;
+ }
+ :matches([type=foobar]) > * {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </div>
+ <div type>
+ Padding
+ <span>Type defined<span>
+ <span>Type defined<span>
+ <span>Type defined<span>
+ Padding
+ </div>
+ <div type="">
+ Padding
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ Padding
+ </div>
+ <div type="foobar">
+ Padding
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </span>
+ <span type>
+ Padding
+ <span>Type defined<span>
+ <span>Type defined<span>
+ <span>Type defined<span>
+ Padding
+ </span>
+ <span type="">
+ Padding
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ Padding
+ </span>
+ <span type="foobar">
+ Padding
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing7expectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-7-expected.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-7-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-7-expected.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </div>
+ <div type>
+ Padding
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ Padding
+ </div>
+ <div type="">
+ Padding
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ Padding
+ </div>
+ <div type="foobar">
+ Padding
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </span>
+ <span type>
+ Padding
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ <span style="background-color: red;">Type defined<span>
+ Padding
+ </span>
+ <span type="">
+ Padding
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ <span style="background-color: red;">Type defined empty<span>
+ Padding
+ </span>
+ <span type="foobar">
+ Padding
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ <span style="background-color: blue;">Type is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsstypeattributestylesharing7html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/type-attribute-style-sharing-7.html (0 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/type-attribute-style-sharing-7.html (rev 0)
+++ trunk/LayoutTests/fast/css/type-attribute-style-sharing-7.html 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -0,0 +1,88 @@
</span><ins>+<!doctype html>
+<html>
+<head>
+ <style>
+ /* Pack them to fit everything in 800*600 */
+ div > * {
+ padding: 5px;
+ width: 100px;
+ float: left;
+ }
+ :matches([type] > *) {
+ background-color: red;
+ }
+ :matches([type=foobar] > *) {
+ background-color: blue;
+ }
+ </style>
+</head>
+<body>
+ <p>Verify style sharing does not ignore the "type" attribute.</p>
+ <div>
+ <div>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </div>
+ <div type>
+ Padding
+ <span>Type defined<span>
+ <span>Type defined<span>
+ <span>Type defined<span>
+ Padding
+ </div>
+ <div type="">
+ Padding
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ Padding
+ </div>
+ <div type="foobar">
+ Padding
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ Padding
+ </div>
+ </div>
+ <div>
+ <span>
+ Padding
+ <span>No type<span>
+ <span>No type<span>
+ <span>No type<span>
+ Padding
+ </span>
+ <span type>
+ Padding
+ <span>Type defined<span>
+ <span>Type defined<span>
+ <span>Type defined<span>
+ Padding
+ </span>
+ <span type="">
+ Padding
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ <span>Type defined empty<span>
+ Padding
+ </span>
+ <span type="foobar">
+ Padding
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ <span>Type is foobar<span>
+ Padding
+ </span>
+ </div>
+ <div>
+ <input value="No type">
+ <input type value="Type defined">
+ <input type="" value="Type defined empty">
+ <input type="foobar" value="Type is foobar">
+ </div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (176863 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog 2014-12-05 20:51:02 UTC (rev 176863)
+++ trunk/Source/WebCore/ChangeLog 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -1,3 +1,75 @@
</span><ins>+2014-12-05 Benjamin Poulain <bpoulain at apple.com>
+
+ Fix style sharing with the "type" and "readonly" attributes
+ https://bugs.webkit.org/show_bug.cgi?id=139283
+
+ Reviewed by Antti Koivisto.
+
+ There are two bugs adressed with this patch:
+ 1) The attributes "type" and "readonly" where only handled correctly
+ for input elements. For everything else, they could incorrectly
+ be ignored for style sharing.
+ 2) The handling of attributes was incorrect for selector lists, leading
+ to various bugs (incorrect style sharing in some cases, disabling
+ style sharing on valid cases).
+
+ For [1], the problem was that attribute checking had been limited to
+ StyleResolver::canShareStyleWithControl(). That function is for handling
+ the special states of input element. For any other element, the attributes
+ were simply ignored.
+
+ For [2], there were a bunch of small problems. First, containsUncommonAttributeSelector()
+ was not recursive, which caused it to ignored any nested selector list. This used to be
+ correct but since we have advanced selectors we can no longer assumed selectors are not nested.
+
+ A second issue was that any attribute in a selector list was causing us to fall back
+ to the slow case. Now that we have the fast :matches(), we really don't want that.
+
+ The function containsUncommonAttributeSelector() was transformed into a recursive function
+ tracking where we are in the selector.
+
+ At the entry point, we start with the flag "startsOnRightmostElement" set to true. The flag is then
+ updated on the stack of each recursive call.
+
+ For example, "webkit > is:matches(freaking > awesome)". We evalute "is" with the flag to true, then recurse
+ into evaluating "freaking > awesome" with the flag still set to true. When we evalute ">", the flag
+ is set to false to evaluate any following selectors.
+ After evaluating "freaking > awesome", we go back to our previous stack frame, and the flag
+ is back to true and we can continue evaluating with the curren top level state.
+
+ From some logging, I discovered that the attribute handling is way too aggressive.
+ This is not a regression and I cannot fix that easily so I left a fixme.
+
+ Tests: fast/css/data-attribute-style-sharing-1.html
+ fast/css/data-attribute-style-sharing-2.html
+ fast/css/data-attribute-style-sharing-3.html
+ fast/css/data-attribute-style-sharing-4.html
+ fast/css/data-attribute-style-sharing-5.html
+ fast/css/data-attribute-style-sharing-6.html
+ fast/css/data-attribute-style-sharing-7.html
+ fast/css/readonly-attribute-style-sharing-1.html
+ fast/css/readonly-attribute-style-sharing-2.html
+ fast/css/readonly-attribute-style-sharing-3.html
+ fast/css/readonly-attribute-style-sharing-4.html
+ fast/css/readonly-attribute-style-sharing-5.html
+ fast/css/readonly-attribute-style-sharing-6.html
+ fast/css/readonly-attribute-style-sharing-7.html
+ fast/css/type-attribute-style-sharing-1.html
+ fast/css/type-attribute-style-sharing-2.html
+ fast/css/type-attribute-style-sharing-3.html
+ fast/css/type-attribute-style-sharing-4.html
+ fast/css/type-attribute-style-sharing-5.html
+ fast/css/type-attribute-style-sharing-6.html
+ fast/css/type-attribute-style-sharing-7.html
+
+ * css/RuleSet.cpp:
+ (WebCore::containsUncommonAttributeSelector):
+ (WebCore::RuleData::RuleData):
+ (WebCore::selectorListContainsAttributeSelector): Deleted.
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::canShareStyleWithControl):
+ (WebCore::StyleResolver::canShareStyleWithElement):
+
</ins><span class="cx"> 2014-12-05 Jer Noble <jer.noble at apple.com>
</span><span class="cx">
</span><span class="cx"> [WTF] MediaTime should support round-tripping from and to doubles.
</span></span></pre></div>
<a id="trunkSourceWebCorecssRuleSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/RuleSet.cpp (176863 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/RuleSet.cpp 2014-12-05 20:51:02 UTC (rev 176863)
+++ trunk/Source/WebCore/css/RuleSet.cpp 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -96,49 +96,44 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static inline bool selectorListContainsAttributeSelector(const CSSSelector* selector)
-{
- const CSSSelectorList* selectorList = selector->selectorList();
- if (!selectorList)
- return false;
- for (const CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(selector)) {
- for (const CSSSelector* component = selector; component; component = component->tagHistory()) {
- if (component->isAttributeSelector())
- return true;
- }
- }
- return false;
-}
-
</del><span class="cx"> static inline bool isCommonAttributeSelectorAttribute(const QualifiedName& attribute)
</span><span class="cx"> {
</span><span class="cx"> // These are explicitly tested for equality in canShareStyleWithElement.
</span><span class="cx"> return attribute == typeAttr || attribute == readonlyAttr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static inline bool containsUncommonAttributeSelector(const CSSSelector* selector)
</del><ins>+static bool containsUncommonAttributeSelector(const CSSSelector& rootSelector, bool matchesRightmostElement)
</ins><span class="cx"> {
</span><del>- for (; selector; selector = selector->tagHistory()) {
- // Allow certain common attributes (used in the default style) in the selectors that match the current element.
- if (selector->isAttributeSelector() && !isCommonAttributeSelectorAttribute(selector->attribute()))
- return true;
- if (selectorListContainsAttributeSelector(selector))
- return true;
- if (selector->relation() != CSSSelector::SubSelector) {
- selector = selector->tagHistory();
- break;
</del><ins>+ const CSSSelector* selector = &rootSelector;
+ do {
+ if (selector->isAttributeSelector()) {
+ // FIXME: considering non-rightmost simple selectors is necessary because of the style sharing of cousins.
+ // It is a primitive solution which disable a lot of style sharing on pages that rely on attributes for styling.
+ // We should investigate better ways of doing this.
+ if (!isCommonAttributeSelectorAttribute(selector->attribute()) || !matchesRightmostElement)
+ return true;
</ins><span class="cx"> }
</span><del>- }
</del><span class="cx">
</span><del>- for (; selector; selector = selector->tagHistory()) {
- if (selector->isAttributeSelector())
- return true;
- if (selectorListContainsAttributeSelector(selector))
- return true;
- }
</del><ins>+ if (const CSSSelectorList* selectorList = selector->selectorList()) {
+ for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(subSelector)) {
+ if (containsUncommonAttributeSelector(*subSelector, matchesRightmostElement))
+ return true;
+ }
+ }
+
+ if (selector->relation() != CSSSelector::SubSelector)
+ matchesRightmostElement = false;
+
+ selector = selector->tagHistory();
+ } while (selector);
</ins><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+static inline bool containsUncommonAttributeSelector(const CSSSelector& rootSelector)
+{
+ return containsUncommonAttributeSelector(rootSelector, true);
+}
+
</ins><span class="cx"> static inline PropertyWhitelistType determinePropertyWhitelistType(const AddRuleFlags addRuleFlags, const CSSSelector* selector)
</span><span class="cx"> {
</span><span class="cx"> if (addRuleFlags & RuleIsInRegionRule)
</span><span class="lines">@@ -161,7 +156,7 @@
</span><span class="cx"> , m_position(position)
</span><span class="cx"> , m_matchBasedOnRuleHash(static_cast<unsigned>(computeMatchBasedOnRuleHash(*selector())))
</span><span class="cx"> , m_canMatchPseudoElement(selectorCanMatchPseudoElement(*selector()))
</span><del>- , m_containsUncommonAttributeSelector(WebCore::containsUncommonAttributeSelector(selector()))
</del><ins>+ , m_containsUncommonAttributeSelector(WebCore::containsUncommonAttributeSelector(*selector()))
</ins><span class="cx"> , m_linkMatchType(SelectorChecker::determineLinkMatchType(selector()))
</span><span class="cx"> , m_propertyWhitelistType(determinePropertyWhitelistType(addRuleFlags, selector()))
</span><span class="cx"> #if ENABLE(CSS_SELECTOR_JIT) && CSS_SELECTOR_JIT_PROFILING
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (176863 => 176864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp 2014-12-05 20:51:02 UTC (rev 176863)
+++ trunk/Source/WebCore/css/StyleResolver.cpp 2014-12-05 20:58:08 UTC (rev 176864)
</span><span class="lines">@@ -505,13 +505,6 @@
</span><span class="cx"> if (!thisInputElement || !otherInputElement)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (thisInputElement->elementData() != otherInputElement->elementData()) {
- if (thisInputElement->fastGetAttribute(typeAttr) != otherInputElement->fastGetAttribute(typeAttr))
- return false;
- if (thisInputElement->fastGetAttribute(readonlyAttr) != otherInputElement->fastGetAttribute(readonlyAttr))
- return false;
- }
-
</del><span class="cx"> if (thisInputElement->isAutofilled() != otherInputElement->isAutofilled())
</span><span class="cx"> return false;
</span><span class="cx"> if (thisInputElement->shouldAppearChecked() != otherInputElement->shouldAppearChecked())
</span><span class="lines">@@ -647,6 +640,18 @@
</span><span class="cx"> if (element->isLink() && state.elementLinkState() != style->insideLink())
</span><span class="cx"> return false;
</span><span class="cx">
</span><ins>+ if (element->elementData() != state.element()->elementData()) {
+ if (element->fastGetAttribute(readonlyAttr) != state.element()->fastGetAttribute(readonlyAttr))
+ return false;
+ if (element->isSVGElement()) {
+ if (element->getAttribute(typeAttr) != state.element()->getAttribute(typeAttr))
+ return false;
+ } else {
+ if (element->fastGetAttribute(typeAttr) != state.element()->fastGetAttribute(typeAttr))
+ return false;
+ }
+ }
+
</ins><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx"> // Deny sharing styles between WebVTT and non-WebVTT nodes.
</span><span class="cx"> if (is<WebVTTElement>(*state.element()))
</span></span></pre>
</div>
</div>
</body>
</html>
More information about the webkit-changes
mailing list