Remove redundant g_instance for FakeSessionManagerClient
FakeSessionManagerClient stores its static global instance in g_instance. It is a predecessor of SessionManagerClient that already has its static global instance stored in g_instance. Therefore the g_instance in this class can be removed. This change removes the redundant static global instance. Bug: 1063850 Change-Id: I1f94b657d7478bd8cc3ba66dd1d28914fc703c05 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2115652 Commit-Queue: Marc Grimme <marcgrimme@chromium.org> Reviewed-by: Denis Kuznetsov [CET] <antrim@chromium.org> Reviewed-by: Oleg Davydov <burunduk@chromium.org> Cr-Commit-Position: refs/heads/master@{#753570}
This commit is contained in:
chromeos/dbus/session_manager
@ -45,7 +45,9 @@ constexpr char kStubSigninExtensionPolicyFileNameFragment[] =
|
|||||||
constexpr char kStubPerAccountPolicyKeyFileName[] = "policy.pub";
|
constexpr char kStubPerAccountPolicyKeyFileName[] = "policy.pub";
|
||||||
constexpr char kEmptyAccountId[] = "";
|
constexpr char kEmptyAccountId[] = "";
|
||||||
|
|
||||||
FakeSessionManagerClient* g_instance = nullptr;
|
// Global flag weather the g_instance in SessionManagerClient is a
|
||||||
|
// FakeSessionManagerClient or not.
|
||||||
|
bool g_is_fake = false;
|
||||||
|
|
||||||
// Helper to asynchronously retrieve a file's content.
|
// Helper to asynchronously retrieve a file's content.
|
||||||
std::string GetFileContent(const base::FilePath& path) {
|
std::string GetFileContent(const base::FilePath& path) {
|
||||||
@ -220,21 +222,32 @@ void PostReply(const base::Location& from_here,
|
|||||||
FakeSessionManagerClient::FakeSessionManagerClient()
|
FakeSessionManagerClient::FakeSessionManagerClient()
|
||||||
: FakeSessionManagerClient(PolicyStorageType::kInMemory) {}
|
: FakeSessionManagerClient(PolicyStorageType::kInMemory) {}
|
||||||
|
|
||||||
|
// This constructor will implicitly create a global static variable by
|
||||||
|
// SessionManagerClient::SessionManagerClient() that can be retrieved
|
||||||
|
// via FakeSessionManagerClient::Get() down casted. With the global
|
||||||
|
// flag g_is_fake we make sure that either the SessionManagerClient or
|
||||||
|
// the FakeSessionManagerClient constructor is called but not both.
|
||||||
FakeSessionManagerClient::FakeSessionManagerClient(
|
FakeSessionManagerClient::FakeSessionManagerClient(
|
||||||
PolicyStorageType policy_storage)
|
PolicyStorageType policy_storage)
|
||||||
: policy_storage_(policy_storage) {
|
: policy_storage_(policy_storage) {
|
||||||
DCHECK(!g_instance);
|
DCHECK(!g_is_fake);
|
||||||
g_instance = this;
|
g_is_fake = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
FakeSessionManagerClient::~FakeSessionManagerClient() {
|
FakeSessionManagerClient::~FakeSessionManagerClient() {
|
||||||
DCHECK_EQ(this, g_instance);
|
g_is_fake = false;
|
||||||
g_instance = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
// Returns the static instance of FakeSessionManagerClient if the
|
||||||
|
// g_instance in SessionManagerClientis a FakeSessionManagerClient otherwise it
|
||||||
|
// will return nullptr.
|
||||||
FakeSessionManagerClient* FakeSessionManagerClient::Get() {
|
FakeSessionManagerClient* FakeSessionManagerClient::Get() {
|
||||||
return g_instance;
|
SessionManagerClient* client = SessionManagerClient::Get();
|
||||||
|
if (g_is_fake)
|
||||||
|
return static_cast<FakeSessionManagerClient*>(client);
|
||||||
|
else
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FakeSessionManagerClient::SetStubDelegate(StubDelegate* delegate) {
|
void FakeSessionManagerClient::SetStubDelegate(StubDelegate* delegate) {
|
||||||
|
@ -1093,8 +1093,10 @@ void SessionManagerClient::InitializeFake() {
|
|||||||
|
|
||||||
// static
|
// static
|
||||||
void SessionManagerClient::InitializeFakeInMemory() {
|
void SessionManagerClient::InitializeFakeInMemory() {
|
||||||
new FakeSessionManagerClient(
|
if (!FakeSessionManagerClient::Get()) {
|
||||||
FakeSessionManagerClient::PolicyStorageType::kInMemory);
|
new FakeSessionManagerClient(
|
||||||
|
FakeSessionManagerClient::PolicyStorageType::kInMemory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
Reference in New Issue
Block a user