1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/memory/scoped_ptr.h"
6 #include "components/policy/policy_export.h"
7 #include "net/url_request/static_http_user_agent_settings.h"
8 #include "net/url_request/url_request_context_getter.h"
10 #ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_POLICY_REQUEST_CONTEXT_H_
11 #define COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_POLICY_REQUEST_CONTEXT_H_
14 class HttpNetworkLayer;
19 class POLICY_EXPORT UserPolicyRequestContext
20 : public net::URLRequestContextGetter {
22 UserPolicyRequestContext(
23 scoped_refptr<net::URLRequestContextGetter> user_context_getter,
24 scoped_refptr<net::URLRequestContextGetter> system_context_getter,
25 const std::string& user_agent);
27 // Overridden from net::URLRequestContextGetter:
28 net::URLRequestContext* GetURLRequestContext() override;
29 scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner()
33 ~UserPolicyRequestContext() override;
36 scoped_refptr<net::URLRequestContextGetter> user_context_getter_;
37 scoped_refptr<net::URLRequestContextGetter> system_context_getter_;
39 // The lazy-initialized URLRequestContext associated with this getter.
40 scoped_ptr<net::URLRequestContext> context_;
42 // HttpNetworkLayer associated with |context_|.
43 scoped_ptr<net::HttpNetworkLayer> http_transaction_factory_;
45 net::StaticHttpUserAgentSettings http_user_agent_settings_;
46 DISALLOW_COPY_AND_ASSIGN(UserPolicyRequestContext);
51 #endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_POLICY_REQUEST_CONTEXT_H_