diff options
author | csilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 21:54:06 +0000 |
---|---|---|
committer | csilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 21:54:06 +0000 |
commit | 80c3df832977631425b02c352792e95d4bcbae68 (patch) | |
tree | 08cc040aa4cc30789b46f20799cc406eed6addea /chrome | |
parent | 81d4ea286915b125c7dc51e025f844381b8a9486 (diff) | |
download | chromium_src-80c3df832977631425b02c352792e95d4bcbae68.zip chromium_src-80c3df832977631425b02c352792e95d4bcbae68.tar.gz chromium_src-80c3df832977631425b02c352792e95d4bcbae68.tar.bz2 |
base::Bind migrations in chrome/renderer
BUG=none
Review URL: http://codereview.chromium.org/8523037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110570 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/renderer/chrome_render_process_observer.cc | 12 | ||||
-rw-r--r-- | chrome/renderer/chrome_render_view_observer.cc | 16 | ||||
-rw-r--r-- | chrome/renderer/chrome_render_view_observer.h | 5 | ||||
-rw-r--r-- | chrome/renderer/extensions/user_script_idle_scheduler.cc | 15 | ||||
-rw-r--r-- | chrome/renderer/extensions/user_script_idle_scheduler.h | 4 | ||||
-rw-r--r-- | chrome/renderer/net/renderer_net_predictor.cc | 23 | ||||
-rw-r--r-- | chrome/renderer/net/renderer_net_predictor.h | 5 | ||||
-rw-r--r-- | chrome/renderer/renderer_histogram_snapshots.cc | 10 | ||||
-rw-r--r-- | chrome/renderer/renderer_histogram_snapshots.h | 6 |
9 files changed, 51 insertions, 45 deletions
diff --git a/chrome/renderer/chrome_render_process_observer.cc b/chrome/renderer/chrome_render_process_observer.cc index bdf5ee4..bf3389f 100644 --- a/chrome/renderer/chrome_render_process_observer.cc +++ b/chrome/renderer/chrome_render_process_observer.cc @@ -4,9 +4,11 @@ #include "chrome/renderer/chrome_render_process_observer.h" +#include "base/bind.h" #include "base/command_line.h" #include "base/file_util.h" #include "base/message_loop.h" +#include "base/memory/weak_ptr.h" #include "base/metrics/field_trial.h" #include "base/metrics/histogram.h" #include "base/native_library.h" @@ -59,7 +61,7 @@ static const unsigned int kCacheStatsDelayMS = 2000 /* milliseconds */; class RendererResourceDelegate : public content::ResourceDispatcherDelegate { public: RendererResourceDelegate() - : ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { + : ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { } virtual webkit_glue::ResourceLoaderBridge::Peer* OnRequestComplete( @@ -68,11 +70,11 @@ class RendererResourceDelegate : public content::ResourceDispatcherDelegate { const net::URLRequestStatus& status) { // Update the browser about our cache. // Rate limit informing the host of our cache stats. - if (method_factory_.empty()) { + if (!weak_factory_.HasWeakPtrs()) { MessageLoop::current()->PostDelayedTask( FROM_HERE, - method_factory_.NewRunnableMethod( - &RendererResourceDelegate::InformHostOfCacheStats), + base::Bind(&RendererResourceDelegate::InformHostOfCacheStats, + weak_factory_.GetWeakPtr()), kCacheStatsDelayMS); } @@ -101,7 +103,7 @@ class RendererResourceDelegate : public content::ResourceDispatcherDelegate { RenderThread::Get()->Send(new ChromeViewHostMsg_UpdatedCacheStats(stats)); } - ScopedRunnableMethodFactory<RendererResourceDelegate> method_factory_; + base::WeakPtrFactory<RendererResourceDelegate> weak_factory_; DISALLOW_COPY_AND_ASSIGN(RendererResourceDelegate); }; diff --git a/chrome/renderer/chrome_render_view_observer.cc b/chrome/renderer/chrome_render_view_observer.cc index fef6187..9aeba41 100644 --- a/chrome/renderer/chrome_render_view_observer.cc +++ b/chrome/renderer/chrome_render_view_observer.cc @@ -4,6 +4,8 @@ #include "chrome/renderer/chrome_render_view_observer.h" +#include "base/bind.h" +#include "base/callback_old.h" #include "base/command_line.h" #include "base/debug/trace_event.h" #include "base/message_loop.h" @@ -226,7 +228,7 @@ ChromeRenderViewObserver::ChromeRenderViewObserver( last_indexed_page_id_(-1), allow_displaying_insecure_content_(false), allow_running_insecure_content_(false), - ALLOW_THIS_IN_INITIALIZER_LIST(page_info_method_factory_(this)) { + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { const CommandLine& command_line = *CommandLine::ForCurrentProcess(); if (command_line.HasSwitch(switches::kDomAutomationController)) { int old_bindings = render_view->GetEnabledBindings(); @@ -629,10 +631,8 @@ void ChromeRenderViewObserver::DidStartLoading() { void ChromeRenderViewObserver::DidStopLoading() { MessageLoop::current()->PostDelayedTask( FROM_HERE, - page_info_method_factory_.NewRunnableMethod( - &ChromeRenderViewObserver::CapturePageInfo, - render_view()->GetPageId(), - false), + base::Bind(&ChromeRenderViewObserver::CapturePageInfo, + weak_factory_.GetWeakPtr(), render_view()->GetPageId(), false), render_view()->GetContentStateImmediately() ? 0 : kDelayForCaptureMs); WebFrame* main_frame = render_view()->GetWebView()->mainFrame(); @@ -687,10 +687,8 @@ void ChromeRenderViewObserver::DidCommitProvisionalLoad( MessageLoop::current()->PostDelayedTask( FROM_HERE, - page_info_method_factory_.NewRunnableMethod( - &ChromeRenderViewObserver::CapturePageInfo, - render_view()->GetPageId(), - true), + base::Bind(&ChromeRenderViewObserver::CapturePageInfo, + weak_factory_.GetWeakPtr(), render_view()->GetPageId(), true), kDelayForForcedCaptureMs); } diff --git a/chrome/renderer/chrome_render_view_observer.h b/chrome/renderer/chrome_render_view_observer.h index 0a8dec0..4f995b1 100644 --- a/chrome/renderer/chrome_render_view_observer.h +++ b/chrome/renderer/chrome_render_view_observer.h @@ -12,7 +12,7 @@ #include "base/memory/linked_ptr.h" #include "base/memory/scoped_ptr.h" -#include "base/task.h" +#include "base/memory/weak_ptr.h" #include "content/public/renderer/render_view_observer.h" #include "googleurl/src/gurl.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebPermissionClient.h" @@ -212,8 +212,7 @@ class ChromeRenderViewObserver : public content::RenderViewObserver, // External host exposed through automation controller. scoped_ptr<ExternalHostBindings> external_host_bindings_; - ScopedRunnableMethodFactory<ChromeRenderViewObserver> - page_info_method_factory_; + base::WeakPtrFactory<ChromeRenderViewObserver> weak_factory_; typedef std::vector<linked_ptr<webkit_glue::ImageResourceFetcher> > ImageResourceFetcherList; diff --git a/chrome/renderer/extensions/user_script_idle_scheduler.cc b/chrome/renderer/extensions/user_script_idle_scheduler.cc index 6dec8c4..c271bae 100644 --- a/chrome/renderer/extensions/user_script_idle_scheduler.cc +++ b/chrome/renderer/extensions/user_script_idle_scheduler.cc @@ -4,6 +4,7 @@ #include "chrome/renderer/extensions/user_script_idle_scheduler.h" +#include "base/bind.h" #include "base/message_loop.h" #include "chrome/common/extensions/extension_error_utils.h" #include "chrome/common/extensions/extension_messages.h" @@ -30,7 +31,7 @@ using WebKit::WebView; UserScriptIdleScheduler::UserScriptIdleScheduler( WebFrame* frame, ExtensionDispatcher* extension_dispatcher) - : ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), + : ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), frame_(frame), has_run_(false), extension_dispatcher_(extension_dispatcher) { @@ -52,22 +53,24 @@ void UserScriptIdleScheduler::ExecuteCode( } void UserScriptIdleScheduler::DidFinishDocumentLoad() { - MessageLoop::current()->PostDelayedTask(FROM_HERE, - method_factory_.NewRunnableMethod(&UserScriptIdleScheduler::MaybeRun), + MessageLoop::current()->PostDelayedTask( + FROM_HERE, base::Bind(&UserScriptIdleScheduler::MaybeRun, + weak_factory_.GetWeakPtr()), kUserScriptIdleTimeoutMs); } void UserScriptIdleScheduler::DidFinishLoad() { // Ensure that running scripts does not keep any progress UI running. - MessageLoop::current()->PostTask(FROM_HERE, - method_factory_.NewRunnableMethod(&UserScriptIdleScheduler::MaybeRun)); + MessageLoop::current()->PostTask( + FROM_HERE, base::Bind(&UserScriptIdleScheduler::MaybeRun, + weak_factory_.GetWeakPtr())); } void UserScriptIdleScheduler::DidStartProvisionalLoad() { // The frame is navigating, so reset the state since we'll want to inject // scripts once the load finishes. has_run_ = false; - method_factory_.RevokeAll(); + weak_factory_.InvalidateWeakPtrs(); while (!pending_code_execution_queue_.empty()) pending_code_execution_queue_.pop(); } diff --git a/chrome/renderer/extensions/user_script_idle_scheduler.h b/chrome/renderer/extensions/user_script_idle_scheduler.h index 62258c6..782ce86 100644 --- a/chrome/renderer/extensions/user_script_idle_scheduler.h +++ b/chrome/renderer/extensions/user_script_idle_scheduler.h @@ -10,7 +10,7 @@ #include <vector> #include "base/memory/linked_ptr.h" -#include "base/task.h" +#include "base/memory/weak_ptr.h" class ExtensionDispatcher; class RenderView; @@ -60,7 +60,7 @@ class UserScriptIdleScheduler { bool GetAllChildFrames(WebKit::WebFrame* parent_frame, std::vector<WebKit::WebFrame*>* frames_vector) const; - ScopedRunnableMethodFactory<UserScriptIdleScheduler> method_factory_; + base::WeakPtrFactory<UserScriptIdleScheduler> weak_factory_; // The Frame we will run scripts in. WebKit::WebFrame* frame_; diff --git a/chrome/renderer/net/renderer_net_predictor.cc b/chrome/renderer/net/renderer_net_predictor.cc index 5037ec4..9b6c489 100644 --- a/chrome/renderer/net/renderer_net_predictor.cc +++ b/chrome/renderer/net/renderer_net_predictor.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -8,6 +8,7 @@ #include <ctype.h> +#include "base/bind.h" #include "base/logging.h" #include "base/message_loop.h" #include "chrome/common/net/predictor_common.h" @@ -23,7 +24,7 @@ static const size_t kMAX_SUBMISSION_PER_TASK = 30; RendererNetPredictor::RendererNetPredictor() : c_string_queue_(1000), - ALLOW_THIS_IN_INITIALIZER_LIST(renderer_predictor_factory_(this)) { + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { Reset(); } @@ -52,10 +53,11 @@ void RendererNetPredictor::Resolve(const char* name, size_t length) { DCHECK_EQ(old_size, 0u); if (0 != old_size) return; // Overkill safety net: Don't send too many InvokeLater's. - renderer_predictor_factory_.RevokeAll(); - RenderThread::Get()->GetMessageLoop()->PostDelayedTask(FROM_HERE, - renderer_predictor_factory_.NewRunnableMethod( - &RendererNetPredictor::SubmitHostnames), 10); + weak_factory_.InvalidateWeakPtrs(); + RenderThread::Get()->GetMessageLoop()->PostDelayedTask( + FROM_HERE, base::Bind(&RendererNetPredictor::SubmitHostnames, + weak_factory_.GetWeakPtr()), + 10); } return; } @@ -86,10 +88,11 @@ void RendererNetPredictor::SubmitHostnames() { // This will help to avoid overloads when a page has a TON of links. DnsPrefetchNames(kMAX_SUBMISSION_PER_TASK); if (new_name_count_ > 0 || 0 < c_string_queue_.Size()) { - renderer_predictor_factory_.RevokeAll(); - RenderThread::Get()->GetMessageLoop()->PostDelayedTask(FROM_HERE, - renderer_predictor_factory_.NewRunnableMethod( - &RendererNetPredictor::SubmitHostnames), 10); + weak_factory_.InvalidateWeakPtrs(); + RenderThread::Get()->GetMessageLoop()->PostDelayedTask( + FROM_HERE, base::Bind(&RendererNetPredictor::SubmitHostnames, + weak_factory_.GetWeakPtr()), + 10); } else { // TODO(JAR): Should we only clear the map when we navigate, or reload? domain_map_.clear(); diff --git a/chrome/renderer/net/renderer_net_predictor.h b/chrome/renderer/net/renderer_net_predictor.h index 2b5d4c6..71f5223 100644 --- a/chrome/renderer/net/renderer_net_predictor.h +++ b/chrome/renderer/net/renderer_net_predictor.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -26,6 +26,7 @@ #include <string> #include "base/basictypes.h" +#include "base/memory/weak_ptr.h" #include "base/task.h" #include "chrome/renderer/net/predictor_queue.h" @@ -96,7 +97,7 @@ class RendererNetPredictor { int buffer_full_discard_count_; int numeric_ip_discard_count_; - ScopedRunnableMethodFactory<RendererNetPredictor> renderer_predictor_factory_; + base::WeakPtrFactory<RendererNetPredictor> weak_factory_; DISALLOW_COPY_AND_ASSIGN(RendererNetPredictor); }; // class RendererNetPredictor diff --git a/chrome/renderer/renderer_histogram_snapshots.cc b/chrome/renderer/renderer_histogram_snapshots.cc index ad90340..297d693 100644 --- a/chrome/renderer/renderer_histogram_snapshots.cc +++ b/chrome/renderer/renderer_histogram_snapshots.cc @@ -6,6 +6,7 @@ #include <ctype.h> +#include "base/bind.h" #include "base/logging.h" #include "base/message_loop.h" #include "base/metrics/histogram.h" @@ -19,8 +20,7 @@ using base::StatisticsRecorder; using content::RenderThread; RendererHistogramSnapshots::RendererHistogramSnapshots() - : ALLOW_THIS_IN_INITIALIZER_LIST( - renderer_histogram_snapshots_factory_(this)) { + : ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { } RendererHistogramSnapshots::~RendererHistogramSnapshots() { @@ -28,9 +28,9 @@ RendererHistogramSnapshots::~RendererHistogramSnapshots() { // Send data quickly! void RendererHistogramSnapshots::SendHistograms(int sequence_number) { - RenderThread::Get()->GetMessageLoop()->PostTask(FROM_HERE, - renderer_histogram_snapshots_factory_.NewRunnableMethod( - &RendererHistogramSnapshots::UploadAllHistrograms, sequence_number)); + RenderThread::Get()->GetMessageLoop()->PostTask( + FROM_HERE, base::Bind(&RendererHistogramSnapshots::UploadAllHistrograms, + weak_factory_.GetWeakPtr(), sequence_number)); } bool RendererHistogramSnapshots::OnControlMessageReceived( diff --git a/chrome/renderer/renderer_histogram_snapshots.h b/chrome/renderer/renderer_histogram_snapshots.h index 839d3ff..4572461 100644 --- a/chrome/renderer/renderer_histogram_snapshots.h +++ b/chrome/renderer/renderer_histogram_snapshots.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -11,6 +11,7 @@ #include <vector> #include "base/basictypes.h" +#include "base/memory/weak_ptr.h" #include "base/metrics/histogram.h" #include "base/process.h" #include "base/task.h" @@ -40,8 +41,7 @@ class RendererHistogramSnapshots : public HistogramSender, // Send only a delta to what we have already sent. void UploadAllHistrograms(int sequence_number); - ScopedRunnableMethodFactory<RendererHistogramSnapshots> - renderer_histogram_snapshots_factory_; + base::WeakPtrFactory<RendererHistogramSnapshots> weak_factory_; // HistogramSender interface (override) methods. virtual void TransmitHistogramDelta( |