| 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 f7ea19c53f1eee1af4c92890cace9f99f61136de..07d4e00a492a4eb51ae53c3fae40996e08313b82 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| @@ -36,6 +36,7 @@
|
| #include "core/events/ScopedEventQueue.h"
|
| #include "core/frame/LocalDOMWindow.h"
|
| #include "core/frame/LocalFrame.h"
|
| +#include "core/frame/RemoteFrame.h"
|
| #include "core/frame/UseCounter.h"
|
| #include "core/frame/csp/ContentSecurityPolicy.h"
|
| #include "core/html/HTMLCollection.h"
|
| @@ -47,6 +48,7 @@
|
| #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"
|
| @@ -420,9 +422,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())
|
| + // TODO(lukasza): Investigate if the code below can uniformly handle remote
|
| + // and local frames (i.e. by calling virtual Frame::navigate from a timer).
|
| + // See also https://goo.gl/95d2KA.
|
| + if (targetFrame->isLocalFrame()) {
|
| toLocalFrame(targetFrame)->navigationScheduler().scheduleFormSubmission(&document(), submission);
|
| + } else {
|
| + FrameLoadRequest frameLoadRequest = submission->createFrameLoadRequest(&document());
|
| + toRemoteFrame(targetFrame)->navigate(frameLoadRequest);
|
| + }
|
| }
|
|
|
| void HTMLFormElement::reset()
|
|
|