| 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 | 
|  |