| Index: chrome/browser/chromeos/policy/device_local_account_policy_service.cc
|
| diff --git a/chrome/browser/chromeos/policy/device_local_account_policy_service.cc b/chrome/browser/chromeos/policy/device_local_account_policy_service.cc
|
| index 150095cb11d4266b75338c6d6ae7d077387efd09..f93d6379d3a8130fe886385fc29459764078b8bd 100644
|
| --- a/chrome/browser/chromeos/policy/device_local_account_policy_service.cc
|
| +++ b/chrome/browser/chromeos/policy/device_local_account_policy_service.cc
|
| @@ -18,7 +18,9 @@
|
| #include "base/sequenced_task_runner.h"
|
| #include "base/stl_util.h"
|
| #include "base/strings/string_number_conversions.h"
|
| +#include "base/thread_task_runner_handle.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/chromeos/policy/affiliated_cloud_policy_invalidator.h"
|
| #include "chrome/browser/chromeos/policy/device_local_account.h"
|
| #include "chrome/browser/chromeos/policy/device_local_account_external_data_service.h"
|
| #include "chrome/browser/chromeos/policy/device_local_account_policy_store.h"
|
| @@ -120,8 +122,10 @@ DeviceLocalAccountPolicyBroker::DeviceLocalAccountPolicyBroker(
|
| scoped_ptr<DeviceLocalAccountPolicyStore> store,
|
| scoped_refptr<DeviceLocalAccountExternalDataManager> external_data_manager,
|
| const base::Closure& policy_update_callback,
|
| - const scoped_refptr<base::SequencedTaskRunner>& task_runner)
|
| - : account_id_(account.account_id),
|
| + const scoped_refptr<base::SequencedTaskRunner>& task_runner,
|
| + AffiliatedInvalidationServiceProvider* invalidation_service_provider)
|
| + : invalidation_service_provider_(invalidation_service_provider),
|
| + account_id_(account.account_id),
|
| user_id_(account.user_id),
|
| component_policy_cache_path_(component_policy_cache_path),
|
| store_(store.Pass()),
|
| @@ -160,6 +164,10 @@ void DeviceLocalAccountPolicyBroker::Initialize() {
|
| store_->Load();
|
| }
|
|
|
| +bool DeviceLocalAccountPolicyBroker::HasInvalidatorForTest() const {
|
| + return invalidator_;
|
| +}
|
| +
|
| void DeviceLocalAccountPolicyBroker::ConnectIfPossible(
|
| chromeos::DeviceSettingsService* device_settings_service,
|
| DeviceManagementService* device_management_service,
|
| @@ -178,6 +186,10 @@ void DeviceLocalAccountPolicyBroker::ConnectIfPossible(
|
| external_data_manager_->Connect(request_context);
|
| core_.StartRefreshScheduler();
|
| UpdateRefreshDelay();
|
| + invalidator_.reset(new AffiliatedCloudPolicyInvalidator(
|
| + em::DeviceRegisterRequest::DEVICE,
|
| + &core_,
|
| + invalidation_service_provider_));
|
| }
|
|
|
| void DeviceLocalAccountPolicyBroker::UpdateRefreshDelay() {
|
| @@ -243,6 +255,7 @@ DeviceLocalAccountPolicyService::DeviceLocalAccountPolicyService(
|
| chromeos::SessionManagerClient* session_manager_client,
|
| chromeos::DeviceSettingsService* device_settings_service,
|
| chromeos::CrosSettings* cros_settings,
|
| + AffiliatedInvalidationServiceProvider* invalidation_service_provider,
|
| scoped_refptr<base::SequencedTaskRunner> store_background_task_runner,
|
| scoped_refptr<base::SequencedTaskRunner> extension_cache_task_runner,
|
| scoped_refptr<base::SequencedTaskRunner>
|
| @@ -252,6 +265,7 @@ DeviceLocalAccountPolicyService::DeviceLocalAccountPolicyService(
|
| : session_manager_client_(session_manager_client),
|
| device_settings_service_(device_settings_service),
|
| cros_settings_(cros_settings),
|
| + invalidation_service_provider_(invalidation_service_provider),
|
| device_management_service_(nullptr),
|
| waiting_for_cros_settings_(false),
|
| orphan_extension_cache_deletion_state_(NOT_STARTED),
|
| @@ -462,7 +476,8 @@ void DeviceLocalAccountPolicyService::UpdateAccountList() {
|
| base::Bind(&DeviceLocalAccountPolicyService::NotifyPolicyUpdated,
|
| base::Unretained(this),
|
| it->user_id),
|
| - base::MessageLoopProxy::current()));
|
| + base::ThreadTaskRunnerHandle::Get(),
|
| + invalidation_service_provider_));
|
| }
|
|
|
| // Fire up the cloud connection for fetching policy for the account from
|
|
|