 Chromium Code Reviews
 Chromium Code Reviews Issue 6681042:
  AU: Handle inability to get proxy servers from Chrome better.  (Closed) 
  Base URL: http://git.chromium.org/git/update_engine.git@master
    
  
    Issue 6681042:
  AU: Handle inability to get proxy servers from Chrome better.  (Closed) 
  Base URL: http://git.chromium.org/git/update_engine.git@master| OLD | NEW | 
|---|---|
| 1 // Copyright (c) 2011 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium OS 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 "update_engine/chrome_browser_proxy_resolver.h" | 5 #include "update_engine/chrome_browser_proxy_resolver.h" | 
| 6 | 6 | 
| 7 #include <map> | 7 #include <map> | 
| 8 #include <string> | 8 #include <string> | 
| 9 | 9 | 
| 10 #include <base/string_tokenizer.h> | 10 #include <base/string_tokenizer.h> | 
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 121 ++it) { | 121 ++it) { | 
| 122 g_source_destroy(it->second); | 122 g_source_destroy(it->second); | 
| 123 it->second = NULL; | 123 it->second = NULL; | 
| 124 } | 124 } | 
| 125 } | 125 } | 
| 126 | 126 | 
| 127 bool ChromeBrowserProxyResolver::GetProxiesForUrl(const string& url, | 127 bool ChromeBrowserProxyResolver::GetProxiesForUrl(const string& url, | 
| 128 ProxiesResolvedFn callback, | 128 ProxiesResolvedFn callback, | 
| 129 void* data) { | 129 void* data) { | 
| 130 GError* error = NULL; | 130 GError* error = NULL; | 
| 131 TEST_AND_RETURN_FALSE(proxy_); | 131 guint timeout = timeout_; | 
| 132 if (!dbus_->ProxyCall( | 132 if (!proxy_ || !dbus_->ProxyCall( | 
| 133 proxy_, | 133 proxy_, | 
| 134 kLibCrosServiceResolveNetworkProxyMethodName, | 134 kLibCrosServiceResolveNetworkProxyMethodName, | 
| 135 &error, | 135 &error, | 
| 136 G_TYPE_STRING, url.c_str(), | 136 G_TYPE_STRING, url.c_str(), | 
| 137 G_TYPE_STRING, kLibCrosProxyResolveSignalInterface, | 137 G_TYPE_STRING, kLibCrosProxyResolveSignalInterface, | 
| 138 G_TYPE_STRING, kLibCrosProxyResolveName, | 138 G_TYPE_STRING, kLibCrosProxyResolveName, | 
| 139 G_TYPE_INVALID, G_TYPE_INVALID)) { | 139 G_TYPE_INVALID, G_TYPE_INVALID)) { | 
| 140 LOG(ERROR) << "dbus_g_proxy_call failed: " | 140 LOG(ERROR) << "dbus_g_proxy_call failed: " | 
| 
petkov
2011/03/14 19:58:10
Change to WARNING?
 | |
| 141 << utils::GetGErrorMessage(error); | 141 << utils::GetGErrorMessage(error) | 
| 142 return false; | 142 << " Continuing with no proxy."; | 
| 143 timeout = 0; | |
| 143 } | 144 } | 
| 144 callbacks_.insert(make_pair(url, make_pair(callback, data))); | 145 callbacks_.insert(make_pair(url, make_pair(callback, data))); | 
| 145 Closure* closure = NewCallback(this, | 146 Closure* closure = NewCallback(this, | 
| 146 &ChromeBrowserProxyResolver::HandleTimeout, | 147 &ChromeBrowserProxyResolver::HandleTimeout, | 
| 147 url); | 148 url); | 
| 148 GSource* timer = g_timeout_source_new_seconds(timeout_); | 149 GSource* timer = g_timeout_source_new_seconds(timeout); | 
| 149 g_source_set_callback(timer, &utils::GlibRunClosure, closure, NULL); | 150 g_source_set_callback(timer, &utils::GlibRunClosure, closure, NULL); | 
| 150 g_source_attach(timer, NULL); | 151 g_source_attach(timer, NULL); | 
| 151 timers_.insert(make_pair(url, timer)); | 152 timers_.insert(make_pair(url, timer)); | 
| 152 return true; | 153 return true; | 
| 153 } | 154 } | 
| 154 | 155 | 
| 155 DBusHandlerResult ChromeBrowserProxyResolver::FilterMessage( | 156 DBusHandlerResult ChromeBrowserProxyResolver::FilterMessage( | 
| 156 DBusConnection* connection, | 157 DBusConnection* connection, | 
| 157 DBusMessage* message) { | 158 DBusMessage* message) { | 
| 158 // Code lifted from libcros. | 159 // Code lifted from libcros. | 
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 259 if (scheme != "direct" && host_and_port.empty()) | 260 if (scheme != "direct" && host_and_port.empty()) | 
| 260 continue; // Must supply host/port when non-direct proxy used. | 261 continue; // Must supply host/port when non-direct proxy used. | 
| 261 ret.push_back(scheme + "://" + host_and_port); | 262 ret.push_back(scheme + "://" + host_and_port); | 
| 262 } | 263 } | 
| 263 if (ret.empty() || *ret.rbegin() != kNoProxy) | 264 if (ret.empty() || *ret.rbegin() != kNoProxy) | 
| 264 ret.push_back(kNoProxy); | 265 ret.push_back(kNoProxy); | 
| 265 return ret; | 266 return ret; | 
| 266 } | 267 } | 
| 267 | 268 | 
| 268 } // namespace chromeos_update_engine | 269 } // namespace chromeos_update_engine | 
| OLD | NEW |