summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-24 03:02:37 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-24 03:02:37 +0000
commitbd81f3fdcb27097d9ddc293dea09efd6de628f02 (patch)
tree5bc66e90c15ca9247f150fc67afd06a14fe155dd /chrome
parentdda6d0ddca97a3f4ba53decce35f26ec7305e3ac (diff)
downloadchromium_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.cc20
-rw-r--r--chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h10
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();