Skip to content

Commit d7eb048

Browse files
Ryan SultanemChromium LUCI CQ
Ryan Sultanem
authored and
Chromium LUCI CQ
committed
Adapted more keyed factories to be part of the ProfileSelections API
Migrated extensions/ and apps/ factories to use ProfileSelections API through the ExtensionsBrowserClient. Since these factories cannot inherit from ProfileKeyedServiceFactory, the equivalent checks are done through the added getters in the ExtensionsBrowserClient. Extensions Factories: force values for Guest Profile is set to true, by default extensions services will be created for Guest Profile. Also migrated additional chrome/ Factories to use ProfileKeyedServiceFactory. Bug: 1284664 Change-Id: Ia4ee29cf4c430f99d078cda7c60e946b369ea178 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3894435 Reviewed-by: David Roger <[email protected]> Reviewed-by: Dominick Ng <[email protected]> Reviewed-by: Devlin Cronin <[email protected]> Commit-Queue: Ryan Sultanem <[email protected]> Cr-Commit-Position: refs/heads/main@{#1057936}
1 parent 5b8f515 commit d7eb048

22 files changed

+64
-51
lines changed

apps/app_lifetime_monitor_factory.cc

+3-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ bool AppLifetimeMonitorFactory::ServiceIsCreatedWithBrowserContext() const {
4545

4646
content::BrowserContext* AppLifetimeMonitorFactory::GetBrowserContextToUse(
4747
content::BrowserContext* context) const {
48-
return extensions::ExtensionsBrowserClient::Get()->
49-
GetOriginalContext(context);
48+
return extensions::ExtensionsBrowserClient::Get()
49+
->GetRedirectedContextInIncognito(context, /*force_guest_profile=*/true,
50+
/*force_system_profile=*/false);
5051
}
5152

5253
} // namespace apps

apps/app_restore_service_factory.cc

+8
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "apps/app_restore_service.h"
99
#include "components/keyed_service/content/browser_context_dependency_manager.h"
1010
#include "content/public/browser/browser_context.h"
11+
#include "extensions/browser/extensions_browser_client.h"
1112

1213
namespace apps {
1314

@@ -40,4 +41,11 @@ bool AppRestoreServiceFactory::ServiceIsCreatedWithBrowserContext() const {
4041
return true;
4142
}
4243

44+
content::BrowserContext* AppRestoreServiceFactory::GetBrowserContextToUse(
45+
content::BrowserContext* context) const {
46+
return extensions::ExtensionsBrowserClient::Get()
47+
->GetRedirectedContextInIncognito(context, /*force_guest_profile=*/true,
48+
/*force_system_profile=*/false);
49+
}
50+
4351
} // namespace apps

apps/app_restore_service_factory.h

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class AppRestoreServiceFactory : public BrowserContextKeyedServiceFactory {
3737
KeyedService* BuildServiceInstanceFor(
3838
content::BrowserContext* context) const override;
3939
bool ServiceIsCreatedWithBrowserContext() const override;
40+
content::BrowserContext* GetBrowserContextToUse(
41+
content::BrowserContext* context) const override;
4042
};
4143

4244
} // namespace apps

chrome/browser/breadcrumbs/BUILD.gn

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
source_set("breadcrumbs") {
66
deps = [
77
"//base",
8-
"//chrome/browser/profiles",
8+
"//chrome/browser/profiles:profile",
99
"//chrome/common",
1010
"//components/breadcrumbs/core",
1111
"//components/infobars/content",

chrome/browser/breadcrumbs/breadcrumb_manager_keyed_service_factory.cc

+2-10
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
#include "chrome/browser/breadcrumbs/breadcrumb_manager_keyed_service_factory.h"
66

77
#include "base/no_destructor.h"
8-
#include "chrome/browser/profiles/incognito_helpers.h"
98
#include "components/breadcrumbs/core/breadcrumb_manager_keyed_service.h"
10-
#include "components/keyed_service/content/browser_context_dependency_manager.h"
119
#include "content/public/browser/browser_context.h"
1210

1311
// static
@@ -27,9 +25,9 @@ BreadcrumbManagerKeyedServiceFactory::GetForBrowserContext(
2725
}
2826

2927
BreadcrumbManagerKeyedServiceFactory::BreadcrumbManagerKeyedServiceFactory()
30-
: BrowserContextKeyedServiceFactory(
28+
: ProfileKeyedServiceFactory(
3129
"BreadcrumbManagerService",
32-
BrowserContextDependencyManager::GetInstance()) {}
30+
ProfileSelections::BuildForRegularAndIncognito()) {}
3331

3432
BreadcrumbManagerKeyedServiceFactory::~BreadcrumbManagerKeyedServiceFactory() =
3533
default;
@@ -39,9 +37,3 @@ KeyedService* BreadcrumbManagerKeyedServiceFactory::BuildServiceInstanceFor(
3937
return new breadcrumbs::BreadcrumbManagerKeyedService(
4038
context->IsOffTheRecord());
4139
}
42-
43-
content::BrowserContext*
44-
BreadcrumbManagerKeyedServiceFactory::GetBrowserContextToUse(
45-
content::BrowserContext* context) const {
46-
return chrome::GetBrowserContextOwnInstanceInIncognito(context);
47-
}

chrome/browser/breadcrumbs/breadcrumb_manager_keyed_service_factory.h

+2-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#define CHROME_BROWSER_BREADCRUMBS_BREADCRUMB_MANAGER_KEYED_SERVICE_FACTORY_H_
77

88
#include "base/no_destructor.h"
9-
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
9+
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
1010

1111
namespace breadcrumbs {
1212
class BreadcrumbManagerKeyedService;
@@ -16,8 +16,7 @@ namespace content {
1616
class BrowserContext;
1717
} // namespace content
1818

19-
class BreadcrumbManagerKeyedServiceFactory
20-
: public BrowserContextKeyedServiceFactory {
19+
class BreadcrumbManagerKeyedServiceFactory : public ProfileKeyedServiceFactory {
2120
public:
2221
static BreadcrumbManagerKeyedServiceFactory* GetInstance();
2322

@@ -39,8 +38,6 @@ class BreadcrumbManagerKeyedServiceFactory
3938
// BrowserContextKeyedServiceFactory implementation.
4039
KeyedService* BuildServiceInstanceFor(
4140
content::BrowserContext* context) const override;
42-
content::BrowserContext* GetBrowserContextToUse(
43-
content::BrowserContext* context) const override;
4441
};
4542

4643
#endif // CHROME_BROWSER_BREADCRUMBS_BREADCRUMB_MANAGER_KEYED_SERVICE_FACTORY_H_

chrome/browser/extensions/extension_system_factory.cc

+3-2
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,9 @@ KeyedService* ExtensionSystemFactory::BuildServiceInstanceFor(
101101

102102
content::BrowserContext* ExtensionSystemFactory::GetBrowserContextToUse(
103103
content::BrowserContext* context) const {
104-
// Separate instance in incognito.
105-
return context;
104+
return ProfileSelections::BuildForRegularAndIncognito(
105+
/*force_guest=*/true, /*force_system=*/false)
106+
.ApplyProfileSelection(Profile::FromBrowserContext(context));
106107
}
107108

108109
bool ExtensionSystemFactory::ServiceIsCreatedWithBrowserContext() const {

chrome/browser/feedback/feedback_uploader_factory_chrome.cc

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "base/memory/singleton.h"
88
#include "chrome/browser/feedback/feedback_uploader_chrome.h"
99
#include "chrome/browser/profiles/profile.h"
10+
#include "chrome/browser/profiles/profile_selections.h"
1011
#include "content/public/browser/browser_context.h"
1112

1213
namespace feedback {
@@ -30,7 +31,8 @@ FeedbackUploaderFactoryChrome::~FeedbackUploaderFactoryChrome() = default;
3031

3132
content::BrowserContext* FeedbackUploaderFactoryChrome::GetBrowserContextToUse(
3233
content::BrowserContext* context) const {
33-
return Profile::FromBrowserContext(context)->GetOriginalProfile();
34+
return ProfileSelections::BuildRedirectedInIncognito().ApplyProfileSelection(
35+
Profile::FromBrowserContext(context));
3436
}
3537

3638
bool FeedbackUploaderFactoryChrome::ServiceIsCreatedWithBrowserContext() const {

chrome/browser/updates/announcement_notification/BUILD.gn

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ source_set("announcement_notification") {
2323
"//base",
2424
"//chrome/app:generated_resources",
2525
"//chrome/browser:browser_process",
26+
"//chrome/browser/profiles:profile",
2627
"//components/keyed_service/content",
2728
"//components/pref_registry",
2829
"//components/prefs:prefs",

chrome/browser/updates/announcement_notification/announcement_notification_service_factory.cc

+3-11
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,10 @@
1010
#include "base/time/default_clock.h"
1111
#include "build/build_config.h"
1212
#include "chrome/browser/notifications/notification_display_service_factory.h" // nogncheck
13-
#include "chrome/browser/profiles/incognito_helpers.h" // nogncheck
14-
#include "chrome/browser/profiles/profile.h" // nogncheck
13+
#include "chrome/browser/profiles/profile.h"
1514
#include "chrome/browser/updates/announcement_notification/announcement_notification_delegate.h"
1615
#include "chrome/browser/updates/announcement_notification/announcement_notification_service.h"
1716
#include "chrome/browser/updates/announcement_notification/empty_announcement_notification_service.h"
18-
#include "components/keyed_service/content/browser_context_dependency_manager.h"
1917

2018
#if BUILDFLAG(IS_ANDROID)
2119
#include "chrome/browser/updates/announcement_notification/announcement_notification_delegate_android.h"
@@ -57,16 +55,10 @@ KeyedService* AnnouncementNotificationServiceFactory::BuildServiceInstanceFor(
5755
profile, pref, std::move(delegate), base::DefaultClock::GetInstance());
5856
}
5957

60-
content::BrowserContext*
61-
AnnouncementNotificationServiceFactory::GetBrowserContextToUse(
62-
content::BrowserContext* context) const {
63-
return chrome::GetBrowserContextOwnInstanceInIncognito(context);
64-
}
65-
6658
AnnouncementNotificationServiceFactory::AnnouncementNotificationServiceFactory()
67-
: BrowserContextKeyedServiceFactory(
59+
: ProfileKeyedServiceFactory(
6860
"AnnouncementNotificationService",
69-
BrowserContextDependencyManager::GetInstance()) {
61+
ProfileSelections::BuildForRegularAndIncognito()) {
7062
DependsOn(NotificationDisplayServiceFactory::GetInstance());
7163
}
7264

chrome/browser/updates/announcement_notification/announcement_notification_service_factory.h

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
#define CHROME_BROWSER_UPDATES_ANNOUNCEMENT_NOTIFICATION_ANNOUNCEMENT_NOTIFICATION_SERVICE_FACTORY_H_
77

88
#include "base/no_destructor.h"
9-
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
9+
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
1010

1111
class AnnouncementNotificationService;
1212
class Profile;
1313

1414
// Factory to create FastTrackNotificationService.
1515
class AnnouncementNotificationServiceFactory
16-
: public BrowserContextKeyedServiceFactory {
16+
: public ProfileKeyedServiceFactory {
1717
public:
1818
static AnnouncementNotificationServiceFactory* GetInstance();
1919
static AnnouncementNotificationService* GetForProfile(Profile* profile);
@@ -29,8 +29,6 @@ class AnnouncementNotificationServiceFactory
2929
// BrowserContextKeyedServiceFactory implementation.
3030
KeyedService* BuildServiceInstanceFor(
3131
content::BrowserContext* context) const override;
32-
content::BrowserContext* GetBrowserContextToUse(
33-
content::BrowserContext* context) const override;
3432

3533
AnnouncementNotificationServiceFactory();
3634
~AnnouncementNotificationServiceFactory() override;

extensions/browser/api/idle/idle_manager_factory.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ KeyedService* IdleManagerFactory::BuildServiceInstanceFor(
4242

4343
content::BrowserContext* IdleManagerFactory::GetBrowserContextToUse(
4444
content::BrowserContext* context) const {
45-
return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
45+
return ExtensionsBrowserClient::Get()->GetRedirectedContextInIncognito(
46+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
4647
}
4748

4849
bool IdleManagerFactory::ServiceIsCreatedWithBrowserContext() const {

extensions/browser/api/networking_private/networking_private_event_router_factory.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ KeyedService* NetworkingPrivateEventRouterFactory::BuildServiceInstanceFor(
4646
content::BrowserContext*
4747
NetworkingPrivateEventRouterFactory::GetBrowserContextToUse(
4848
content::BrowserContext* context) const {
49-
return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
49+
return ExtensionsBrowserClient::Get()->GetRedirectedContextInIncognito(
50+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
5051
}
5152

5253
bool NetworkingPrivateEventRouterFactory::ServiceIsCreatedWithBrowserContext()

extensions/browser/app_window/app_window_registry.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@ bool AppWindowRegistry::Factory::ServiceIsCreatedWithBrowserContext() const {
244244

245245
content::BrowserContext* AppWindowRegistry::Factory::GetBrowserContextToUse(
246246
content::BrowserContext* context) const {
247-
return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
247+
return ExtensionsBrowserClient::Get()->GetRedirectedContextInIncognito(
248+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
248249
}
249250

250251
} // namespace extensions

extensions/browser/browser_context_keyed_api_factory.h

+7-5
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,17 @@ class BrowserContextKeyedAPI : public KeyedService {
3535
static const bool kServiceHasOwnInstanceInIncognito = false;
3636

3737
// The next two flags allows to force the selection for the System and Guest
38-
// Profiles despite the experiments being activated. Setting the value to true
39-
// in subclasses to force the selection.
38+
// Profiles despite the experiments being activated. Values can be overridden
39+
// in subclasses by redefining the variables and setting a different value.
4040
//
4141
// Part of experiment to remove System Profile selection by default with
42-
// `kSystemProfileSelectionDefaultNone`.
42+
// `kSystemProfileSelectionDefaultNone`. By default do not force the value (do
43+
// not create extension services) for the System Profile.
4344
static const bool kForceSelectionForSystemProfile = false;
4445
// Part of experiment to remove Guest Profile selection by default with
45-
// `kGuestProfileSelectionDefaultNone`.
46-
static const bool kForceSelectionForGuestProfile = false;
46+
// `kGuestProfileSelectionDefaultNone`. By default force the value (create
47+
// extension services) for the Guest Profile.
48+
static const bool kForceSelectionForGuestProfile = true;
4749

4850
// If set to false, don't start the service at BrowserContext creation time.
4951
// (The default differs from the BrowserContextKeyedServiceFactory default,

extensions/browser/event_router_factory.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ KeyedService* EventRouterFactory::BuildServiceInstanceFor(
4646
BrowserContext* EventRouterFactory::GetBrowserContextToUse(
4747
BrowserContext* context) const {
4848
// Redirected in incognito.
49-
return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
49+
return ExtensionsBrowserClient::Get()->GetRedirectedContextInIncognito(
50+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
5051
}
5152

5253
} // namespace extensions

extensions/browser/extension_pref_value_map_factory.cc

+3-2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ KeyedService* ExtensionPrefValueMapFactory::BuildServiceInstanceFor(
3737
content::BrowserContext* ExtensionPrefValueMapFactory::GetBrowserContextToUse(
3838
content::BrowserContext* context) const {
3939
// Redirected in incognito.
40-
return extensions::ExtensionsBrowserClient::Get()->GetOriginalContext(
41-
context);
40+
return extensions::ExtensionsBrowserClient::Get()
41+
->GetRedirectedContextInIncognito(context, /*force_guest_profile=*/true,
42+
/*force_system_profile=*/false);
4243
}

extensions/browser/extension_prefs_factory.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ KeyedService* ExtensionPrefsFactory::BuildServiceInstanceFor(
6262

6363
content::BrowserContext* ExtensionPrefsFactory::GetBrowserContextToUse(
6464
content::BrowserContext* context) const {
65-
return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
65+
return ExtensionsBrowserClient::Get()->GetRedirectedContextInIncognito(
66+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
6667
}
6768

6869
} // namespace extensions

extensions/browser/extension_protocols.cc

+7
Original file line numberDiff line numberDiff line change
@@ -1027,6 +1027,13 @@ class ExtensionURLLoaderFactory : public network::SelfDeletingURLLoaderFactory {
10271027
DependsOn(ExtensionRegistryFactory::GetInstance());
10281028
DependsOn(ProcessMapFactory::GetInstance());
10291029
}
1030+
1031+
content::BrowserContext* GetBrowserContextToUse(
1032+
content::BrowserContext* context) const override {
1033+
return ExtensionsBrowserClient::Get()->GetContextForRegularAndIncognito(
1034+
context, /*force_guest_profile=*/true,
1035+
/*force_system_profile=*/false);
1036+
}
10301037
};
10311038

10321039
raw_ptr<content::BrowserContext> browser_context_;

extensions/browser/extension_registry_factory.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ BrowserContext* ExtensionRegistryFactory::GetBrowserContextToUse(
4444
// Redirected in incognito.
4545
auto* extension_browser_client = ExtensionsBrowserClient::Get();
4646
DCHECK(extension_browser_client);
47-
return extension_browser_client->GetOriginalContext(context);
47+
return extension_browser_client->GetRedirectedContextInIncognito(
48+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
4849
}
4950

5051
} // namespace extensions

extensions/browser/process_manager_factory.cc

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#include "components/keyed_service/content/browser_context_dependency_manager.h"
88
#include "extensions/browser/extension_registry_factory.h"
9+
#include "extensions/browser/extensions_browser_client.h"
910
#include "extensions/browser/lazy_background_task_queue_factory.h"
1011
#include "extensions/browser/process_manager.h"
1112

@@ -52,7 +53,8 @@ BrowserContext* ProcessManagerFactory::GetBrowserContextToUse(
5253
BrowserContext* context) const {
5354
// ProcessManager::Create handles guest and incognito profiles, returning an
5455
// IncognitoProcessManager in incognito mode.
55-
return context;
56+
return ExtensionsBrowserClient::Get()->GetContextForRegularAndIncognito(
57+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
5658
}
5759

5860
} // namespace extensions

extensions/browser/renderer_startup_helper.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,8 @@ KeyedService* RendererStartupHelperFactory::BuildServiceInstanceFor(
387387
BrowserContext* RendererStartupHelperFactory::GetBrowserContextToUse(
388388
BrowserContext* context) const {
389389
// Redirected in incognito.
390-
return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
390+
return ExtensionsBrowserClient::Get()->GetRedirectedContextInIncognito(
391+
context, /*force_guest_profile=*/true, /*force_system_profile=*/false);
391392
}
392393

393394
bool RendererStartupHelperFactory::ServiceIsCreatedWithBrowserContext() const {

0 commit comments

Comments
 (0)