Index: third_party/WebKit/Source/core/svg/SVGURIReference.h |
diff --git a/third_party/WebKit/Source/core/svg/SVGURIReference.h b/third_party/WebKit/Source/core/svg/SVGURIReference.h |
index 7174a3b6b4d5b3ebc82767ccaa7d095c09751271..b676bd33a1b6a394bf5786108b4f210598539907 100644 |
--- a/third_party/WebKit/Source/core/svg/SVGURIReference.h |
+++ b/third_party/WebKit/Source/core/svg/SVGURIReference.h |
@@ -41,6 +41,11 @@ public: |
static inline bool isExternalURIReference(const String& uri, const Document& document) |
{ |
+ // Fragment-only URIs are always internal if the baseURL is same as the document URL. |
+ // This is common case, so check that first to avoid resolving URL (which is relatively expensive). See crbug.com/557979 |
+ if (document.baseURL() == document.url() && uri.startsWith('#')) |
+ return false; |
+ |
// If the URI matches our documents URL, we're dealing with a local reference. |
KURL url = document.completeURL(uri); |
return !equalIgnoringFragmentIdentifier(url, document.url()); |