| Index: third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| index 026dcf70376d21047671b710d42602102d488f97..362f9d94353f66221936ce37c43970f4aa2d1c6b 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| @@ -36,6 +36,8 @@
|
| #include "core/events/ScopedEventQueue.h"
|
| #include "core/frame/LocalDOMWindow.h"
|
| #include "core/frame/LocalFrame.h"
|
| +#include "core/frame/RemoteFrame.h"
|
| +#include "core/frame/RemoteFrameClient.h"
|
| #include "core/frame/UseCounter.h"
|
| #include "core/frame/csp/ContentSecurityPolicy.h"
|
| #include "core/html/HTMLCollection.h"
|
| @@ -47,11 +49,14 @@
|
| #include "core/html/RadioNodeList.h"
|
| #include "core/html/forms/FormController.h"
|
| #include "core/inspector/ConsoleMessage.h"
|
| +#include "core/loader/FormSubmission.h"
|
| #include "core/loader/FrameLoader.h"
|
| #include "core/loader/FrameLoaderClient.h"
|
| #include "core/loader/MixedContentChecker.h"
|
| #include "core/loader/NavigationScheduler.h"
|
| #include "platform/UserGestureIndicator.h"
|
| +#include "platform/network/ResourceRequest.h"
|
| +#include "platform/weborigin/SecurityPolicy.h"
|
| #include "wtf/text/AtomicString.h"
|
| #include <limits>
|
|
|
| @@ -416,9 +421,15 @@ void HTMLFormElement::scheduleFormSubmission(FormSubmission* submission)
|
| if (MixedContentChecker::isMixedFormAction(document().frame(), submission->action()))
|
| UseCounter::count(document().frame(), UseCounter::MixedContentFormsSubmitted);
|
|
|
| - // FIXME: Plumb form submission for remote frames.
|
| - if (targetFrame->isLocalFrame())
|
| + if (targetFrame->isLocalFrame()) {
|
| toLocalFrame(targetFrame)->navigationScheduler().scheduleFormSubmission(&document(), submission);
|
| + } else {
|
| + ResourceRequest resourceRequest;
|
| + submission->populateResourceRequest(resourceRequest);
|
| + resourceRequest.setHTTPReferrer(SecurityPolicy::generateReferrer(
|
| + document().getReferrerPolicy(), resourceRequest.url(), document().outgoingReferrer()));
|
| + toRemoteFrame(targetFrame)->client()->navigate(resourceRequest, false);
|
| + }
|
| }
|
|
|
| void HTMLFormElement::reset()
|
|
|