diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 21:44:37 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 21:44:37 +0000 |
commit | d83d03aa8eea8f6173e161f134816746f8384e47 (patch) | |
tree | 10208e844592117a7d65fc3557a49e9126997a27 /chrome/browser/renderer_host | |
parent | b3f541017baf3eaaf4fc52d392630f9f040bae5e (diff) | |
download | chromium_src-d83d03aa8eea8f6173e161f134816746f8384e47.zip chromium_src-d83d03aa8eea8f6173e161f134816746f8384e47.tar.gz chromium_src-d83d03aa8eea8f6173e161f134816746f8384e47.tar.bz2 |
Fourth patch in getting rid of caching MessageLoop pointers.
BUG=25354
Review URL: http://codereview.chromium.org/348037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30751 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
3 files changed, 35 insertions, 25 deletions
diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc index b1c7129..77d71c4 100644 --- a/chrome/browser/renderer_host/resource_dispatcher_host.cc +++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc @@ -257,7 +257,7 @@ ResourceDispatcherHost::ResourceDispatcherHost(MessageLoop* io_loop) download_file_manager_(new DownloadFileManager(this))), download_request_manager_(new DownloadRequestManager(io_loop, ui_loop_)), ALLOW_THIS_IN_INITIALIZER_LIST( - save_file_manager_(new SaveFileManager(ui_loop_, io_loop, this))), + save_file_manager_(new SaveFileManager(this))), ALLOW_THIS_IN_INITIALIZER_LIST(user_script_listener_( new UserScriptListener(this))), safe_browsing_(new SafeBrowsingService), @@ -295,16 +295,16 @@ ResourceDispatcherHost::~ResourceDispatcherHost() { } void ResourceDispatcherHost::Initialize() { - DCHECK(MessageLoop::current() == ui_loop_); - safe_browsing_->Initialize(io_loop_); - io_loop_->PostTask( - FROM_HERE, + DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); + safe_browsing_->Initialize(); + ChromeThread::PostTask( + ChromeThread::IO, FROM_HERE, NewRunnableFunction(&appcache::AppCacheInterceptor::EnsureRegistered)); } void ResourceDispatcherHost::Shutdown() { - DCHECK(MessageLoop::current() == ui_loop_); - io_loop_->PostTask(FROM_HERE, new ShutdownTask(this)); + DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); + ChromeThread::PostTask(ChromeThread::IO, FROM_HERE, new ShutdownTask(this)); } void ResourceDispatcherHost::SetRequestInfo( @@ -314,7 +314,7 @@ void ResourceDispatcherHost::SetRequestInfo( } void ResourceDispatcherHost::OnShutdown() { - DCHECK(MessageLoop::current() == io_loop_); + DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); is_shutdown_ = true; STLDeleteValues(&pending_requests_); // Make sure we shutdown the timer now, otherwise by the time our destructor @@ -332,8 +332,10 @@ bool ResourceDispatcherHost::HandleExternalProtocol(int request_id, if (!ResourceType::IsFrame(type) || URLRequest::IsHandledURL(url)) return false; - ui_loop_->PostTask(FROM_HERE, NewRunnableFunction( - &ExternalProtocolHandler::LaunchUrl, url, child_id, route_id)); + ChromeThread::PostTask( + ChromeThread::UI, FROM_HERE, + NewRunnableFunction( + &ExternalProtocolHandler::LaunchUrl, url, child_id, route_id)); handler->OnResponseCompleted(request_id, URLRequestStatus( URLRequestStatus::FAILED, @@ -677,8 +679,8 @@ void ResourceDispatcherHost::OnClosePageACK( // This is a tab close, so just forward the message to close it. DCHECK(params.new_render_process_host_id == -1); DCHECK(params.new_request_id == -1); - ui_loop_->PostTask( - FROM_HERE, + ChromeThread::PostTask( + ChromeThread::UI, FROM_HERE, new RVHCloseNotificationTask(params.closing_process_id, params.closing_route_id)); } @@ -1517,9 +1519,8 @@ void ResourceDispatcherHost::RemoveObserver(Observer* obs) { URLRequest* ResourceDispatcherHost::GetURLRequest( GlobalRequestID request_id) const { - // This should be running in the IO loop. io_loop_ can be NULL during the - // unit_tests. - DCHECK(MessageLoop::current() == io_loop_ && io_loop_); + // This should be running in the IO loop. + DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); PendingRequestList::const_iterator i = pending_requests_.find(request_id); if (i == pending_requests_.end()) @@ -1551,9 +1552,12 @@ void ResourceDispatcherHost::NotifyResponseStarted(URLRequest* request, FOR_EACH_OBSERVER(Observer, observer_list_, OnRequestStarted(this, request)); // Notify the observers on the UI thread. - ui_loop_->PostTask(FROM_HERE, new RVHDelegateNotificationTask(request, - &RenderViewHostDelegate::Resource::DidStartReceivingResourceResponse, - new ResourceRequestDetails(request, GetCertID(request, child_id)))); + ChromeThread::PostTask( + ChromeThread::UI, FROM_HERE, + new RVHDelegateNotificationTask( + request, + &RenderViewHostDelegate::Resource::DidStartReceivingResourceResponse, + new ResourceRequestDetails(request, GetCertID(request, child_id)))); } void ResourceDispatcherHost::NotifyResponseCompleted(URLRequest* request, @@ -1573,9 +1577,10 @@ void ResourceDispatcherHost::NotifyReceivedRedirect(URLRequest* request, int cert_id = GetCertID(request, child_id); // Notify the observers on the UI thread. - ui_loop_->PostTask(FROM_HERE, - new RVHDelegateNotificationTask(request, - &RenderViewHostDelegate::Resource::DidRedirectResource, + ChromeThread::PostTask( + ChromeThread::UI, FROM_HERE, + new RVHDelegateNotificationTask( + request, &RenderViewHostDelegate::Resource::DidRedirectResource, new ResourceRedirectDetails(request, cert_id, new_url))); } @@ -1696,7 +1701,7 @@ void ResourceDispatcherHost::UpdateLoadStates() { LoadInfoUpdateTask* task = new LoadInfoUpdateTask; task->info_map.swap(info_map); - ui_loop_->PostTask(FROM_HERE, task); + ChromeThread::PostTask(ChromeThread::UI, FROM_HERE, task); } // Calls the ResourceHandler to send upload progress messages to the renderer. diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.h b/chrome/browser/renderer_host/resource_dispatcher_host.h index 1cfe9a8..147a7f9 100644 --- a/chrome/browser/renderer_host/resource_dispatcher_host.h +++ b/chrome/browser/renderer_host/resource_dispatcher_host.h @@ -105,6 +105,7 @@ class ResourceDispatcherHost : public URLRequest::Delegate { } }; + // TODO(jam): take the parameter out once 25354 is done. explicit ResourceDispatcherHost(MessageLoop* io_loop); ~ResourceDispatcherHost(); diff --git a/chrome/browser/renderer_host/save_file_resource_handler.cc b/chrome/browser/renderer_host/save_file_resource_handler.cc index bb426ce..b6584f0 100644 --- a/chrome/browser/renderer_host/save_file_resource_handler.cc +++ b/chrome/browser/renderer_host/save_file_resource_handler.cc @@ -7,6 +7,7 @@ #include "base/logging.h" #include "base/message_loop.h" #include "base/string_util.h" +#include "chrome/browser/chrome_thread.h" #include "chrome/browser/download/save_file_manager.h" #include "net/base/io_buffer.h" @@ -44,7 +45,8 @@ bool SaveFileResourceHandler::OnResponseStarted(int request_id, info->request_id = request_id; info->content_disposition = content_disposition_; info->save_source = SaveFileCreateInfo::SAVE_FILE_FROM_NET; - save_manager_->file_loop()->PostTask(FROM_HERE, + ChromeThread::PostTask( + ChromeThread::FILE, FROM_HERE, NewRunnableMethod(save_manager_, &SaveFileManager::StartSave, info)); @@ -69,7 +71,8 @@ bool SaveFileResourceHandler::OnReadCompleted(int request_id, int* bytes_read) { // We are passing ownership of this buffer to the save file manager. net::IOBuffer* buffer = NULL; read_buffer_.swap(&buffer); - save_manager_->file_loop()->PostTask(FROM_HERE, + ChromeThread::PostTask( + ChromeThread::FILE, FROM_HERE, NewRunnableMethod(save_manager_, &SaveFileManager::UpdateSaveProgress, save_id_, @@ -82,7 +85,8 @@ bool SaveFileResourceHandler::OnResponseCompleted( int request_id, const URLRequestStatus& status, const std::string& security_info) { - save_manager_->file_loop()->PostTask(FROM_HERE, + ChromeThread::PostTask( + ChromeThread::FILE, FROM_HERE, NewRunnableMethod(save_manager_, &SaveFileManager::SaveFinished, save_id_, |