| Index: third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp
 | 
| diff --git a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp
 | 
| index ccb4b0496792004ba6ec5b3f747668aa34155b87..77b99c825d2df639ed17b430763d369a932dd3b8 100644
 | 
| --- a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp
 | 
| +++ b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp
 | 
| @@ -26,8 +26,8 @@
 | 
|  
 | 
|  #include "core/paint/FilterEffectBuilder.h"
 | 
|  
 | 
| +#include "core/layout/svg/ReferenceFilterBuilder.h"
 | 
|  #include "core/style/FilterOperations.h"
 | 
| -#include "core/svg/SVGElementProxy.h"
 | 
|  #include "core/svg/SVGFilterElement.h"
 | 
|  #include "core/svg/SVGLengthContext.h"
 | 
|  #include "core/svg/graphics/filters/SVGFilterBuilder.h"
 | 
| @@ -404,13 +404,13 @@
 | 
|  Filter* FilterEffectBuilder::buildReferenceFilter(
 | 
|      const ReferenceFilterOperation& referenceOperation,
 | 
|      FilterEffect* previousEffect) const {
 | 
| -  DCHECK(m_targetContext);
 | 
| -  Element* filterElement = referenceOperation.elementProxy().findElement(
 | 
| -      m_targetContext->treeScope());
 | 
| -  if (!isSVGFilterElement(filterElement))
 | 
| +  DCHECK(m_targetContext && m_targetContext->isElementNode());
 | 
| +  SVGFilterElement* filterElement =
 | 
| +      ReferenceFilterBuilder::resolveFilterReference(
 | 
| +          referenceOperation, toElement(*m_targetContext));
 | 
| +  if (!filterElement)
 | 
|      return nullptr;
 | 
| -  return buildReferenceFilter(toSVGFilterElement(*filterElement),
 | 
| -                              previousEffect);
 | 
| +  return buildReferenceFilter(*filterElement, previousEffect);
 | 
|  }
 | 
|  
 | 
|  Filter* FilterEffectBuilder::buildReferenceFilter(
 | 
| 
 |