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

Unified Diff: chrome/browser/chromeos/ownership/owner_settings_service.h

Issue 570053002: Revert "Non-plafrom-specific part of an OwnerSettingsService is moved to components/ownership/*." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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/chromeos/ownership/owner_settings_service.h
diff --git a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h b/chrome/browser/chromeos/ownership/owner_settings_service.h
similarity index 52%
rename from chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h
rename to chrome/browser/chromeos/ownership/owner_settings_service.h
index 3ef3d7edeff8a35c541d1cce95f0c4b6fd10bd5b..37bbabb52cd709f9c6c1da00a54ded3e23786450 100644
--- a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h
+++ b/chrome/browser/chromeos/ownership/owner_settings_service.h
@@ -2,51 +2,60 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_CHROMEOS_OWNERSHIP_OWNER_SETTINGS_SERVICE_CHROMEOS_H_
-#define CHROME_BROWSER_CHROMEOS_OWNERSHIP_OWNER_SETTINGS_SERVICE_CHROMEOS_H_
+#ifndef CHROME_BROWSER_CHROMEOS_OWNERSHIP_OWNER_SETTINGS_SERVICE_H_
+#define CHROME_BROWSER_CHROMEOS_OWNERSHIP_OWNER_SETTINGS_SERVICE_H_
#include <deque>
#include <vector>
-#include "base/callback_forward.h"
+#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/settings/device_settings_service.h"
#include "chromeos/dbus/session_manager_client.h"
#include "components/keyed_service/core/keyed_service.h"
#include "components/ownership/owner_key_util.h"
-#include "components/ownership/owner_settings_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
class Profile;
-namespace ownership {
-class OwnerKeyUtil;
-}
-
namespace chromeos {
class SessionManagerOperation;
-// The class is a profile-keyed service which holds public/private
-// keypair corresponds to a profile. The keypair is reloaded automatically when
-// profile is created and TPM token is ready. Note that the private part of a
-// key can be loaded only for the owner.
+// This class reloads owner key from profile NSS slots.
//
// TODO (ygorshenin@): move write path for device settings here
// (crbug.com/230018).
-class OwnerSettingsServiceChromeOS : public ownership::OwnerSettingsService,
- public content::NotificationObserver,
- public SessionManagerClient::Observer {
+class OwnerSettingsService : public DeviceSettingsService::PrivateKeyDelegate,
+ public KeyedService,
+ public content::NotificationObserver,
+ public SessionManagerClient::Observer {
public:
- virtual ~OwnerSettingsServiceChromeOS();
+ virtual ~OwnerSettingsService();
+
+ base::WeakPtr<OwnerSettingsService> as_weak_ptr() {
+ return weak_factory_.GetWeakPtr();
+ }
void OnTPMTokenReady(bool tpm_token_enabled);
- // ownership::OwnerSettingsService implementation:
- virtual void SignAndStorePolicyAsync(
+ // DeviceSettingsService::PrivateKeyDelegate implementation:
+ virtual bool IsOwner() OVERRIDE;
+ virtual void IsOwnerAsync(const IsOwnerCallback& callback) OVERRIDE;
+ virtual bool AssembleAndSignPolicyAsync(
scoped_ptr<enterprise_management::PolicyData> policy,
+ const AssembleAndSignPolicyCallback& callback) OVERRIDE;
+ virtual void SignAndStoreAsync(
+ scoped_ptr<enterprise_management::ChromeDeviceSettingsProto> settings,
+ const base::Closure& callback) OVERRIDE;
+ virtual void SetManagementSettingsAsync(
+ enterprise_management::PolicyData::ManagementMode management_mode,
+ const std::string& request_token,
+ const std::string& device_id,
const base::Closure& callback) OVERRIDE;
// NotificationObserver implementation:
@@ -68,22 +77,23 @@ class OwnerSettingsServiceChromeOS : public ownership::OwnerSettingsService,
DeviceSettingsService* device_settings_service);
private:
- friend class OwnerSettingsServiceChromeOSFactory;
+ friend class OwnerSettingsServiceFactory;
- OwnerSettingsServiceChromeOS(
+ OwnerSettingsService(
Profile* profile,
const scoped_refptr<ownership::OwnerKeyUtil>& owner_key_util);
- // OwnerSettingsService protected interface overrides:
+ // Reloads private key from profile's NSS slots. Responds via call
+ // to OnPrivateKeyLoaded().
+ void ReloadPrivateKey();
- // Reloads private key from profile's NSS slots, responds via |callback|.
- virtual void ReloadKeypairImpl(const base::Callback<
- void(const scoped_refptr<ownership::PublicKey>& public_key,
- const scoped_refptr<ownership::PrivateKey>& private_key)>& callback)
- OVERRIDE;
+ // Called when ReloadPrivateKey() completes it's work.
+ void OnPrivateKeyLoaded(scoped_refptr<ownership::PublicKey> public_key,
+ scoped_refptr<ownership::PrivateKey> private_key);
- // Possibly notifies DeviceSettingsService that owner's keypair is loaded.
- virtual void OnPostKeypairLoadedActions() OVERRIDE;
+ // Puts request to perform sign-and-store operation in the queue.
+ void EnqueueSignAndStore(scoped_ptr<enterprise_management::PolicyData> policy,
+ const base::Closure& callback);
// Performs next operation in the queue.
void StartNextOperation();
@@ -93,12 +103,33 @@ class OwnerSettingsServiceChromeOS : public ownership::OwnerSettingsService,
SessionManagerOperation* operation,
DeviceSettingsService::Status status);
+ // Called when it's not possible to store settings.
+ void HandleError(DeviceSettingsService::Status status,
+ const base::Closure& callback);
+
+ // Returns testing instance of OwnerKeyUtil when it's set, otherwise
+ // returns |owner_key_util_|.
+ scoped_refptr<ownership::OwnerKeyUtil> GetOwnerKeyUtil();
+
+ // Returns testing instance of DeviceSettingsService when it's set,
+ // otherwise returns pointer to a singleton instance, when it's
+ // initialized.
+ DeviceSettingsService* GetDeviceSettingsService();
+
// Profile this service instance belongs to.
Profile* profile_;
// User ID this service instance belongs to.
std::string user_id_;
+ scoped_refptr<ownership::PublicKey> public_key_;
+
+ scoped_refptr<ownership::PrivateKey> private_key_;
+
+ scoped_refptr<ownership::OwnerKeyUtil> owner_key_util_;
+
+ std::vector<IsOwnerCallback> pending_is_owner_callbacks_;
+
// Whether profile still needs to be initialized.
bool waiting_for_profile_creation_;
@@ -111,11 +142,13 @@ class OwnerSettingsServiceChromeOS : public ownership::OwnerSettingsService,
content::NotificationRegistrar registrar_;
- base::WeakPtrFactory<OwnerSettingsServiceChromeOS> weak_factory_;
+ base::ThreadChecker thread_checker_;
+
+ base::WeakPtrFactory<OwnerSettingsService> weak_factory_;
- DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOS);
+ DISALLOW_COPY_AND_ASSIGN(OwnerSettingsService);
};
} // namespace chromeos
-#endif // CHROME_BROWSER_CHROMEOS_OWNERSHIP_OWNER_SETTINGS_SERVICE_CHROMEOS_H_
+#endif // CHROME_BROWSER_CHROMEOS_OWNERSHIP_OWNER_SETTINGS_SERVICE_H_

Powered by Google App Engine
This is Rietveld 408576698