Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_auth_request_handler.h

Issue 791493015: Adding q=low to the Chrome-Proxy request header (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase test fixes Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_auth_request_handler.h
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_auth_request_handler.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_auth_request_handler.h
deleted file mode 100644
index 4675ec4e245b16a327fe2a4a05f09921e54b9084..0000000000000000000000000000000000000000
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_auth_request_handler.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQUEST_HANDLER_H_
-#define COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQUEST_HANDLER_H_
-
-#include "base/gtest_prod_util.h"
-#include "base/memory/ref_counted.h"
-#include "base/strings/string16.h"
-#include "base/time/time.h"
-
-namespace base {
-class SingleThreadTaskRunner;
-}
-
-namespace net {
-class HostPortPair;
-class HttpRequestHeaders;
-class HttpResponseHeaders;
-class ProxyServer;
-class URLRequest;
-}
-
-namespace data_reduction_proxy {
-
-#if defined(OS_ANDROID)
-extern const char kAndroidWebViewProtocolVersion[];
-#endif
-
-#define CLIENT_ENUMS_LIST \
- CLIENT_ENUM(UNKNOWN, "") \
- CLIENT_ENUM(WEBVIEW_ANDROID, "webview") \
- CLIENT_ENUM(CHROME_ANDROID, "android") \
- CLIENT_ENUM(CHROME_IOS, "ios") \
- CLIENT_ENUM(CHROME_MAC, "mac") \
- CLIENT_ENUM(CHROME_CHROMEOS, "chromeos") \
- CLIENT_ENUM(CHROME_LINUX, "linux") \
- CLIENT_ENUM(CHROME_WINDOWS, "win") \
- CLIENT_ENUM(CHROME_FREEBSD, "freebsd") \
- CLIENT_ENUM(CHROME_OPENBSD, "openbsd") \
- CLIENT_ENUM(CHROME_SOLARIS, "solaris") \
- CLIENT_ENUM(CHROME_QNX, "qnx")
-
-#define CLIENT_ENUM(name, str_value) name,
-typedef enum {
- CLIENT_ENUMS_LIST
-} Client;
-#undef CLIENT_ENUM
-
-class DataReductionProxyParams;
-
-class DataReductionProxyAuthRequestHandler {
- public:
- static bool IsKeySetOnCommandLine();
-
- // Constructs a DataReductionProxyAuthRequestHandler object with the given
- // client type, params, and network task runner.
- DataReductionProxyAuthRequestHandler(
- Client client,
- DataReductionProxyParams* params,
- scoped_refptr<base::SingleThreadTaskRunner> network_task_runner);
-
- virtual ~DataReductionProxyAuthRequestHandler();
-
- // Adds a 'Chrome-Proxy' header to |request_headers| with the data reduction
- // proxy authentication credentials. Only adds this header if the provided
- // |proxy_server| is a data reduction proxy and not the data reduction proxy's
- // CONNECT server. Must be called on the IO thread.
- void MaybeAddRequestHeader(net::URLRequest* request,
- const net::ProxyServer& proxy_server,
- net::HttpRequestHeaders* request_headers);
-
- // Adds a 'Chrome-Proxy' header to |request_headers| with the data reduction
- // proxy authentication credentials. Only adds this header if the provided
- // |proxy_server| is the data reduction proxy's CONNECT server. Must be called
- // on the IO thread.
- void MaybeAddProxyTunnelRequestHandler(
- const net::HostPortPair& proxy_server,
- net::HttpRequestHeaders* request_headers);
-
- // Stores the supplied key and sets up credentials suitable for authenticating
- // with the data reduction proxy.
- // This can be called more than once. For example on a platform that does not
- // have a default key defined, this function will be called some time after
- // this class has been constructed. Android WebView is a platform that does
- // this. The caller needs to make sure |this| pointer is valid when
- // InitAuthentication is called.
- void InitAuthentication(const std::string& key);
-
- protected:
- void Init();
-
- void AddAuthorizationHeader(net::HttpRequestHeaders* headers);
-
- // Returns a UTF16 string that's the hash of the configured authentication
- // |key| and |salt|. Returns an empty UTF16 string if no key is configured or
- // the data reduction proxy feature isn't available.
- static base::string16 AuthHashForSalt(int64 salt,
- const std::string& key);
- // Visible for testing.
- virtual base::Time Now() const;
- virtual void RandBytes(void* output, size_t length);
-
- // Visible for testing.
- virtual std::string GetDefaultKey() const;
-
- // Visible for testing.
- DataReductionProxyAuthRequestHandler(
- Client client,
- const std::string& version,
- DataReductionProxyParams* params,
- scoped_refptr<base::SingleThreadTaskRunner> network_task_runner);
-
- private:
- FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest,
- AuthorizationOnIOThread);
- FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest,
- AuthorizationIgnoresEmptyKey);
- FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest,
- AuthorizationBogusVersion);
- FRIEND_TEST_ALL_PREFIXES(DataReductionProxyAuthRequestHandlerTest,
- AuthHashForSalt);
-
- // Returns the version of Chromium that is being used.
- std::string ChromiumVersion() const;
-
- // Returns the build and patch numbers of |version|. If |version| isn't of the
- // form xx.xx.xx.xx build and patch are not modified.
- void GetChromiumBuildAndPatch(const std::string& version,
- std::string* build,
- std::string* patch) const;
-
- // Generates a session ID and credentials suitable for authenticating with
- // the data reduction proxy.
- void ComputeCredentials(const base::Time& now,
- std::string* session,
- std::string* credentials);
-
- // Adds authentication headers only if |expects_ssl| is true and
- // |proxy_server| is a data reduction proxy used for ssl tunneling via
- // HTTP CONNECT, or |expect_ssl| is false and |proxy_server| is a data
- // reduction proxy for HTTP traffic.
- void MaybeAddRequestHeaderImpl(const net::HostPortPair& proxy_server,
- bool expect_ssl,
- net::HttpRequestHeaders* request_headers);
-
- // Authentication state.
- std::string key_;
-
- // Lives on the IO thread.
- std::string session_;
- std::string credentials_;
-
- // Name of the client and version of the data reduction proxy protocol to use.
- // Both live on the IO thread.
- std::string client_;
- std::string build_number_;
- std::string patch_number_;
-
- // The last time the session was updated. Used to ensure that a session is
- // never used for more than twenty-four hours.
- base::Time last_update_time_;
-
- DataReductionProxyParams* data_reduction_proxy_params_;
-
- scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_;
-
- DISALLOW_COPY_AND_ASSIGN(DataReductionProxyAuthRequestHandler);
-};
-
-} // namespace data_reduction_proxy
-#endif // COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_AUTH_REQUEST_HANDLER_H_

Powered by Google App Engine
This is Rietveld 408576698