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

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

<h3>Log Message</h3>
<pre>Revert use of SVG &lt;mask&gt; elements for -webkit-mask-image (<a href="http://trac.webkit.org/projects/webkit/changeset/176798">r176798</a>, <a href="http://trac.webkit.org/projects/webkit/changeset/177494">r177494</a>, <a href="http://trac.webkit.org/projects/webkit/changeset/186180">r186180</a>)
https://bugs.webkit.org/show_bug.cgi?id=146653

Reviewed by Dean Jackson.

Fixes rdar://problem/21435233.

<a href="http://trac.webkit.org/projects/webkit/changeset/177494">r177494</a> caused a number of regressions (bugs 141857, 146509, 146561), added new layering violations, and
was not being maintained, so revert it.

This patch reverts <a href="http://trac.webkit.org/projects/webkit/changeset/177494">r177494</a>.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::parseMaskImage): Deleted.
* css/CSSParser.h:
* css/CSSPropertyNames.in:
* css/CSSValue.h:
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertMaskImageOperations): Deleted.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::loadPendingImages):
(WebCore::StyleResolver::adjustStyleForMaskImages): Deleted.
(WebCore::StyleResolver::applyMatchedProperties): Deleted.
* css/StyleResolver.h:
* page/FrameView.cpp:
(WebCore::FrameView::containsSVGDocument):
* page/FrameView.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::blendFunc): Deleted.
(WebCore::MaskImagePropertyWrapper::MaskImagePropertyWrapper): Deleted.
(WebCore::MaskImagePropertyWrapper::equals): Deleted.
* platform/ScrollView.h:
(WebCore::ScrollView::containsSVGDocument):
* platform/graphics/MaskImageOperation.cpp:
(WebCore::MaskImageOperation::~MaskImageOperation): Deleted.
(WebCore::MaskImageOperation::operator==): Deleted.
* platform/graphics/MaskImageOperation.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::maskClipRect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::updateFillImages):
(WebCore::RenderElement::~RenderElement): Deleted.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::~RenderLayer): Deleted.
(WebCore::RenderLayer::calculateClipRects): Deleted.
* rendering/RenderLayer.h:
* rendering/RenderLayerMaskImageInfo.cpp: Removed.
* rendering/style/FillLayer.h:
(WebCore::FillLayer::image):
(WebCore::FillLayer::imageOrMaskImage):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setMaskImage): Deleted.
* rendering/style/RenderStyle.h:

LayoutTests:

* css3/masking/mask-base64-expected.html: Removed.
* css3/masking/mask-base64.html: Removed.
* css3/masking/mask-multiple-values-expected.html: Removed.
* css3/masking/mask-multiple-values.html: Removed.
* css3/masking/mask-repeat-space-padding-expected.html:
* css3/masking/mask-repeat-space-padding.html:
* css3/masking/mask-svg-clipped-fragmentId-expected.html: Removed.
* css3/masking/mask-svg-clipped-fragmentId.html: Removed.
* css3/masking/mask-svg-fragmentId-expected.html: Removed.
* css3/masking/mask-svg-fragmentId.html: Removed.
* css3/masking/mask-svg-inline-fragmentId-expected.html: Removed.
* css3/masking/mask-svg-inline-fragmentId.html: Removed.
* css3/masking/mask-svg-inline-invalid-fragmentId-expected.html: Removed.
* css3/masking/mask-svg-inline-invalid-fragmentId.html: Removed.
* css3/masking/mask-svg-invalid-fragmentId-expected.html: Removed.
* css3/masking/mask-svg-invalid-fragmentId.html: Removed.
* css3/masking/mask-svg-no-fragmentId-expected.html: Removed.
* css3/masking/mask-svg-no-fragmentId-tiled-expected.html: Removed.
* css3/masking/mask-svg-no-fragmentId-tiled.html: Removed.
* css3/masking/mask-svg-no-fragmentId.html: Removed.
* css3/masking/mask-svg-script-entire-svg-to-mask-expected.html: Removed.
* css3/masking/mask-svg-script-entire-svg-to-mask.html: Removed.
* css3/masking/mask-svg-script-mask-to-entire-svg-expected.html: Removed.
* css3/masking/mask-svg-script-mask-to-entire-svg.html: Removed.
* css3/masking/mask-svg-script-mask-to-none-expected.html: Removed.
* css3/masking/mask-svg-script-mask-to-none.html: Removed.
* css3/masking/mask-svg-script-mask-to-png-expected.html: Removed.
* css3/masking/mask-svg-script-mask-to-png.html: Removed.
* css3/masking/mask-svg-script-none-to-mask-expected.html: Removed.
* css3/masking/mask-svg-script-none-to-mask.html: Removed.
* css3/masking/mask-svg-script-none-to-png-expected.html: Removed.
* css3/masking/mask-svg-script-none-to-png.html: Removed.
* css3/masking/mask-svg-script-png-to-mask-expected.html: Removed.
* css3/masking/mask-svg-script-png-to-mask.html: Removed.
* css3/masking/mask-svg-script-png-to-none-expected.html: Removed.
* css3/masking/mask-svg-script-png-to-none.html: Removed.
* css3/masking/resources/masks.svg: Removed.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestscss3maskingmaskrepeatspacepaddingexpectedhtml">trunk/LayoutTests/css3/masking/mask-repeat-space-padding-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmaskrepeatspacepaddinghtml">trunk/LayoutTests/css3/masking/mask-repeat-space-padding.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSParserh">trunk/Source/WebCore/css/CSSParser.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssCSSValueh">trunk/Source/WebCore/css/CSSValue.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolverh">trunk/Source/WebCore/css/StyleResolver.h</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewh">trunk/Source/WebCore/page/FrameView.h</a></li>
<li><a href="#trunkSourceWebCorepageanimationCSSPropertyAnimationcpp">trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewh">trunk/Source/WebCore/platform/ScrollView.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMaskImageOperationcpp">trunk/Source/WebCore/platform/graphics/MaskImageOperation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMaskImageOperationh">trunk/Source/WebCore/platform/graphics/MaskImageOperation.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementcpp">trunk/Source/WebCore/rendering/RenderElement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerh">trunk/Source/WebCore/rendering/RenderLayer.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleFillLayerh">trunk/Source/WebCore/rendering/style/FillLayer.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStylecpp">trunk/Source/WebCore/rendering/style/RenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestscss3maskingmaskmultiplevaluesexpectedhtml">trunk/LayoutTests/css3/masking/mask-multiple-values-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmaskmultiplevalueshtml">trunk/LayoutTests/css3/masking/mask-multiple-values.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgclippedfragmentIdexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgclippedfragmentIdhtml">trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgfragmentIdexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-fragmentId-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgfragmentIdhtml">trunk/LayoutTests/css3/masking/mask-svg-fragmentId.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvginlinefragmentIdexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvginlinefragmentIdhtml">trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvginlineinvalidfragmentIdexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvginlineinvalidfragmentIdhtml">trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvginvalidfragmentIdexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvginvalidfragmentIdhtml">trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptentiresvgtomaskexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptentiresvgtomaskhtml">trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptmasktoentiresvgexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptmasktoentiresvghtml">trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptmasktononeexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptmasktononehtml">trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptmasktopngexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptmasktopnghtml">trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptnonetomaskexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptnonetomaskhtml">trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptpngtomaskexpectedhtml">trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask-expected.html</a></li>
<li><a href="#trunkLayoutTestscss3maskingmasksvgscriptpngtomaskhtml">trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask.html</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerMaskImageInfocpp">trunk/Source/WebCore/rendering/RenderLayerMaskImageInfo.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/ChangeLog        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,3 +1,55 @@
</span><ins>+2015-07-06  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Revert use of SVG &lt;mask&gt; elements for -webkit-mask-image (r176798, r177494, r186180)
+        https://bugs.webkit.org/show_bug.cgi?id=146653
+
+        Reviewed by Dean Jackson.
+
+        Fixes rdar://problem/21435233.
+
+        r177494 caused a number of regressions (bugs 141857, 146509, 146561), added new layering violations, and
+        was not being maintained, so revert it.
+
+        This patch reverts r177494.
+
+        * css3/masking/mask-base64-expected.html: Removed.
+        * css3/masking/mask-base64.html: Removed.
+        * css3/masking/mask-multiple-values-expected.html: Removed.
+        * css3/masking/mask-multiple-values.html: Removed.
+        * css3/masking/mask-repeat-space-padding-expected.html:
+        * css3/masking/mask-repeat-space-padding.html:
+        * css3/masking/mask-svg-clipped-fragmentId-expected.html: Removed.
+        * css3/masking/mask-svg-clipped-fragmentId.html: Removed.
+        * css3/masking/mask-svg-fragmentId-expected.html: Removed.
+        * css3/masking/mask-svg-fragmentId.html: Removed.
+        * css3/masking/mask-svg-inline-fragmentId-expected.html: Removed.
+        * css3/masking/mask-svg-inline-fragmentId.html: Removed.
+        * css3/masking/mask-svg-inline-invalid-fragmentId-expected.html: Removed.
+        * css3/masking/mask-svg-inline-invalid-fragmentId.html: Removed.
+        * css3/masking/mask-svg-invalid-fragmentId-expected.html: Removed.
+        * css3/masking/mask-svg-invalid-fragmentId.html: Removed.
+        * css3/masking/mask-svg-no-fragmentId-expected.html: Removed.
+        * css3/masking/mask-svg-no-fragmentId-tiled-expected.html: Removed.
+        * css3/masking/mask-svg-no-fragmentId-tiled.html: Removed.
+        * css3/masking/mask-svg-no-fragmentId.html: Removed.
+        * css3/masking/mask-svg-script-entire-svg-to-mask-expected.html: Removed.
+        * css3/masking/mask-svg-script-entire-svg-to-mask.html: Removed.
+        * css3/masking/mask-svg-script-mask-to-entire-svg-expected.html: Removed.
+        * css3/masking/mask-svg-script-mask-to-entire-svg.html: Removed.
+        * css3/masking/mask-svg-script-mask-to-none-expected.html: Removed.
+        * css3/masking/mask-svg-script-mask-to-none.html: Removed.
+        * css3/masking/mask-svg-script-mask-to-png-expected.html: Removed.
+        * css3/masking/mask-svg-script-mask-to-png.html: Removed.
+        * css3/masking/mask-svg-script-none-to-mask-expected.html: Removed.
+        * css3/masking/mask-svg-script-none-to-mask.html: Removed.
+        * css3/masking/mask-svg-script-none-to-png-expected.html: Removed.
+        * css3/masking/mask-svg-script-none-to-png.html: Removed.
+        * css3/masking/mask-svg-script-png-to-mask-expected.html: Removed.
+        * css3/masking/mask-svg-script-png-to-mask.html: Removed.
+        * css3/masking/mask-svg-script-png-to-none-expected.html: Removed.
+        * css3/masking/mask-svg-script-png-to-none.html: Removed.
+        * css3/masking/resources/masks.svg: Removed.
+
</ins><span class="cx"> 2015-07-06  Daniel Bates  &lt;dabates@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Isolated worlds should respect Content Security Policy; User Agent Shadow DOM
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmaskmultiplevaluesexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-multiple-values-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-multiple-values-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-multiple-values-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html lang=&quot;en&quot;&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #back {
-                width: 500px;
-                height: 500px;
-                background-color: green;
-            }
-            .front {
-                position: absolute;
-                width: 300px;
-                height: 300px;
-                background-color: black;
-                border: 50px solid blue;
-                padding: 50px;
-                -webkit-mask-repeat: no-repeat;
-                -webkit-mask-origin: content-box;
-                -webkit-mask-clip: border-box;
-            }
-            #front1 {
-                -webkit-mask-image: url('resources/circle.png');
-                -webkit-mask-size: 150px 120px;
-                -webkit-mask-position: -120px -110px;
-            }
-            #front2 {
-                -webkit-mask-image: url('resources/masks.svg#lowerHalf');
-                -webkit-mask-size: 300px 240px;
-                -webkit-mask-position: 50px 0px;
-            }
-            #front3 {
-                -webkit-mask-image: url('resources/masks.svg#upperHalf');
-                -webkit-mask-size: 300px 240px;
-                -webkit-mask-position: 50px 0px;
-            }
-            #front4 {
-                -webkit-mask-image: url('resources/masks.svg#invalidId');
-                -webkit-mask-size: 225px 180px;
-                -webkit-mask-position: 160px 220px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - This test uses multiple masks from multiple resources.&lt;/p&gt;
-        &lt;div id=&quot;back&quot;&gt;
-            &lt;div class=&quot;front&quot; id=&quot;front1&quot;&gt;&lt;/div&gt;
-            &lt;div class=&quot;front&quot; id=&quot;front2&quot;&gt;&lt;/div&gt;
-            &lt;div class=&quot;front&quot; id=&quot;front3&quot;&gt;&lt;/div&gt;
-            &lt;div class=&quot;front&quot; id=&quot;front4&quot;&gt;&lt;/div&gt;
-        &lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
-
</del></span></pre></div>
<a id="trunkLayoutTestscss3maskingmaskmultiplevalueshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-multiple-values.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-multiple-values.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-multiple-values.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,36 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html lang=&quot;en&quot;&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #back {
-                width: 500px;
-                height: 500px;
-                background-color: green;
-            }
-            #front {
-                width: 300px;
-                height: 300px;
-                background-color: black;
-                border: 50px solid blue;
-                padding: 50px;
-                -webkit-mask-image: url('resources/circle.png'), url('resources/masks.svg#lowerHalf'), url('resources/masks.svg#upperHalf'), url('resources/masks.svg#invalidId');
-                -webkit-mask-size: 150px 120px, 300px 240px, 300px 240px, 225px 180px;
-                -webkit-mask-position: -120px -110px, 50px 0px, 50px 0px, 160px 220px;
-                -webkit-mask-repeat: no-repeat;
-                -webkit-mask-origin: content-box;
-                -webkit-mask-clip: border-box;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - This test uses multiple masks from multiple resources.&lt;/p&gt;
-        &lt;div id=&quot;back&quot;&gt;
-            &lt;div id=&quot;front&quot;&gt;&lt;/div&gt;
-        &lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
-
</del></span></pre></div>
<a id="trunkLayoutTestscss3maskingmaskrepeatspacepaddingexpectedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/css3/masking/mask-repeat-space-padding-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-repeat-space-padding-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-repeat-space-padding-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx">             function addMasks() {
</span><span class="cx">                 for (var x = 0; x &lt; width; x += sizeX + spaceX) {
</span><span class="cx">                     for (var y = 0; y &lt; height; y += sizeY + spaceY) {
</span><del>-                        urls.push(&quot;url(resources/circle.svg)&quot;);
</del><ins>+                        urls.push(&quot;url(resources/circle.png)&quot;);
</ins><span class="cx">                         size.push(sizeX + &quot;px &quot; + sizeY + &quot;px&quot;);
</span><span class="cx">                         position.push(x + &quot;px &quot; + y + &quot;px&quot;);
</span><span class="cx">                     }
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmaskrepeatspacepaddinghtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/css3/masking/mask-repeat-space-padding.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-repeat-space-padding.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-repeat-space-padding.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -13,7 +13,7 @@
</span><span class="cx">                 background-color: red;
</span><span class="cx">                 border: 50px solid blue;
</span><span class="cx">                 padding: 50px;
</span><del>-                -webkit-mask-image: url(&quot;resources/circle.svg&quot;);
</del><ins>+                -webkit-mask-image: url(&quot;resources/circle.png&quot;);
</ins><span class="cx">                 -webkit-mask-size: 100px;
</span><span class="cx">                 -webkit-mask-repeat: space;
</span><span class="cx">                 -webkit-mask-origin: padding-box;
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgclippedfragmentIdexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,40 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html lang=&quot;en&quot;&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #back {
-                width: 320px;
-                height: 420px;
-                background-color: green;
-                overflow: hidden;
-            }
-            #blackSVG {
-                position: relative;
-                left: 60px;
-                top: -35px;
-            }
-            #blueSVG {
-                position: relative;
-                left: 70px;
-                top: -474px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - This test used a &amp;lt;mask&amp;gt; element and paints it at the side of the masked element, causing it to be clipped.&lt;/p&gt;
-        &lt;div id=&quot;back&quot;&gt;
-            &lt;svg id=&quot;blackSVG&quot; width=&quot;320px&quot; height=&quot;420px&quot;&gt;
-                &lt;path fill=&quot;black&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-            &lt;/svg&gt;
-            &lt;svg id=&quot;blueSVG&quot; width=&quot;320px&quot; height=&quot;420px&quot;&gt;
-                &lt;path fill=&quot;blue&quot; d=&quot;M70,20 L280,20 L280,395 L240,395 L240,60 L70,60 L70,20&quot;/&gt;
-            &lt;/svg&gt;
-        &lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
-
</del></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgclippedfragmentIdhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-clipped-fragmentId.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html lang=&quot;en&quot;&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #back {
-                width: 320px;
-                height: 420px;
-                background-color: green;
-            }
-            #front {
-                width: 300px;
-                height: 400px;
-                background-color: black;
-                border: 10px solid blue;
-                -webkit-mask-image: url('resources/masks.svg#upperHalf');
-                -webkit-mask-size: 320px 420px;
-                -webkit-mask-position: 50px -45px;
-                -webkit-mask-repeat: no-repeat;
-                -webkit-mask-origin: content-box;
-                -webkit-mask-clip: border-box;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - This test used a &amp;lt;mask&amp;gt; element and paints it at the side of the masked element, causing it to be clipped.&lt;/p&gt;
-        &lt;div id=&quot;back&quot;&gt;
-            &lt;div id=&quot;front&quot;&gt;&lt;/div&gt;
-        &lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
-
</del></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgfragmentIdexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-fragmentId-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-fragmentId-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-fragmentId-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a green inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test references a &amp;lt;mask&amp;gt; element from an external SVG&lt;/p&gt;
-        &lt;svg width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;green&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-        &lt;/svg&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgfragmentIdhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-fragmentId.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-fragmentId.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-fragmentId.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,28 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: green;
-                -webkit-mask-image:url('resources/masks.svg#upperHalf');
-            }
-            #redSvg {
-                position: absolute;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a green inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test references a &amp;lt;mask&amp;gt; element from an external SVG&lt;/p&gt;
-        &lt;svg id=&quot;redSvg&quot; width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;red&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-        &lt;/svg&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvginlinefragmentIdexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a green L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test references a &amp;lt;mask&amp;gt; element defined in the main HTML document&lt;/p&gt;
-        &lt;svg width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;green&quot; d=&quot;M20,20 L60,20 L60,340 L220,340 L220,380 L20,380 L20,20&quot;/&gt;
-        &lt;/svg&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvginlinefragmentIdhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-inline-fragmentId.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,31 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: green;
-                -webkit-mask-image:url('#lowerHalf');
-            }
-            #redSvg {
-                position: absolute;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a green L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test references a &amp;lt;mask&amp;gt; element defined in the main HTML document&lt;/p&gt;
-        &lt;svg id=&quot;redSvg&quot; width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;red&quot; d=&quot;M20,20 L60,20 L60,340 L220,340 L220,380 L20,380 L20,20&quot;/&gt;
-            &lt;mask id=&quot;lowerHalf&quot; maskUnits=&quot;objectBoundingBox&quot;&gt;
-                &lt;path fill=&quot;#FFFFFF&quot; d=&quot;M20,20 L60,20 L60,340 L220,340 L220,380 L20,380 L20,20&quot;/&gt;
-            &lt;/mask&gt;
-        &lt;/svg&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvginlineinvalidfragmentIdexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #elementToNotBeCovered {
-                width: 300px;
-                height: 400px;
-                background-color: #2222FF;
-                position: absolute;
-                left: 10px;
-                top: 50px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue rectangle and no red.&lt;/p&gt;
-        &lt;p&gt;This test references an invalid fragment identifier.&lt;/p&gt;
-        &lt;div id=&quot;elementToNotBeCovered&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvginlineinvalidfragmentIdhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-inline-invalid-fragmentId.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,34 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: red;
-                -webkit-mask-image:url('#invalidId');
-                position: absolute;
-                left: 10px;
-                top: 50px;
-            }
-            #elementToNotBeCovered {
-                width: 300px;
-                height: 400px;
-                background-color: #2222FF;
-                position: absolute;
-                left: 10px;
-                top: 50px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue rectangle and no red.&lt;/p&gt;
-        &lt;p&gt;This test references an invalid fragment identifier.&lt;/p&gt;
-        &lt;div id=&quot;elementToNotBeCovered&quot;&gt;&lt;/div&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvginvalidfragmentIdexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see 4 green rectangles and no red.&lt;/p&gt;
-        &lt;p&gt;This test references an invalid fragment identifier from an external SVG&lt;/p&gt;
-        &lt;svg width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;rect x=&quot;5px&quot; y=&quot;45px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;green&quot;/&gt;
-            &lt;rect x=&quot;155px&quot; y=&quot;45px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;green&quot;/&gt;
-            &lt;rect x=&quot;155px&quot; y=&quot;215px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;green&quot;/&gt;
-            &lt;rect x=&quot;5px&quot; y=&quot;215px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;green&quot;/&gt;
-        &lt;/svg&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvginvalidfragmentIdhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-invalid-fragmentId.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,31 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: green;
-                -webkit-mask-image:url('resources/masks.svg#invalidId');
-            }
-            #redSvg {
-                position: absolute;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see 4 green rectangles and no red.&lt;/p&gt;
-        &lt;p&gt;This test references an invalid fragment identifier from an external SVG&lt;/p&gt;
-        &lt;svg id=&quot;redSvg&quot; width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;rect x=&quot;5px&quot; y=&quot;45px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-            &lt;rect x=&quot;155px&quot; y=&quot;45px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-            &lt;rect x=&quot;155px&quot; y=&quot;215px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-            &lt;rect x=&quot;5px&quot; y=&quot;215px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-        &lt;/svg&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptentiresvgtomaskexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to the entire SVG and then changes it to a &amp;lt;mask&amp;gt; element from the SVG via a script.&lt;/p&gt;
-        &lt;svg width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;blue&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-        &lt;/svg&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptentiresvgtomaskhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-entire-svg-to-mask.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,33 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: green;
-                -webkit-mask-image:url('resources/masks.svg');
-            }
-            #redSvg {
-                position: absolute;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to the entire SVG and then changes it to a &amp;lt;mask&amp;gt; element from the SVG via a script.&lt;/p&gt;
-        &lt;svg id=&quot;redSvg&quot; width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;red&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-        &lt;/svg&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-
-        &lt;script&gt;
-            var maskedElement = document.getElementById(&quot;maskedElement&quot;);
-            maskedElement.style.cssText += &quot;-webkit-mask-image:url('resources/masks.svg#upperHalf');background-color: blue&quot;;
-        &lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptmasktoentiresvgexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: blue;
-                -webkit-mask-image:url('resources/masks.svg');
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see four blue squares and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a &amp;lt;mask&amp;gt; element from an SVG file and then changes it to the entire SVG file via a script.&lt;/p&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptmasktoentiresvghtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-entire-svg.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,36 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: green;
-                -webkit-mask-image:url('resources/masks.svg#lowerHalf');
-            }
-            #redSvg {
-                position: absolute;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see four blue squares and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a &amp;lt;mask&amp;gt; element from an SVG file and then changes it to the entire SVG file via a script.&lt;/p&gt;
-        &lt;svg id=&quot;redSvg&quot; width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;rect x=&quot;5px&quot; y=&quot;45px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-            &lt;rect x=&quot;155px&quot; y=&quot;45px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-            &lt;rect x=&quot;155px&quot; y=&quot;215px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-            &lt;rect x=&quot;5px&quot; y=&quot;215px&quot; width=&quot;140px&quot; height=&quot;140px&quot; fill=&quot;red&quot;/&gt;
-        &lt;/svg&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-
-        &lt;script&gt;
-            var maskedElement = document.getElementById(&quot;maskedElement&quot;);
-            maskedElement.style.cssText += &quot;-webkit-mask-image:url('resources/masks.svg');background-color:blue&quot;;
-        &lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptmasktononeexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,20 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 400px;
-                height: 400px;
-                background-color: blue;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue rectangle and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a &amp;lt;mask&amp;gt; element from an external SVG file and then changes it to 'none' via a script.&lt;/p&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptmasktononehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-none.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,34 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 400px;
-                height: 400px;
-                background-color: green;
-                -webkit-mask-image:url('resources/masks.svg#lowerHalf');
-            }
-            #redElement {
-                width: 400px;
-                height: 400px;
-                background-color: red;
-                position: absolute;
-                z-index: -1;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue rectangle and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a &amp;lt;mask&amp;gt; element from an external SVG file and then changes it to 'none' via a script.&lt;/p&gt;
-        &lt;div id=&quot;redElement&quot;&gt;&lt;/div&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-        &lt;script&gt;
-            var maskedElement = document.getElementById(&quot;maskedElement&quot;);
-            maskedElement.style.cssText += &quot;-webkit-mask-image:none;background-color: blue&quot;;
-        &lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptmasktopngexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 360px;
-                height: 288px;
-                background-color: blue;
-                -webkit-mask-image:url('resources/circle.png');
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue circle and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a &amp;lt;mask&amp;gt; element from an SVG file and then changes it to a PNG via a script.&lt;/p&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptmasktopnghtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-mask-to-png.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,36 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 360px;
-                height: 288px;
-                background-color: red;
-                -webkit-mask-image:url('resources/masks.svg#lowerHalf');
-            }
-            #redElement {
-                position: absolute;
-                width: 360px;
-                height: 288px;
-                background-color: red;
-                -webkit-transform: scale(0.95, 0.95);
-                -webkit-mask-image: url('resources/circle.png');
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue circle and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a &amp;lt;mask&amp;gt; element from an SVG file and then changes it to a PNG via a script.&lt;/p&gt;
-        &lt;div id=&quot;redElement&quot;&gt;&lt;/div&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-
-        &lt;script&gt;
-            var maskedElement = document.getElementById(&quot;maskedElement&quot;);
-            maskedElement.style.cssText += &quot;-webkit-mask-image:url('resources/circle.png');background-color: blue&quot;;
-        &lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptnonetomaskexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 400px;
-                height: 400px;
-                background-color: blue;
-                -webkit-mask-image:url('resources/masks.svg#upperHalf');
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image value to a &amp;lt;mask&amp;gt; element from an external SVG via a script.&lt;/p&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptnonetomaskhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-none-to-mask.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,32 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 400px;
-                height: 400px;
-                background-color: red;
-            }
-            #redSvg {
-                position: absolute;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image value to a &amp;lt;mask&amp;gt; element from an external SVG via a script.&lt;/p&gt;
-        &lt;svg id=&quot;redSvg&quot; width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;red&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-        &lt;/svg&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-
-        &lt;script&gt;
-            var maskedElement = document.getElementById(&quot;maskedElement&quot;);
-            maskedElement.style.cssText += &quot;-webkit-mask-image:url('resources/masks.svg#upperHalf');background-color: blue&quot;;
-        &lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptpngtomaskexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask-expected.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask-expected.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask-expected.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a PNG and then changes it to a &amp;lt;mask&amp;gt; element from an SVG file via a script.&lt;/p&gt;
-        &lt;svg width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;blue&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-        &lt;/svg&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss3maskingmasksvgscriptpngtomaskhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask.html (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask.html        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/LayoutTests/css3/masking/mask-svg-script-png-to-mask.html        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,33 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;style&gt;
-            p {
-                margin: 0px;
-            }
-            #maskedElement {
-                width: 300px;
-                height: 400px;
-                background-color: green;
-                -webkit-mask-image:url('resources/circle.png');
-            }
-            #redSvg {
-                position: absolute;
-            }
-        &lt;/style&gt;
-    &lt;/head&gt;
-
-    &lt;body&gt;
-        &lt;p&gt;&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=129682&quot;&gt;Bug 129682&lt;/a&gt; - On success, you should see a blue inverted-L shape and no red.&lt;/p&gt;
-        &lt;p&gt;This test sets the mask-image via CSS to a PNG and then changes it to a &amp;lt;mask&amp;gt; element from an SVG file via a script.&lt;/p&gt;
-        &lt;svg id=&quot;redSvg&quot; width=&quot;300px&quot; height=&quot;400px&quot;&gt;
-            &lt;path fill=&quot;red&quot; d=&quot;M80,20 L280,20 L280,380 L240,380 L240,60 L80,60 L80,20&quot;/&gt;
-        &lt;/svg&gt;
-        &lt;div id=&quot;maskedElement&quot;&gt;&lt;/div&gt;
-
-        &lt;script&gt;
-            var maskedElement = document.getElementById(&quot;maskedElement&quot;);
-            maskedElement.style.cssText += &quot;-webkit-mask-image:url('resources/masks.svg#upperHalf');background-color: blue&quot;;
-        &lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/ChangeLog        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -2,6 +2,70 @@
</span><span class="cx"> 
</span><span class="cx">         Revert use of SVG &lt;mask&gt; elements for -webkit-mask-image (r176798, r177494, r186180)
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=146653
</span><ins>+
+        Reviewed by Dean Jackson.
+
+        Fixes rdar://problem/21435233.
+
+        r177494 caused a number of regressions (bugs 141857, 146509, 146561), added new layering violations, and
+        was not being maintained, so revert it.
+
+        This patch reverts r177494.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseFillProperty):
+        (WebCore::CSSParser::parseMaskImage): Deleted.
+        * css/CSSParser.h:
+        * css/CSSPropertyNames.in:
+        * css/CSSValue.h:
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertMaskImageOperations): Deleted.
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::loadPendingSVGDocuments):
+        (WebCore::StyleResolver::loadPendingImages):
+        (WebCore::StyleResolver::adjustStyleForMaskImages): Deleted.
+        (WebCore::StyleResolver::applyMatchedProperties): Deleted.
+        * css/StyleResolver.h:
+        * page/FrameView.cpp:
+        (WebCore::FrameView::containsSVGDocument):
+        * page/FrameView.h:
+        * page/animation/CSSPropertyAnimation.cpp:
+        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
+        (WebCore::blendFunc): Deleted.
+        (WebCore::MaskImagePropertyWrapper::MaskImagePropertyWrapper): Deleted.
+        (WebCore::MaskImagePropertyWrapper::equals): Deleted.
+        * platform/ScrollView.h:
+        (WebCore::ScrollView::containsSVGDocument):
+        * platform/graphics/MaskImageOperation.cpp:
+        (WebCore::MaskImageOperation::~MaskImageOperation): Deleted.
+        (WebCore::MaskImageOperation::operator==): Deleted.
+        * platform/graphics/MaskImageOperation.h:
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::maskClipRect):
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::updateFillImages):
+        (WebCore::RenderElement::~RenderElement): Deleted.
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::~RenderLayer): Deleted.
+        (WebCore::RenderLayer::calculateClipRects): Deleted.
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerMaskImageInfo.cpp: Removed.
+        * rendering/style/FillLayer.h:
+        (WebCore::FillLayer::image):
+        (WebCore::FillLayer::imageOrMaskImage):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::setMaskImage): Deleted.
+        * rendering/style/RenderStyle.h:
+
+2015-07-06  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Revert use of SVG &lt;mask&gt; elements for -webkit-mask-image (r176798, r177494, r186180)
+        https://bugs.webkit.org/show_bug.cgi?id=146653
</ins><span class="cx">         
</span><span class="cx">         Fixes rdar://problem/21435233.
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -2328,7 +2328,6 @@
</span><span class="cx">                 6C638896A96CCEE50C8C946C /* CachedResourceRequestInitiators.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6C638894A96CCEE50C8C946C /* CachedResourceRequestInitiators.cpp */; };
</span><span class="cx">                 6C6CCAB019DC42B90043D5DB /* WebKitCSSResourceValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6C6CCAAE19DC42B90043D5DB /* WebKitCSSResourceValue.cpp */; };
</span><span class="cx">                 6C6CCAB119DC42B90043D5DB /* WebKitCSSResourceValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C6CCAAF19DC42B90043D5DB /* WebKitCSSResourceValue.h */; };
</span><del>-                6CBFE4A419EBF2D400CA2F9D /* RenderLayerMaskImageInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6CBFE4A219EBF2D400CA2F9D /* RenderLayerMaskImageInfo.cpp */; };
</del><span class="cx">                 6CBFE4A519EBF2D400CA2F9D /* RenderLayerMaskImageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CBFE4A319EBF2D400CA2F9D /* RenderLayerMaskImageInfo.h */; };
</span><span class="cx">                 6CDDE8D01770BB220016E072 /* RegionOversetState.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C70A81417707C49009A446E /* RegionOversetState.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 6E0E569B183BFFE600E0E8D5 /* FloatRoundedRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E0E5699183BFFE600E0E8D5 /* FloatRoundedRect.cpp */; };
</span><span class="lines">@@ -9610,7 +9609,6 @@
</span><span class="cx">                 6C6CCAAE19DC42B90043D5DB /* WebKitCSSResourceValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitCSSResourceValue.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 6C6CCAAF19DC42B90043D5DB /* WebKitCSSResourceValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitCSSResourceValue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 6C70A81417707C49009A446E /* RegionOversetState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegionOversetState.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                6CBFE4A219EBF2D400CA2F9D /* RenderLayerMaskImageInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderLayerMaskImageInfo.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 6CBFE4A319EBF2D400CA2F9D /* RenderLayerMaskImageInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderLayerMaskImageInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 6E0E5699183BFFE600E0E8D5 /* FloatRoundedRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FloatRoundedRect.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 6E0E569A183BFFE600E0E8D5 /* FloatRoundedRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FloatRoundedRect.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -22879,7 +22877,6 @@
</span><span class="cx">                                 0F580CF90F12DE9B0051D689 /* RenderLayerCompositor.h */,
</span><span class="cx">                                 50D10D971545F5760096D288 /* RenderLayerFilterInfo.cpp */,
</span><span class="cx">                                 50D10D981545F5760096D288 /* RenderLayerFilterInfo.h */,
</span><del>-                                6CBFE4A219EBF2D400CA2F9D /* RenderLayerMaskImageInfo.cpp */,
</del><span class="cx">                                 6CBFE4A319EBF2D400CA2F9D /* RenderLayerMaskImageInfo.h */,
</span><span class="cx">                                 3C244FE5A375AC633F88BE6F /* RenderLayerModelObject.cpp */,
</span><span class="cx">                                 3C244FE4A375AC633F88BE6F /* RenderLayerModelObject.h */,
</span><span class="lines">@@ -29809,7 +29806,6 @@
</span><span class="cx">                                 0F580D000F12DE9B0051D689 /* RenderLayerBacking.cpp in Sources */,
</span><span class="cx">                                 0F580CFE0F12DE9B0051D689 /* RenderLayerCompositor.cpp in Sources */,
</span><span class="cx">                                 50D10D991545F5760096D288 /* RenderLayerFilterInfo.cpp in Sources */,
</span><del>-                                6CBFE4A419EBF2D400CA2F9D /* RenderLayerMaskImageInfo.cpp in Sources */,
</del><span class="cx">                                 3C244FEBA375AC633F88BE6F /* RenderLayerModelObject.cpp in Sources */,
</span><span class="cx">                                 BC33FB1B0F30EE85002CDD7C /* RenderLineBoxList.cpp in Sources */,
</span><span class="cx">                                 BCEA4863097D93020094C9E4 /* RenderLineBreak.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1906,8 +1906,9 @@
</span><span class="cx"> 
</span><span class="cx">         case CSSPropertyBackgroundColor:
</span><span class="cx">             return cssValuePool().createColorValue(m_allowVisitedStyle? style-&gt;visitedDependentColor(CSSPropertyBackgroundColor).rgb() : style-&gt;backgroundColor().rgb());
</span><del>-        case CSSPropertyBackgroundImage: {
-            const FillLayer* layers = style-&gt;backgroundLayers();
</del><ins>+        case CSSPropertyBackgroundImage:
+        case CSSPropertyWebkitMaskImage: {
+            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskImage ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
</ins><span class="cx">             if (!layers)
</span><span class="cx">                 return cssValuePool().createIdentifierValue(CSSValueNone);
</span><span class="cx"> 
</span><span class="lines">@@ -1927,27 +1928,6 @@
</span><span class="cx">             }
</span><span class="cx">             return list.release();
</span><span class="cx">         }
</span><del>-        case CSSPropertyWebkitMaskImage: {
-            const FillLayer* layers = style-&gt;maskLayers();
-            if (!layers)
-                return cssValuePool().createIdentifierValue(CSSValueNone);
-
-            if (!layers-&gt;next()) {
-                if (layers-&gt;maskImage().get())
-                    return layers-&gt;maskImage()-&gt;cssValue();
-
-                return cssValuePool().createIdentifierValue(CSSValueNone);
-            }
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next()) {
-                if (currLayer-&gt;maskImage().get())
-                    list-&gt;append(*currLayer-&gt;maskImage()-&gt;cssValue());
-                else
-                    list-&gt;append(cssValuePool().createIdentifierValue(CSSValueNone));
-            }
-            return list.release();
-        }
</del><span class="cx">         case CSSPropertyBackgroundSize:
</span><span class="cx">         case CSSPropertyWebkitBackgroundSize:
</span><span class="cx">         case CSSPropertyWebkitMaskSize: {
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -90,7 +90,6 @@
</span><span class="cx"> #include &quot;TextEncoding.h&quot;
</span><span class="cx"> #include &quot;WebKitCSSFilterValue.h&quot;
</span><span class="cx"> #include &quot;WebKitCSSRegionRule.h&quot;
</span><del>-#include &quot;WebKitCSSResourceValue.h&quot;
</del><span class="cx"> #include &quot;WebKitCSSTransformValue.h&quot;
</span><span class="cx"> #include &lt;JavaScriptCore/Profile.h&gt;
</span><span class="cx"> #include &lt;bitset&gt;
</span><span class="lines">@@ -4704,13 +4703,10 @@
</span><span class="cx">                     }
</span><span class="cx">                     break;
</span><span class="cx">                 case CSSPropertyBackgroundImage:
</span><ins>+                case CSSPropertyWebkitMaskImage:
</ins><span class="cx">                     if (parseFillImage(*m_valueList, currValue))
</span><span class="cx">                         m_valueList-&gt;next();
</span><span class="cx">                     break;
</span><del>-                case CSSPropertyWebkitMaskImage:
-                    if (parseMaskImage(*m_valueList, currValue))
-                        m_valueList-&gt;next();
-                    break;
</del><span class="cx">                 case CSSPropertyWebkitBackgroundClip:
</span><span class="cx">                 case CSSPropertyWebkitBackgroundOrigin:
</span><span class="cx">                 case CSSPropertyWebkitMaskClip:
</span><span class="lines">@@ -9911,30 +9907,6 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool CSSParser::parseMaskImage(CSSParserValueList&amp; valueList, RefPtr&lt;CSSValue&gt;&amp; outValue)
-{
-    outValue = nullptr;
-    CSSParserValue* value = valueList.current();
-    if (value-&gt;id == CSSValueNone) {
-        outValue = WebKitCSSResourceValue::create(cssValuePool().createIdentifierValue(CSSValueNone));
-        return outValue.get();
-    }
-
-    RefPtr&lt;CSSValue&gt; resourceValue;
-    if (value-&gt;unit == CSSPrimitiveValue::CSS_URI) {
-        if (protocolIs(value-&gt;string, &quot;data&quot;))
-            parseFillImage(valueList, resourceValue);
-        else
-            resourceValue = CSSPrimitiveValue::create(completeURL(value-&gt;string), CSSPrimitiveValue::CSS_URI);
-    } else
-        parseFillImage(valueList, resourceValue);
-
-    if (resourceValue)
-        outValue = WebKitCSSResourceValue::create(resourceValue);
-
-    return outValue.get();
-}
-
</del><span class="cx"> #if ENABLE(CSS_REGIONS)
</span><span class="cx"> static bool validFlowName(const String&amp; flowName)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/CSSParser.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -157,8 +157,6 @@
</span><span class="cx">     Vector&lt;SourceSize&gt; parseSizesAttribute(StringView);
</span><span class="cx">     SourceSize sourceSize(std::unique_ptr&lt;MediaQueryExp&gt;&amp;&amp;, CSSParserValue&amp;);
</span><span class="cx"> 
</span><del>-    // FIXME: Maybe these two methods could be combined into one.
-    bool parseMaskImage(CSSParserValueList&amp;, RefPtr&lt;CSSValue&gt;&amp;);
</del><span class="cx">     bool parseFillImage(CSSParserValueList&amp;, RefPtr&lt;CSSValue&gt;&amp;);
</span><span class="cx"> 
</span><span class="cx">     enum FillPositionFlag { InvalidFillPosition = 0, AmbiguousFillPosition = 1, XFillPosition = 2, YFillPosition = 4 };
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -538,7 +538,7 @@
</span><span class="cx"> -webkit-mask-box-image-width [Custom=All]
</span><span class="cx"> -webkit-mask-clip [FillLayerProperty, NameForMethods=Clip]
</span><span class="cx"> -webkit-mask-composite [FillLayerProperty, NameForMethods=Composite]
</span><del>--webkit-mask-image [Custom=Initial|Inherit, Converter=MaskImageOperations]
</del><ins>+-webkit-mask-image [FillLayerProperty, NameForMethods=Image]
</ins><span class="cx"> -webkit-mask-origin [FillLayerProperty, NameForMethods=Origin]
</span><span class="cx"> -webkit-mask-position [Longhands=-webkit-mask-position-x|-webkit-mask-position-y]
</span><span class="cx"> -webkit-mask-position-x [FillLayerProperty, NameForMethods=XPosition]
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSValue.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSValue.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/CSSValue.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -171,7 +171,6 @@
</span><span class="cx"> #endif
</span><span class="cx">         SVGColorClass,
</span><span class="cx">         SVGPaintClass,
</span><del>-        WebKitCSSResourceClass,
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><span class="cx">         AnimationTriggerScrollClass,
</span><span class="lines">@@ -189,6 +188,7 @@
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx">         GridLineNamesClass,
</span><span class="cx"> #endif
</span><ins>+        WebKitCSSResourceClass
</ins><span class="cx"> 
</span><span class="cx">         // Do not append non-list class types here.
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -104,7 +104,6 @@
</span><span class="cx">     static Optional&lt;float&gt; convertPerspective(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx">     static Optional&lt;Length&gt; convertMarqueeIncrement(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx">     static Optional&lt;FilterOperations&gt; convertFilterOperations(StyleResolver&amp;, CSSValue&amp;);
</span><del>-    static Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt; convertMaskImageOperations(StyleResolver&amp;, CSSValue&amp;);
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     static bool convertTouchCallout(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx"> #endif
</span><span class="lines">@@ -1013,57 +1012,6 @@
</span><span class="cx">     return &amp;downcast&lt;WebKitCSSResourceValue&gt;(it-&gt;get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt; StyleBuilderConverter::convertMaskImageOperations(StyleResolver&amp; styleResolver, CSSValue&amp; value)
-{
-    Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt; operations;
-    RefPtr&lt;WebKitCSSResourceValue&gt; maskImageValue;
-    RefPtr&lt;CSSValueList&gt; maskImagesList;
-    CSSValueList::iterator listIterator;
-    if (is&lt;WebKitCSSResourceValue&gt;(value))
-        maskImageValue = &amp;downcast&lt;WebKitCSSResourceValue&gt;(value);
-    else if (is&lt;CSSValueList&gt;(value)) {
-        maskImagesList = &amp;downcast&lt;CSSValueList&gt;(value);
-        listIterator = maskImagesList-&gt;begin();
-        maskImageValue = maskImageValueFromIterator(*maskImagesList, listIterator);
-    }
-
-    while (maskImageValue.get()) {
-        RefPtr&lt;CSSValue&gt; maskInnerValue = maskImageValue-&gt;innerValue();
-
-        RefPtr&lt;MaskImageOperation&gt; newMaskImage;
-        if (is&lt;CSSPrimitiveValue&gt;(maskInnerValue.get())) {
-            RefPtr&lt;CSSPrimitiveValue&gt; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(maskInnerValue.get());
-            if (primitiveValue-&gt;isValueID() &amp;&amp; primitiveValue-&gt;getValueID() == CSSValueNone)
-                newMaskImage = MaskImageOperation::create();
-            else {
-                String cssUrl = primitiveValue-&gt;getStringValue();
-                URL url = styleResolver.document().completeURL(cssUrl);
-
-                bool isExternalDocument = SVGURIReference::isExternalURIReference(cssUrl, styleResolver.document());
-                newMaskImage = MaskImageOperation::create(maskImageValue, cssUrl, url.fragmentIdentifier(), isExternalDocument, &amp;styleResolver.document().cachedResourceLoader());
-                if (isExternalDocument)
-                    styleResolver.state().maskImagesWithPendingSVGDocuments().append(newMaskImage);
-            }
-        } else {
-            if (RefPtr&lt;StyleImage&gt; image = styleResolver.styleImage(CSSPropertyWebkitMaskImage, *maskInnerValue))
-                newMaskImage = MaskImageOperation::create(image);
-        }
-
-        // If we didn't get a valid value, use None so we keep the correct number and order of masks.
-        if (!newMaskImage)
-            newMaskImage = MaskImageOperation::create();
-
-        operations.append(newMaskImage);
-
-        if (maskImagesList)
-            maskImageValue = maskImageValueFromIterator(*maskImagesList, ++listIterator);
-        else
-            maskImageValue = nullptr;
-    }
-
-    return operations;
-}
-
</del><span class="cx"> inline RefPtr&lt;FontFeatureSettings&gt; StyleBuilderConverter::convertFontFeatureSettings(StyleResolver&amp;, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (is&lt;CSSPrimitiveValue&gt;(value)) {
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1158,63 +1158,6 @@
</span><span class="cx">         style-&gt;setWritingMode(LeftToRightWritingMode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void StyleResolver::adjustStyleForMaskImages()
-{
-    // If we already have the same mask image objects loaded on the old style,
-    // use the old ones instead of loading new ones.
-    RenderStyle* newStyle = m_state.style();
-    RenderStyle* oldStyle = (m_state.element() ? m_state.element()-&gt;renderStyle() : nullptr);
-
-    if (newStyle &amp;&amp; oldStyle) {
-        Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt; removedExternalResources;
-        
-        // Get all mask objects from the old style in a vector
-        // so we can remove them as we match them, making the following steps faster.
-        Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt; oldStyleMaskImages;
-        const FillLayer* oldMaskLayer = oldStyle-&gt;maskLayers();
-        while (oldMaskLayer) {
-            RefPtr&lt;MaskImageOperation&gt; oldMaskImage = oldMaskLayer-&gt;maskImage();
-            if (oldMaskImage.get())
-                oldStyleMaskImages.append(oldMaskImage);
-
-            oldMaskLayer = oldMaskLayer-&gt;next();
-        }
-
-        if (oldStyleMaskImages.isEmpty())
-            return;
-
-        // Try to match the new mask objects through the list from the old style.
-        // This should work perfectly and optimal when the list of masks remained
-        // the same and also work correctly (but slower) when they were reordered.
-        FillLayer* newMaskLayer = &amp;newStyle-&gt;ensureMaskLayers();
-        int countOldStyleMaskImages = oldStyleMaskImages.size();
-        while (newMaskLayer &amp;&amp; countOldStyleMaskImages) {
-            RefPtr&lt;MaskImageOperation&gt; newMaskImage = newMaskLayer-&gt;maskImage();
-            if (newMaskImage.get()) {
-                for (int i = 0; i &lt; countOldStyleMaskImages; i++) {
-                    RefPtr&lt;MaskImageOperation&gt; oldMaskImage = oldStyleMaskImages[i];
-                    if (*oldMaskImage == *newMaskImage) {
-                        newMaskLayer-&gt;setMaskImage(oldMaskImage);
-                        if (newMaskImage-&gt;isExternalDocument())
-                            removedExternalResources.append(newMaskImage);
-
-                        oldStyleMaskImages.remove(i);
-                        countOldStyleMaskImages--;
-                        break;
-                    }
-                }
-            }
-
-            newMaskLayer = newMaskLayer-&gt;next();
-        }
-
-        Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt;&amp; pendingResources = m_state.maskImagesWithPendingSVGDocuments();
-        pendingResources.removeAllMatching([&amp;removedExternalResources] (const RefPtr&lt;MaskImageOperation&gt;&amp; resource) {
-            return removedExternalResources.contains(resource);
-        });
-    }
-}
-
</del><span class="cx"> void StyleResolver::adjustRenderStyle(RenderStyle&amp; style, const RenderStyle&amp; parentStyle, Element *e)
</span><span class="cx"> {
</span><span class="cx">     // Cache our original display.
</span><span class="lines">@@ -1810,8 +1753,6 @@
</span><span class="cx">     // There are some CSS properties that affect the same RenderStyle values,
</span><span class="cx">     // so to preserve behavior, we queue them up during cascade and flush here.
</span><span class="cx">     cascade.applyDeferredProperties(*this);
</span><del>-    
-    adjustStyleForMaskImages();
</del><span class="cx"> 
</span><span class="cx">     // Start loading resources referenced by this style.
</span><span class="cx">     loadPendingResources();
</span><span class="lines">@@ -2239,33 +2180,18 @@
</span><span class="cx">     // style is NULL. We don't know exactly why this happens. Our guess is
</span><span class="cx">     // reentering styleForElement().
</span><span class="cx">     ASSERT(state.style());
</span><del>-    if (!state.style())
</del><ins>+    if (!state.style() || !state.style()-&gt;hasFilter() || state.filtersWithPendingSVGDocuments().isEmpty())
</ins><span class="cx">         return;
</span><del>-    
-    bool hasFilters = (state.style()-&gt;hasFilter() &amp;&amp; !state.filtersWithPendingSVGDocuments().isEmpty());
-    bool hasMasks = (state.style()-&gt;hasMask() &amp;&amp; !state.maskImagesWithPendingSVGDocuments().isEmpty());
-    
-    if (!hasFilters &amp;&amp; !hasMasks)
-        return;
</del><span class="cx"> 
</span><span class="cx">     ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions();
</span><span class="cx">     options.setContentSecurityPolicyImposition(m_state.element() &amp;&amp; m_state.element()-&gt;isInUserAgentShadowTree() ? ContentSecurityPolicyImposition::SkipPolicyCheck : ContentSecurityPolicyImposition::DoPolicyCheck);
</span><span class="cx"> 
</span><span class="cx">     CachedResourceLoader&amp; cachedResourceLoader = state.document().cachedResourceLoader();
</span><span class="cx">     
</span><del>-    if (hasFilters) {
-        for (auto&amp; filterOperation : state.filtersWithPendingSVGDocuments())
-            filterOperation-&gt;getOrCreateCachedSVGDocumentReference()-&gt;load(cachedResourceLoader, options);
</del><ins>+    for (auto&amp; filterOperation : state.filtersWithPendingSVGDocuments())
+        filterOperation-&gt;getOrCreateCachedSVGDocumentReference()-&gt;load(cachedResourceLoader, options);
</ins><span class="cx"> 
</span><del>-        state.filtersWithPendingSVGDocuments().clear();
-    }
-    
-    if (hasMasks) {
-        for (auto&amp; maskImageOperation : state.maskImagesWithPendingSVGDocuments())
-            maskImageOperation-&gt;ensureCachedSVGDocumentReference()-&gt;load(cachedResourceLoader, options);
-
-        state.maskImagesWithPendingSVGDocuments().clear();
-    }
</del><ins>+    state.filtersWithPendingSVGDocuments().clear();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleResolver::createFilterOperations(CSSValue&amp; inValue, FilterOperations&amp; outOperations)
</span><span class="lines">@@ -2528,10 +2454,9 @@
</span><span class="cx">         }
</span><span class="cx">         case CSSPropertyWebkitMaskImage: {
</span><span class="cx">             for (FillLayer* maskLayer = &amp;m_state.style()-&gt;ensureMaskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
</span><del>-                RefPtr&lt;MaskImageOperation&gt; maskImage = maskLayer-&gt;maskImage();
-                auto* styleImage = maskImage.get() ? maskImage-&gt;image() : nullptr;
</del><ins>+                auto* styleImage = maskLayer-&gt;image();
</ins><span class="cx">                 if (is&lt;StylePendingImage&gt;(styleImage))
</span><del>-                    maskImage-&gt;setImage(loadPendingImage(downcast&lt;StylePendingImage&gt;(*styleImage)));
</del><ins>+                    maskLayer-&gt;setImage(loadPendingImage(downcast&lt;StylePendingImage&gt;(*styleImage)));
</ins><span class="cx">             }
</span><span class="cx">             break;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/css/StyleResolver.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -302,7 +302,6 @@
</span><span class="cx"> #endif
</span><span class="cx">     
</span><span class="cx">     void adjustStyleForInterCharacterRuby();
</span><del>-    void adjustStyleForMaskImages();
</del><span class="cx">     
</span><span class="cx">     bool fastRejectSelector(const RuleData&amp;) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/page/FrameView.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -4508,6 +4508,14 @@
</span><span class="cx">     return renderView-&gt;style().isFlippedBlocksWritingMode();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool FrameView::containsSVGDocument() const
+{
+    if (frame().document())
+        return frame().document()-&gt;isSVGDocument();
+    
+    return false;
+}
+
</ins><span class="cx"> void FrameView::notifyWidgetsInAllFrames(WidgetNotification notification)
</span><span class="cx"> {
</span><span class="cx">     for (auto* frame = m_frame.ptr(); frame; frame = frame-&gt;tree().traverseNext(m_frame.ptr())) {
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/page/FrameView.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -561,6 +561,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool isVerticalDocument() const override;
</span><span class="cx">     virtual bool isFlippedDocument() const override;
</span><ins>+    virtual bool containsSVGDocument() const override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     explicit FrameView(Frame&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationCSSPropertyAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -42,7 +42,6 @@
</span><span class="cx"> #include &quot;ClipPathOperation.h&quot;
</span><span class="cx"> #include &quot;FloatConversion.h&quot;
</span><span class="cx"> #include &quot;IdentityTransformOperation.h&quot;
</span><del>-#include &quot;MaskImageOperation.h&quot;
</del><span class="cx"> #include &quot;Matrix3DTransformOperation.h&quot;
</span><span class="cx"> #include &quot;MatrixTransformOperation.h&quot;
</span><span class="cx"> #include &quot;RenderBox.h&quot;
</span><span class="lines">@@ -348,19 +347,6 @@
</span><span class="cx">     return to;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PassRefPtr&lt;MaskImageOperation&gt; blendFunc(const AnimationBase* anim, const RefPtr&lt;MaskImageOperation&gt; from, const RefPtr&lt;MaskImageOperation&gt; to, double progress)
-{
-    if (!from.get() || !to.get())
-        return to;
-
-    // Only animates between masks using images (PNG, entire SVG, generated image).
-    // It does not animate between &lt;mask&gt; elements (file.svg#identifier).
-    if (from-&gt;image() &amp;&amp; to-&gt;image())
-        return MaskImageOperation::create(blendFunc(anim, from-&gt;image(), to-&gt;image(), progress));
-
-    return to;
-}
-
</del><span class="cx"> static inline NinePieceImage blendFunc(const AnimationBase* anim, const NinePieceImage&amp; from, const NinePieceImage&amp; to, double progress)
</span><span class="cx"> {
</span><span class="cx">     if (!from.hasImage() || !to.hasImage())
</span><span class="lines">@@ -527,31 +513,6 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class MaskImagePropertyWrapper : public PropertyWrapper&lt;const RefPtr&lt;MaskImageOperation&gt;&gt; {
-    WTF_MAKE_FAST_ALLOCATED;
-public:
-    MaskImagePropertyWrapper()
-        : PropertyWrapper&lt;const RefPtr&lt;MaskImageOperation&gt;&gt;(CSSPropertyWebkitMaskImage, &amp;RenderStyle::maskImage, &amp;RenderStyle::setMaskImage)
-    {
-    }
-    
-    virtual bool equals(const RenderStyle* a, const RenderStyle* b) const
-    {
-        // If the style pointers are the same, don't bother doing the test.
-        // If either is null, return false. If both are null, return true.
-        if (a == b)
-            return true;
-        if (!a || !b)
-            return false;
-        
-        const RefPtr&lt;MaskImageOperation&gt; maskImageA = (a-&gt;*m_getter)();
-        const RefPtr&lt;MaskImageOperation&gt; maskImageB = (b-&gt;*m_getter)();
-        StyleImage* styleImageA = (maskImageA ? maskImageA-&gt;image() : nullptr);
-        StyleImage* styleImageB = (maskImageB ? maskImageB-&gt;image() : nullptr);
-        return StyleImage::imagesEquivalent(styleImageA, styleImageB);
-    }
-};
-
</del><span class="cx"> class PropertyWrapperColor : public PropertyWrapperGetter&lt;Color&gt; {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="lines">@@ -1239,7 +1200,7 @@
</span><span class="cx"> 
</span><span class="cx">         new FillLayersPropertyWrapper(CSSPropertyBackgroundImage, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::ensureBackgroundLayers),
</span><span class="cx">         new StyleImagePropertyWrapper(CSSPropertyListStyleImage, &amp;RenderStyle::listStyleImage, &amp;RenderStyle::setListStyleImage),
</span><del>-        new MaskImagePropertyWrapper(),
</del><ins>+        new StyleImagePropertyWrapper(CSSPropertyWebkitMaskImage, &amp;RenderStyle::maskImage, &amp;RenderStyle::setMaskImage),
</ins><span class="cx"> 
</span><span class="cx">         new StyleImagePropertyWrapper(CSSPropertyBorderImageSource, &amp;RenderStyle::borderImageSource, &amp;RenderStyle::setBorderImageSource),
</span><span class="cx">         new LengthPropertyWrapper&lt;LengthBox&gt;(CSSPropertyBorderImageSlice, &amp;RenderStyle::borderImageSlices, &amp;RenderStyle::setBorderImageSlices),
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/platform/ScrollView.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -408,6 +408,7 @@
</span><span class="cx">     // Subclassed by FrameView to check the writing-mode of the document.
</span><span class="cx">     virtual bool isVerticalDocument() const { return true; }
</span><span class="cx">     virtual bool isFlippedDocument() const { return false; }
</span><ins>+    virtual bool containsSVGDocument() const { return false; }
</ins><span class="cx"> 
</span><span class="cx">     // Called to update the scrollbars to accurately reflect the state of the view.
</span><span class="cx">     void updateScrollbars(const IntSize&amp; desiredOffset);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMaskImageOperationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MaskImageOperation.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MaskImageOperation.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/platform/graphics/MaskImageOperation.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -82,17 +82,8 @@
</span><span class="cx"> 
</span><span class="cx"> MaskImageOperation::~MaskImageOperation()
</span><span class="cx"> {
</span><del>-    setRenderLayerImageClient(nullptr);
</del><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool MaskImageOperation::operator==(const MaskImageOperation&amp; other) const
-{
-    if (m_url.length())
-        return (m_url == other.m_url &amp;&amp; m_fragment == other.m_fragment &amp;&amp; m_isExternalDocument == other.m_isExternalDocument);
-
-    return m_styleImage.get() == other.m_styleImage.get();
-}
-
</del><span class="cx"> bool MaskImageOperation::isCSSValueNone() const
</span><span class="cx"> {
</span><span class="cx">     if (image())
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMaskImageOperationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MaskImageOperation.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MaskImageOperation.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/platform/graphics/MaskImageOperation.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -55,13 +55,9 @@
</span><span class="cx">     PassRefPtr&lt;CSSValue&gt; cssValue();
</span><span class="cx"> 
</span><span class="cx">     virtual ~MaskImageOperation();
</span><del>-    
-    bool operator==(const MaskImageOperation&amp;) const;
-    inline bool operator!=(const MaskImageOperation&amp; other) const { return !operator==(other); }
</del><span class="cx"> 
</span><span class="cx">     const String&amp; url() const { return m_url; }
</span><span class="cx">     const String&amp; fragment() const { return m_fragment; }
</span><del>-    bool isExternalDocument() const { return m_isExternalDocument; }
</del><span class="cx">     StyleImage* image() const { return m_styleImage.get(); }
</span><span class="cx">     void setImage(PassRefPtr&lt;StyleImage&gt;);
</span><span class="cx">     void setRenderLayerImageClient(CachedImageClient*);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1573,7 +1573,7 @@
</span><span class="cx">     LayoutRect result;
</span><span class="cx">     LayoutRect borderBox = borderBoxRect();
</span><span class="cx">     for (const FillLayer* maskLayer = style().maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
</span><del>-        if (maskLayer-&gt;maskImage()) {
</del><ins>+        if (maskLayer-&gt;image()) {
</ins><span class="cx">             // Masks should never have fixed attachment, so it's OK for paintContainer to be null.
</span><span class="cx">             BackgroundImageGeometry geometry = calculateBackgroundImageGeometry(nullptr, *maskLayer, paintOffset, borderBox);
</span><span class="cx">             result.unite(geometry.destRect());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -27,8 +27,6 @@
</span><span class="cx"> #include &quot;RenderBoxModelObject.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BorderEdge.h&quot;
</span><del>-#include &quot;CachedImage.h&quot;
-#include &quot;CachedSVGDocument.h&quot;
</del><span class="cx"> #include &quot;FloatRoundedRect.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><span class="cx"> #include &quot;FrameView.h&quot;
</span><span class="lines">@@ -49,16 +47,13 @@
</span><span class="cx"> #include &quot;RenderNamedFlowFragment.h&quot;
</span><span class="cx"> #include &quot;RenderNamedFlowThread.h&quot;
</span><span class="cx"> #include &quot;RenderRegion.h&quot;
</span><del>-#include &quot;RenderSVGResourceMasker.h&quot;
</del><span class="cx"> #include &quot;RenderTable.h&quot;
</span><span class="cx"> #include &quot;RenderTableRow.h&quot;
</span><span class="cx"> #include &quot;RenderText.h&quot;
</span><span class="cx"> #include &quot;RenderTextFragment.h&quot;
</span><span class="cx"> #include &quot;RenderView.h&quot;
</span><del>-#include &quot;SVGImageForContainer.h&quot;
</del><span class="cx"> #include &quot;ScrollingConstraints.h&quot;
</span><span class="cx"> #include &quot;Settings.h&quot;
</span><del>-#include &quot;StyleCachedImage.h&quot;
</del><span class="cx"> #include &quot;TransformState.h&quot;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -684,7 +679,7 @@
</span><span class="cx">     FloatRect pixelSnappedRect = snapRectToDevicePixels(rect, deviceScaleFactor);
</span><span class="cx"> 
</span><span class="cx">     // Fast path for drawing simple color backgrounds.
</span><del>-    if (!isRoot &amp;&amp; !clippedWithLocalScrolling &amp;&amp; !shouldPaintBackgroundImage &amp;&amp; isBorderFill &amp;&amp; !bgLayer-&gt;hasMaskImage() &amp;&amp; !bgLayer-&gt;next()) {
</del><ins>+    if (!isRoot &amp;&amp; !clippedWithLocalScrolling &amp;&amp; !shouldPaintBackgroundImage &amp;&amp; isBorderFill &amp;&amp; !bgLayer-&gt;next()) {
</ins><span class="cx">         if (!colorVisible)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="lines">@@ -844,25 +839,18 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // no progressive loading of the background image
</span><del>-    if (!baseBgColorOnly &amp;&amp; (shouldPaintBackgroundImage || bgLayer-&gt;hasMaskImage())) {
</del><ins>+    if (!baseBgColorOnly &amp;&amp; shouldPaintBackgroundImage) {
</ins><span class="cx">         BackgroundImageGeometry geometry = calculateBackgroundImageGeometry(paintInfo.paintContainer, *bgLayer, rect.location(), scrolledPaintRect, backgroundObject);
</span><span class="cx">         geometry.clip(LayoutRect(pixelSnappedRect));
</span><del>-
</del><span class="cx">         if (!geometry.destRect().isEmpty()) {
</span><del>-            bool didPaintCustomMask = false;
</del><span class="cx">             CompositeOperator compositeOp = op == CompositeSourceOver ? bgLayer-&gt;composite() : op;
</span><span class="cx">             auto clientForBackgroundImage = backgroundObject ? backgroundObject : this;
</span><del>-            RefPtr&lt;Image&gt; image = (bgImage ? bgImage-&gt;image(clientForBackgroundImage, geometry.tileSize()) : nullptr);
-            if (!image.get() &amp;&amp; bgLayer-&gt;hasMaskImage())
-                didPaintCustomMask = bgLayer-&gt;maskImage()-&gt;drawMask(*this, geometry, context, compositeOp);
-
-            if (!didPaintCustomMask &amp;&amp; shouldPaintBackgroundImage) {
-                context-&gt;setDrawLuminanceMask(bgLayer-&gt;maskSourceType() == MaskLuminance);
-                bool useLowQualityScaling = shouldPaintAtLowQuality(context, image.get(), bgLayer, geometry.tileSize());
-                if (image.get())
-                    image-&gt;setSpaceSize(geometry.spaceSize());
-                context-&gt;drawTiledImage(image.get(), style().colorSpace(), geometry.destRect(), toLayoutPoint(geometry.relativePhase()), geometry.tileSize(), ImagePaintingOptions(compositeOp, bgLayer-&gt;blendMode(), ImageOrientationDescription(), useLowQualityScaling));
-            }
</del><ins>+            RefPtr&lt;Image&gt; image = bgImage-&gt;image(clientForBackgroundImage, geometry.tileSize());
+            context-&gt;setDrawLuminanceMask(bgLayer-&gt;maskSourceType() == MaskLuminance);
+            bool useLowQualityScaling = shouldPaintAtLowQuality(context, image.get(), bgLayer, geometry.tileSize());
+            if (image.get())
+                image-&gt;setSpaceSize(geometry.spaceSize());
+            context-&gt;drawTiledImage(image.get(), style().colorSpace(), geometry.destRect(), toLayoutPoint(geometry.relativePhase()), geometry.tileSize(), ImagePaintingOptions(compositeOp, bgLayer-&gt;blendMode(), ImageOrientationDescription(), useLowQualityScaling));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -123,8 +123,6 @@
</span><span class="cx">         for (const FillLayer* maskLayer = m_style-&gt;maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
</span><span class="cx">             if (StyleImage* maskImage = maskLayer-&gt;image())
</span><span class="cx">                 maskImage-&gt;removeClient(this);
</span><del>-            else if (maskLayer-&gt;maskImage().get())
-                maskLayer-&gt;maskImage()-&gt;removeRendererImageClient(this);
</del><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (StyleImage* borderImage = m_style-&gt;borderImage().image())
</span><span class="lines">@@ -332,17 +330,13 @@
</span><span class="cx">     
</span><span class="cx">     // Go through the new layers and addClients first, to avoid removing all clients of an image.
</span><span class="cx">     for (const FillLayer* currNew = newLayers; currNew; currNew = currNew-&gt;next()) {
</span><del>-        if (StyleImage* image = currNew-&gt;image())
-            image-&gt;addClient(this);
-        else if (currNew-&gt;maskImage().get())
-            currNew-&gt;maskImage()-&gt;addRendererImageClient(this);
</del><ins>+        if (currNew-&gt;image())
+            currNew-&gt;image()-&gt;addClient(this);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (const FillLayer* currOld = oldLayers; currOld; currOld = currOld-&gt;next()) {
</span><del>-        if (StyleImage* image = currOld-&gt;image())
-            image-&gt;removeClient(this);
-        else if (currOld-&gt;maskImage().get())
-            currOld-&gt;maskImage()-&gt;removeRendererImageClient(this);
</del><ins>+        if (currOld-&gt;image())
+            currOld-&gt;image()-&gt;removeClient(this);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -370,7 +370,6 @@
</span><span class="cx">         removeReflection();
</span><span class="cx"> 
</span><span class="cx">     FilterInfo::remove(*this);
</span><del>-    MaskImageInfo::remove(*this);
</del><span class="cx"> 
</span><span class="cx">     // Child layers will be deleted by their corresponding render objects, so
</span><span class="cx">     // we don't need to delete them ourselves.
</span><span class="lines">@@ -6713,7 +6712,6 @@
</span><span class="cx">     updateBlendMode();
</span><span class="cx"> #endif
</span><span class="cx">     updateOrRemoveFilterClients();
</span><del>-    updateOrRemoveMaskImageClients();
</del><span class="cx"> 
</span><span class="cx">     updateNeedsCompositedScrolling();
</span><span class="cx"> 
</span><span class="lines">@@ -6868,14 +6866,6 @@
</span><span class="cx">         filterInfo-&gt;removeReferenceFilterClients();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderLayer::updateOrRemoveMaskImageClients()
-{
-    if (renderer().style().maskImage().get())
-        MaskImageInfo::get(*this).updateMaskImageClients();
-    else if (MaskImageInfo* maskImageInfo = MaskImageInfo::getIfExists(*this))
-        maskImageInfo-&gt;removeMaskImageClients();
-}
-
</del><span class="cx"> void RenderLayer::updateOrRemoveFilterEffectRenderer()
</span><span class="cx"> {
</span><span class="cx">     // FilterEffectRenderer is only used to render the filters in software mode,
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/RenderLayer.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -920,7 +920,6 @@
</span><span class="cx"> 
</span><span class="cx">     void updateOrRemoveFilterClients();
</span><span class="cx">     void updateOrRemoveFilterEffectRenderer();
</span><del>-    void updateOrRemoveMaskImageClients();
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><span class="cx">     void updateAncestorChainHasBlendingDescendants();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerMaskImageInfocpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/rendering/RenderLayerMaskImageInfo.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerMaskImageInfo.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/RenderLayerMaskImageInfo.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -1,154 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;RenderLayerMaskImageInfo.h&quot;
-
-#include &quot;CachedSVGDocument.h&quot;
-#include &quot;SVGMaskElement.h&quot;
-#include &lt;wtf/NeverDestroyed.h&gt;
-
-namespace WebCore {
-
-class RenderLayer::MaskImageInfo::SVGDocumentClient : public CachedSVGDocumentClient {
-public:
-    SVGDocumentClient(RenderLayer&amp; layer)
-        : m_layer(layer)
-    {
-    }
-
-private:
-    virtual void notifyFinished(CachedResource*) override
-    {
-        m_layer.renderer().repaint();
-    }
-
-    RenderLayer&amp; m_layer;
-};
-
-class RenderLayer::MaskImageInfo::ImageClient : public CachedImageClient {
-public:
-    ImageClient(RenderLayer&amp; layer)
-        : m_layer(layer)
-    {
-    }
-
-private:
-    virtual void imageChanged(CachedImage*, const IntRect*) override
-    {
-        m_layer.renderer().repaint();
-    }
-
-    RenderLayer&amp; m_layer;
-};
-
-HashMap&lt;const RenderLayer*, std::unique_ptr&lt;RenderLayer::MaskImageInfo&gt;&gt;&amp; RenderLayer::MaskImageInfo::layerToMaskMap()
-{
-    static NeverDestroyed&lt;HashMap&lt;const RenderLayer*, std::unique_ptr&lt;MaskImageInfo&gt;&gt;&gt; layerToMaskMap;
-    return layerToMaskMap;
-}
-
-RenderLayer::MaskImageInfo* RenderLayer::MaskImageInfo::getIfExists(const RenderLayer&amp; layer)
-{
-    ASSERT(layer.m_hasMaskImageInfo == layerToMaskMap().contains(&amp;layer));
-    return layer.m_hasMaskImageInfo ? layerToMaskMap().get(&amp;layer) : nullptr;
-}
-
-RenderLayer::MaskImageInfo&amp; RenderLayer::MaskImageInfo::get(RenderLayer&amp; layer)
-{
-    ASSERT(layer.m_hasMaskImageInfo == layerToMaskMap().contains(&amp;layer));
-
-    auto&amp; info = layerToMaskMap().add(&amp;layer, nullptr).iterator-&gt;value;
-    if (!info) {
-        info = std::make_unique&lt;MaskImageInfo&gt;(layer);
-        layer.m_hasMaskImageInfo = true;
-    }
-    return *info;
-}
-
-void RenderLayer::MaskImageInfo::remove(RenderLayer&amp; layer)
-{
-    ASSERT(layer.m_hasMaskImageInfo == layerToMaskMap().contains(&amp;layer));
-
-    if (layerToMaskMap().remove(&amp;layer))
-        layer.m_hasMaskImageInfo = false;
-}
-
-RenderLayer::MaskImageInfo::MaskImageInfo(RenderLayer&amp; layer)
-    : m_layer(layer)
-    , m_svgDocumentClient(std::make_unique&lt;SVGDocumentClient&gt;(layer))
-    , m_imageClient(std::make_unique&lt;ImageClient&gt;(layer))
-{
-}
-
-RenderLayer::MaskImageInfo::~MaskImageInfo()
-{
-    removeMaskImageClients();
-}
-
-void RenderLayer::MaskImageInfo::updateMaskImageClients()
-{
-    removeMaskImageClients();
-    
-    for (auto* maskLayer = m_layer.renderer().style().maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
-        RefPtr&lt;MaskImageOperation&gt; maskImage = maskLayer-&gt;maskImage();
-        maskImage-&gt;setRenderLayerImageClient(m_imageClient.get());
-        m_maskImageOperations.append(maskImage);
-
-        CachedSVGDocumentReference* documentReference = maskImage-&gt;cachedSVGDocumentReference();
-        CachedSVGDocument* cachedSVGDocument = documentReference ? documentReference-&gt;document() : nullptr;
-        
-        if (cachedSVGDocument) {
-            // Reference is external; wait for notifyFinished and then repaint.
-            cachedSVGDocument-&gt;addClient(m_svgDocumentClient.get());
-            m_externalSVGReferences.append(cachedSVGDocument);
-        } else {
-            // Reference is internal; add layer as a client so we can trigger mask repaint on SVG attribute change.
-            Element* masker = m_layer.renderer().document().getElementById(maskImage-&gt;fragment());
-            if (is&lt;SVGMaskElement&gt;(masker)) {
-                downcast&lt;SVGMaskElement&gt;(*masker).addClientRenderLayer(&amp;m_layer);
-                m_internalSVGReferences.append(masker);
-            }
-        }
-    }
-}
-
-void RenderLayer::MaskImageInfo::removeMaskImageClients()
-{
-    for (auto&amp; maskImage : m_maskImageOperations)
-        maskImage-&gt;setRenderLayerImageClient(nullptr);
-    m_maskImageOperations.clear();
-
-    for (auto&amp; externalSVGReference : m_externalSVGReferences)
-        externalSVGReference-&gt;removeClient(m_svgDocumentClient.get());
-    m_externalSVGReferences.clear();
-    
-    for (auto&amp; internalSVGReference : m_internalSVGReferences)
-        downcast&lt;SVGMaskElement&gt;(internalSVGReference.get())-&gt;removeClientRenderLayer(&amp;m_layer);
-    m_internalSVGReferences.clear();
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleFillLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/FillLayer.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/FillLayer.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/style/FillLayer.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -68,8 +68,9 @@
</span><span class="cx">     explicit FillLayer(EFillLayerType);
</span><span class="cx">     ~FillLayer();
</span><span class="cx"> 
</span><del>-    StyleImage* image() const { return hasMaskImage() ? maskImage()-&gt;image() : m_image.get(); }
</del><span class="cx">     const RefPtr&lt;MaskImageOperation&gt;&amp; maskImage() const { return m_maskImageOperation; }
</span><ins>+    StyleImage* image() const { return m_image.get(); }
+    StyleImage* imageOrMaskImage() const { return hasMaskImage() ? maskImage()-&gt;image() : image(); }
</ins><span class="cx">     const Length&amp; xPosition() const { return m_xPosition; }
</span><span class="cx">     const Length&amp; yPosition() const { return m_yPosition; }
</span><span class="cx">     BackgroundEdgeOrigin backgroundXOrigin() const { return static_cast&lt;BackgroundEdgeOrigin&gt;(m_backgroundXOrigin); }
</span><span class="lines">@@ -181,8 +182,6 @@
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;FillLayer&gt; m_next;
</span><span class="cx"> 
</span><del>-    // FIXME: A FillLayer will always have at least one of these pointers null.
-    // Maybe we could group them together somehow and decrease the size of FillLayer.
</del><span class="cx">     RefPtr&lt;MaskImageOperation&gt; m_maskImageOperation;
</span><span class="cx">     RefPtr&lt;StyleImage&gt; m_image;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -895,29 +895,7 @@
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><del>-    
-void RenderStyle::setMaskImage(const Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt;&amp; ops)
-{
-    FillLayer* curLayer = &amp;rareNonInheritedData.access()-&gt;m_mask;
-    while (curLayer) {
-        curLayer-&gt;setMaskImage(nullptr);
-        curLayer = curLayer-&gt;next();
-    }
</del><span class="cx"> 
</span><del>-    curLayer = &amp;rareNonInheritedData.access()-&gt;m_mask;
-    FillLayer* prevLayer = nullptr;
-    for (auto&amp; maskImage : ops) {
-        if (!curLayer) {
-            prevLayer-&gt;setNext(std::make_unique&lt;FillLayer&gt;(MaskFillLayer));
-            curLayer = prevLayer-&gt;next();
-        }
-
-        curLayer-&gt;setMaskImage(maskImage);
-        prevLayer = curLayer;
-        curLayer = curLayer-&gt;next();
-    }
-}
-
</del><span class="cx"> void RenderStyle::setClip(Length top, Length right, Length bottom, Length left)
</span><span class="cx"> {
</span><span class="cx">     StyleVisualData* data = visual.access();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (186390 => 186391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-07-07 01:11:49 UTC (rev 186390)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-07-07 01:15:01 UTC (rev 186391)
</span><span class="lines">@@ -107,7 +107,6 @@
</span><span class="cx"> class FontCascade;
</span><span class="cx"> class FontMetrics;
</span><span class="cx"> class IntRect;
</span><del>-class MaskImageOperation;
</del><span class="cx"> class Pair;
</span><span class="cx"> class ShadowData;
</span><span class="cx"> class StyleImage;
</span><span class="lines">@@ -809,6 +808,7 @@
</span><span class="cx">     FillLayer&amp; ensureBackgroundLayers() { return m_background.access()-&gt;m_background; }
</span><span class="cx">     const FillLayer* backgroundLayers() const { return &amp;(m_background-&gt;background()); }
</span><span class="cx"> 
</span><ins>+    StyleImage* maskImage() const { return rareNonInheritedData-&gt;m_mask.image(); }
</ins><span class="cx">     EFillRepeat maskRepeatX() const { return static_cast&lt;EFillRepeat&gt;(rareNonInheritedData-&gt;m_mask.repeatX()); }
</span><span class="cx">     EFillRepeat maskRepeatY() const { return static_cast&lt;EFillRepeat&gt;(rareNonInheritedData-&gt;m_mask.repeatY()); }
</span><span class="cx">     CompositeOperator maskComposite() const { return static_cast&lt;CompositeOperator&gt;(rareNonInheritedData-&gt;m_mask.composite()); }
</span><span class="lines">@@ -1049,7 +1049,7 @@
</span><span class="cx">     void applyTransform(TransformationMatrix&amp;, const FloatRect&amp; boundingBox, ApplyTransformOrigin = IncludeTransformOrigin) const;
</span><span class="cx">     void setPageScaleTransform(float);
</span><span class="cx"> 
</span><del>-    bool hasMask() const { return rareNonInheritedData-&gt;m_mask.hasNonEmptyMaskImage() || rareNonInheritedData-&gt;m_mask.hasImage() || rareNonInheritedData-&gt;m_maskBoxImage.hasImage(); }
</del><ins>+    bool hasMask() const { return rareNonInheritedData-&gt;m_mask.hasImage() || rareNonInheritedData-&gt;m_maskBoxImage.hasImage(); }
</ins><span class="cx"> 
</span><span class="cx">     TextCombine textCombine() const { return static_cast&lt;TextCombine&gt;(rareNonInheritedData-&gt;m_textCombine); }
</span><span class="cx">     bool hasTextCombine() const { return textCombine() != TextCombineNone; }
</span><span class="lines">@@ -1155,9 +1155,6 @@
</span><span class="cx">     FilterOperations&amp; mutableFilter() { return rareNonInheritedData.access()-&gt;m_filter.access()-&gt;m_operations; }
</span><span class="cx">     const FilterOperations&amp; filter() const { return rareNonInheritedData-&gt;m_filter-&gt;m_operations; }
</span><span class="cx">     bool hasFilter() const { return !rareNonInheritedData-&gt;m_filter-&gt;m_operations.operations().isEmpty(); }
</span><del>-    
-    RefPtr&lt;MaskImageOperation&gt;&amp; mutableMaskImage() { return rareNonInheritedData.access()-&gt;m_mask.m_maskImageOperation; }
-    const RefPtr&lt;MaskImageOperation&gt; maskImage() const { return rareNonInheritedData-&gt;m_mask.maskImage(); }
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><span class="cx">     FilterOperations&amp; mutableBackdropFilter() { return rareNonInheritedData.access()-&gt;m_backdropFilter.access()-&gt;m_operations; }
</span><span class="lines">@@ -1413,6 +1410,8 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    void setMaskImage(PassRefPtr&lt;StyleImage&gt; v) { rareNonInheritedData.access()-&gt;m_mask.setImage(v); }
+
</ins><span class="cx">     void setMaskBoxImage(const NinePieceImage&amp; b) { SET_VAR(rareNonInheritedData, m_maskBoxImage, b); }
</span><span class="cx">     void setMaskBoxImageSource(PassRefPtr&lt;StyleImage&gt; v) { rareNonInheritedData.access()-&gt;m_maskBoxImage.setImage(v); }
</span><span class="cx">     void setMaskXPosition(Length length) { SET_VAR(rareNonInheritedData, m_mask.m_xPosition, WTF::move(length)); }
</span><span class="lines">@@ -1618,9 +1617,6 @@
</span><span class="cx">     void setBackdropFilter(const FilterOperations&amp; ops) { SET_VAR(rareNonInheritedData.access()-&gt;m_backdropFilter, m_operations, ops); }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setMaskImage(const Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt;&amp;);
-    void setMaskImage(const RefPtr&lt;MaskImageOperation&gt; maskImage) { Vector&lt;RefPtr&lt;MaskImageOperation&gt;&gt; vectMask; vectMask.append(maskImage); setMaskImage(vectMask); }
-
</del><span class="cx">     void setTabSize(unsigned size) { SET_VAR(rareInheritedData, m_tabSize, size); }
</span><span class="cx"> 
</span><span class="cx">     // End CSS3 Setters
</span></span></pre>
</div>
</div>

</body>
</html>