Index: chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc |
diff --git a/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc b/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc |
index 0b31559bbb6c8a7fc97635f8758598fbf1e385af..cbcbe3a27e5a27657b24599287fb8f558f718c2e 100644 |
--- a/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc |
+++ b/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
+#include <string> |
+#include "base/command_line.h" |
#include "base/files/file_path.h" |
#include "base/logging.h" |
#include "base/message_loop/message_loop_proxy.h" |
@@ -22,6 +24,7 @@ |
#include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "chrome/browser/chromeos/settings/device_settings_service.h" |
+#include "chrome/browser/policy/device_management_service_configuration.h" |
#include "chrome/common/pref_names.h" |
#include "chromeos/chromeos_paths.h" |
#include "chromeos/chromeos_switches.h" |
@@ -46,6 +49,13 @@ namespace policy { |
namespace { |
+// TODO(davidyu): Update the URL to the real one once it is ready. |
+// http://crbug.com/366491. |
+// |
+// The URL for the consumer device management server. |
+const char kDefaultConsumerDeviceManagementServerUrl[] = |
+ "https://m.google.com/devicemanagement/data/api"; |
+ |
// Install attributes for tests. |
EnterpriseInstallAttributes* g_testing_install_attributes = NULL; |
@@ -58,6 +68,16 @@ scoped_refptr<base::SequencedTaskRunner> GetBackgroundTaskRunner() { |
pool->GetSequenceToken(), base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); |
} |
+std::string GetConsumerDeviceManagementServerUrl() { |
+ const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch( |
+ chromeos::switches::kConsumerDeviceManagementUrl)) { |
+ return command_line->GetSwitchValueASCII( |
+ chromeos::switches::kConsumerDeviceManagementUrl); |
+ } |
+ return kDefaultConsumerDeviceManagementServerUrl; |
+}; |
+ |
} // namespace |
BrowserPolicyConnectorChromeOS::BrowserPolicyConnectorChromeOS() |
@@ -110,6 +130,14 @@ void BrowserPolicyConnectorChromeOS::Init( |
scoped_refptr<net::URLRequestContextGetter> request_context) { |
ChromeBrowserPolicyConnector::Init(local_state, request_context); |
+ scoped_ptr<DeviceManagementService::Configuration> configuration( |
+ new DeviceManagementServiceConfiguration( |
+ GetConsumerDeviceManagementServerUrl())); |
+ consumer_device_management_service_.reset( |
+ new DeviceManagementService(configuration.Pass())); |
+ consumer_device_management_service_->ScheduleInitialization( |
+ kServiceInitializationStartupDelay); |
+ |
if (device_cloud_policy_manager_) { |
// Note: for now the |device_cloud_policy_manager_| is using the global |
// schema registry. Eventually it will have its own registry, once device |