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 12 class PrefService; 13 14 namespace net { 15 class URLRequestContextGetter; 16 } 17 18 namespace policy { 19 20 class ConfigurationPolicyProvider; 21 22 // Extends BrowserPolicyConnector with the setup shared among the desktop 23 // implementations and Android. 24 class 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