| 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 |