Commit 5bb11254 authored by Mark Cogan's avatar Mark Cogan Committed by Commit Bot

[iOS] Remove TabModelList from metrics client

This CL removes use of TabModelList from the metrics services manager
client.

Since this was the only use case for TabModelList's
IsOffTheRecordSessionActive(), that logic is just reproduced in a static
method for this class, using BrowserList.

Bug: 1050142
Change-Id: I52090af91a3088cfe8e216c6c0d60f94ec292ce4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2120412
Commit-Queue: Mark Cogan <marq@chromium.org>
Reviewed-by: default avatarMohammad Refaat <mrefaat@chromium.org>
Reviewed-by: default avatarOlivier Robin <olivierrobin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#753256}
parent b3f3d365
...@@ -72,7 +72,8 @@ source_set("metrics") { ...@@ -72,7 +72,8 @@ source_set("metrics") {
"//ios/chrome/browser/browser_state", "//ios/chrome/browser/browser_state",
"//ios/chrome/browser/crash_report", "//ios/chrome/browser/crash_report",
"//ios/chrome/browser/google", "//ios/chrome/browser/google",
"//ios/chrome/browser/history:history", "//ios/chrome/browser/history",
"//ios/chrome/browser/main:public",
"//ios/chrome/browser/signin", "//ios/chrome/browser/signin",
"//ios/chrome/browser/sync", "//ios/chrome/browser/sync",
"//ios/chrome/browser/tabs", "//ios/chrome/browser/tabs",
......
...@@ -44,6 +44,11 @@ class IOSChromeMetricsServicesManagerClient ...@@ -44,6 +44,11 @@ class IOSChromeMetricsServicesManagerClient
bool IsMetricsConsentGiven() override; bool IsMetricsConsentGiven() override;
bool IsIncognitoSessionActive() override; bool IsIncognitoSessionActive() override;
// Static helper for |IsIncognitoSessionActive()|, suitable for binding into
// callbacks. |true| if any browser states have any incognito WebStates in any
// Browser.
static bool AreIncognitoTabsPresent();
// MetricsStateManager which is passed as a parameter to service constructors. // MetricsStateManager which is passed as a parameter to service constructors.
std::unique_ptr<metrics::MetricsStateManager> metrics_state_manager_; std::unique_ptr<metrics::MetricsStateManager> metrics_state_manager_;
......
...@@ -14,10 +14,13 @@ ...@@ -14,10 +14,13 @@
#include "components/rappor/rappor_service_impl.h" #include "components/rappor/rappor_service_impl.h"
#include "components/variations/service/variations_service.h" #include "components/variations/service/variations_service.h"
#include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/application_context.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h"
#include "ios/chrome/browser/chrome_switches.h" #include "ios/chrome/browser/chrome_switches.h"
#import "ios/chrome/browser/main/browser.h"
#import "ios/chrome/browser/main/browser_list.h"
#import "ios/chrome/browser/main/browser_list_factory.h"
#include "ios/chrome/browser/metrics/ios_chrome_metrics_service_accessor.h" #include "ios/chrome/browser/metrics/ios_chrome_metrics_service_accessor.h"
#include "ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h" #include "ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h"
#include "ios/chrome/browser/tabs/tab_model_list.h"
#include "ios/chrome/browser/variations/ios_chrome_variations_service_client.h" #include "ios/chrome/browser/variations/ios_chrome_variations_service_client.h"
#include "ios/chrome/browser/variations/ios_ui_string_overrider_factory.h" #include "ios/chrome/browser/variations/ios_ui_string_overrider_factory.h"
#include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/shared_url_loader_factory.h"
...@@ -64,7 +67,9 @@ std::unique_ptr<rappor::RapporServiceImpl> ...@@ -64,7 +67,9 @@ std::unique_ptr<rappor::RapporServiceImpl>
IOSChromeMetricsServicesManagerClient::CreateRapporServiceImpl() { IOSChromeMetricsServicesManagerClient::CreateRapporServiceImpl() {
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
return std::make_unique<rappor::RapporServiceImpl>( return std::make_unique<rappor::RapporServiceImpl>(
local_state_, base::Bind(&TabModelList::IsOffTheRecordSessionActive)); local_state_,
base::Bind(
&IOSChromeMetricsServicesManagerClient::AreIncognitoTabsPresent));
} }
std::unique_ptr<variations::VariationsService> std::unique_ptr<variations::VariationsService>
...@@ -114,5 +119,24 @@ bool IOSChromeMetricsServicesManagerClient::IsMetricsConsentGiven() { ...@@ -114,5 +119,24 @@ bool IOSChromeMetricsServicesManagerClient::IsMetricsConsentGiven() {
} }
bool IOSChromeMetricsServicesManagerClient::IsIncognitoSessionActive() { bool IOSChromeMetricsServicesManagerClient::IsIncognitoSessionActive() {
return TabModelList::IsOffTheRecordSessionActive(); return AreIncognitoTabsPresent();
}
// static
bool IOSChromeMetricsServicesManagerClient::AreIncognitoTabsPresent() {
std::vector<ChromeBrowserState*> browser_states =
GetApplicationContext()
->GetChromeBrowserStateManager()
->GetLoadedBrowserStates();
for (ChromeBrowserState* browser_state : browser_states) {
BrowserList* browser_list =
BrowserListFactory::GetForBrowserState(browser_state);
for (Browser* browser : browser_list->AllIncognitoBrowsers()) {
if (!browser->GetWebStateList()->empty()) {
return true;
}
}
}
return false;
} }
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