Index: third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp |
diff --git a/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp b/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp |
index 5f1a77734e78cc6881f45212d6dd7044236edb54..ade326092eb9962e4192c6c27797ed21162f9d0c 100644 |
--- a/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp |
+++ b/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp |
@@ -35,6 +35,7 @@ |
#include "core/css/resolver/StyleResolverState.h" |
#include "core/frame/UseCounter.h" |
#include "core/layout/svg/ReferenceFilterBuilder.h" |
+#include "core/svg/SVGURIReference.h" |
namespace blink { |
@@ -130,10 +131,9 @@ FilterOperations FilterOperationResolver::createFilterOperations(StyleResolverSt |
countFilterUse(FilterOperation::REFERENCE, state.document()); |
const CSSURIValue& urlValue = toCSSURIValue(*currValue); |
- KURL url = state.document().completeURL(urlValue.url()); |
- |
- ReferenceFilterOperation* operation = ReferenceFilterOperation::create(urlValue.url(), AtomicString(url.fragmentIdentifier())); |
- if (!equalIgnoringFragmentIdentifier(url, state.document().url())) { |
+ SVGURLReferenceResolver resolver(urlValue.value(), state.document()); |
+ ReferenceFilterOperation* operation = ReferenceFilterOperation::create(urlValue.value(), resolver.fragmentIdentifier()); |
+ if (!resolver.isLocal()) { |
if (!urlValue.loadRequested()) |
state.elementStyleResources().addPendingSVGDocument(operation, &urlValue); |
else if (urlValue.cachedDocument()) |