| Index: chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc
|
| diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc
|
| index 48091bdd93e4b5d9ad95797213f5aee74b2e0914..ad922d83194ef17c758ee71d9bddd36a977f76e0 100644
|
| --- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc
|
| +++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc
|
| @@ -17,6 +17,7 @@
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chromeos/login/login_utils.h"
|
| #include "chrome/browser/chromeos/login/users/user.h"
|
| +#include "chrome/browser/chromeos/login/users/user_manager.h"
|
| #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
| #include "chrome/browser/chromeos/policy/user_cloud_external_data_manager.h"
|
| #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
|
| @@ -29,6 +30,7 @@
|
| #include "chromeos/chromeos_switches.h"
|
| #include "chromeos/dbus/dbus_thread_manager.h"
|
| #include "components/keyed_service/content/browser_context_dependency_manager.h"
|
| +#include "components/policy/core/browser/browser_policy_connector.h"
|
| #include "components/policy/core/common/cloud/cloud_external_data_manager.h"
|
| #include "components/policy/core/common/cloud/device_management_service.h"
|
| #include "components/user_manager/user_type.h"
|
| @@ -138,6 +140,8 @@ scoped_ptr<UserCloudPolicyManagerChromeOS>
|
| BrowserPolicyConnector::IsNonEnterpriseUser(username)) {
|
| return scoped_ptr<UserCloudPolicyManagerChromeOS>();
|
| }
|
| + // If the user is known to be a non enterprise user, we don't reach this code.
|
| + DCHECK(!BrowserPolicyConnector::IsNonEnterpriseUser(username));
|
|
|
| policy::BrowserPolicyConnectorChromeOS* connector =
|
| g_browser_process->platform_part()->browser_policy_connector_chromeos();
|
| @@ -145,7 +149,15 @@ scoped_ptr<UserCloudPolicyManagerChromeOS>
|
| const bool is_managed_user = affiliation == USER_AFFILIATION_MANAGED;
|
| const bool is_browser_restart =
|
| command_line->HasSwitch(chromeos::switches::kLoginUser);
|
| - const bool wait_for_initial_policy = is_managed_user && !is_browser_restart;
|
| + const bool wait_for_initial_policy =
|
| + (chromeos::UserManager::Get()->IsCurrentUserNew() ? true
|
| + : is_managed_user) &&
|
| + !is_browser_restart;
|
| +
|
| + const base::TimeDelta initial_policy_fetch_timeout =
|
| + chromeos::UserManager::Get()->IsCurrentUserNew()
|
| + ? base::TimeDelta::Max()
|
| + : base::TimeDelta::FromSeconds(kInitialPolicyFetchTimeoutSeconds);
|
|
|
| DeviceManagementService* device_management_service =
|
| connector->device_management_service();
|
| @@ -195,7 +207,7 @@ scoped_ptr<UserCloudPolicyManagerChromeOS>
|
| external_data_manager.Pass(),
|
| component_policy_cache_dir,
|
| wait_for_initial_policy,
|
| - base::TimeDelta::FromSeconds(kInitialPolicyFetchTimeoutSeconds),
|
| + initial_policy_fetch_timeout,
|
| base::MessageLoopProxy::current(),
|
| file_task_runner,
|
| io_task_runner));
|
|
|