Commit 80c3df83 authored by csilv@chromium.org's avatar csilv@chromium.org

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
parent 81d4ea28
......@@ -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);
};
......
......@@ -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);
}
......
......@@ -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;
......
......@@ -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();
}
......
......@@ -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_;
......
// 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();
......
// 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
......
......@@ -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(
......
// 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(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment