зеркало из https://github.com/mozilla/gecko-dev.git
90b9ab56dc
This fixes a few causes of firing EndDownload twice: 1. firing it from OnDataAvailable if the download was already canceled when the method was initially invoked, rather than if we are ourselves wanting to cancel the download because we encountered issues inside OnDataAvailable. 2. firing it from FinishDownload, dispatched from SerializeNextFile, after the download has already been ended elsewhere. 3. calling Cancel() multiple times. It also adds some code to avoid the re-entrancy on the Promise code that the bug was originally filed for, and a diagnostic assert to check if there are any other cases of repeated EndDownload calling that we've missed. As a driveby, it adds a few thread assertions to help with code clarity. Differential Revision: https://phabricator.services.mozilla.com/D90186 |
||
---|---|---|
.. | ||
PWebBrowserPersistDocument.ipdl | ||
PWebBrowserPersistResources.ipdl | ||
PWebBrowserPersistSerialize.ipdl | ||
WebBrowserPersistDocumentChild.cpp | ||
WebBrowserPersistDocumentChild.h | ||
WebBrowserPersistDocumentParent.cpp | ||
WebBrowserPersistDocumentParent.h | ||
WebBrowserPersistLocalDocument.cpp | ||
WebBrowserPersistLocalDocument.h | ||
WebBrowserPersistRemoteDocument.cpp | ||
WebBrowserPersistRemoteDocument.h | ||
WebBrowserPersistResourcesChild.cpp | ||
WebBrowserPersistResourcesChild.h | ||
WebBrowserPersistResourcesParent.cpp | ||
WebBrowserPersistResourcesParent.h | ||
WebBrowserPersistSerializeChild.cpp | ||
WebBrowserPersistSerializeChild.h | ||
WebBrowserPersistSerializeParent.cpp | ||
WebBrowserPersistSerializeParent.h | ||
moz.build | ||
nsIWebBrowserPersist.idl | ||
nsIWebBrowserPersistDocument.idl | ||
nsWebBrowserPersist.cpp | ||
nsWebBrowserPersist.h |