diff --git a/browser/permissions/permission_lifetime_manager_factory.cc b/browser/permissions/permission_lifetime_manager_factory.cc index 9e79e92f1e8d..4e5042275ca7 100644 --- a/browser/permissions/permission_lifetime_manager_factory.cc +++ b/browser/permissions/permission_lifetime_manager_factory.cc @@ -8,8 +8,8 @@ #include #include -#include "brave/browser/permissions/brave_permission_origin_lifetime_monitor.h" #include "brave/components/permissions/permission_lifetime_manager.h" +#include "brave/components/permissions/permission_origin_lifetime_monitor_impl.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/permissions/permission_manager_factory.h" #include "chrome/browser/profiles/incognito_helpers.h" @@ -52,7 +52,7 @@ KeyedService* PermissionLifetimeManagerFactory::BuildServiceInstanceFor( permission_origin_lifetime_monitor; if (base::FeatureList::IsEnabled(net::features::kBraveEphemeralStorage)) { permission_origin_lifetime_monitor = - std::make_unique( + std::make_unique( context); } auto* profile = Profile::FromBrowserContext(context); diff --git a/browser/permissions/sources.gni b/browser/permissions/sources.gni index 3ff5e780670a..b03c17c25b4b 100644 --- a/browser/permissions/sources.gni +++ b/browser/permissions/sources.gni @@ -1,6 +1,4 @@ brave_browser_permissions_sources = [ - "//brave/browser/permissions/brave_permission_origin_lifetime_monitor.cc", - "//brave/browser/permissions/brave_permission_origin_lifetime_monitor.h", "//brave/browser/permissions/permission_lifetime_manager_factory.cc", "//brave/browser/permissions/permission_lifetime_manager_factory.h", ] diff --git a/components/permissions/DEPS b/components/permissions/DEPS index d47bdf490639..8cd9f4d2f82b 100644 --- a/components/permissions/DEPS +++ b/components/permissions/DEPS @@ -3,5 +3,6 @@ include_rules = [ "+components/keyed_service/core", "+components/permissions", "+components/pref_registry", + "+content/public/browser", "+services/preferences/public/cpp", ] diff --git a/components/permissions/permission_origin_lifetime_monitor.h b/components/permissions/permission_origin_lifetime_monitor.h index 25940195be24..04d3efbe0a9e 100644 --- a/components/permissions/permission_origin_lifetime_monitor.h +++ b/components/permissions/permission_origin_lifetime_monitor.h @@ -24,9 +24,9 @@ class PermissionOriginLifetimeMonitor { virtual void SetOnPermissionOriginDestroyedCallback( base::RepeatingCallback callback) = 0; - // Subscribe to a permission origin destruction. Returns a string key which - // will be used in a callback. An empty key can be returned if a permission - // origin can not be observed. + // Subscribe to a permission origin destruction. Returns an ephemeral storage + // domain or an empty string if a storage partition for |requesting_origin| + // doesn't exist. Returned string will be used in a callback. virtual std::string SubscribeToPermissionOriginDestruction( const GURL& requesting_origin) = 0; }; diff --git a/browser/permissions/brave_permission_origin_lifetime_monitor.cc b/components/permissions/permission_origin_lifetime_monitor_impl.cc similarity index 76% rename from browser/permissions/brave_permission_origin_lifetime_monitor.cc rename to components/permissions/permission_origin_lifetime_monitor_impl.cc index 1cdde8f98964..9a80ee078d5e 100644 --- a/browser/permissions/brave_permission_origin_lifetime_monitor.cc +++ b/components/permissions/permission_origin_lifetime_monitor_impl.cc @@ -3,7 +3,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include "brave/browser/permissions/brave_permission_origin_lifetime_monitor.h" +#include "brave/components/permissions/permission_origin_lifetime_monitor_impl.h" #include @@ -14,24 +14,24 @@ namespace permissions { -BravePermissionOriginLifetimeMonitor::BravePermissionOriginLifetimeMonitor( +PermissionOriginLifetimeMonitorImpl::PermissionOriginLifetimeMonitorImpl( content::BrowserContext* browser_context) : browser_context_(browser_context) { DCHECK(browser_context_); DCHECK(base::FeatureList::IsEnabled(net::features::kBraveEphemeralStorage)); } -BravePermissionOriginLifetimeMonitor::~BravePermissionOriginLifetimeMonitor() = +PermissionOriginLifetimeMonitorImpl::~PermissionOriginLifetimeMonitorImpl() = default; -void BravePermissionOriginLifetimeMonitor:: +void PermissionOriginLifetimeMonitorImpl:: SetOnPermissionOriginDestroyedCallback( base::RepeatingCallback callback) { permission_destroyed_callback_ = std::move(callback); } std::string -BravePermissionOriginLifetimeMonitor::SubscribeToPermissionOriginDestruction( +PermissionOriginLifetimeMonitorImpl::SubscribeToPermissionOriginDestruction( const GURL& requesting_origin) { DCHECK(permission_destroyed_callback_); std::string storage_domain = @@ -39,6 +39,7 @@ BravePermissionOriginLifetimeMonitor::SubscribeToPermissionOriginDestruction( auto* tld_ephemeral_lifetime = content::TLDEphemeralLifetime::Get(browser_context_, storage_domain); if (!tld_ephemeral_lifetime) { + DCHECK(!base::Contains(active_subscriptions_, storage_domain)); // If an ephemeral lifetime object doesn't exist, treat a permission origin // as an already destroyed one. return std::string(); @@ -46,14 +47,14 @@ BravePermissionOriginLifetimeMonitor::SubscribeToPermissionOriginDestruction( if (!base::Contains(active_subscriptions_, storage_domain)) { tld_ephemeral_lifetime->RegisterOnDestroyCallback(base::BindOnce( - &BravePermissionOriginLifetimeMonitor::OnEphemeralTLDDestroyed, + &PermissionOriginLifetimeMonitorImpl::OnEphemeralTLDDestroyed, weak_ptr_factory_.GetWeakPtr())); active_subscriptions_.insert(storage_domain); } return storage_domain; } -void BravePermissionOriginLifetimeMonitor::OnEphemeralTLDDestroyed( +void PermissionOriginLifetimeMonitorImpl::OnEphemeralTLDDestroyed( const std::string& storage_domain) { DCHECK(base::Contains(active_subscriptions_, storage_domain)); active_subscriptions_.erase(storage_domain); diff --git a/browser/permissions/brave_permission_origin_lifetime_monitor.h b/components/permissions/permission_origin_lifetime_monitor_impl.h similarity index 61% rename from browser/permissions/brave_permission_origin_lifetime_monitor.h rename to components/permissions/permission_origin_lifetime_monitor_impl.h index 29c775bca667..66a43c5af134 100644 --- a/browser/permissions/brave_permission_origin_lifetime_monitor.h +++ b/components/permissions/permission_origin_lifetime_monitor_impl.h @@ -3,8 +3,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef BRAVE_BROWSER_PERMISSIONS_BRAVE_PERMISSION_ORIGIN_LIFETIME_MONITOR_H_ -#define BRAVE_BROWSER_PERMISSIONS_BRAVE_PERMISSION_ORIGIN_LIFETIME_MONITOR_H_ +#ifndef BRAVE_COMPONENTS_PERMISSIONS_PERMISSION_ORIGIN_LIFETIME_MONITOR_IMPL_H_ +#define BRAVE_COMPONENTS_PERMISSIONS_PERMISSION_ORIGIN_LIFETIME_MONITOR_IMPL_H_ #include @@ -19,21 +19,19 @@ class BrowserContext; namespace permissions { // Uses TLDEphemeralLifetime to observe a permission origin destruction. -class BravePermissionOriginLifetimeMonitor +class PermissionOriginLifetimeMonitorImpl : public PermissionOriginLifetimeMonitor { public: - BravePermissionOriginLifetimeMonitor( + explicit PermissionOriginLifetimeMonitorImpl( content::BrowserContext* browser_context); - BravePermissionOriginLifetimeMonitor( - const BravePermissionOriginLifetimeMonitor&) = delete; - BravePermissionOriginLifetimeMonitor& operator=( - const BravePermissionOriginLifetimeMonitor&) = delete; - ~BravePermissionOriginLifetimeMonitor() override; + PermissionOriginLifetimeMonitorImpl( + const PermissionOriginLifetimeMonitorImpl&) = delete; + PermissionOriginLifetimeMonitorImpl& operator=( + const PermissionOriginLifetimeMonitorImpl&) = delete; + ~PermissionOriginLifetimeMonitorImpl() override; void SetOnPermissionOriginDestroyedCallback( base::RepeatingCallback callback) override; - // Returns an ephemeral storage domain or an empty string if a storage - // partition for |requesting_origin| doesn't exist. std::string SubscribeToPermissionOriginDestruction( const GURL& requesting_origin) override; @@ -46,10 +44,10 @@ class BravePermissionOriginLifetimeMonitor permission_destroyed_callback_; base::flat_set active_subscriptions_; - base::WeakPtrFactory weak_ptr_factory_{ + base::WeakPtrFactory weak_ptr_factory_{ this}; }; } // namespace permissions -#endif // BRAVE_BROWSER_PERMISSIONS_BRAVE_PERMISSION_ORIGIN_LIFETIME_MONITOR_H_ +#endif // BRAVE_COMPONENTS_PERMISSIONS_PERMISSION_ORIGIN_LIFETIME_MONITOR_IMPL_H_ diff --git a/components/permissions/sources.gni b/components/permissions/sources.gni index 90a51a00973d..b46788cd6689 100644 --- a/components/permissions/sources.gni +++ b/components/permissions/sources.gni @@ -11,6 +11,8 @@ brave_components_permissions_sources = [ "//brave/components/permissions/permission_lifetime_utils.cc", "//brave/components/permissions/permission_lifetime_utils.h", "//brave/components/permissions/permission_origin_lifetime_monitor.h", + "//brave/components/permissions/permission_origin_lifetime_monitor_impl.cc", + "//brave/components/permissions/permission_origin_lifetime_monitor_impl.h", "//brave/components/permissions/permission_origins.cc", "//brave/components/permissions/permission_origins.h", ]