mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Fix issues with request callbacks during browser shutdown (see issue #2622).
The behavior has changed as follows with NetworkService enabled: - All pending and in-progress requests will now be aborted when the CEF context or associated browser is destroyed. The OnResourceLoadComplete callback will now also be called in this case for in-progress requests that have a handler. - The CefResourceHandler::Cancel method will now always be called when resource handling is complete, irrespective of whether handling completed successfully. - Request callbacks that arrive after the OnBeforeClose callback for the associated browser (which may happen for in-progress requests that are aborted on browser destruction) will now always have a non-nullptr CefBrowser parameter. - Allow empty parameters to CefRequest and CefResponse methods where it makes sense (e.g. resetting default response state, or clearing a referrer value). - Fixed a reference loop that was keeping CefResourceHandler objects from being destroyed if they were holding a callback reference (from ProcessRequest, ReadResponse, etc.) during CEF context or associated browser destruction. - Fixed an issue where the main frame was not detached on browser destruction which could cause a crash due to RFH use-after-free (see issue #2498). To test: All unit tests pass as expected.
This commit is contained in:
@@ -96,7 +96,7 @@ class CefResponse : public virtual CefBaseRefCounted {
|
||||
///
|
||||
// Set the response status text.
|
||||
///
|
||||
/*--cef()--*/
|
||||
/*--cef(optional_param=statusText)--*/
|
||||
virtual void SetStatusText(const CefString& statusText) = 0;
|
||||
|
||||
///
|
||||
@@ -108,7 +108,7 @@ class CefResponse : public virtual CefBaseRefCounted {
|
||||
///
|
||||
// Set the response mime type.
|
||||
///
|
||||
/*--cef()--*/
|
||||
/*--cef(optional_param=mimeType)--*/
|
||||
virtual void SetMimeType(const CefString& mimeType) = 0;
|
||||
|
||||
///
|
||||
@@ -120,7 +120,7 @@ class CefResponse : public virtual CefBaseRefCounted {
|
||||
///
|
||||
// Set the response charset.
|
||||
///
|
||||
/*--cef()--*/
|
||||
/*--cef(optional_param=charset)--*/
|
||||
virtual void SetCharset(const CefString& charset) = 0;
|
||||
|
||||
///
|
||||
@@ -150,7 +150,7 @@ class CefResponse : public virtual CefBaseRefCounted {
|
||||
///
|
||||
// Set the resolved URL after redirects or changed as a result of HSTS.
|
||||
///
|
||||
/*--cef()--*/
|
||||
/*--cef(optional_param=url)--*/
|
||||
virtual void SetURL(const CefString& url) = 0;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user