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..e799357e8948a45e90ef7e366e62f79e7837be07 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" |
@@ -416,9 +418,12 @@ 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 { |
+ FrameLoadRequest frameLoadRequest = submission->createFrameLoadRequest(&document()); |
+ toRemoteFrame(targetFrame)->navigate(frameLoadRequest); |
+ } |
} |
void HTMLFormElement::reset() |