Index: Source/core/html/HTMLAnchorElement.cpp |
diff --git a/Source/core/html/HTMLAnchorElement.cpp b/Source/core/html/HTMLAnchorElement.cpp |
index 08806bc29a44ce5191a315b972796de6b1b9c831..24d9b4d13255a764636ac62e4d34cd69ee73b833 100644 |
--- a/Source/core/html/HTMLAnchorElement.cpp |
+++ b/Source/core/html/HTMLAnchorElement.cpp |
@@ -394,7 +394,10 @@ void HTMLAnchorElement::handleClick(Event* event) |
request.setHTTPReferrer(Referrer(referrer, document().referrerPolicy())); |
} |
- frame->loader().client()->loadURLExternally(request, NavigationPolicyDownload, fastGetAttribute(downloadAttr)); |
+ bool isSameOrigin = document().securityOrigin()->canRequest(completedURL); |
+ const AtomicString& suggestedName = (isSameOrigin ? fastGetAttribute(downloadAttr) : nullAtom); |
+ |
+ frame->loader().client()->loadURLExternally(request, NavigationPolicyDownload, suggestedName); |
} else { |
FrameLoadRequest frameRequest(&document(), request, target()); |
frameRequest.setTriggeringEvent(event); |