summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcsilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-17 21:54:06 +0000
committercsilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-17 21:54:06 +0000
commit80c3df832977631425b02c352792e95d4bcbae68 (patch)
tree08cc040aa4cc30789b46f20799cc406eed6addea
parent81d4ea286915b125c7dc51e025f844381b8a9486 (diff)
downloadchromium_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
-rw-r--r--chrome/renderer/chrome_render_process_observer.cc12
-rw-r--r--chrome/renderer/chrome_render_view_observer.cc16
-rw-r--r--chrome/renderer/chrome_render_view_observer.h5
-rw-r--r--chrome/renderer/extensions/user_script_idle_scheduler.cc15
-rw-r--r--chrome/renderer/extensions/user_script_idle_scheduler.h4
-rw-r--r--chrome/renderer/net/renderer_net_predictor.cc23
-rw-r--r--chrome/renderer/net/renderer_net_predictor.h5
-rw-r--r--chrome/renderer/renderer_histogram_snapshots.cc10
-rw-r--r--chrome/renderer/renderer_histogram_snapshots.h6
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(