Title: [199361] releases/WebKitGTK/webkit-2.12
Revision
199361
Author
[email protected]
Date
2016-04-12 09:27:45 -0700 (Tue, 12 Apr 2016)

Log Message

Merge r198075 - REGRESSION (r188647): Teamtreehouse website sidebar buttons are not rendered
https://bugs.webkit.org/show_bug.cgi?id=155400
<rdar://problem/24818602>

Reviewed by Anders Carlsson.

Source/WebCore:

When we unprefixed CSS filters we accidentally
stopped SVG elements that use the CSS filter shorthands
from rendering. We still don't actually support
the shorthands in this case, but we should render
the element without the filter.

Tests: css3/filters/filters-on-svg-element.html
       css3/filters/filters-on-svg-root.html

* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::hasReferenceFilterOnly): Add
this new function that tells us if we have the
style of filter that we can handle in SVG content.
* rendering/style/RenderStyle.h:
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
We can mark an element as ready to render if it
has a shorthand filter.

LayoutTests:

Add tests with SVG content that uses CSS filter
shorthands. These particular filters are no-ops
so should not affect rendering. If they actually
tried to do something you wouldn't see them work
until we enable shorthand filters on SVG content.

* css3/filters/filters-on-svg-element-expected.html: Added.
* css3/filters/filters-on-svg-element.html: Added.
* css3/filters/filters-on-svg-root-expected.html: Added.
* css3/filters/filters-on-svg-root.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog (199360 => 199361)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog	2016-04-12 16:21:50 UTC (rev 199360)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog	2016-04-12 16:27:45 UTC (rev 199361)
@@ -1,3 +1,22 @@
+2016-03-12  Dean Jackson  <[email protected]>
+
+        REGRESSION (r188647): Teamtreehouse website sidebar buttons are not rendered
+        https://bugs.webkit.org/show_bug.cgi?id=155400
+        <rdar://problem/24818602>
+
+        Reviewed by Anders Carlsson.
+
+        Add tests with SVG content that uses CSS filter
+        shorthands. These particular filters are no-ops
+        so should not affect rendering. If they actually
+        tried to do something you wouldn't see them work
+        until we enable shorthand filters on SVG content.
+
+        * css3/filters/filters-on-svg-element-expected.html: Added.
+        * css3/filters/filters-on-svg-element.html: Added.
+        * css3/filters/filters-on-svg-root-expected.html: Added.
+        * css3/filters/filters-on-svg-root.html: Added.
+
 2016-03-11  Jiewen Tan  <[email protected]>
 
         WebKit should not be redirected to an invalid URL

Added: releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-element-expected.html (0 => 199361)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-element-expected.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-element-expected.html	2016-04-12 16:27:45 UTC (rev 199361)
@@ -0,0 +1,4 @@
+<svg viewBox="0 0 20 20" width="100px" height="100px">
+    <rect width="20" height="20" fill="red"/>
+    <circle cx="10" cy="10" r="8"/>
+</svg>

Added: releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-element.html (0 => 199361)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-element.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-element.html	2016-04-12 16:27:45 UTC (rev 199361)
@@ -0,0 +1,9 @@
+<style>
+rect {
+    filter: blur(0);
+}
+</style>
+<svg viewBox="0 0 20 20" width="100px" height="100px">
+    <rect width="20" height="20" fill="red"/>
+    <circle cx="10" cy="10" r="8"/>
+</svg>

Added: releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-root-expected.html (0 => 199361)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-root-expected.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-root-expected.html	2016-04-12 16:27:45 UTC (rev 199361)
@@ -0,0 +1,4 @@
+<svg viewBox="0 0 20 20" width="100px" height="100px">
+    <rect width="20" height="20" fill="red"/>
+    <circle cx="10" cy="10" r="8"/>
+</svg>

Added: releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-root.html (0 => 199361)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-root.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/css3/filters/filters-on-svg-root.html	2016-04-12 16:27:45 UTC (rev 199361)
@@ -0,0 +1,9 @@
+<style>
+svg {
+    filter: blur(0);
+}
+</style>
+<svg viewBox="0 0 20 20" width="100px" height="100px">
+    <rect width="20" height="20" fill="red"/>
+    <circle cx="10" cy="10" r="8"/>
+</svg>

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (199360 => 199361)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-04-12 16:21:50 UTC (rev 199360)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-04-12 16:27:45 UTC (rev 199361)
@@ -1,3 +1,30 @@
+2016-03-12  Dean Jackson  <[email protected]>
+
+        REGRESSION (r188647): Teamtreehouse website sidebar buttons are not rendered
+        https://bugs.webkit.org/show_bug.cgi?id=155400
+        <rdar://problem/24818602>
+
+        Reviewed by Anders Carlsson.
+
+        When we unprefixed CSS filters we accidentally
+        stopped SVG elements that use the CSS filter shorthands
+        from rendering. We still don't actually support
+        the shorthands in this case, but we should render
+        the element without the filter.
+
+        Tests: css3/filters/filters-on-svg-element.html
+               css3/filters/filters-on-svg-root.html
+
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::hasReferenceFilterOnly): Add
+        this new function that tells us if we have the
+        style of filter that we can handle in SVG content.
+        * rendering/style/RenderStyle.h:
+        * rendering/svg/SVGRenderingContext.cpp:
+        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
+        We can mark an element as ready to render if it
+        has a shorthand filter.
+
 2016-03-11  Jiewen Tan  <[email protected]>
 
         WebKit should not be redirected to an invalid URL

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/style/RenderStyle.cpp (199360 => 199361)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/style/RenderStyle.cpp	2016-04-12 16:21:50 UTC (rev 199360)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/style/RenderStyle.cpp	2016-04-12 16:27:45 UTC (rev 199361)
@@ -1975,6 +1975,22 @@
 
 #endif
 
+bool RenderStyle::hasReferenceFilterOnly() const
+{
+    if (!hasFilter())
+        return false;
+
+    const FilterOperations& filterOperations = rareNonInheritedData->m_filter->m_operations;
+    if (filterOperations.size() != 1)
+        return false;
+
+    const FilterOperation& filterOperation = *filterOperations.at(0);
+    if (filterOperation.type() != FilterOperation::REFERENCE)
+        return false;
+
+    return true;
+}
+
 void RenderStyle::checkVariablesInCustomProperties()
 {
     if (!rareInheritedData->m_customProperties->containsVariables())

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/style/RenderStyle.h (199360 => 199361)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/style/RenderStyle.h	2016-04-12 16:21:50 UTC (rev 199360)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/style/RenderStyle.h	2016-04-12 16:27:45 UTC (rev 199361)
@@ -1159,6 +1159,7 @@
     FilterOperations& mutableFilter() { return rareNonInheritedData.access()->m_filter.access()->m_operations; }
     const FilterOperations& filter() const { return rareNonInheritedData->m_filter->m_operations; }
     bool hasFilter() const { return !rareNonInheritedData->m_filter->m_operations.operations().isEmpty(); }
+    bool hasReferenceFilterOnly() const;
 
 #if ENABLE(FILTERS_LEVEL_2)
     FilterOperations& mutableBackdropFilter() { return rareNonInheritedData.access()->m_backdropFilter.access()->m_operations; }

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/svg/SVGRenderingContext.cpp (199360 => 199361)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/svg/SVGRenderingContext.cpp	2016-04-12 16:21:50 UTC (rev 199360)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/svg/SVGRenderingContext.cpp	2016-04-12 16:27:45 UTC (rev 199361)
@@ -153,7 +153,7 @@
 
     auto* resources = SVGResourcesCache::cachedResourcesForRenderer(*m_renderer);
     if (!resources) {
-        if (style.hasFilter())
+        if (style.hasReferenceFilterOnly())
             return;
 
         m_renderingFlags |= RenderingPrepared;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to