Index: third_party/WebKit/Source/core/loader/FrameLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
index 0d747116c33fbd3a16e46ee4bd2f29bc1b866f28..515f0d5e08b88673a881be2d1c1a36f1872f7f39 100644 |
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
@@ -958,17 +958,6 @@ bool FrameLoader::prepareRequestForThisFrame(FrameLoadRequest& request) { |
return true; |
} |
-static bool shouldOpenInNewWindow(Frame* targetFrame, |
- const FrameLoadRequest& request, |
- NavigationPolicy policy) { |
- if (!targetFrame && !request.frameName().isEmpty()) |
- return true; |
- // FIXME: This case is a workaround for the fact that ctrl+clicking a form |
- // submission incorrectly sends as a GET rather than a POST if it creates a |
- // new window in a different process. |
- return request.form() && policy != NavigationPolicyCurrentTab; |
-} |
- |
static bool shouldNavigateTargetFrame(NavigationPolicy policy) { |
switch (policy) { |
case NavigationPolicyCurrentTab: |
@@ -1101,6 +1090,8 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest, |
m_provisionalItem = historyItem; |
} |
+ // Form submissions appear to need their special-case of finding the target at |
+ // schedule rather than at fire. |
Frame* targetFrame = request.form() |
? nullptr |
: m_frame->findFrameForNavigation( |
@@ -1120,7 +1111,7 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest, |
setReferrerForFrameRequest(request); |
- if (shouldOpenInNewWindow(targetFrame, request, policy)) { |
+ if (!targetFrame && !request.frameName().isEmpty()) { |
if (policy == NavigationPolicyDownload) { |
client()->loadURLExternally(request.resourceRequest(), |
NavigationPolicyDownload, String(), false); |