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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_POLICY_CHROME_BROWSER_POLICY_CONNECTOR_H_ 6#define CHROME_BROWSER_POLICY_CHROME_BROWSER_POLICY_CONNECTOR_H_ 7 8#include "base/basictypes.h" 9#include "base/memory/ref_counted.h" 10#include "components/policy/core/browser/browser_policy_connector.h" 11 12class PrefService; 13 14namespace net { 15class URLRequestContextGetter; 16} 17 18namespace policy { 19 20class ConfigurationPolicyProvider; 21 22// Extends BrowserPolicyConnector with the setup shared among the desktop 23// implementations and Android. 24class ChromeBrowserPolicyConnector : public BrowserPolicyConnector { 25 public: 26 // Service initialization delay time in millisecond on startup. (So that 27 // displaying Chrome's GUI does not get delayed.) 28 static const int64 kServiceInitializationStartupDelay = 5000; 29 30 // Builds an uninitialized ChromeBrowserPolicyConnector, suitable for testing. 31 // Init() should be called to create and start the policy machinery. 32 ChromeBrowserPolicyConnector(); 33 34 virtual ~ChromeBrowserPolicyConnector(); 35 36 virtual void Init( 37 PrefService* local_state, 38 scoped_refptr<net::URLRequestContextGetter> request_context) OVERRIDE; 39 40 private: 41 ConfigurationPolicyProvider* CreatePlatformProvider(); 42 43 // Appends the --enable-web-based-signin flag if the 44 // enable-web-based-signin policy is enabled. 45 // TODO(guohui): Needs to move this to a more proper place and also to handle 46 // dynamic refresh. 47 void AppendExtraFlagPerPolicy(); 48 49 DISALLOW_COPY_AND_ASSIGN(ChromeBrowserPolicyConnector); 50}; 51 52} // namespace policy 53 54#endif // CHROME_BROWSER_POLICY_CHROME_BROWSER_POLICY_CONNECTOR_H_ 55