diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-24 03:02:37 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-24 03:02:37 +0000 |
commit | bd81f3fdcb27097d9ddc293dea09efd6de628f02 (patch) | |
tree | 5bc66e90c15ca9247f150fc67afd06a14fe155dd /chrome | |
parent | dda6d0ddca97a3f4ba53decce35f26ec7305e3ac (diff) | |
download | chromium_src-bd81f3fdcb27097d9ddc293dea09efd6de628f02.zip chromium_src-bd81f3fdcb27097d9ddc293dea09efd6de628f02.tar.gz chromium_src-bd81f3fdcb27097d9ddc293dea09efd6de628f02.tar.bz2 |
Revert 111479 - chrome: dbus: support asynchronous method replies
BUG=chromium-os:23241
TEST=Unit tests and manual testing on device.
Change-Id: I4d665897687030f4ab2379e4f6ddb9b3ebe02af4
Review URL: http://codereview.chromium.org/8637002
TBR=vlaviano@chromium.org
Review URL: http://codereview.chromium.org/8682032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111487 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc | 20 | ||||
-rw-r--r-- | chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h | 10 |
2 files changed, 12 insertions, 18 deletions
diff --git a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc index a564c1d..921cf80 100644 --- a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc +++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc @@ -224,9 +224,8 @@ bool ProxyResolutionServiceProvider::OnOriginThread() { return base::PlatformThread::CurrentId() == origin_thread_id_; } -void ProxyResolutionServiceProvider::ResolveProxyHandler( - dbus::MethodCall* method_call, - dbus::ExportedObject::ResponseSender response_sender) { +dbus::Response* ProxyResolutionServiceProvider::ResolveProxyHandler( + dbus::MethodCall* method_call) { DCHECK(OnOriginThread()); VLOG(1) << "Handing method call: " << method_call->ToString(); // The method call should contain the three string parameters. @@ -238,8 +237,7 @@ void ProxyResolutionServiceProvider::ResolveProxyHandler( !reader.PopString(&signal_interface) || !reader.PopString(&signal_name)) { LOG(ERROR) << "Unexpected method call: " << method_call->ToString(); - response_sender.Run(NULL); - return; + return NULL; } resolver_->ResolveProxy(source_url, @@ -250,20 +248,18 @@ void ProxyResolutionServiceProvider::ResolveProxyHandler( // Return an empty response for now. We'll send a signal once the // network proxy resolution is completed. dbus::Response* response = dbus::Response::FromMethodCall(method_call); - response_sender.Run(response); + return response; } // static -void ProxyResolutionServiceProvider::CallResolveProxyHandler( +dbus::Response* ProxyResolutionServiceProvider::CallResolveProxyHandler( base::WeakPtr<ProxyResolutionServiceProvider> provider_weak_ptr, - dbus::MethodCall* method_call, - dbus::ExportedObject::ResponseSender response_sender) { + dbus::MethodCall* method_call) { if (!provider_weak_ptr) { LOG(WARNING) << "Called after the object is deleted"; - response_sender.Run(NULL); - return; + return NULL; } - provider_weak_ptr->ResolveProxyHandler(method_call, response_sender); + return provider_weak_ptr->ResolveProxyHandler(method_call); } ProxyResolutionServiceProvider* ProxyResolutionServiceProvider::Create() { diff --git a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h index 383c082..5a26358 100644 --- a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h +++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h @@ -15,9 +15,9 @@ #include "base/synchronization/lock.h" #include "base/threading/platform_thread.h" #include "chrome/browser/chromeos/dbus/cros_dbus_service.h" -#include "dbus/exported_object.h" namespace dbus { +class ExportedObject; class MethodCall; class Response; } @@ -104,15 +104,13 @@ class ProxyResolutionServiceProvider // Callback to be invoked when ChromeOS clients send network proxy // resolution requests to the service running in chrome executable. // Called on UI thread from dbus request. - void ResolveProxyHandler(dbus::MethodCall* method_call, - dbus::ExportedObject::ResponseSender response_sender); + dbus::Response* ResolveProxyHandler(dbus::MethodCall* method_call); // Calls ResolveProxyHandler() if weak_ptr is not NULL. Used to ensure a // safe shutdown. - static void CallResolveProxyHandler( + static dbus::Response* CallResolveProxyHandler( base::WeakPtr<ProxyResolutionServiceProvider> weak_ptr, - dbus::MethodCall* method_call, - dbus::ExportedObject::ResponseSender response_sender); + dbus::MethodCall* method_call); // Returns true if the current thread is on the origin thread. bool OnOriginThread(); |