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

Side by Side Diff: chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc

Issue 8682032: Revert 111479 - chrome: dbus: support asynchronous method replies (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h ('k') | dbus/bus.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h" 5 #include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/threading/platform_thread.h" 8 #include "base/threading/platform_thread.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/profiles/profile_manager.h" 10 #include "chrome/browser/profiles/profile_manager.h"
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 LOG(ERROR) << "Failed to export " << interface_name << "." 217 LOG(ERROR) << "Failed to export " << interface_name << "."
218 << method_name; 218 << method_name;
219 } 219 }
220 VLOG(1) << "Method exported: " << interface_name << "." << method_name; 220 VLOG(1) << "Method exported: " << interface_name << "." << method_name;
221 } 221 }
222 222
223 bool ProxyResolutionServiceProvider::OnOriginThread() { 223 bool ProxyResolutionServiceProvider::OnOriginThread() {
224 return base::PlatformThread::CurrentId() == origin_thread_id_; 224 return base::PlatformThread::CurrentId() == origin_thread_id_;
225 } 225 }
226 226
227 void ProxyResolutionServiceProvider::ResolveProxyHandler( 227 dbus::Response* ProxyResolutionServiceProvider::ResolveProxyHandler(
228 dbus::MethodCall* method_call, 228 dbus::MethodCall* method_call) {
229 dbus::ExportedObject::ResponseSender response_sender) {
230 DCHECK(OnOriginThread()); 229 DCHECK(OnOriginThread());
231 VLOG(1) << "Handing method call: " << method_call->ToString(); 230 VLOG(1) << "Handing method call: " << method_call->ToString();
232 // The method call should contain the three string parameters. 231 // The method call should contain the three string parameters.
233 dbus::MessageReader reader(method_call); 232 dbus::MessageReader reader(method_call);
234 std::string source_url; 233 std::string source_url;
235 std::string signal_interface; 234 std::string signal_interface;
236 std::string signal_name; 235 std::string signal_name;
237 if (!reader.PopString(&source_url) || 236 if (!reader.PopString(&source_url) ||
238 !reader.PopString(&signal_interface) || 237 !reader.PopString(&signal_interface) ||
239 !reader.PopString(&signal_name)) { 238 !reader.PopString(&signal_name)) {
240 LOG(ERROR) << "Unexpected method call: " << method_call->ToString(); 239 LOG(ERROR) << "Unexpected method call: " << method_call->ToString();
241 response_sender.Run(NULL); 240 return NULL;
242 return;
243 } 241 }
244 242
245 resolver_->ResolveProxy(source_url, 243 resolver_->ResolveProxy(source_url,
246 signal_interface, 244 signal_interface,
247 signal_name, 245 signal_name,
248 exported_object_); 246 exported_object_);
249 247
250 // Return an empty response for now. We'll send a signal once the 248 // Return an empty response for now. We'll send a signal once the
251 // network proxy resolution is completed. 249 // network proxy resolution is completed.
252 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 250 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
253 response_sender.Run(response); 251 return response;
254 } 252 }
255 253
256 // static 254 // static
257 void ProxyResolutionServiceProvider::CallResolveProxyHandler( 255 dbus::Response* ProxyResolutionServiceProvider::CallResolveProxyHandler(
258 base::WeakPtr<ProxyResolutionServiceProvider> provider_weak_ptr, 256 base::WeakPtr<ProxyResolutionServiceProvider> provider_weak_ptr,
259 dbus::MethodCall* method_call, 257 dbus::MethodCall* method_call) {
260 dbus::ExportedObject::ResponseSender response_sender) {
261 if (!provider_weak_ptr) { 258 if (!provider_weak_ptr) {
262 LOG(WARNING) << "Called after the object is deleted"; 259 LOG(WARNING) << "Called after the object is deleted";
263 response_sender.Run(NULL); 260 return NULL;
264 return;
265 } 261 }
266 provider_weak_ptr->ResolveProxyHandler(method_call, response_sender); 262 return provider_weak_ptr->ResolveProxyHandler(method_call);
267 } 263 }
268 264
269 ProxyResolutionServiceProvider* ProxyResolutionServiceProvider::Create() { 265 ProxyResolutionServiceProvider* ProxyResolutionServiceProvider::Create() {
270 return new ProxyResolutionServiceProvider(new ProxyResolverImpl); 266 return new ProxyResolutionServiceProvider(new ProxyResolverImpl);
271 } 267 }
272 268
273 ProxyResolutionServiceProvider* 269 ProxyResolutionServiceProvider*
274 ProxyResolutionServiceProvider::CreateForTesting( 270 ProxyResolutionServiceProvider::CreateForTesting(
275 ProxyResolverInterface* resolver) { 271 ProxyResolverInterface* resolver) {
276 return new ProxyResolutionServiceProvider(resolver); 272 return new ProxyResolutionServiceProvider(resolver);
277 } 273 }
278 274
279 ProxyResolverInterface::~ProxyResolverInterface() { 275 ProxyResolverInterface::~ProxyResolverInterface() {
280 } 276 }
281 277
282 } // namespace chromeos 278 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h ('k') | dbus/bus.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698