Index: third_party/WebKit/Source/core/layout/svg/SVGResources.cpp |
diff --git a/third_party/WebKit/Source/core/layout/svg/SVGResources.cpp b/third_party/WebKit/Source/core/layout/svg/SVGResources.cpp |
index 30ea7c3364d5f7c8a92d303b51c9f51ee6105221..785fa11570019bf24446de733b0ae7a89a8e0820 100644 |
--- a/third_party/WebKit/Source/core/layout/svg/SVGResources.cpp |
+++ b/third_party/WebKit/Source/core/layout/svg/SVGResources.cpp |
@@ -159,11 +159,12 @@ static inline LayoutSVGResourcePaintServer* paintingResourceFromSVGPaint( |
return toLayoutSVGResourcePaintServer(container); |
} |
-static inline void registerPendingResource(SVGDocumentExtensions& extensions, |
- const AtomicString& id, |
- SVGElement* element) { |
- ASSERT(element); |
- extensions.addPendingResource(id, element); |
+static inline void registerPendingResource( |
+ SVGTreeScopeResources& treeScopeResources, |
+ const AtomicString& id, |
+ SVGElement* element) { |
+ DCHECK(element); |
+ treeScopeResources.addPendingResource(id, element); |
} |
bool SVGResources::hasResourceData() const { |
@@ -194,8 +195,9 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
const AtomicString& tagName = element->localName(); |
ASSERT(!tagName.isNull()); |
- TreeScope& treeScope = element->treeScope(); |
- SVGDocumentExtensions& extensions = element->document().accessSVGExtensions(); |
+ TreeScope& treeScope = element->treeScopeForIdResolution(); |
+ SVGTreeScopeResources& treeScopeResources = |
+ treeScope.ensureSVGTreeScopedResources(); |
const SVGComputedStyle& style = computedStyle.svgStyle(); |
@@ -211,7 +213,7 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
if (!ensureResources(resources).setClipper( |
getLayoutSVGResourceById<LayoutSVGResourceClipper>(treeScope, |
id))) |
- registerPendingResource(extensions, id, element); |
+ registerPendingResource(treeScopeResources, id, element); |
} |
} |
@@ -227,7 +229,7 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
if (!ensureResources(resources).setFilter( |
getLayoutSVGResourceById<LayoutSVGResourceFilter>(treeScope, |
id))) |
- registerPendingResource(extensions, id, element); |
+ registerPendingResource(treeScopeResources, id, element); |
} |
} |
} |
@@ -236,7 +238,7 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
AtomicString id = style.maskerResource(); |
if (!ensureResources(resources).setMasker( |
getLayoutSVGResourceById<LayoutSVGResourceMasker>(treeScope, id))) |
- registerPendingResource(extensions, id, element); |
+ registerPendingResource(treeScopeResources, id, element); |
} |
} |
@@ -245,19 +247,19 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
if (!ensureResources(resources).setMarkerStart( |
getLayoutSVGResourceById<LayoutSVGResourceMarker>(treeScope, |
markerStartId))) |
- registerPendingResource(extensions, markerStartId, element); |
+ registerPendingResource(treeScopeResources, markerStartId, element); |
const AtomicString& markerMidId = style.markerMidResource(); |
if (!ensureResources(resources).setMarkerMid( |
getLayoutSVGResourceById<LayoutSVGResourceMarker>(treeScope, |
markerMidId))) |
- registerPendingResource(extensions, markerMidId, element); |
+ registerPendingResource(treeScopeResources, markerMidId, element); |
const AtomicString& markerEndId = style.markerEndResource(); |
if (!ensureResources(resources).setMarkerEnd( |
getLayoutSVGResourceById<LayoutSVGResourceMarker>( |
treeScope, style.markerEndResource()))) |
- registerPendingResource(extensions, markerEndId, element); |
+ registerPendingResource(treeScopeResources, markerEndId, element); |
} |
if (fillAndStrokeTags().contains(tagName)) { |
@@ -268,7 +270,7 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
treeScope, style.fillPaintType(), style.fillPaintUri(), id, |
hasPendingResource); |
if (!ensureResources(resources).setFill(resource) && hasPendingResource) |
- registerPendingResource(extensions, id, element); |
+ registerPendingResource(treeScopeResources, id, element); |
} |
if (style.hasStroke()) { |
@@ -278,7 +280,7 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
treeScope, style.strokePaintType(), style.strokePaintUri(), id, |
hasPendingResource); |
if (!ensureResources(resources).setStroke(resource) && hasPendingResource) |
- registerPendingResource(extensions, id, element); |
+ registerPendingResource(treeScopeResources, id, element); |
} |
} |
@@ -286,7 +288,7 @@ std::unique_ptr<SVGResources> SVGResources::buildResources( |
AtomicString id = targetReferenceFromResource(*element); |
if (!ensureResources(resources).setLinkedResource( |
getLayoutSVGResourceContainerById(treeScope, id))) |
- registerPendingResource(extensions, id, element); |
+ registerPendingResource(treeScopeResources, id, element); |
} |
return (!resources || !resources->hasResourceData()) ? nullptr |