FrameLoader::receivedMainResourceError doesn't handle GET cancellations well.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Aug 2012 19:30:15 +0000 (19:30 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Aug 2012 19:30:15 +0000 (19:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=93850

Patch by Mike West <mkwst@chromium.org> on 2012-08-13
Reviewed by Adam Barth.

'FrameLoader::cancel' should reset the loader's state, and it mostly
does. In the case of a GET form submission, however, the submitted form
URL that's stored doesn't match the URL that's requested (query string).
This leads to the loader getting a bit confused about what's going on,
and not clearing the stored form submission URL.

This patch moves to storing the form submission's actual request URL
as opposed to the form action URL.

None of the current tests should break, and when issue 93777 lands, it
won't be broken either.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
    Switched to using 'FormSubmission::requestURL', as that matches the
    URL that's actually requested during a form submission via GET.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@125436 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/loader/FrameLoader.cpp

index e4c3556..0212928 100644 (file)
@@ -1,3 +1,27 @@
+2012-08-13  Mike West  <mkwst@chromium.org>
+
+        FrameLoader::receivedMainResourceError doesn't handle GET cancellations well.
+        https://bugs.webkit.org/show_bug.cgi?id=93850
+
+        Reviewed by Adam Barth.
+
+        'FrameLoader::cancel' should reset the loader's state, and it mostly
+        does. In the case of a GET form submission, however, the submitted form
+        URL that's stored doesn't match the URL that's requested (query string).
+        This leads to the loader getting a bit confused about what's going on,
+        and not clearing the stored form submission URL.
+
+        This patch moves to storing the form submission's actual request URL
+        as opposed to the form action URL.
+
+        None of the current tests should break, and when issue 93777 lands, it
+        won't be broken either.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::submitForm):
+            Switched to using 'FormSubmission::requestURL', as that matches the
+            URL that's actually requested during a form submission via GET.
+
 2012-08-13  Antonio Gomes  <agomes@rim.com>
 
         [BlackBerry] Hardware accelerated scrolling of <select> content
index 0dcb3b2..182e3e7 100644 (file)
@@ -334,9 +334,9 @@ void FrameLoader::submitForm(PassRefPtr<FormSubmission> submission)
     // needed any more now that we reset m_submittedFormURL on each mouse or key down event.
 
     if (m_frame->tree()->isDescendantOf(targetFrame)) {
-        if (m_submittedFormURL == submission->action())
+        if (m_submittedFormURL == submission->requestURL())
             return;
-        m_submittedFormURL = submission->action();
+        m_submittedFormURL = submission->requestURL();
     }
 
     submission->data()->generateFiles(m_frame->document());