Commit b991e86d authored by Sylvain Defresne's avatar Sylvain Defresne Committed by Commit Bot

[ios] Fix ChromeBrowserStateClient to report a correct value

ChromeBrowserStateClient returned a hardcoded value of "1" when asked
for the number of BrowserStates as using browser_state_info_cache.h
would have introduced a circular dependency.

Fix the circular dependency by moving browser_state_info_cache.h from
the //ios/chrome/browser/browser_state:browser_state_impl target to
the //ios/chrome/browser/browser_state target instead.

Bug: 991575
Change-Id: I589fa36db8dc0e85d546982aaa096fd5a958b23d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2521001
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
Reviewed-by: default avatarMike Pinkerton <pinkerton@chromium.org>
Auto-Submit: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#824843}
parent c58f8082
...@@ -6,6 +6,9 @@ import("//ios/build/chrome_build.gni") ...@@ -6,6 +6,9 @@ import("//ios/build/chrome_build.gni")
source_set("browser_state") { source_set("browser_state") {
sources = [ sources = [
"browser_state_info_cache.cc",
"browser_state_info_cache.h",
"browser_state_info_cache_observer.h",
"browser_state_otr_helper.cc", "browser_state_otr_helper.cc",
"browser_state_otr_helper.h", "browser_state_otr_helper.h",
"chrome_browser_state.h", "chrome_browser_state.h",
...@@ -29,6 +32,7 @@ source_set("browser_state") { ...@@ -29,6 +32,7 @@ source_set("browser_state") {
"//components/variations/net", "//components/variations/net",
"//components/webdata_services", "//components/webdata_services",
"//ios/chrome/browser:chrome_url_constants", "//ios/chrome/browser:chrome_url_constants",
"//ios/chrome/browser:pref_names",
"//ios/chrome/browser/net:net_types", "//ios/chrome/browser/net:net_types",
"//ios/components/webui:url_constants", "//ios/components/webui:url_constants",
"//ios/web/public/webui", "//ios/web/public/webui",
...@@ -41,9 +45,6 @@ source_set("browser_state_impl") { ...@@ -41,9 +45,6 @@ source_set("browser_state_impl") {
sources = [ sources = [
"bookmark_model_loaded_observer.cc", "bookmark_model_loaded_observer.cc",
"bookmark_model_loaded_observer.h", "bookmark_model_loaded_observer.h",
"browser_state_info_cache.cc",
"browser_state_info_cache.h",
"browser_state_info_cache_observer.h",
"browser_state_keyed_service_factories.h", "browser_state_keyed_service_factories.h",
"browser_state_keyed_service_factories.mm", "browser_state_keyed_service_factories.mm",
"chrome_browser_state_impl.cc", "chrome_browser_state_impl.cc",
......
...@@ -20,7 +20,16 @@ TestChromeBrowserStateManager::TestChromeBrowserStateManager( ...@@ -20,7 +20,16 @@ TestChromeBrowserStateManager::TestChromeBrowserStateManager(
std::unique_ptr<ChromeBrowserState> browser_state, std::unique_ptr<ChromeBrowserState> browser_state,
const base::FilePath& user_data_dir) const base::FilePath& user_data_dir)
: browser_state_(std::move(browser_state)), : browser_state_(std::move(browser_state)),
browser_state_info_cache_(local_state_.Get(), user_data_dir) {} browser_state_info_cache_(local_state_.Get(),
user_data_dir.empty() && browser_state_.get()
? browser_state_->GetStatePath().DirName()
: user_data_dir) {
if (browser_state_) {
browser_state_info_cache_.AddBrowserState(browser_state_->GetStatePath(),
/*gaia_id=*/std::string(),
/*user_name=*/base::string16());
}
}
TestChromeBrowserStateManager::~TestChromeBrowserStateManager() {} TestChromeBrowserStateManager::~TestChromeBrowserStateManager() {}
......
...@@ -19,9 +19,6 @@ class TestChromeBrowserStateManager : public ios::ChromeBrowserStateManager { ...@@ -19,9 +19,6 @@ class TestChromeBrowserStateManager : public ios::ChromeBrowserStateManager {
explicit TestChromeBrowserStateManager(const base::FilePath& user_data_dir); explicit TestChromeBrowserStateManager(const base::FilePath& user_data_dir);
explicit TestChromeBrowserStateManager( explicit TestChromeBrowserStateManager(
std::unique_ptr<ChromeBrowserState> browser_state); std::unique_ptr<ChromeBrowserState> browser_state);
TestChromeBrowserStateManager(
std::unique_ptr<ChromeBrowserState> browser_state,
const base::FilePath& user_data_dir);
~TestChromeBrowserStateManager() override; ~TestChromeBrowserStateManager() override;
// ChromeBrowserStateManager: // ChromeBrowserStateManager:
...@@ -31,6 +28,10 @@ class TestChromeBrowserStateManager : public ios::ChromeBrowserStateManager { ...@@ -31,6 +28,10 @@ class TestChromeBrowserStateManager : public ios::ChromeBrowserStateManager {
std::vector<ChromeBrowserState*> GetLoadedBrowserStates() override; std::vector<ChromeBrowserState*> GetLoadedBrowserStates() override;
private: private:
TestChromeBrowserStateManager(
std::unique_ptr<ChromeBrowserState> browser_state,
const base::FilePath& user_data_dir);
IOSChromeScopedTestingLocalState local_state_; IOSChromeScopedTestingLocalState local_state_;
std::unique_ptr<ChromeBrowserState> browser_state_; std::unique_ptr<ChromeBrowserState> browser_state_;
BrowserStateInfoCache browser_state_info_cache_; BrowserStateInfoCache browser_state_info_cache_;
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "components/network_time/network_time_tracker.h" #include "components/network_time/network_time_tracker.h"
#include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/application_context.h"
#include "ios/chrome/browser/browser_state/browser_state_info_cache.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h" #include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h"
#include "ios/chrome/browser/sync/profile_sync_service_factory.h" #include "ios/chrome/browser/sync/profile_sync_service_factory.h"
...@@ -53,7 +54,10 @@ PrefService* ChromeBrowserStateClient::GetPrefService() { ...@@ -53,7 +54,10 @@ PrefService* ChromeBrowserStateClient::GetPrefService() {
int ChromeBrowserStateClient::GetNumberOfProfilesOnDisk() { int ChromeBrowserStateClient::GetNumberOfProfilesOnDisk() {
// Return 1 because there should be only one Profile available. // Return 1 because there should be only one Profile available.
return 1; return GetApplicationContext()
->GetChromeBrowserStateManager()
->GetBrowserStateInfoCache()
->GetNumberOfBrowserStates();
} }
} // namespace metrics } // namespace metrics
...@@ -60,6 +60,9 @@ TEST_F(ChromeBrowserStateClientTest, GetSyncService) { ...@@ -60,6 +60,9 @@ TEST_F(ChromeBrowserStateClientTest, GetSyncService) {
TEST_F(ChromeBrowserStateClientTest, GetNumberOfProfilesOnDisk) { TEST_F(ChromeBrowserStateClientTest, GetNumberOfProfilesOnDisk) {
ChromeBrowserStateClient profile_client; ChromeBrowserStateClient profile_client;
// On ChromeBrowserState was created and registered with the
// ChromeBrowserStateManager, check the client returns the correct
// value.
EXPECT_EQ(1, profile_client.GetNumberOfProfilesOnDisk()); EXPECT_EQ(1, profile_client.GetNumberOfProfilesOnDisk());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment