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

Unified Diff: trunk/src/chrome/browser/chromeos/policy/device_local_account_policy_service.h

Issue 32513006: Revert 229896 "Cache force-installed apps/extensions in device-l..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 2 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: trunk/src/chrome/browser/chromeos/policy/device_local_account_policy_service.h
===================================================================
--- trunk/src/chrome/browser/chromeos/policy/device_local_account_policy_service.h (revision 229896)
+++ trunk/src/chrome/browser/chromeos/policy/device_local_account_policy_service.h (working copy)
@@ -6,7 +6,6 @@
#define CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_LOCAL_ACCOUNT_POLICY_SERVICE_H_
#include <map>
-#include <set>
#include <string>
#include "base/basictypes.h"
@@ -15,7 +14,6 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
-#include "chrome/browser/chromeos/extensions/device_local_account_external_policy_loader.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/policy/cloud/cloud_policy_core.h"
#include "chrome/browser/policy/cloud/cloud_policy_store.h"
@@ -25,13 +23,14 @@
}
namespace chromeos {
+class CrosSettings;
class DeviceSettingsService;
class SessionManagerClient;
}
namespace policy {
-struct DeviceLocalAccount;
+class CloudPolicyClient;
class DeviceLocalAccountPolicyStore;
class DeviceManagementService;
@@ -40,31 +39,19 @@
class DeviceLocalAccountPolicyBroker {
public:
// |task_runner| is the runner for policy refresh tasks.
- DeviceLocalAccountPolicyBroker(
- const DeviceLocalAccount& account,
+ explicit DeviceLocalAccountPolicyBroker(
+ const std::string& user_id,
scoped_ptr<DeviceLocalAccountPolicyStore> store,
const scoped_refptr<base::SequencedTaskRunner>& task_runner);
~DeviceLocalAccountPolicyBroker();
- // Initialize the broker, loading its |store_|.
- void Initialize();
-
- // For the difference between |account_id| and |user_id|, see the
- // documentation of DeviceLocalAccount.
- const std::string& account_id() const { return account_id_; }
const std::string& user_id() const { return user_id_; }
- scoped_refptr<chromeos::DeviceLocalAccountExternalPolicyLoader>
- extension_loader() const { return extension_loader_; }
-
CloudPolicyCore* core() { return &core_; }
const CloudPolicyCore* core() const { return &core_; }
- // Fire up the cloud connection for fetching policy for the account from the
- // cloud if this is an enterprise-managed device.
- void ConnectIfPossible(
- chromeos::DeviceSettingsService* device_settings_service,
- DeviceManagementService* device_management_service);
+ // Establish a cloud connection for the service.
+ void Connect(scoped_ptr<CloudPolicyClient> client);
// Destroy the cloud connection, stopping policy refreshes.
void Disconnect();
@@ -77,11 +64,8 @@
std::string GetDisplayName() const;
private:
- const std::string account_id_;
const std::string user_id_;
- const scoped_ptr<DeviceLocalAccountPolicyStore> store_;
- scoped_refptr<chromeos::DeviceLocalAccountExternalPolicyLoader>
- extension_loader_;
+ scoped_ptr<DeviceLocalAccountPolicyStore> store_;
CloudPolicyCore core_;
DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyBroker);
@@ -109,8 +93,7 @@
chromeos::SessionManagerClient* session_manager_client,
chromeos::DeviceSettingsService* device_settings_service,
chromeos::CrosSettings* cros_settings,
- scoped_refptr<base::SequencedTaskRunner> store_background_task_runner,
- scoped_refptr<base::SequencedTaskRunner> extension_cache_task_runner);
+ scoped_refptr<base::SequencedTaskRunner> background_task_runner);
virtual ~DeviceLocalAccountPolicyService();
// Initializes the cloud policy service connection.
@@ -135,32 +118,31 @@
virtual void OnStoreError(CloudPolicyStore* store) OVERRIDE;
private:
- typedef std::map<std::string, DeviceLocalAccountPolicyBroker*>
- PolicyBrokerMap;
+ struct PolicyBrokerWrapper {
+ PolicyBrokerWrapper();
+ ~PolicyBrokerWrapper();
- // Returns |true| if the directory in which force-installed extensions are
- // cached for |account_id| is busy, either because a broker that was using
- // this directory has not shut down completely yet or because the directory is
- // being deleted.
- bool IsExtensionCacheDirectoryBusy(const std::string& account_id);
+ // Return the |broker|, creating it first if necessary.
+ DeviceLocalAccountPolicyBroker* GetBroker();
- // Starts any extension caches that are not running yet but can be started now
- // because their cache directories are no longer busy.
- void StartExtensionCachesIfPossible();
+ // Fire up the cloud connection for fetching policy for the account from the
+ // cloud if this is an enterprise-managed device.
+ void ConnectIfPossible();
- // Checks whether a broker exists for |account_id|. If so, starts the broker's
- // extension cache and returns |true|. Otherwise, returns |false|.
- bool StartExtensionCacheForAccountIfPresent(const std::string& account_id);
+ // Destroy the cloud connection.
+ void Disconnect();
- // Called back when any extension caches belonging to device-local accounts
- // that no longer exist have been removed at start-up.
- void OnOrphanedExtensionCachesDeleted();
+ // Delete the broker.
+ void DeleteBroker();
- // Called back when the extension cache for |account_id| has been shut down.
- void OnObsoleteExtensionCacheShutdown(const std::string& account_id);
+ std::string user_id;
+ std::string account_id;
+ DeviceLocalAccountPolicyService* parent;
+ DeviceLocalAccountPolicyBroker* broker;
+ scoped_refptr<base::SequencedTaskRunner> background_task_runner;
+ };
- // Called back when the extension cache for |account_id| has been removed.
- void OnObsoleteExtensionCacheDeleted(const std::string& account_id);
+ typedef std::map<std::string, PolicyBrokerWrapper> PolicyBrokerMap;
// Re-queries the list of defined device-local accounts from device settings
// and updates |policy_brokers_| to match that list.
@@ -184,34 +166,17 @@
// The device-local account policy brokers, keyed by user ID.
PolicyBrokerMap policy_brokers_;
- // Whether a call to UpdateAccountList() is pending because |cros_settings_|
- // are not trusted yet.
- bool waiting_for_cros_settings_;
-
- // Orphaned extension caches are removed at startup. This tracks the status of
- // that process.
- enum OrphanCacheDeletionState {
- NOT_STARTED,
- IN_PROGRESS,
- DONE,
- };
- OrphanCacheDeletionState orphan_cache_deletion_state_;
-
- // Account IDs whose extension cache directories are busy, either because a
- // broker for the account has not shut down completely yet or because the
- // directory is being deleted.
- std::set<std::string> busy_extension_cache_directories_;
-
- const scoped_refptr<base::SequencedTaskRunner> store_background_task_runner_;
- const scoped_refptr<base::SequencedTaskRunner> extension_cache_task_runner_;
-
ObserverList<Observer, true> observers_;
- const scoped_ptr<chromeos::CrosSettings::ObserverSubscription>
+ scoped_ptr<chromeos::CrosSettings::ObserverSubscription>
local_accounts_subscription_;
- base::WeakPtrFactory<DeviceLocalAccountPolicyService> weak_factory_;
+ scoped_refptr<base::SequencedTaskRunner> background_task_runner_;
+ // Weak pointer factory for cros_settings_->PrepareTrustedValues() callbacks.
+ base::WeakPtrFactory<DeviceLocalAccountPolicyService>
+ cros_settings_callback_factory_;
+
DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyService);
};

Powered by Google App Engine
This is Rietveld 408576698