| Index: components/policy/core/common/cloud/cloud_policy_client.h
|
| diff --git a/components/policy/core/common/cloud/cloud_policy_client.h b/components/policy/core/common/cloud/cloud_policy_client.h
|
| index 3cb846808cf518f97ce52a498e632c3dfd1d17d1..4fefa864743c5f32ba3a94d1219c20c9f4d4bb97 100644
|
| --- a/components/policy/core/common/cloud/cloud_policy_client.h
|
| +++ b/components/policy/core/common/cloud/cloud_policy_client.h
|
| @@ -14,6 +14,7 @@
|
| #include "base/basictypes.h"
|
| #include "base/callback.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/scoped_vector.h"
|
| #include "base/observer_list.h"
|
| #include "base/time/time.h"
|
| #include "components/policy/core/common/cloud/cloud_policy_constants.h"
|
| @@ -216,6 +217,9 @@ class POLICY_EXPORT CloudPolicyClient {
|
|
|
| scoped_refptr<net::URLRequestContextGetter> GetRequestContext();
|
|
|
| + // Returns the number of active requests.
|
| + int GetActiveRequestCountForTest() const;
|
| +
|
| protected:
|
| // A set of (policy type, settings entity ID) pairs to fetch.
|
| typedef std::set<std::pair<std::string, std::string>> PolicyTypeSet;
|
| @@ -249,6 +253,7 @@ class POLICY_EXPORT CloudPolicyClient {
|
|
|
| // Callback for certificate upload requests.
|
| void OnCertificateUploadCompleted(
|
| + const DeviceManagementRequestJob* job,
|
| const StatusCallback& callback,
|
| DeviceManagementStatus status,
|
| int net_error,
|
| @@ -256,11 +261,15 @@ class POLICY_EXPORT CloudPolicyClient {
|
|
|
| // Callback for status upload requests.
|
| void OnStatusUploadCompleted(
|
| + const DeviceManagementRequestJob* job,
|
| const StatusCallback& callback,
|
| DeviceManagementStatus status,
|
| int net_error,
|
| const enterprise_management::DeviceManagementResponse& response);
|
|
|
| + // Helper to remove a job from request_jobs_.
|
| + void RemoveJob(const DeviceManagementRequestJob* job);
|
| +
|
| // Observer notification helpers.
|
| void NotifyPolicyFetched();
|
| void NotifyRegistrationStateChanged();
|
| @@ -293,7 +302,14 @@ class POLICY_EXPORT CloudPolicyClient {
|
|
|
| // Used for issuing requests to the cloud.
|
| DeviceManagementService* service_;
|
| - scoped_ptr<DeviceManagementRequestJob> request_job_;
|
| +
|
| + // Only one outstanding policy fetch is allowed, so this is tracked in
|
| + // its own member variable.
|
| + scoped_ptr<DeviceManagementRequestJob> policy_fetch_request_job_;
|
| +
|
| + // All of the outstanding non-policy-fetch request jobs. These jobs are
|
| + // silently cancelled if Unregister() is called.
|
| + ScopedVector<DeviceManagementRequestJob> request_jobs_;
|
|
|
| // The policy responses returned by the last policy fetch operation.
|
| ResponseMap responses_;
|
|
|