[Webkit-unassigned] [Bug 10199] returning to a POST result within a frame does a GET instead of a POST

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Nov 24 15:01:49 PST 2010


https://bugs.webkit.org/show_bug.cgi?id=10199





--- Comment #5 from Mihai Parparita <mihaip at chromium.org>  2010-11-24 15:01:49 PST ---
It looks like this happens because of this part of FrameLoader::loadURLIntoChildFrame where we replace the URL we're about to load with the URL from a history item (if we find one that matches the frame):

// If we're moving in the back/forward list, we might want to replace the content
// of this child frame with whatever was there at that point.
if (parentItem && parentItem->children().size() && isBackForwardLoadType(loadType)) {
    HistoryItem* childItem = parentItem->childItemWithTarget(childFrame->tree()->uniqueName());
    if (childItem) {
        // Use the original URL to ensure we get all the side-effects, such as
        // onLoad handlers, of any redirects that happened. An example of where
        // this is needed is Radar 3213556.
        workingURL = KURL(ParsedURLString, childItem->originalURLString());
        childLoadType = loadType;
        childFrame->loader()->history()->setProvisionalItem(childItem);
    }
}
(from http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp#L928)

This ignores the presence of FormData on the childItem, which should make this into a POST.

I think the right thing is to use a similar codepath to FrameLoader::navigateToDifferentDocument (ideally by refactoring that) which creates a POST request if the HistoryItem has FormData.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list