summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-22 19:00:58 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-22 19:00:58 +0000
commit8523ba5fab2b52f359b644fea1b9c2b3ea078260 (patch)
treef77d449eb28f0fa1b2f0bc0bf8006751423be59f /chrome/browser
parent653f4ec848607162cd842a3dbcb6d5f18f72bcba (diff)
downloadchromium_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.cc7
-rw-r--r--chrome/browser/net/chrome_network_delegate.h1
-rw-r--r--chrome/browser/profiles/profile_manager.cc80
-rw-r--r--chrome/browser/profiles/profile_manager.h6
-rw-r--r--chrome/browser/task_manager/task_manager.cc55
-rw-r--r--chrome/browser/task_manager/task_manager.h25
-rw-r--r--chrome/browser/ui/views/about_ipc_dialog.cc1
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"