Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4292)

Unified Diff: chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc

Issue 8728020: chrome: dbus: support asynchronous method replies (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix comment Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc
diff --git a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc
index 921cf805a7b3bac62a2ed3f676c0f29e6b1bc743..f003ea0d2ae936c9a0e0133798ca2b1179f0ec11 100644
--- a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc
+++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc
@@ -224,8 +224,9 @@ bool ProxyResolutionServiceProvider::OnOriginThread() {
return base::PlatformThread::CurrentId() == origin_thread_id_;
}
-dbus::Response* ProxyResolutionServiceProvider::ResolveProxyHandler(
- dbus::MethodCall* method_call) {
+void ProxyResolutionServiceProvider::ResolveProxyHandler(
+ dbus::MethodCall* method_call,
+ dbus::ExportedObject::ResponseSender response_sender) {
DCHECK(OnOriginThread());
VLOG(1) << "Handing method call: " << method_call->ToString();
// The method call should contain the three string parameters.
@@ -237,7 +238,8 @@ dbus::Response* ProxyResolutionServiceProvider::ResolveProxyHandler(
!reader.PopString(&signal_interface) ||
!reader.PopString(&signal_name)) {
LOG(ERROR) << "Unexpected method call: " << method_call->ToString();
- return NULL;
+ response_sender.Run(NULL);
+ return;
}
resolver_->ResolveProxy(source_url,
@@ -245,21 +247,23 @@ dbus::Response* ProxyResolutionServiceProvider::ResolveProxyHandler(
signal_name,
exported_object_);
- // Return an empty response for now. We'll send a signal once the
- // network proxy resolution is completed.
+ // Send 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);
- return response;
+ response_sender.Run(response);
}
// static
-dbus::Response* ProxyResolutionServiceProvider::CallResolveProxyHandler(
+void ProxyResolutionServiceProvider::CallResolveProxyHandler(
base::WeakPtr<ProxyResolutionServiceProvider> provider_weak_ptr,
- dbus::MethodCall* method_call) {
+ dbus::MethodCall* method_call,
+ dbus::ExportedObject::ResponseSender response_sender) {
if (!provider_weak_ptr) {
LOG(WARNING) << "Called after the object is deleted";
- return NULL;
+ response_sender.Run(NULL);
+ return;
}
- return provider_weak_ptr->ResolveProxyHandler(method_call);
+ provider_weak_ptr->ResolveProxyHandler(method_call, response_sender);
}
ProxyResolutionServiceProvider* ProxyResolutionServiceProvider::Create() {

Powered by Google App Engine
This is Rietveld 408576698