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

Unified Diff: chrome/browser/policy/cloud/cloud_policy_client.cc

Issue 19733003: Implement cloud policy invalidations using the invalidation service framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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/cloud/cloud_policy_client.cc
diff --git a/chrome/browser/policy/cloud/cloud_policy_client.cc b/chrome/browser/policy/cloud/cloud_policy_client.cc
index a9b30c3d6f9fd9bdc8300f1ac71caf633d6de85f..8afbc94b157f083920e8e44586f9d67e7d72916d 100644
--- a/chrome/browser/policy/cloud/cloud_policy_client.cc
+++ b/chrome/browser/policy/cloud/cloud_policy_client.cc
@@ -58,6 +58,8 @@ CloudPolicyClient::CloudPolicyClient(const std::string& machine_id,
submit_machine_id_(false),
public_key_version_(-1),
public_key_version_valid_(false),
+ invalidation_version_(0),
+ fetched_invalidation_version_(0),
service_(service), // Can be NULL for unit tests.
status_provider_(status_provider), // Can be NULL for unit tests.
status_(DM_STATUS_SUCCESS) {
@@ -125,6 +127,13 @@ void CloudPolicyClient::Register(em::DeviceRegisterRequest::Type type,
base::Unretained(this)));
}
+void CloudPolicyClient::SetInvalidationInfo(
+ int64 version,
+ const std::string& payload) {
+ invalidation_version_ = version;
+ invalidation_payload_ = payload;
+}
+
void CloudPolicyClient::FetchPolicy() {
CHECK(is_registered());
CHECK(!namespaces_to_fetch_.empty());
@@ -165,6 +174,10 @@ void CloudPolicyClient::FetchPolicy() {
last_policy_timestamp_ - base::Time::UnixEpoch());
fetch_request->set_timestamp(timestamp.InMilliseconds());
}
+ if (!invalidation_payload_.empty()) {
+ fetch_request->set_invalidation_version(invalidation_version_);
+ fetch_request->set_invalidation_payload(invalidation_payload_);
+ }
}
}
@@ -180,6 +193,10 @@ void CloudPolicyClient::FetchPolicy() {
}
}
+ // Set the fetched invalidation version to the latest invalidation version
+ // since it is now the invalidation version used for the latest fetch.
+ fetched_invalidation_version_ = invalidation_version_;
+
// Fire the job.
request_job_->Start(base::Bind(&CloudPolicyClient::OnPolicyFetchCompleted,
base::Unretained(this)));

Powered by Google App Engine
This is Rietveld 408576698