Closed magreenblatt closed 8 years ago
The problem is that CefPostDataElementImpl cannot currently represent multi-part chunk data. In CefNetworkDelegate::OnBeforeURLRequest we convert the URLRequest data to a CefRequestImpl object and call OnBeforeResourceLoad. The CefBeforeResourceLoadCallbackImpl::RunNow implementation then re-populates the URLRequest from the CefRequestImpl and consequently the multi-part chunk data is lost causing the request to fail.
It would be nice if CefRequestImpl could represent multi-part data but that's really a side issue. We shouldn't be changing the URLRequest if the user has not changed the CefRequestImpl object. That means CefRequestImpl should track what has changed (what CefRequest API methods were called) and CefRequestImpl::Get should only update the changed portion of the URLRequest.
Fixed in master revision c199539 (bb) and 2526 branch revision 61f7df0 (bb).
Master revision 9bc8da1 (bb) and 2526 branch revision e7a02fe (bb) adds a CefPostData::HasExcludedElements method which returns true if the underlying POST data includes elements that are not represented.
Original report by me.
What steps will reproduce the problem?
What is the expected output? What do you see instead?
The upload should succeed. Instead, it fails mysteriously in a Release build and hits NOTREACHED() in Debug build.
What version of the product are you using? On what operating system?
Tested with a 32-bit build of 2454 branch and newer on Windows 8.1 64-bit.
The failure seems related to the use of multiple chunked uploads.
Call stack (current master branch):