| 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 6b0a1d00bc0cf7e4c20a489f25496a939d4ab7c7..77d724dbd911fb4886c590150a18819df6d4d1b1 100644
|
| --- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
|
| @@ -1333,7 +1333,7 @@ bool FrameLoader::shouldClose(bool isReload)
|
|
|
| bool FrameLoader::shouldContinueForNavigationPolicy(const ResourceRequest& request, const SubstituteData& substituteData,
|
| DocumentLoader* loader, ContentSecurityPolicyDisposition shouldCheckMainWorldContentSecurityPolicy,
|
| - NavigationType type, NavigationPolicy policy, bool replacesCurrentHistoryItem, bool isClientRedirect)
|
| + NavigationType type, NavigationPolicy policy, bool replacesCurrentHistoryItem, bool isClientRedirect, HTMLFormElement* form)
|
| {
|
| // Don't ask if we are loading an empty URL.
|
| if (request.url().isEmpty() || substituteData.isValid())
|
| @@ -1363,6 +1363,12 @@ bool FrameLoader::shouldContinueForNavigationPolicy(const ResourceRequest& reque
|
| if (policy == NavigationPolicyHandledByClient) {
|
| // Mark the frame as loading since the embedder is handling the navigation.
|
| m_progressTracker->progressStarted();
|
| +
|
| + // If this is a form submit, dispatch that a form is being submitted
|
| + // since the embedder is handling the navigation.
|
| + if (form)
|
| + client()->dispatchWillSubmitForm(form);
|
| +
|
| return false;
|
| }
|
| if (!LocalDOMWindow::allowPopUp(*m_frame) && !UserGestureIndicator::processingUserGesture())
|
| @@ -1383,8 +1389,13 @@ void FrameLoader::startLoad(FrameLoadRequest& frameLoadRequest, FrameLoadType ty
|
| frameLoadRequest.resourceRequest().setRequestContext(determineRequestContextFromNavigationType(navigationType));
|
| frameLoadRequest.resourceRequest().setFrameType(m_frame->isMainFrame() ? WebURLRequest::FrameTypeTopLevel : WebURLRequest::FrameTypeNested);
|
| ResourceRequest& request = frameLoadRequest.resourceRequest();
|
| - if (!shouldContinueForNavigationPolicy(request, frameLoadRequest.substituteData(), nullptr, frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), navigationType, navigationPolicy, type == FrameLoadTypeReplaceCurrentItem, frameLoadRequest.clientRedirect() == ClientRedirect))
|
| + if (!shouldContinueForNavigationPolicy(request, frameLoadRequest.substituteData(), nullptr,
|
| + frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), navigationType,
|
| + navigationPolicy, type == FrameLoadTypeReplaceCurrentItem,
|
| + frameLoadRequest.clientRedirect() == ClientRedirect, frameLoadRequest.form())) {
|
| return;
|
| + }
|
| +
|
| if (!shouldClose(navigationType == NavigationTypeReload))
|
| return;
|
|
|
|
|