diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-22 19:00:58 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-22 19:00:58 +0000 |
commit | 8523ba5fab2b52f359b644fea1b9c2b3ea078260 (patch) | |
tree | f77d449eb28f0fa1b2f0bc0bf8006751423be59f /chrome/browser | |
parent | 653f4ec848607162cd842a3dbcb6d5f18f72bcba (diff) | |
download | chromium_src-8523ba5fab2b52f359b644fea1b9c2b3ea078260.zip chromium_src-8523ba5fab2b52f359b644fea1b9c2b3ea078260.tar.gz chromium_src-8523ba5fab2b52f359b644fea1b9c2b3ea078260.tar.bz2 |
Kill URLRequestJobTracker.
BUG=81160
TEST=none
Review URL: http://codereview.chromium.org/7043007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86241 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/net/chrome_network_delegate.cc | 7 | ||||
-rw-r--r-- | chrome/browser/net/chrome_network_delegate.h | 1 | ||||
-rw-r--r-- | chrome/browser/profiles/profile_manager.cc | 80 | ||||
-rw-r--r-- | chrome/browser/profiles/profile_manager.h | 6 | ||||
-rw-r--r-- | chrome/browser/task_manager/task_manager.cc | 55 | ||||
-rw-r--r-- | chrome/browser/task_manager/task_manager.h | 25 | ||||
-rw-r--r-- | chrome/browser/ui/views/about_ipc_dialog.cc | 1 |
7 files changed, 20 insertions, 155 deletions
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc index e223828..0058ca5 100644 --- a/chrome/browser/net/chrome_network_delegate.cc +++ b/chrome/browser/net/chrome_network_delegate.cc @@ -5,10 +5,12 @@ #include "chrome/browser/net/chrome_network_delegate.h" #include "base/logging.h" +#include "chrome/browser/custom_handlers/protocol_handler_registry.h" #include "chrome/browser/extensions/extension_event_router_forwarder.h" #include "chrome/browser/extensions/extension_proxy_api.h" #include "chrome/browser/extensions/extension_webrequest_api.h" #include "chrome/browser/prefs/pref_member.h" +#include "chrome/browser/task_manager/task_manager.h" #include "chrome/common/pref_names.h" #include "content/browser/browser_thread.h" #include "net/base/host_port_pair.h" @@ -98,6 +100,11 @@ void ChromeNetworkDelegate::OnResponseStarted(net::URLRequest* request) { ForwardProxyErrors(request, event_router_.get(), profile_id_); } +void ChromeNetworkDelegate::OnRawBytesRead(const net::URLRequest& request, + int bytes_read) { + TaskManager::GetInstance()->model()->NotifyBytesRead(request, bytes_read); +} + void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request) { if (request->status().status() == net::URLRequestStatus::SUCCESS) { bool is_redirect = request->response_headers() && diff --git a/chrome/browser/net/chrome_network_delegate.h b/chrome/browser/net/chrome_network_delegate.h index ad6fd3c..797ab35 100644 --- a/chrome/browser/net/chrome_network_delegate.h +++ b/chrome/browser/net/chrome_network_delegate.h @@ -51,6 +51,7 @@ class ChromeNetworkDelegate : public net::NetworkDelegate { virtual void OnBeforeRedirect(net::URLRequest* request, const GURL& new_location); virtual void OnResponseStarted(net::URLRequest* request); + virtual void OnRawBytesRead(const net::URLRequest& request, int bytes_read); virtual void OnCompleted(net::URLRequest* request); virtual void OnURLRequestDestroyed(net::URLRequest* request); virtual void OnHttpTransactionDestroyed(uint64 request_id); diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc index dbd03de..c30950a 100644 --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc @@ -32,45 +32,12 @@ #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_getter.h" #include "net/url_request/url_request_job.h" -#include "net/url_request/url_request_job_tracker.h" #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/cros/cros_library.h" #include "chrome/browser/chromeos/cros/cryptohome_library.h" #endif -namespace { - -void SuspendURLRequestJobs() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - for (net::URLRequestJobTracker::JobIterator i = - net::g_url_request_job_tracker.begin(); - i != net::g_url_request_job_tracker.end(); ++i) - (*i)->Kill(); -} - -void SuspendRequestContext( - net::URLRequestContextGetter* request_context_getter) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - - scoped_refptr<net::URLRequestContext> request_context = - request_context_getter->GetURLRequestContext(); - - request_context->http_transaction_factory()->Suspend(true); -} - -void ResumeRequestContext( - net::URLRequestContextGetter* request_context_getter) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - - scoped_refptr<net::URLRequestContext> request_context = - request_context_getter->GetURLRequestContext(); - request_context->http_transaction_factory()->Suspend(false); -} - -} // namespace - - bool ProfileManagerObserver::DeleteAfterCreation() { return false; } @@ -111,7 +78,6 @@ Profile* ProfileManager::GetDefaultProfile() { } ProfileManager::ProfileManager() : logged_in_(false) { - base::SystemMonitor::Get()->AddObserver(this); BrowserList::AddObserver(this); #if defined(OS_CHROMEOS) registrar_.Add( @@ -122,9 +88,6 @@ ProfileManager::ProfileManager() : logged_in_(false) { } ProfileManager::~ProfileManager() { - base::SystemMonitor* system_monitor = base::SystemMonitor::Get(); - if (system_monitor) - system_monitor->RemoveObserver(this); BrowserList::RemoveObserver(this); } @@ -347,49 +310,6 @@ Profile* ProfileManager::GetProfileByPath(const FilePath& path) const { return (iter == profiles_info_.end()) ? NULL : iter->second->profile.get(); } -void ProfileManager::OnSuspend() { - DCHECK(CalledOnValidThread()); - - bool posted = BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&SuspendURLRequestJobs)); - DCHECK(posted); - - scoped_refptr<net::URLRequestContextGetter> request_context; - std::vector<Profile*> profiles(GetLoadedProfiles()); - for (size_t i = 0; i < profiles.size(); ++i) { - request_context = profiles[i]->GetRequestContext(); - posted = BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&SuspendRequestContext, request_context)); - DCHECK(posted); - request_context = profiles[i]->GetRequestContextForMedia(); - posted = BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&SuspendRequestContext, request_context)); - DCHECK(posted); - } -} - -void ProfileManager::OnResume() { - DCHECK(CalledOnValidThread()); - - scoped_refptr<net::URLRequestContextGetter> request_context; - std::vector<Profile*> profiles(GetLoadedProfiles()); - for (size_t i = 0; i < profiles.size(); ++i) { - request_context = profiles[i]->GetRequestContext(); - bool posted = BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&ResumeRequestContext, request_context)); - DCHECK(posted); - request_context = profiles[i]->GetRequestContextForMedia(); - posted = BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&ResumeRequestContext, request_context)); - DCHECK(posted); - } -} - void ProfileManager::Observe( NotificationType type, const NotificationSource& source, diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h index de656d6..d06f700 100644 --- a/chrome/browser/profiles/profile_manager.h +++ b/chrome/browser/profiles/profile_manager.h @@ -17,7 +17,6 @@ #include "base/memory/linked_ptr.h" #include "base/memory/scoped_ptr.h" #include "base/message_loop.h" -#include "base/system_monitor/system_monitor.h" #include "base/threading/non_thread_safe.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_list.h" @@ -39,7 +38,6 @@ class ProfileManagerObserver { }; class ProfileManager : public base::NonThreadSafe, - public base::SystemMonitor::PowerObserver, public BrowserList::Observer, public NotificationObserver, public Profile::Delegate { @@ -97,10 +95,6 @@ class ProfileManager : public base::NonThreadSafe, // related with the creation order. std::vector<Profile*> GetLoadedProfiles() const; - // PowerObserver notifications - virtual void OnSuspend(); - virtual void OnResume(); - // NotificationObserver implementation. virtual void Observe(NotificationType type, const NotificationSource& source, diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc index 15282d2..68e5bfc 100644 --- a/chrome/browser/task_manager/task_manager.cc +++ b/chrome/browser/task_manager/task_manager.cc @@ -34,8 +34,6 @@ #include "grit/app_resources.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" -#include "net/url_request/url_request.h" -#include "net/url_request/url_request_job.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "unicode/coll.h" @@ -500,13 +498,6 @@ void TaskManagerModel::StartUpdating() { } update_state_ = TASK_PENDING; - // Register jobs notifications so we can compute network usage (it must be - // done from the IO thread). - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableMethod( - this, &TaskManagerModel::RegisterForJobDoneNotifications)); - // Notify resource providers that we are updating. for (ResourceProviderList::iterator iter = providers_.begin(); iter != providers_.end(); ++iter) { @@ -531,12 +522,6 @@ void TaskManagerModel::StopUpdating() { (*iter)->StopUpdating(); } - // Unregister jobs notification (must be done from the IO thread). - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableMethod( - this, &TaskManagerModel::UnregisterForJobDoneNotifications)); - // Must clear the resources before the next attempt to start updating. Clear(); } @@ -549,14 +534,6 @@ void TaskManagerModel::AddResourceProvider( providers_.push_back(provider); } -void TaskManagerModel::RegisterForJobDoneNotifications() { - net::g_url_request_job_tracker.AddObserver(this); -} - -void TaskManagerModel::UnregisterForJobDoneNotifications() { - net::g_url_request_job_tracker.RemoveObserver(this); -} - void TaskManagerModel::AddResource(TaskManager::Resource* resource) { base::ProcessHandle process = resource->GetProcess(); @@ -836,41 +813,21 @@ void TaskManagerModel::BytesRead(BytesReadParam param) { } -// In order to retrieve the network usage, we register for net::URLRequestJob -// notifications. Every time we get notified some bytes were read we bump a -// counter of read bytes for the associated resource. When the timer ticks, -// we'll compute the actual network usage (see the Refresh method). -void TaskManagerModel::OnJobAdded(net::URLRequestJob* job) { -} - -void TaskManagerModel::OnJobRemoved(net::URLRequestJob* job) { -} - -void TaskManagerModel::OnJobDone(net::URLRequestJob* job, - const net::URLRequestStatus& status) { -} - -void TaskManagerModel::OnJobRedirect(net::URLRequestJob* job, - const GURL& location, - int status_code) { -} - -void TaskManagerModel::OnBytesRead(net::URLRequestJob* job, const char* buf, - int byte_count) { +void TaskManagerModel::NotifyBytesRead(const net::URLRequest& request, + int byte_count) { // Only net::URLRequestJob instances created by the ResourceDispatcherHost // have a render view associated. All other jobs will have -1 returned for // the render process child and routing ids - the jobs may still match a // resource based on their origin id, otherwise BytesRead() will attribute // the activity to the Browser resource. int render_process_host_child_id = -1, routing_id = -1; - ResourceDispatcherHost::RenderViewForRequest(job->request(), + ResourceDispatcherHost::RenderViewForRequest(&request, &render_process_host_child_id, &routing_id); // Get the origin PID of the request's originator. This will only be set for // plugins - for renderer or browser initiated requests it will be zero. - int origin_pid = - chrome_browser_net::GetOriginPIDForRequest(job->request()); + int origin_pid = chrome_browser_net::GetOriginPIDForRequest(&request); // This happens in the IO thread, post it to the UI thread. BrowserThread::PostTask( @@ -879,8 +836,8 @@ void TaskManagerModel::OnBytesRead(net::URLRequestJob* job, const char* buf, this, &TaskManagerModel::BytesRead, BytesReadParam(origin_pid, - render_process_host_child_id, - routing_id, byte_count))); + render_process_host_child_id, + routing_id, byte_count))); } bool TaskManagerModel::GetProcessMetricsForRow( diff --git a/chrome/browser/task_manager/task_manager.h b/chrome/browser/task_manager/task_manager.h index 2b8d0a2..bfe7174 100644 --- a/chrome/browser/task_manager/task_manager.h +++ b/chrome/browser/task_manager/task_manager.h @@ -20,7 +20,6 @@ #include "base/string16.h" #include "base/timer.h" #include "chrome/browser/renderer_host/web_cache_manager.h" -#include "net/url_request/url_request_job_tracker.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebCache.h" class Extension; @@ -31,6 +30,9 @@ class TaskManagerModel; namespace base { class ProcessMetrics; } +namespace net { +class URLRequest; +} // This class is a singleton. class TaskManager { @@ -214,8 +216,7 @@ class TaskManagerModelObserver { }; // The model that the TaskManager is using. -class TaskManagerModel : public net::URLRequestJobTracker::JobObserver, - public base::RefCountedThreadSafe<TaskManagerModel> { +class TaskManagerModel : public base::RefCountedThreadSafe<TaskManagerModel> { public: explicit TaskManagerModel(TaskManager* task_manager); @@ -297,18 +298,6 @@ class TaskManagerModel : public net::URLRequestJobTracker::JobObserver, // Returns Extension of given resource or NULL if not applicable. const Extension* GetResourceExtension(int index) const; - // JobObserver methods: - virtual void OnJobAdded(net::URLRequestJob* job); - virtual void OnJobRemoved(net::URLRequestJob* job); - virtual void OnJobDone(net::URLRequestJob* job, - const net::URLRequestStatus& status); - virtual void OnJobRedirect(net::URLRequestJob* job, - const GURL& location, - int status_code); - virtual void OnBytesRead(net::URLRequestJob* job, - const char* buf, - int byte_count); - void AddResource(TaskManager::Resource* resource); void RemoveResource(TaskManager::Resource* resource); @@ -329,6 +318,8 @@ class TaskManagerModel : public net::URLRequestJobTracker::JobObserver, size_t v8_memory_allocated, size_t v8_memory_used); + void NotifyBytesRead(const net::URLRequest& request, int bytes_read); + private: friend class base::RefCountedThreadSafe<TaskManagerModel>; FRIEND_TEST_ALL_PREFIXES(TaskManagerTest, RefreshCalled); @@ -379,10 +370,6 @@ class TaskManagerModel : public net::URLRequestJobTracker::JobObserver, void AddItem(TaskManager::Resource* resource, bool notify_table); void RemoveItem(TaskManager::Resource* resource); - // Register for network usage updates - void RegisterForJobDoneNotifications(); - void UnregisterForJobDoneNotifications(); - // Returns the network usage (in bytes per seconds) for the specified // resource. That's the value retrieved at the last timer's tick. int64 GetNetworkUsageForResource(TaskManager::Resource* resource) const; diff --git a/chrome/browser/ui/views/about_ipc_dialog.cc b/chrome/browser/ui/views/about_ipc_dialog.cc index 9b7cf3a..fd446f3 100644 --- a/chrome/browser/ui/views/about_ipc_dialog.cc +++ b/chrome/browser/ui/views/about_ipc_dialog.cc @@ -29,7 +29,6 @@ #include "content/common/plugin_messages.h" #include "net/url_request/url_request.h" #include "net/url_request/url_request_job.h" -#include "net/url_request/url_request_job_tracker.h" #include "views/controls/button/text_button.h" #include "views/controls/native/native_view_host.h" #include "views/layout/grid_layout.h" |