[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