Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / components / policy / core / common / cloud / user_policy_request_context.h
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.
4
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"
9
10 #ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_POLICY_REQUEST_CONTEXT_H_
11 #define COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_POLICY_REQUEST_CONTEXT_H_
12
13 namespace net {
14 class HttpNetworkLayer;
15 }
16
17 namespace policy {
18
19 class POLICY_EXPORT UserPolicyRequestContext
20     : public net::URLRequestContextGetter {
21  public:
22   UserPolicyRequestContext(
23       scoped_refptr<net::URLRequestContextGetter> user_context_getter,
24       scoped_refptr<net::URLRequestContextGetter> system_context_getter,
25       const std::string& user_agent);
26
27   // Overridden from net::URLRequestContextGetter:
28   net::URLRequestContext* GetURLRequestContext() override;
29   scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner()
30       const override;
31
32  protected:
33   ~UserPolicyRequestContext() override;
34
35  private:
36   scoped_refptr<net::URLRequestContextGetter> user_context_getter_;
37   scoped_refptr<net::URLRequestContextGetter> system_context_getter_;
38
39   // The lazy-initialized URLRequestContext associated with this getter.
40   scoped_ptr<net::URLRequestContext> context_;
41
42   // HttpNetworkLayer associated with |context_|.
43   scoped_ptr<net::HttpNetworkLayer> http_transaction_factory_;
44
45   net::StaticHttpUserAgentSettings http_user_agent_settings_;
46   DISALLOW_COPY_AND_ASSIGN(UserPolicyRequestContext);
47 };
48
49 }  // namespace policy
50
51 #endif  // COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_POLICY_REQUEST_CONTEXT_H_