| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQUES
T_HANDLER_H_ | 5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQUES
T_HANDLER_H_ |
| 6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQUES
T_HANDLER_H_ | 6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQUES
T_HANDLER_H_ |
| 7 | 7 |
| 8 #include "base/gtest_prod_util.h" | 8 #include "base/gtest_prod_util.h" |
| 9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
| 10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 extern const char kClientChromeAndroid[]; | 33 extern const char kClientChromeAndroid[]; |
| 34 extern const char kClientChromeIOS[]; | 34 extern const char kClientChromeIOS[]; |
| 35 | 35 |
| 36 class DataReductionProxyParams; | 36 class DataReductionProxyParams; |
| 37 | 37 |
| 38 class DataReductionProxyAuthRequestHandler { | 38 class DataReductionProxyAuthRequestHandler { |
| 39 public: | 39 public: |
| 40 static bool IsKeySetOnCommandLine(); | 40 static bool IsKeySetOnCommandLine(); |
| 41 | 41 |
| 42 // Constructs a DataReductionProxyAuthRequestHandler object with the given | 42 // Constructs a DataReductionProxyAuthRequestHandler object with the given |
| 43 // client, version, params, and network task runner. The Chromium |version| is | 43 // client type, params, and network task runner. |
| 44 // expected to be of the form "xx.xx.xx.xx". If it isn't of this form, | |
| 45 // |build_number_| and |patch_number_| are set to empty strings and not | |
| 46 // included in the header. http://crbug.com/410127 will change this so that | |
| 47 // the version is retrieved inside this constructor. | |
| 48 DataReductionProxyAuthRequestHandler( | 44 DataReductionProxyAuthRequestHandler( |
| 49 const std::string& client, | 45 const std::string& client, |
| 50 const std::string& version, | |
| 51 DataReductionProxyParams* params, | 46 DataReductionProxyParams* params, |
| 52 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner); | 47 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner); |
| 53 | 48 |
| 54 virtual ~DataReductionProxyAuthRequestHandler(); | 49 virtual ~DataReductionProxyAuthRequestHandler(); |
| 55 | 50 |
| 56 // Adds a 'Chrome-Proxy' header to |request_headers| with the data reduction | 51 // Adds a 'Chrome-Proxy' header to |request_headers| with the data reduction |
| 57 // proxy authentication credentials. Only adds this header if the provided | 52 // proxy authentication credentials. Only adds this header if the provided |
| 58 // |proxy_server| is a data reduction proxy and not the data reduction proxy's | 53 // |proxy_server| is a data reduction proxy and not the data reduction proxy's |
| 59 // CONNECT server. Must be called on the IO thread. | 54 // CONNECT server. Must be called on the IO thread. |
| 60 void MaybeAddRequestHeader(net::URLRequest* request, | 55 void MaybeAddRequestHeader(net::URLRequest* request, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 85 // the data reduction proxy feature isn't available. | 80 // the data reduction proxy feature isn't available. |
| 86 static base::string16 AuthHashForSalt(int64 salt, | 81 static base::string16 AuthHashForSalt(int64 salt, |
| 87 const std::string& key); | 82 const std::string& key); |
| 88 // Visible for testing. | 83 // Visible for testing. |
| 89 virtual base::Time Now() const; | 84 virtual base::Time Now() const; |
| 90 virtual void RandBytes(void* output, size_t length); | 85 virtual void RandBytes(void* output, size_t length); |
| 91 | 86 |
| 92 // Visible for testing. | 87 // Visible for testing. |
| 93 virtual std::string GetDefaultKey() const; | 88 virtual std::string GetDefaultKey() const; |
| 94 | 89 |
| 90 // Visible for testing. |
| 91 DataReductionProxyAuthRequestHandler( |
| 92 const std::string& client, |
| 93 const std::string& version, |
| 94 DataReductionProxyParams* params, |
| 95 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner); |
| 96 |
| 95 private: | 97 private: |
| 96 FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest, | 98 FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest, |
| 97 Authorization); | 99 Authorization); |
| 98 FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest, | 100 FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest, |
| 99 AuthorizationBogusVersion); | 101 AuthorizationBogusVersion); |
| 100 FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest, | 102 FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest, |
| 101 AuthHashForSalt); | 103 AuthHashForSalt); |
| 102 | 104 |
| 105 // Returns the version of Chromium that is being used. |
| 106 std::string ChromiumVersion() const; |
| 107 |
| 103 // Returns the build and patch numbers of |version|. If |version| isn't of the | 108 // Returns the build and patch numbers of |version|. If |version| isn't of the |
| 104 // form xx.xx.xx.xx build and patch are not modified. | 109 // form xx.xx.xx.xx build and patch are not modified. |
| 105 void GetChromiumBuildAndPatch(const std::string& version, | 110 void GetChromiumBuildAndPatch(const std::string& version, |
| 106 std::string* build, | 111 std::string* build, |
| 107 std::string* patch); | 112 std::string* patch) const; |
| 108 | 113 |
| 109 // Stores the supplied key and sets up credentials suitable for authenticating | 114 // Stores the supplied key and sets up credentials suitable for authenticating |
| 110 // with the data reduction proxy. | 115 // with the data reduction proxy. |
| 111 void InitAuthentication(const std::string& key); | 116 void InitAuthentication(const std::string& key); |
| 112 | 117 |
| 113 // Generates a session ID and credentials suitable for authenticating with | 118 // Generates a session ID and credentials suitable for authenticating with |
| 114 // the data reduction proxy. | 119 // the data reduction proxy. |
| 115 void ComputeCredentials(const base::Time& now, | 120 void ComputeCredentials(const base::Time& now, |
| 116 std::string* session, | 121 std::string* session, |
| 117 std::string* credentials); | 122 std::string* credentials); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 143 | 148 |
| 144 DataReductionProxyParams* data_reduction_proxy_params_; | 149 DataReductionProxyParams* data_reduction_proxy_params_; |
| 145 | 150 |
| 146 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; | 151 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; |
| 147 | 152 |
| 148 DISALLOW_COPY_AND_ASSIGN(DataReductionProxyAuthRequestHandler); | 153 DISALLOW_COPY_AND_ASSIGN(DataReductionProxyAuthRequestHandler); |
| 149 }; | 154 }; |
| 150 | 155 |
| 151 } // namespace data_reduction_proxy | 156 } // namespace data_reduction_proxy |
| 152 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQ
UEST_HANDLER_H_ | 157 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQ
UEST_HANDLER_H_ |
| OLD | NEW |