Chromium Code Reviews| Index: chrome_proxy_resolver.h |
| diff --git a/chrome_proxy_resolver.h b/chrome_proxy_resolver.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..11b5f012a5719ff2255e12c5be3fe05d1294b153 |
| --- /dev/null |
| +++ b/chrome_proxy_resolver.h |
| @@ -0,0 +1,63 @@ |
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
|
petkov
2010/11/18 23:26:46
Chromium OS Authors
adlr
2010/11/19 00:41:06
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_CHROME_PROXY_RESOLVER_H__ |
| +#define CHROMEOS_PLATFORM_UPDATE_ENGINE_CHROME_PROXY_RESOLVER_H__ |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include <curl/curl.h> |
| + |
|
petkov
2010/11/18 23:26:46
remove blank line
adlr
2010/11/19 00:41:06
Done.
|
| +#include "gtest/gtest_prod.h" // for FRIEND_TEST |
|
petkov
2010/11/18 23:26:46
<gtest/gtest_prod.h>
adlr
2010/11/19 00:41:06
Done.
|
| + |
| +#include "update_engine/dbus_interface.h" |
| +#include "update_engine/proxy_resolver.h" |
| + |
| +namespace chromeos_update_engine { |
| + |
| +extern const char kSessionManagerService[]; |
| +extern const char kSessionManagerPath[]; |
| +extern const char kSessionManagerInterface[]; |
| +extern const char kSessionManagerRetreivePropertyMethod[]; |
|
petkov
2010/11/18 23:26:46
typo: Retrieve
adlr
2010/11/19 00:41:06
Done.
|
| +extern const char kSessionManagerProxySettingsKey[]; |
| + |
| +// Class to resolve proxy for a url based on Chrome's proxy settings. |
| + |
| +// Currently only supports manual settings, not PAC files or autodetected |
| +// settings. |
| + |
| +class ChromeProxyResolver : public ProxyResolver { |
| + public: |
| + explicit ChromeProxyResolver(DbusGlibInterface* dbus) : dbus_(dbus) {} |
| + virtual ~ChromeProxyResolver() {} |
| + |
| + virtual bool ProxyForUrl(const std::string& url, |
| + std::vector<std::string>* out_proxies); |
| + |
| + // Get the curl proxy type for a given proxy url. Returns true on success. |
| + // Note: if proxy is kNoProxy, this will return false. |
| + static bool ProxyTypeForProxy(const std::string& proxy, |
|
petkov
2010/11/18 23:26:46
GetProxyTypeForProxy
adlr
2010/11/19 00:41:06
Done.
|
| + curl_proxytype* out_type); |
| + |
| + private: |
| + FRIEND_TEST(ChromeProxyResolverTest, ProxyForUrlWithSettingsTest); |
|
petkov
2010/11/18 23:26:46
add an empty line after
adlr
2010/11/19 00:41:06
Done.
|
| + // Fetches a dbus proxy to session manager. Returns true on success. |
| + bool DbusProxy(DBusGProxy** out_proxy); |
|
petkov
2010/11/18 23:26:46
Maybe simplify the prototype to:
DBusGProxy* GetD
adlr
2010/11/19 00:41:06
Done.
|
| + |
| + // Fetches the json-encoded proxy settings string from the session manager. |
| + bool JsonProxySettings(DBusGProxy* proxy, std::string* out_json); |
|
petkov
2010/11/18 23:26:46
GetJsonProxySettings
adlr
2010/11/19 00:41:06
Done.
|
| + |
| + // Given a |url| and the json encoded settings |json_settings|, |
| + // returns the proper proxy server. |
|
petkov
2010/11/18 23:26:46
It returns a list of servers, right?
adlr
2010/11/19 00:41:06
yes, fixed.
|
| + bool ProxyForUrlWithSettings(const std::string& url, |
|
petkov
2010/11/18 23:26:46
GetProxyForURLWithSettings?
adlr
2010/11/19 00:41:06
GetProxiesForUrlWithSettings
|
| + const std::string& json_settings, |
| + std::vector<std::string>* out_proxies); |
| + |
| + DbusGlibInterface* dbus_; |
| +}; |
|
petkov
2010/11/18 23:26:46
DISALLOW_COPY_AND_ASSIGN?
adlr
2010/11/19 00:41:06
Done.
|
| + |
| +} // namespace chromeos_update_engine |
| + |
| +#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_CHROME_PROXY_RESOLVER_H__ |