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_SYSTEM_POLICY_REQUEST_CONTEXT_H_ 11#define COMPONENTS_POLICY_CORE_COMMON_CLOUD_SYSTEM_POLICY_REQUEST_CONTEXT_H_ 12 13namespace net { 14class HttpNetworkLayer; 15} 16 17namespace policy { 18 19class POLICY_EXPORT SystemPolicyRequestContext 20 : public net::URLRequestContextGetter { 21 public: 22 SystemPolicyRequestContext( 23 scoped_refptr<net::URLRequestContextGetter> system_context_getter, 24 const std::string& user_agent); 25 26 // Overridden from net::URLRequestContextGetter: 27 virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE; 28 virtual scoped_refptr<base::SingleThreadTaskRunner> 29 GetNetworkTaskRunner() const OVERRIDE; 30 31 protected: 32 virtual ~SystemPolicyRequestContext(); 33 34 private: 35 scoped_refptr<net::URLRequestContextGetter> system_context_getter_; 36 37 // The lazy-initialized URLRequestContext associated with this getter. 38 scoped_ptr<net::URLRequestContext> context_; 39 40 // HttpNetworkLayer associated with |context_|. 41 scoped_ptr<net::HttpNetworkLayer> http_transaction_factory_; 42 43 net::StaticHttpUserAgentSettings http_user_agent_settings_; 44 DISALLOW_COPY_AND_ASSIGN(SystemPolicyRequestContext); 45}; 46 47} // namespace policy 48 49#endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_SYSTEM_POLICY_REQUEST_CONTEXT_H_ 50