Diff
Modified: trunk/LayoutTests/ChangeLog (201647 => 201648)
--- trunk/LayoutTests/ChangeLog 2016-06-03 17:09:42 UTC (rev 201647)
+++ trunk/LayoutTests/ChangeLog 2016-06-03 18:13:52 UTC (rev 201648)
@@ -1,5 +1,32 @@
2016-06-03 Antoine Quint <grao...@apple.com>
+ Reflection of element does not respect backdrop-filter property
+ https://bugs.webkit.org/show_bug.cgi?id=158201
+
+ Reviewed by Dean Jackson.
+
+ * css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop-expected.html: Added.
+ * css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html: Added.
+
+ Covers the case where a reflected element without a backdrop-filter initially has one added later.
+
+ * css3/filters/backdrop/backdrop-filter-with-reflection-expected.html: Added.
+ * css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop-expected.html: Added.
+
+ Covers the case where a reflected element with a backdrop-filter initially has it removed later.
+
+ * css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html: Added.
+ * css3/filters/backdrop/backdrop-filter-with-reflection-value-change-expected.html: Added.
+
+ Covers the case where a reflected element with a backdrop-filter has its backdrop-filter property changed later.
+
+ * css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html: Added.
+ * css3/filters/backdrop/backdrop-filter-with-reflection.html: Added.
+
+ Covers the basic case of a reflected element with a backdrop-filter.
+
+2016-06-03 Antoine Quint <grao...@apple.com>
+
REGRESSION: WebGL doesn't show up in CSS reflections
https://bugs.webkit.org/show_bug.cgi?id=76489
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop-expected.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop-expected.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop-expected.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,36 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element without a backdrop-filter value initially updates its rendering when the reflected layer has a backdrop-filter applied later.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ -webkit-backdrop-filter: saturate(180%) blur(5px);
+ }
+
+ .backdrop:last-of-type {
+ top: 110px;
+ }
+
+ </style>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
+<div class="backdrop"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,47 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element without a backdrop-filter value initially updates its rendering when the reflected layer has a backdrop-filter applied later.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ -webkit-box-reflect: below 20px;
+ }
+
+ .backdrop.changed {
+ -webkit-backdrop-filter: saturate(180%) blur(5px);
+ }
+
+ </style>
+ <script type="text/_javascript_">
+
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+
+ window.requestAnimationFrame(function() {
+ document.querySelector(".backdrop").classList.add("changed");
+ if (window.testRunner)
+ testRunner.notifyDone();
+ });
+
+ </script>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-expected.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-expected.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-expected.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,36 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element with a backdrop-filter applied also has a backdrop-filter of its own.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ -webkit-backdrop-filter: saturate(180%) blur(5px);
+ }
+
+ .backdrop:last-of-type {
+ top: 110px;
+ }
+
+ </style>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
+<div class="backdrop"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop-expected.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop-expected.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop-expected.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,35 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element with a backdrop-filter applied updates its rendering when the reflected layer no longer has a backdrop-filter applied.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ }
+
+ .backdrop:last-of-type {
+ top: 110px;
+ }
+
+ </style>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
+<div class="backdrop"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,48 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element with a backdrop-filter applied updates its rendering when the reflected layer no longer has a backdrop-filter applied.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ -webkit-backdrop-filter: saturate(180%) blur(5px);
+ -webkit-box-reflect: below 20px;
+ }
+
+ .backdrop.changed {
+ -webkit-backdrop-filter: none;
+ }
+
+ </style>
+ <script type="text/_javascript_">
+
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+
+ window.requestAnimationFrame(function() {
+ document.querySelector(".backdrop").classList.add("changed");
+ if (window.testRunner)
+ testRunner.notifyDone();
+ });
+
+ </script>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-value-change-expected.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-value-change-expected.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-value-change-expected.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,36 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element with a backdrop-filter applied updates its rendering when the reflected layer has a change of backdrop-filter value.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ -webkit-backdrop-filter: saturate(180%) blur(10px);
+ }
+
+ .backdrop:last-of-type {
+ top: 110px;
+ }
+
+ </style>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
+<div class="backdrop"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,48 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element with a backdrop-filter applied updates its rendering when the reflected layer has a change of backdrop-filter value.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ -webkit-backdrop-filter: saturate(180%) blur(5px);
+ -webkit-box-reflect: below 20px;
+ }
+
+ .backdrop.changed {
+ -webkit-backdrop-filter: saturate(180%) blur(10px);
+ }
+
+ </style>
+ <script type="text/_javascript_">
+
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+
+ window.requestAnimationFrame(function() {
+ document.querySelector(".backdrop").classList.add("changed");
+ if (window.testRunner)
+ testRunner.notifyDone();
+ });
+
+ </script>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection.html (0 => 201648)
--- trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/backdrop-filter-with-reflection.html 2016-06-03 18:13:52 UTC (rev 201648)
@@ -0,0 +1,32 @@
+<head>
+ <meta name="viewport" content="width=device-width">
+ <title>This tests that the reflection of an element with a backdrop-filter applied also has a backdrop-filter of its own.</title>
+ <style>
+
+ svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 200px;
+ height: 200px;
+ background-color: lightgray;
+ }
+
+ .backdrop {
+ position: absolute;
+ top: 10px;
+ left: 60px;
+ width: 80px;
+ height: 80px;
+ background-color: rgba(255, 255, 255, 0.5);
+ -webkit-backdrop-filter: saturate(180%) blur(5px);
+ -webkit-box-reflect: below 20px;
+ }
+
+ </style>
+</head>
+<svg viewbox="0 0 2 2">
+ <rect fill="black" x="0" y="0" width="1" height="1"></rect>
+ <rect fill="black" x="1" y="1" width="1" height="1"></rect>
+</svg>
+<div class="backdrop"></div>
Modified: trunk/Source/WebCore/ChangeLog (201647 => 201648)
--- trunk/Source/WebCore/ChangeLog 2016-06-03 17:09:42 UTC (rev 201647)
+++ trunk/Source/WebCore/ChangeLog 2016-06-03 18:13:52 UTC (rev 201648)
@@ -1,3 +1,46 @@
+2016-06-03 Antoine Quint <grao...@apple.com>
+
+ Reflection of element does not respect backdrop-filter property
+ https://bugs.webkit.org/show_bug.cgi?id=158201
+
+ Reviewed by Dean Jackson.
+
+ We weren't cloning the PlatformCALayer for the backdrop so reflections would simply
+ not show their backdrops. We now follow the same pattern as other PlatformCALayers
+ owned by a GraphicsLayerCA and keep a list of backdrop layer clones that we add
+ to the structural layer when cloning to match the layer order of the original
+ and update the backdrop layer clone properties to match the original when the
+ backdrop filters or rectangle changes.
+
+ Tests: css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html
+ css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html
+ css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html
+ css3/filters/backdrop/backdrop-filter-with-reflection.html
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::updateBackdropFilters):
+ (WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
+ Update backdrop layer clones to match new values set when the backdrop filter
+ configuration changes.
+
+ (WebCore::GraphicsLayerCA::ensureCloneLayers):
+ Create the backdrop layer clones map if needed and clone the existing backdrop layer.
+
+ (WebCore::GraphicsLayerCA::clearClones):
+ Clear the backdrop layer clones map.
+
+ (WebCore::GraphicsLayerCA::fetchCloneLayers):
+ Obtain a clone for the backdrop layer, and if we have a valid clone, add it to the
+ structural layer clone as its first child to match the operation in updateSublayerList().
+
+ * platform/graphics/ca/GraphicsLayerCA.h:
+ Modify the signature for ensureCloneLayers() to account for the new backdrop layer clone and
+ declare the backdrop layer clone map.
+
+ * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
+ (PlatformCALayerCocoa::clone):
+ Reflect the backdrop layer type when cloning a PlatformCALayer.
+
2016-06-03 Brady Eidson <beid...@apple.com>
ResourceResponseBase cleanup.
Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (201647 => 201648)
--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2016-06-03 17:09:42 UTC (rev 201647)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2016-06-03 18:13:52 UTC (rev 201648)
@@ -1950,6 +1950,14 @@
m_backdropLayer->setHidden(!m_contentsVisible);
m_backdropLayer->setFilters(m_backdropFilters);
+
+ if (LayerMap* layerCloneMap = m_backdropLayerClones.get()) {
+ for (auto& clone : *layerCloneMap) {
+ PlatformCALayer* cloneLayer = clone.value.get();
+ cloneLayer->setHidden(!m_contentsVisible);
+ cloneLayer->setFilters(m_backdropFilters);
+ }
+ }
}
void GraphicsLayerCA::updateBackdropFiltersRect()
@@ -1959,6 +1967,14 @@
FloatRect contentBounds(0, 0, m_backdropFiltersRect.width(), m_backdropFiltersRect.height());
m_backdropLayer->setBounds(contentBounds);
m_backdropLayer->setPosition(m_backdropFiltersRect.location());
+
+ if (LayerMap* layerCloneMap = m_backdropLayerClones.get()) {
+ for (auto& clone : *layerCloneMap) {
+ PlatformCALayer* cloneLayer = clone.value.get();
+ cloneLayer->setBounds(contentBounds);
+ cloneLayer->setPosition(m_backdropFiltersRect.location());
+ }
+ }
}
#if ENABLE(CSS_COMPOSITING)
@@ -3580,7 +3596,7 @@
}
void GraphicsLayerCA::ensureCloneLayers(CloneID cloneID, RefPtr<PlatformCALayer>& primaryLayer, RefPtr<PlatformCALayer>& structuralLayer,
- RefPtr<PlatformCALayer>& contentsLayer, RefPtr<PlatformCALayer>& contentsClippingLayer, RefPtr<PlatformCALayer>& contentsShapeMaskLayer, RefPtr<PlatformCALayer>& shapeMaskLayer, CloneLevel cloneLevel)
+ RefPtr<PlatformCALayer>& contentsLayer, RefPtr<PlatformCALayer>& contentsClippingLayer, RefPtr<PlatformCALayer>& contentsShapeMaskLayer, RefPtr<PlatformCALayer>& shapeMaskLayer, RefPtr<PlatformCALayer>& backdropLayer, CloneLevel cloneLevel)
{
structuralLayer = nullptr;
contentsLayer = nullptr;
@@ -3603,12 +3619,16 @@
if (!m_shapeMaskLayerClones && m_shapeMaskLayer)
m_shapeMaskLayerClones = std::make_unique<LayerMap>();
+ if (!m_backdropLayerClones && m_backdropLayer)
+ m_backdropLayerClones = std::make_unique<LayerMap>();
+
primaryLayer = findOrMakeClone(cloneID, m_layer.get(), m_layerClones.get(), cloneLevel);
structuralLayer = findOrMakeClone(cloneID, m_structuralLayer.get(), m_structuralLayerClones.get(), cloneLevel);
contentsLayer = findOrMakeClone(cloneID, m_contentsLayer.get(), m_contentsLayerClones.get(), cloneLevel);
contentsClippingLayer = findOrMakeClone(cloneID, m_contentsClippingLayer.get(), m_contentsClippingLayerClones.get(), cloneLevel);
contentsShapeMaskLayer = findOrMakeClone(cloneID, m_contentsShapeMaskLayer.get(), m_contentsShapeMaskLayerClones.get(), cloneLevel);
shapeMaskLayer = findOrMakeClone(cloneID, m_shapeMaskLayer.get(), m_shapeMaskLayerClones.get(), cloneLevel);
+ backdropLayer = findOrMakeClone(cloneID, m_backdropLayer.get(), m_backdropLayerClones.get(), cloneLevel);
}
void GraphicsLayerCA::clearClones(std::unique_ptr<LayerMap>& layerMap)
@@ -3630,6 +3650,7 @@
clearClones(m_contentsClippingLayerClones);
clearClones(m_contentsShapeMaskLayerClones);
clearClones(m_shapeMaskLayerClones);
+ clearClones(m_backdropLayerClones);
}
FloatPoint GraphicsLayerCA::positionForCloneRootLayer() const
@@ -3663,7 +3684,8 @@
RefPtr<PlatformCALayer> contentsClippingLayer;
RefPtr<PlatformCALayer> contentsShapeMaskLayer;
RefPtr<PlatformCALayer> shapeMaskLayer;
- ensureCloneLayers(replicaState.cloneID(), primaryLayer, structuralLayer, contentsLayer, contentsClippingLayer, contentsShapeMaskLayer, shapeMaskLayer, cloneLevel);
+ RefPtr<PlatformCALayer> backdropLayer;
+ ensureCloneLayers(replicaState.cloneID(), primaryLayer, structuralLayer, contentsLayer, contentsClippingLayer, contentsShapeMaskLayer, shapeMaskLayer, backdropLayer, cloneLevel);
if (m_maskLayer) {
RefPtr<PlatformCALayer> maskClone = downcast<GraphicsLayerCA>(*m_maskLayer).fetchCloneLayers(replicaRoot, replicaState, IntermediateCloneLevel);
@@ -3707,9 +3729,12 @@
if (shapeMaskLayer)
primaryLayer->setMask(shapeMaskLayer.get());
-
+
if (replicaLayer || structuralLayer || contentsLayer || contentsClippingLayer || childLayers.size() > 0) {
if (structuralLayer) {
+ if (backdropLayer)
+ clonalSublayers.append(backdropLayer);
+
// Replicas render behind the actual layer content.
if (replicaLayer)
clonalSublayers.append(replicaLayer);
Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (201647 => 201648)
--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h 2016-06-03 17:09:42 UTC (rev 201647)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h 2016-06-03 18:13:52 UTC (rev 201648)
@@ -374,7 +374,7 @@
PassRefPtr<PlatformCALayer> findOrMakeClone(CloneID, PlatformCALayer *, LayerMap*, CloneLevel);
void ensureCloneLayers(CloneID, RefPtr<PlatformCALayer>& primaryLayer, RefPtr<PlatformCALayer>& structuralLayer,
- RefPtr<PlatformCALayer>& contentsLayer, RefPtr<PlatformCALayer>& contentsClippingLayer, RefPtr<PlatformCALayer>& contentsShapeMaskLayer, RefPtr<PlatformCALayer>& shapeMaskLayer, CloneLevel);
+ RefPtr<PlatformCALayer>& contentsLayer, RefPtr<PlatformCALayer>& contentsClippingLayer, RefPtr<PlatformCALayer>& contentsShapeMaskLayer, RefPtr<PlatformCALayer>& shapeMaskLayer, RefPtr<PlatformCALayer>& backdropLayer, CloneLevel);
static void clearClones(std::unique_ptr<LayerMap>&);
@@ -518,6 +518,7 @@
std::unique_ptr<LayerMap> m_contentsClippingLayerClones;
std::unique_ptr<LayerMap> m_contentsShapeMaskLayerClones;
std::unique_ptr<LayerMap> m_shapeMaskLayerClones;
+ std::unique_ptr<LayerMap> m_backdropLayerClones;
#ifdef VISIBLE_TILE_WASH
RefPtr<PlatformCALayer> m_visibleTileWashLayer;
Modified: trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm (201647 => 201648)
--- trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm 2016-06-03 17:09:42 UTC (rev 201647)
+++ trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm 2016-06-03 18:13:52 UTC (rev 201648)
@@ -326,6 +326,9 @@
case LayerTypeShapeLayer:
type = LayerTypeShapeLayer;
break;
+ case LayerTypeBackdropLayer:
+ type = LayerTypeBackdropLayer;
+ break;
case LayerTypeLayer:
default:
type = LayerTypeLayer;