Destroy CefResponseManager on the correct thread (issue #570).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@632 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2012-05-18 21:18:01 +00:00
parent 9c9711c2d8
commit 8b1748bbf5
4 changed files with 18 additions and 11 deletions

View File

@ -499,6 +499,7 @@ void CefBrowserHostImpl::DestroyBrowser() {
}
registrar_.reset(NULL);
response_manager_.reset(NULL);
content::WebContentsObserver::Observe(NULL);
web_contents_.reset(NULL);
@ -669,7 +670,7 @@ void CefBrowserHostImpl::SendCommand(
params.user_initiated = false;
if (responseHandler.get()) {
params.request_id = response_manager_.RegisterHandler(responseHandler);
params.request_id = response_manager_->RegisterHandler(responseHandler);
params.expect_response = true;
} else {
params.request_id = -1;
@ -705,7 +706,7 @@ void CefBrowserHostImpl::SendCode(
params.user_initiated = false;
if (responseHandler.get()) {
params.request_id = response_manager_.RegisterHandler(responseHandler);
params.request_id = response_manager_->RegisterHandler(responseHandler);
params.expect_response = true;
} else {
params.request_id = -1;
@ -1031,13 +1032,13 @@ void CefBrowserHostImpl::OnRequest(const Cef_Request_Params& params) {
}
void CefBrowserHostImpl::OnResponse(const Cef_Response_Params& params) {
response_manager_.RunHandler(params);
response_manager_->RunHandler(params);
if (params.expect_response_ack)
Send(new CefMsg_ResponseAck(routing_id(), params.request_id));
}
void CefBrowserHostImpl::OnResponseAck(int request_id) {
response_manager_.RunAckHandler(request_id);
response_manager_->RunAckHandler(request_id);
}
@ -1102,6 +1103,7 @@ CefBrowserHostImpl::CefBrowserHostImpl(const CefWindowInfo& window_info,
registrar_.reset(new content::NotificationRegistrar);
registrar_->Add(this, content::NOTIFICATION_WEB_CONTENTS_TITLE_UPDATED,
content::Source<content::WebContents>(web_contents));
response_manager_.reset(new CefResponseManager);
placeholder_frame_ =
new CefFrameHostImpl(this, CefFrameHostImpl::kInvalidFrameId, true);