0

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:
Marc Grimme
2020-03-26 10:42:05 +00:00
committed by Commit Bot
parent 4ab8845ffc
commit 69ee35b582
2 changed files with 23 additions and 8 deletions

@ -45,7 +45,9 @@ constexpr char kStubSigninExtensionPolicyFileNameFragment[] =
constexpr char kStubPerAccountPolicyKeyFileName[] = "policy.pub";
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.
std::string GetFileContent(const base::FilePath& path) {
@ -220,21 +222,32 @@ void PostReply(const base::Location& from_here,
FakeSessionManagerClient::FakeSessionManagerClient()
: 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(
PolicyStorageType policy_storage)
: policy_storage_(policy_storage) {
DCHECK(!g_instance);
g_instance = this;
DCHECK(!g_is_fake);
g_is_fake = true;
}
FakeSessionManagerClient::~FakeSessionManagerClient() {
DCHECK_EQ(this, g_instance);
g_instance = nullptr;
g_is_fake = false;
}
// static
// Returns the static instance of FakeSessionManagerClient if the
// g_instance in SessionManagerClientis a FakeSessionManagerClient otherwise it
// will return nullptr.
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) {

@ -1093,8 +1093,10 @@ void SessionManagerClient::InitializeFake() {
// static
void SessionManagerClient::InitializeFakeInMemory() {
new FakeSessionManagerClient(
FakeSessionManagerClient::PolicyStorageType::kInMemory);
if (!FakeSessionManagerClient::Get()) {
new FakeSessionManagerClient(
FakeSessionManagerClient::PolicyStorageType::kInMemory);
}
}
// static