From b6791a77ae5c2eec843b8c9b4ad3d9fa9c11fda7 Mon Sep 17 00:00:00 2001 From: "wez@chromium.org" Date: Wed, 30 May 2012 21:09:33 +0000 Subject: Revert 139623 - Replace ScopedThreadProxy with MessageLoopProxy & WeakPtrs. This affects the following classes: * ChromotingClient * ChromotingInstance * HostUserInterface * It2MeHostUserInterface The MessageLoopProxy/WeakPtr combination requires that the WeakPtr is created on the thread referred to by the proxy; code in which that is hard to arrange usually has subtle race-conditions. TEST=Existing unit-tests, and manual testing. Review URL: https://chromiumcodereview.appspot.com/10454040 TBR=wez@chromium.org Review URL: https://chromiumcodereview.appspot.com/10446088 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139633 0039d316-1c4b-4281-b951-d872f2087c98 --- remoting/client/chromoting_client.cc | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'remoting/client/chromoting_client.cc') diff --git a/remoting/client/chromoting_client.cc b/remoting/client/chromoting_client.cc index 2a3aa56..4dabdd2 100644 --- a/remoting/client/chromoting_client.cc +++ b/remoting/client/chromoting_client.cc @@ -41,7 +41,7 @@ ChromotingClient::ChromotingClient(const ClientConfig& config, client_done_(client_done), packet_being_processed_(false), last_sequence_number_(0), - weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { + thread_proxy_(context_->network_message_loop()) { } ChromotingClient::~ChromotingClient() { @@ -52,9 +52,6 @@ void ChromotingClient::Start( scoped_ptr transport_factory) { DCHECK(message_loop()->BelongsToCurrentThread()); - // Create a WeakPtr to ourself for to use for all posted tasks. - weak_ptr_ = weak_factory_.GetWeakPtr(); - scoped_ptr authenticator; if (config_.use_v1_authenticator) { authenticator.reset(new protocol::V1ClientAuthenticator( @@ -78,7 +75,7 @@ void ChromotingClient::Stop(const base::Closure& shutdown_task) { if (!message_loop()->BelongsToCurrentThread()) { message_loop()->PostTask( FROM_HERE, base::Bind(&ChromotingClient::Stop, - weak_ptr_, shutdown_task)); + base::Unretained(this), shutdown_task)); return; } @@ -90,7 +87,7 @@ void ChromotingClient::Stop(const base::Closure& shutdown_task) { } connection_->Disconnect(base::Bind(&ChromotingClient::OnDisconnected, - weak_ptr_, shutdown_task)); + base::Unretained(this), shutdown_task)); } void ChromotingClient::OnDisconnected(const base::Closure& shutdown_task) { @@ -195,7 +192,7 @@ base::MessageLoopProxy* ChromotingClient::message_loop() { void ChromotingClient::OnPacketDone(bool last_packet, base::Time decode_start) { if (!message_loop()->BelongsToCurrentThread()) { - message_loop()->PostTask(FROM_HERE, base::Bind( + thread_proxy_.PostTask(FROM_HERE, base::Bind( &ChromotingClient::OnPacketDone, base::Unretained(this), last_packet, decode_start)); return; @@ -219,8 +216,8 @@ void ChromotingClient::OnPacketDone(bool last_packet, void ChromotingClient::Initialize() { if (!message_loop()->BelongsToCurrentThread()) { - message_loop()->PostTask(FROM_HERE, base::Bind( - &ChromotingClient::Initialize, weak_ptr_)); + thread_proxy_.PostTask(FROM_HERE, base::Bind( + &ChromotingClient::Initialize, base::Unretained(this))); return; } -- cgit v1.1