Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(543)

Unified Diff: chrome/browser/policy/device_token_fetcher.cc

Issue 7298012: Consolidate data storage and notifications in the cloud policy subsystem (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/policy/device_token_fetcher.cc
diff --git a/chrome/browser/policy/device_token_fetcher.cc b/chrome/browser/policy/device_token_fetcher.cc
index fe9cbb2ddbc8d83d5f917cc911abb52926d1e92e..5cb59fc38e33d2136b1f956f3593ec2a309baed1 100644
--- a/chrome/browser/policy/device_token_fetcher.cc
+++ b/chrome/browser/policy/device_token_fetcher.cc
@@ -8,9 +8,9 @@
#include "base/bind.h"
#include "base/callback.h"
-#include "base/message_loop.h"
#include "base/metrics/histogram.h"
#include "chrome/browser/policy/cloud_policy_cache_base.h"
+#include "chrome/browser/policy/cloud_policy_data_store.h"
#include "chrome/browser/policy/device_management_service.h"
#include "chrome/browser/policy/enterprise_metrics.h"
#include "chrome/browser/policy/proto/device_management_constants.h"
@@ -34,9 +34,11 @@ namespace em = enterprise_management;
DeviceTokenFetcher::DeviceTokenFetcher(
DeviceManagementService* service,
CloudPolicyCacheBase* cache,
+ CloudPolicyDataStore* data_store,
PolicyNotifier* notifier) {
Initialize(service,
cache,
+ data_store,
notifier,
new DelayedWorkScheduler);
}
@@ -44,36 +46,24 @@ DeviceTokenFetcher::DeviceTokenFetcher(
DeviceTokenFetcher::DeviceTokenFetcher(
DeviceManagementService* service,
CloudPolicyCacheBase* cache,
+ CloudPolicyDataStore* data_store,
PolicyNotifier* notifier,
DelayedWorkScheduler* scheduler) {
- Initialize(service,
- cache,
- notifier,
- scheduler);
+ Initialize(service, cache, data_store, notifier, scheduler);
}
DeviceTokenFetcher::~DeviceTokenFetcher() {
scheduler_->CancelDelayedWork();
}
-void DeviceTokenFetcher::FetchToken(
- const std::string& auth_token,
- const std::string& device_id,
- em::DeviceRegisterRequest_Type policy_type,
- const std::string& machine_id,
- const std::string& machine_model) {
+void DeviceTokenFetcher::FetchToken() {
SetState(STATE_INACTIVE);
- auth_token_ = auth_token;
- device_id_ = device_id;
- policy_type_ = policy_type;
- machine_id_ = machine_id;
- machine_model_ = machine_model;
FetchTokenInternal();
}
void DeviceTokenFetcher::FetchTokenInternal() {
DCHECK(state_ != STATE_TOKEN_AVAILABLE);
- if (auth_token_.empty() || device_id_.empty()) {
+ if (data_store_->gaia_token().empty() || data_store_->device_id().empty()) {
// Maybe this device is unmanaged, just exit. The CloudPolicyController
// will call FetchToken() again if something changes.
return;
@@ -81,12 +71,14 @@ void DeviceTokenFetcher::FetchTokenInternal() {
// Construct a new backend, which will discard any previous requests.
backend_.reset(service_->CreateBackend());
em::DeviceRegisterRequest request;
- request.set_type(policy_type_);
- if (!machine_id_.empty())
- request.set_machine_id(machine_id_);
- if (!machine_model_.empty())
- request.set_machine_model(machine_model_);
- backend_->ProcessRegisterRequest(auth_token_, device_id_, request, this);
+ request.set_type(data_store_->policy_register_type());
+ if (!data_store_->machine_id().empty())
+ request.set_machine_id(data_store_->machine_id());
+ if (!data_store_->machine_model().empty())
+ request.set_machine_model(data_store_->machine_model());
+ backend_->ProcessRegisterRequest(data_store_->gaia_token(),
+ data_store_->device_id(),
+ request, this);
}
void DeviceTokenFetcher::SetUnmanagedState() {
@@ -97,25 +89,9 @@ void DeviceTokenFetcher::SetUnmanagedState() {
SetState(STATE_UNMANAGED);
}
-const std::string& DeviceTokenFetcher::GetDeviceToken() {
- return device_token_;
-}
-
void DeviceTokenFetcher::StopAutoRetry() {
scheduler_->CancelDelayedWork();
backend_.reset();
- device_token_.clear();
- auth_token_.clear();
- device_id_.clear();
-}
-
-void DeviceTokenFetcher::AddObserver(DeviceTokenFetcher::Observer* observer) {
- observer_list_.AddObserver(observer);
-}
-
-void DeviceTokenFetcher::RemoveObserver(
- DeviceTokenFetcher::Observer* observer) {
- observer_list_.RemoveObserver(observer);
}
void DeviceTokenFetcher::HandleRegisterResponse(
@@ -123,7 +99,7 @@ void DeviceTokenFetcher::HandleRegisterResponse(
if (response.has_device_management_token()) {
UMA_HISTOGRAM_ENUMERATION(kMetricToken, kMetricTokenFetchOK,
kMetricTokenSize);
- device_token_ = response.device_management_token();
+ data_store_->SetDeviceToken(response.device_management_token(), false);
SetState(STATE_TOKEN_AVAILABLE);
} else {
NOTREACHED();
@@ -156,11 +132,13 @@ void DeviceTokenFetcher::OnError(DeviceManagementBackend::ErrorCode code) {
void DeviceTokenFetcher::Initialize(DeviceManagementService* service,
CloudPolicyCacheBase* cache,
+ CloudPolicyDataStore* data_store,
PolicyNotifier* notifier,
DelayedWorkScheduler* scheduler) {
service_ = service;
cache_ = cache;
notifier_ = notifier;
+ data_store_ = data_store;
effective_token_fetch_error_delay_ms_ = kTokenFetchErrorDelayMilliseconds;
state_ = STATE_INACTIVE;
scheduler_.reset(scheduler);
@@ -177,15 +155,11 @@ void DeviceTokenFetcher::SetState(FetcherState state) {
base::Time delayed_work_at;
switch (state_) {
case STATE_INACTIVE:
- device_token_.clear();
- auth_token_.clear();
- device_id_.clear();
notifier_->Inform(CloudPolicySubsystem::UNENROLLED,
CloudPolicySubsystem::NO_DETAILS,
PolicyNotifier::TOKEN_FETCHER);
break;
case STATE_TOKEN_AVAILABLE:
- FOR_EACH_OBSERVER(Observer, observer_list_, OnDeviceTokenAvailable());
notifier_->Inform(CloudPolicySubsystem::SUCCESS,
CloudPolicySubsystem::NO_DETAILS,
PolicyNotifier::TOKEN_FETCHER);
« no previous file with comments | « chrome/browser/policy/device_token_fetcher.h ('k') | chrome/browser/policy/device_token_fetcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698