0

Reland: Remove force_guest_profile param from context getters.

The only place that didn't hardcode "true" for this can express what it
wants more clearly with constexpr if anyway.

Bug: 364987728
Change-Id: I27cbdf0ac7ac358392af5ea8d6c9257666af6a3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5938992
Commit-Queue: Stefan Kuhne <skuhne@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: David Bertoni <dbertoni@chromium.org>
Reviewed-by: Stefan Kuhne <skuhne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1369550}
This commit is contained in:
Peter Kasting
2024-10-16 19:04:40 +00:00
committed by Chromium LUCI CQ
parent bba57d209c
commit 1cb99aba7e
51 changed files with 122 additions and 179 deletions
apps
chrome/browser/extensions
extensions

@@ -46,7 +46,7 @@ bool AppLifetimeMonitorFactory::ServiceIsCreatedWithBrowserContext() const {
content::BrowserContext* AppLifetimeMonitorFactory::GetBrowserContextToUse( content::BrowserContext* AppLifetimeMonitorFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return extensions::ExtensionsBrowserClient::Get() return extensions::ExtensionsBrowserClient::Get()
->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true); ->GetContextRedirectedToOriginal(context);
} }
} // namespace apps } // namespace apps

@@ -45,7 +45,7 @@ bool AppRestoreServiceFactory::ServiceIsCreatedWithBrowserContext() const {
content::BrowserContext* AppRestoreServiceFactory::GetBrowserContextToUse( content::BrowserContext* AppRestoreServiceFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return extensions::ExtensionsBrowserClient::Get() return extensions::ExtensionsBrowserClient::Get()
->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true); ->GetContextRedirectedToOriginal(context);
} }
} // namespace apps } // namespace apps

@@ -52,7 +52,7 @@ content::BrowserContext* SavedFilesServiceFactory::GetBrowserContextToUse(
// when apps white-listed in guest sessions attempt to use chrome.fileSystem // when apps white-listed in guest sessions attempt to use chrome.fileSystem
// API. // API.
return extensions::ExtensionsBrowserClient::Get() return extensions::ExtensionsBrowserClient::Get()
->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true); ->GetContextRedirectedToOriginal(context);
} }
} // namespace apps } // namespace apps

@@ -281,51 +281,39 @@ content::BrowserContext* ChromeExtensionsBrowserClient::GetOriginalContext(
content::BrowserContext* content::BrowserContext*
ChromeExtensionsBrowserClient::GetContextRedirectedToOriginal( ChromeExtensionsBrowserClient::GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) { return ProfileSelections::Builder()
ProfileSelections::Builder builder; .WithRegular(ProfileSelection::kRedirectedToOriginal)
builder.WithRegular(ProfileSelection::kRedirectedToOriginal); .WithGuest(ProfileSelection::kRedirectedToOriginal)
if (force_guest_profile) { // TODO(crbug.com/41488885): Check if this service is needed for Ash
builder.WithGuest(ProfileSelection::kRedirectedToOriginal); // Internals.
} .WithAshInternals(ProfileSelection::kRedirectedToOriginal)
// TODO(crbug.com/41488885): Check if this service is needed for Ash .Build()
// Internals. .ApplyProfileSelection(Profile::FromBrowserContext(context));
builder.WithAshInternals(ProfileSelection::kRedirectedToOriginal);
const ProfileSelections selections = builder.Build();
return selections.ApplyProfileSelection(Profile::FromBrowserContext(context));
} }
content::BrowserContext* ChromeExtensionsBrowserClient::GetContextOwnInstance( content::BrowserContext* ChromeExtensionsBrowserClient::GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) { return ProfileSelections::Builder()
ProfileSelections::Builder builder; .WithRegular(ProfileSelection::kOwnInstance)
builder.WithRegular(ProfileSelection::kOwnInstance); .WithGuest(ProfileSelection::kOwnInstance)
if (force_guest_profile) { // TODO(crbug.com/41488885): Check if this service is needed for Ash
builder.WithGuest(ProfileSelection::kOwnInstance); // Internals.
} .WithAshInternals(ProfileSelection::kOwnInstance)
// TODO(crbug.com/41488885): Check if this service is needed for Ash .Build()
// Internals. .ApplyProfileSelection(Profile::FromBrowserContext(context));
builder.WithAshInternals(ProfileSelection::kOwnInstance);
const ProfileSelections selections = builder.Build();
return selections.ApplyProfileSelection(Profile::FromBrowserContext(context));
} }
content::BrowserContext* content::BrowserContext*
ChromeExtensionsBrowserClient::GetContextForOriginalOnly( ChromeExtensionsBrowserClient::GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) { return ProfileSelections::Builder()
ProfileSelections::Builder builder; .WithGuest(ProfileSelection::kOriginalOnly)
if (force_guest_profile) { // TODO(crbug.com/41488885): Check if this service is needed for Ash
builder.WithGuest(ProfileSelection::kOriginalOnly); // Internals.
} .WithAshInternals(ProfileSelection::kOriginalOnly)
// TODO(crbug.com/41488885): Check if this service is needed for Ash .Build()
// Internals. .ApplyProfileSelection(Profile::FromBrowserContext(context));
builder.WithAshInternals(ProfileSelection::kOriginalOnly);
ProfileSelections selections = builder.Build();
return selections.ApplyProfileSelection(Profile::FromBrowserContext(context));
} }
bool ChromeExtensionsBrowserClient::AreExtensionsDisabledForContext( bool ChromeExtensionsBrowserClient::AreExtensionsDisabledForContext(

@@ -74,19 +74,14 @@ class ChromeExtensionsBrowserClient : public ExtensionsBrowserClient {
content::BrowserContext* context) override; content::BrowserContext* context) override;
content::BrowserContext* GetOriginalContext( content::BrowserContext* GetOriginalContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
content::BrowserContext* GetContextRedirectedToOriginal( content::BrowserContext* GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextOwnInstance( content::BrowserContext* GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextForOriginalOnly( content::BrowserContext* GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
bool AreExtensionsDisabledForContext( bool AreExtensionsDisabledForContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
#if BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_CHROMEOS)
std::string GetUserIdHashFromContext( std::string GetUserIdHashFromContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;

@@ -107,22 +107,19 @@ BrowserContext* DesktopAndroidExtensionsBrowserClient::GetOriginalContext(
content::BrowserContext* content::BrowserContext*
DesktopAndroidExtensionsBrowserClient::GetContextRedirectedToOriginal( DesktopAndroidExtensionsBrowserClient::GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return context; return context;
} }
content::BrowserContext* content::BrowserContext*
DesktopAndroidExtensionsBrowserClient::GetContextOwnInstance( DesktopAndroidExtensionsBrowserClient::GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return context; return context;
} }
content::BrowserContext* content::BrowserContext*
DesktopAndroidExtensionsBrowserClient::GetContextForOriginalOnly( DesktopAndroidExtensionsBrowserClient::GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return context; return context;
} }

@@ -71,14 +71,11 @@ class DesktopAndroidExtensionsBrowserClient : public ExtensionsBrowserClient {
content::BrowserContext* GetOriginalContext( content::BrowserContext* GetOriginalContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
content::BrowserContext* GetContextRedirectedToOriginal( content::BrowserContext* GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextOwnInstance( content::BrowserContext* GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextForOriginalOnly( content::BrowserContext* GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
bool AreExtensionsDisabledForContext( bool AreExtensionsDisabledForContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
bool IsGuestSession(content::BrowserContext* context) const override; bool IsGuestSession(content::BrowserContext* context) const override;

@@ -690,9 +690,8 @@ BrowserContext* DevicePermissionsManagerFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
// Return the original (possibly off-the-record) browser context so that a // Return the original (possibly off-the-record) browser context so that a
// separate instance of the DevicePermissionsManager is used in incognito // separate instance of the DevicePermissionsManager is used in incognito
// mode. The parent class's implemenation returns NULL. // mode. The parent class's implementation returns null.
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
} // namespace extensions } // namespace extensions

@@ -45,7 +45,7 @@ IdleManagerFactory::BuildServiceInstanceForBrowserContext(
content::BrowserContext* IdleManagerFactory::GetBrowserContextToUse( content::BrowserContext* IdleManagerFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
bool IdleManagerFactory::ServiceIsCreatedWithBrowserContext() const { bool IdleManagerFactory::ServiceIsCreatedWithBrowserContext() const {

@@ -84,7 +84,7 @@ NetworkingPrivateDelegateFactory::BuildServiceInstanceForBrowserContext(
BrowserContext* NetworkingPrivateDelegateFactory::GetBrowserContextToUse( BrowserContext* NetworkingPrivateDelegateFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -45,7 +45,7 @@ content::BrowserContext*
NetworkingPrivateEventRouterFactory::GetBrowserContextToUse( NetworkingPrivateEventRouterFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
bool NetworkingPrivateEventRouterFactory::ServiceIsCreatedWithBrowserContext() bool NetworkingPrivateEventRouterFactory::ServiceIsCreatedWithBrowserContext()

@@ -37,8 +37,7 @@ content::BrowserContext& GetBrowserContextToUse(
// The on-the-record profile always uses itself. // The on-the-record profile always uses itself.
if (!calling_context.IsOffTheRecord()) { if (!calling_context.IsOffTheRecord()) {
return *client->GetContextForOriginalOnly(&calling_context, return *client->GetContextForOriginalOnly(&calling_context);
/*force_guest_profile=*/true);
} }
DCHECK(util::IsIncognitoEnabled(extension.id(), &calling_context)) DCHECK(util::IsIncognitoEnabled(extension.id(), &calling_context))
@@ -47,10 +46,9 @@ content::BrowserContext& GetBrowserContextToUse(
// Split-mode extensions use the incognito (calling) context; spanning mode // Split-mode extensions use the incognito (calling) context; spanning mode
// extensions fall back to the original profile. // extensions fall back to the original profile.
bool is_split_mode = IncognitoInfo::IsSplitMode(&extension); bool is_split_mode = IncognitoInfo::IsSplitMode(&extension);
return is_split_mode ? *client->GetContextOwnInstance( return is_split_mode
&calling_context, /*force_guest_profile=*/true) ? *client->GetContextOwnInstance(&calling_context)
: *client->GetContextRedirectedToOriginal( : *client->GetContextRedirectedToOriginal(&calling_context);
&calling_context, /*force_guest_profile=*/true);
} }
// Similar to the above, returns the OffscreenDocumentManager to use for the // Similar to the above, returns the OffscreenDocumentManager to use for the

@@ -67,8 +67,7 @@ OffscreenDocumentManagerFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
// Use the `context` passed in; this service has separate instances in // Use the `context` passed in; this service has separate instances in
// on-the-record and incognito. // on-the-record and incognito.
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
KeyedService* OffscreenDocumentManagerFactory::BuildServiceInstanceFor( KeyedService* OffscreenDocumentManagerFactory::BuildServiceInstanceFor(

@@ -52,7 +52,7 @@ PrinterProviderAPIFactory::BuildServiceInstanceForBrowserContext(
content::BrowserContext* PrinterProviderAPIFactory::GetBrowserContextToUse( content::BrowserContext* PrinterProviderAPIFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -49,8 +49,7 @@ class AppFirewallHoleManagerFactory : public BrowserContextKeyedServiceFactory {
BrowserContext* GetBrowserContextToUse( BrowserContext* GetBrowserContextToUse(
BrowserContext* context) const override { BrowserContext* context) const override {
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
}; };

@@ -55,7 +55,7 @@ content::BrowserContext* SessionStorageManagerFactory::GetBrowserContextToUse(
// Share storage between incognito and on-the-record profiles by using the // Share storage between incognito and on-the-record profiles by using the
// original context of an incognito window. // original context of an incognito window.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
browser_context, /*force_guest_profile=*/true); browser_context);
} }
KeyedService* SessionStorageManagerFactory::BuildServiceInstanceFor( KeyedService* SessionStorageManagerFactory::BuildServiceInstanceFor(

@@ -51,7 +51,7 @@ BrowserContext* WebRequestEventRouterFactory::GetBrowserContextToUse(
// WebRequestAPI shares an instance between regular and incognito profiles, // WebRequestAPI shares an instance between regular and incognito profiles,
// so this must do the same. // so this must do the same.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
bool WebRequestEventRouterFactory::ServiceIsCreatedWithBrowserContext() const { bool WebRequestEventRouterFactory::ServiceIsCreatedWithBrowserContext() const {

@@ -105,8 +105,7 @@ class ShutdownNotifierFactory
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
}; };

@@ -47,8 +47,7 @@ class ShutdownNotifierFactory
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
}; };

@@ -297,7 +297,7 @@ content::BrowserContext*
AppWindowGeometryCache::Factory::GetBrowserContextToUse( AppWindowGeometryCache::Factory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
void AppWindowGeometryCache::AddObserver(Observer* observer) { void AppWindowGeometryCache::AddObserver(Observer* observer) {

@@ -246,7 +246,7 @@ bool AppWindowRegistry::Factory::ServiceIsCreatedWithBrowserContext() const {
content::BrowserContext* AppWindowRegistry::Factory::GetBrowserContextToUse( content::BrowserContext* AppWindowRegistry::Factory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -152,18 +152,22 @@ class BrowserContextKeyedAPIFactory : public BrowserContextKeyedServiceFactory {
// These can be effectively overridden with template specializations. // These can be effectively overridden with template specializations.
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
if (T::kServiceRedirectedInIncognito) { // The GetContext...() implementations below treat guest sessions like
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( // normal ones, so explicitly exclude guest sessions here if necessary.
context, T::kServiceIsCreatedInGuestMode); auto* const client = ExtensionsBrowserClient::Get();
if constexpr (!T::kServiceIsCreatedInGuestMode) {
if (client->IsGuestSession(context)) {
return nullptr;
}
} }
if (T::kServiceHasOwnInstanceInIncognito) { if constexpr (T::kServiceRedirectedInIncognito) {
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return client->GetContextRedirectedToOriginal(context);
context, T::kServiceIsCreatedInGuestMode); } else if constexpr (T::kServiceHasOwnInstanceInIncognito) {
return client->GetContextOwnInstance(context);
} else {
return client->GetContextForOriginalOnly(context);
} }
return ExtensionsBrowserClient::Get()->GetContextForOriginalOnly(
context, T::kServiceIsCreatedInGuestMode);
} }
bool ServiceIsCreatedWithBrowserContext() const override { bool ServiceIsCreatedWithBrowserContext() const override {

@@ -48,7 +48,7 @@ BrowserContext* EventRouterFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
// Redirected in incognito. // Redirected in incognito.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
bool EventRouterFactory::ServiceIsNULLWhileTesting() const { bool EventRouterFactory::ServiceIsNULLWhileTesting() const {

@@ -47,7 +47,7 @@ class ExtensionActionManagerFactory : public BrowserContextKeyedServiceFactory {
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
}; };

@@ -282,7 +282,7 @@ class BrowserContextShutdownNotifierFactory
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
return extensions::ExtensionsBrowserClient::Get()->GetContextOwnInstance( return extensions::ExtensionsBrowserClient::Get()->GetContextOwnInstance(
context, /*force_guest_profile=*/true); context);
} }
}; };

@@ -56,7 +56,7 @@ content::BrowserContext* ExtensionHostRegistryFactory::GetBrowserContextToUse(
// the original context. This makes it quite challenging to let this have its // the original context. This makes it quite challenging to let this have its
// own incognito context. // own incognito context.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
KeyedService* ExtensionHostRegistryFactory::BuildServiceInstanceFor( KeyedService* ExtensionHostRegistryFactory::BuildServiceInstanceFor(

@@ -39,5 +39,5 @@ content::BrowserContext* ExtensionPrefValueMapFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
// Redirected in incognito. // Redirected in incognito.
return extensions::ExtensionsBrowserClient::Get() return extensions::ExtensionsBrowserClient::Get()
->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true); ->GetContextRedirectedToOriginal(context);
} }

@@ -68,7 +68,7 @@ ExtensionPrefsFactory::BuildServiceInstanceForBrowserContext(
content::BrowserContext* ExtensionPrefsFactory::GetBrowserContextToUse( content::BrowserContext* ExtensionPrefsFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -45,7 +45,7 @@ ExtensionPrefsHelperFactory::BuildServiceInstanceForBrowserContext(
content::BrowserContext* ExtensionPrefsHelperFactory::GetBrowserContextToUse( content::BrowserContext* ExtensionPrefsHelperFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
bool ExtensionPrefsHelperFactory::ServiceIsNULLWhileTesting() const { bool ExtensionPrefsHelperFactory::ServiceIsNULLWhileTesting() const {

@@ -998,8 +998,7 @@ class ExtensionURLLoaderFactory : public network::SelfDeletingURLLoaderFactory {
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
}; };

@@ -45,8 +45,7 @@ BrowserContext* ExtensionRegistryFactory::GetBrowserContextToUse(
// Redirected in incognito. // Redirected in incognito.
auto* extension_browser_client = ExtensionsBrowserClient::Get(); auto* extension_browser_client = ExtensionsBrowserClient::Get();
DCHECK(extension_browser_client); DCHECK(extension_browser_client);
return extension_browser_client->GetContextRedirectedToOriginal( return extension_browser_client->GetContextRedirectedToOriginal(context);
context, /*force_guest_profile=*/true);
} }
} // namespace extensions } // namespace extensions

@@ -168,31 +168,24 @@ class ExtensionsBrowserClient {
// //chrome where their implementation filters out Profiles based on their // //chrome where their implementation filters out Profiles based on their
// types (Regular, Guest, System, etc..) and sub-implementation (Original vs // types (Regular, Guest, System, etc..) and sub-implementation (Original vs
// OTR). // OTR).
//
// Returns the Original `BrowserContext` based on the input `context`: // - if `context` is a System Profile: returns null.
// - if `context` is Original: returns itself. // - if `context` is Original: returns itself.
// - if `context` is OTR: returns the equivalent parent context. // - if `context` is OTR: returns the associated parent context.
// - returns nullptr if the underlying implementation of `context` is of type
// System Profile, or of type Guest Profile if `force_guest_profile` is false.
virtual content::BrowserContext* GetContextRedirectedToOriginal( virtual content::BrowserContext* GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) = 0;
bool force_guest_profile) = 0;
// Returns its own instance of `BrowserContext` based on the input `context`: // - if `context` is a System Profile: returns null.
// - if `context` is Original: returns itself. // - if `context` is Original: returns itself.
// - if `context` is OTR: returns nullptr. // - if `context` is OTR: returns itself.
// - returns nullptr if the underlying implementation of `context` is of type
// System Profile, or of type Guest Profile if `force_guest_profile` is false.
virtual content::BrowserContext* GetContextOwnInstance( virtual content::BrowserContext* GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) = 0;
bool force_guest_profile) = 0;
// Returns the Original `BrowserContext` based on the input `context`: // - if `context` is a System Profile: returns null.
// - if `context` is Original: returns itself. // - if `context` is Original: returns itself.
// - if `context` is OTR: returns nullptr. // - if `context` is OTR: returns null.
// - returns nullptr if the underlying implementation of `context` is of type
// System Profile, or of type Guest Profile if `force_guest_profile` is false.
virtual content::BrowserContext* GetContextForOriginalOnly( virtual content::BrowserContext* GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) = 0;
bool force_guest_profile) = 0;
// Returns whether the `context` has extensions disabled. // Returns whether the `context` has extensions disabled.
// An example of an implementation of `BrowserContext` that has extensions // An example of an implementation of `BrowserContext` that has extensions

@@ -62,7 +62,7 @@ content::BrowserContext*
MimeHandlerStreamManagerFactory::GetBrowserContextToUse( MimeHandlerStreamManagerFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return extensions::ExtensionsBrowserClient::Get() return extensions::ExtensionsBrowserClient::Get()
->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true); ->GetContextRedirectedToOriginal(context);
} }
} // namespace } // namespace

@@ -39,7 +39,7 @@ ImageLoaderFactory::BuildServiceInstanceForBrowserContext(
content::BrowserContext* ImageLoaderFactory::GetBrowserContextToUse( content::BrowserContext* ImageLoaderFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -47,7 +47,7 @@ BrowserContext* LazyBackgroundTaskQueueFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
// Redirected in incognito. // Redirected in incognito.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -70,7 +70,7 @@ content::BrowserContext* MessageTrackerFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
// One instance will exist across incognito and regular contexts. // One instance will exist across incognito and regular contexts.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
std::unique_ptr<KeyedService> std::unique_ptr<KeyedService>

@@ -242,7 +242,7 @@ PermissionsManager* PermissionsManagerFactory::GetForBrowserContext(
content::BrowserContext* PermissionsManagerFactory::GetBrowserContextToUse( content::BrowserContext* PermissionsManagerFactory::GetBrowserContextToUse(
content::BrowserContext* browser_context) const { content::BrowserContext* browser_context) const {
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
browser_context, /*force_guest_profile=*/true); browser_context);
} }
KeyedService* PermissionsManagerFactory::BuildServiceInstanceFor( KeyedService* PermissionsManagerFactory::BuildServiceInstanceFor(

@@ -190,15 +190,15 @@ std::unique_ptr<ProcessManager> ProcessManager::Create(
// a regular incognito mode, background pages of extensions must be // a regular incognito mode, background pages of extensions must be
// created regardless of whether extensions use "spanning" or "split" // created regardless of whether extensions use "spanning" or "split"
// incognito behavior. // incognito behavior.
BrowserContext* original_context = client->GetContextRedirectedToOriginal( BrowserContext* original_context =
context, /*force_guest_profile=*/true); client->GetContextRedirectedToOriginal(context);
return std::make_unique<ProcessManager>(context, original_context, return std::make_unique<ProcessManager>(context, original_context,
extension_registry); extension_registry);
} }
if (context->IsOffTheRecord()) { if (context->IsOffTheRecord()) {
BrowserContext* original_context = client->GetContextRedirectedToOriginal( BrowserContext* original_context =
context, /*force_guest_profile=*/true); client->GetContextRedirectedToOriginal(context);
return std::make_unique<IncognitoProcessManager>(context, original_context, return std::make_unique<IncognitoProcessManager>(context, original_context,
extension_registry); extension_registry);
} }
@@ -1188,7 +1188,7 @@ IncognitoProcessManager::GetSiteInstanceForURL(const GURL& url) {
if (extension && !IncognitoInfo::IsSplitMode(extension)) { if (extension && !IncognitoInfo::IsSplitMode(extension)) {
BrowserContext* original_context = BrowserContext* original_context =
ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
browser_context(), /*force_guest_profile=*/true); browser_context());
return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url); return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url);
} }

@@ -54,8 +54,7 @@ BrowserContext* ProcessManagerFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
// ProcessManager::Create handles guest and incognito profiles, returning an // ProcessManager::Create handles guest and incognito profiles, returning an
// IncognitoProcessManager in incognito mode. // IncognitoProcessManager in incognito mode.
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
} // namespace extensions } // namespace extensions

@@ -47,7 +47,7 @@ BrowserContext* ProcessMapFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
// Redirected in incognito. // Redirected in incognito.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -637,7 +637,7 @@ BrowserContext* RendererStartupHelperFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
// Redirected in incognito. // Redirected in incognito.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
bool RendererStartupHelperFactory::ServiceIsCreatedWithBrowserContext() const { bool RendererStartupHelperFactory::ServiceIsCreatedWithBrowserContext() const {

@@ -46,8 +46,7 @@ class ServiceWorkerKeepaliveShutdownNotifierFactory
// Use whichever profile is associated with the Keepalive. // Use whichever profile is associated with the Keepalive.
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
}; };

@@ -52,8 +52,7 @@ ServiceWorkerTaskQueueFactory::BuildServiceInstanceForBrowserContext(
task_queue = std::make_unique<ServiceWorkerTaskQueue>(context); task_queue = std::make_unique<ServiceWorkerTaskQueue>(context);
} }
BrowserContext* original_context = BrowserContext* original_context =
ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(context);
context, /*force_guest_profile=*/true);
if (original_context != context) { if (original_context != context) {
// To let incognito context's ServiceWorkerTaskQueue know about extensions // To let incognito context's ServiceWorkerTaskQueue know about extensions
// that were activated (which has its own instance of // that were activated (which has its own instance of
@@ -67,8 +66,7 @@ ServiceWorkerTaskQueueFactory::BuildServiceInstanceForBrowserContext(
BrowserContext* ServiceWorkerTaskQueueFactory::GetBrowserContextToUse( BrowserContext* ServiceWorkerTaskQueueFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextOwnInstance( return ExtensionsBrowserClient::Get()->GetContextOwnInstance(context);
context, /*force_guest_profile=*/true);
} }
} // namespace extensions } // namespace extensions

@@ -104,20 +104,17 @@ BrowserContext* TestExtensionsBrowserClient::GetOriginalContext(
content::BrowserContext* content::BrowserContext*
TestExtensionsBrowserClient::GetContextRedirectedToOriginal( TestExtensionsBrowserClient::GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return GetOriginalContext(context); return GetOriginalContext(context);
} }
content::BrowserContext* TestExtensionsBrowserClient::GetContextOwnInstance( content::BrowserContext* TestExtensionsBrowserClient::GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return context; return context;
} }
content::BrowserContext* TestExtensionsBrowserClient::GetContextForOriginalOnly( content::BrowserContext* TestExtensionsBrowserClient::GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
// Default implementation of // Default implementation of
// `BrowserContextKeyedServiceFactory::GetBrowserContextToUse()`. // `BrowserContextKeyedServiceFactory::GetBrowserContextToUse()`.
return context->IsOffTheRecord() ? nullptr : context; return context->IsOffTheRecord() ? nullptr : context;

@@ -81,19 +81,14 @@ class TestExtensionsBrowserClient : public ExtensionsBrowserClient {
content::BrowserContext* context) override; content::BrowserContext* context) override;
content::BrowserContext* GetOriginalContext( content::BrowserContext* GetOriginalContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
content::BrowserContext* GetContextRedirectedToOriginal( content::BrowserContext* GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextOwnInstance( content::BrowserContext* GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextForOriginalOnly( content::BrowserContext* GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
bool AreExtensionsDisabledForContext( bool AreExtensionsDisabledForContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
#if BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_CHROMEOS)
std::string GetUserIdHashFromContext( std::string GetUserIdHashFromContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
@@ -116,7 +111,6 @@ class TestExtensionsBrowserClient : public ExtensionsBrowserClient {
int resource_id, int resource_id,
scoped_refptr<net::HttpResponseHeaders> headers, scoped_refptr<net::HttpResponseHeaders> headers,
mojo::PendingRemote<network::mojom::URLLoaderClient> client) override; mojo::PendingRemote<network::mojom::URLLoaderClient> client) override;
bool AllowCrossRendererResourceLoad( bool AllowCrossRendererResourceLoad(
const network::ResourceRequest& request, const network::ResourceRequest& request,
network::mojom::RequestDestination destination, network::mojom::RequestDestination destination,

@@ -43,8 +43,7 @@ UpdateServiceFactory::BuildServiceInstanceForBrowserContext(
content::BrowserContext* UpdateServiceFactory::GetBrowserContextToUse( content::BrowserContext* UpdateServiceFactory::GetBrowserContextToUse(
content::BrowserContext* context) const { content::BrowserContext* context) const {
return ExtensionsBrowserClient::Get()->GetContextForOriginalOnly( return ExtensionsBrowserClient::Get()->GetContextForOriginalOnly(context);
context, /*force_guest_profile=*/true);
} }
} // namespace extensions } // namespace extensions

@@ -53,7 +53,7 @@ class UserScriptWorldConfigurationManagerFactory
// incognito-only world specifications and have them cleaned up when the // incognito-only world specifications and have them cleaned up when the
// profile is destroyed. // profile is destroyed.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
KeyedService* BuildServiceInstanceFor( KeyedService* BuildServiceInstanceFor(
content::BrowserContext* context) const override { content::BrowserContext* context) const override {

@@ -21,7 +21,7 @@ WarningService::WarningService(content::BrowserContext* browser_context)
if (browser_context_) { if (browser_context_) {
extension_registry_observation_.Observe(ExtensionRegistry::Get( extension_registry_observation_.Observe(ExtensionRegistry::Get(
ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
browser_context_, /*force_guest_profile=*/true))); browser_context_)));
} }
} }

@@ -45,7 +45,7 @@ BrowserContext* WarningServiceFactory::GetBrowserContextToUse(
BrowserContext* context) const { BrowserContext* context) const {
// Redirected in incognito. // Redirected in incognito.
return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal( return ExtensionsBrowserClient::Get()->GetContextRedirectedToOriginal(
context, /*force_guest_profile=*/true); context);
} }
} // namespace extensions } // namespace extensions

@@ -95,21 +95,18 @@ BrowserContext* ShellExtensionsBrowserClient::GetOriginalContext(
content::BrowserContext* content::BrowserContext*
ShellExtensionsBrowserClient::GetContextRedirectedToOriginal( ShellExtensionsBrowserClient::GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return context; return context;
} }
content::BrowserContext* ShellExtensionsBrowserClient::GetContextOwnInstance( content::BrowserContext* ShellExtensionsBrowserClient::GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return context; return context;
} }
content::BrowserContext* content::BrowserContext*
ShellExtensionsBrowserClient::GetContextForOriginalOnly( ShellExtensionsBrowserClient::GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) {
bool force_guest_profile) {
return context; return context;
} }

@@ -50,19 +50,14 @@ class ShellExtensionsBrowserClient : public ExtensionsBrowserClient {
content::BrowserContext* context) override; content::BrowserContext* context) override;
content::BrowserContext* GetOriginalContext( content::BrowserContext* GetOriginalContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
content::BrowserContext* GetContextRedirectedToOriginal( content::BrowserContext* GetContextRedirectedToOriginal(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextOwnInstance( content::BrowserContext* GetContextOwnInstance(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
content::BrowserContext* GetContextForOriginalOnly( content::BrowserContext* GetContextForOriginalOnly(
content::BrowserContext* context, content::BrowserContext* context) override;
bool force_guest_profile) override;
bool AreExtensionsDisabledForContext( bool AreExtensionsDisabledForContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;
#if BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_CHROMEOS)
std::string GetUserIdHashFromContext( std::string GetUserIdHashFromContext(
content::BrowserContext* context) override; content::BrowserContext* context) override;