blob: 965584a6543256f5199af6e94d8a0ed3cb9b541d [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_PROFILE_KEY_STARTUP_ACCESSOR_H_
#define CHROME_BROWSER_ANDROID_PROFILE_KEY_STARTUP_ACCESSOR_H_
#include "base/memory/raw_ptr.h"
class ProfileKey;
// The ProfileKeyStartupAccessor is a singleton class that exposes the
// pointer of the ProfileKey of the associated Profile in the ServiceManager
// only mode on Android. On Android, there is only one Profile, thus it is
// possible to use this accessor to get the associated ProfileKey in the reduced
// mode.
//
// Note: after the Profile is created, the ProfileKey should be obtained from
// Profile.
class ProfileKeyStartupAccessor {
public:
ProfileKeyStartupAccessor();
static ProfileKeyStartupAccessor* GetInstance();
// The |key_| should NOT be used after Profile is created.
ProfileKey* profile_key() { return key_; }
void SetProfileKey(ProfileKey* key);
// Resets the |key_| when the Profile is created.
void Reset();
private:
raw_ptr<ProfileKey> key_;
};
#endif // CHROME_BROWSER_ANDROID_PROFILE_KEY_STARTUP_ACCESSOR_H_