OLD | NEW |
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 Loading... |
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 |
OLD | NEW |