Fix services dependency for unittests.

This commit is contained in:
Aleksey Khoroshilov
2021-07-05 16:44:16 +07:00
parent 707ba05e83
commit 326dbae1d1
4 changed files with 28 additions and 22 deletions
@@ -11,7 +11,6 @@
#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"
#include "chrome/browser/profiles/profile.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
@@ -35,10 +34,7 @@ PermissionLifetimeManagerFactory::GetInstance() {
PermissionLifetimeManagerFactory::PermissionLifetimeManagerFactory()
: BrowserContextKeyedServiceFactory(
"PermissionLifetimeManagerFactory",
BrowserContextDependencyManager::GetInstance()) {
DependsOn(PermissionManagerFactory::GetInstance());
DependsOn(HostContentSettingsMapFactory::GetInstance());
}
BrowserContextDependencyManager::GetInstance()) {}
PermissionLifetimeManagerFactory::~PermissionLifetimeManagerFactory() = default;
@@ -26,10 +26,10 @@ KeyedService* PermissionManagerFactory::BuildServiceInstanceFor(
auto permission_contexts = CreatePermissionContexts(profile);
if (base::FeatureList::IsEnabled(
permissions::features::kPermissionLifetime)) {
auto* lifetime_manager =
PermissionLifetimeManagerFactory::GetInstance()->GetForProfile(profile);
auto factory =
base::BindRepeating(&PermissionLifetimeManagerFactory::GetForProfile);
for (auto& permission_context : permission_contexts) {
permission_context.second->SetPermissionLifetimeManager(lifetime_manager);
permission_context.second->SetPermissionLifetimeManagerFactory(factory);
}
}
return new permissions::PermissionManager(profile,
@@ -13,9 +13,10 @@
namespace permissions {
void PermissionContextBase::SetPermissionLifetimeManager(
PermissionLifetimeManager* lifetime_manager) {
permission_lifetime_manager_ = lifetime_manager;
void PermissionContextBase::SetPermissionLifetimeManagerFactory(
const base::RepeatingCallback<
PermissionLifetimeManager*(content::BrowserContext*)>& factory) {
permission_lifetime_manager_factory_ = factory;
}
void PermissionContextBase::PermissionDecided(
@@ -25,14 +26,17 @@ void PermissionContextBase::PermissionDecided(
BrowserPermissionCallback callback,
ContentSetting content_setting,
bool is_one_time) {
if (permission_lifetime_manager_) {
if (permission_lifetime_manager_factory_) {
const auto request_it = pending_requests_.find(id.ToString());
if (request_it != pending_requests_.end()) {
const PermissionRequest* permission_request = request_it->second.get();
DCHECK(permission_request);
permission_lifetime_manager_->PermissionDecided(
*permission_request, requesting_origin, embedding_origin,
content_setting, is_one_time);
if (auto* permission_lifetime_manager =
permission_lifetime_manager_factory_.Run(browser_context_)) {
permission_lifetime_manager->PermissionDecided(
*permission_request, requesting_origin, embedding_origin,
content_setting, is_one_time);
}
}
}
PermissionContextBase_ChromiumImpl::PermissionDecided(
@@ -6,14 +6,23 @@
#ifndef BRAVE_CHROMIUM_SRC_COMPONENTS_PERMISSIONS_PERMISSION_CONTEXT_BASE_H_
#define BRAVE_CHROMIUM_SRC_COMPONENTS_PERMISSIONS_PERMISSION_CONTEXT_BASE_H_
#include "base/callback.h"
namespace permissions {
class PermissionContextBase;
using PermissionContextBase_BraveImpl = PermissionContextBase;
class PermissionLifetimeManager;
} // namespace permissions
#define PermissionContextBase PermissionContextBase_ChromiumImpl
#define PermissionDecided virtual PermissionDecided
#define BRAVE_PERMISSION_CONTEXT_BASE_H_ friend PermissionContextBase_BraveImpl;
#define BRAVE_PERMISSION_CONTEXT_BASE_H_ \
friend PermissionContextBase_BraveImpl; \
\
protected: \
base::RepeatingCallback<PermissionLifetimeManager*( \
content::BrowserContext*)> \
permission_lifetime_manager_factory_;
#include "../../../../components/permissions/permission_context_base.h"
@@ -23,14 +32,13 @@ using PermissionContextBase_BraveImpl = PermissionContextBase;
namespace permissions {
class PermissionLifetimeManager;
class PermissionContextBase : public PermissionContextBase_ChromiumImpl {
public:
using PermissionContextBase_ChromiumImpl::PermissionContextBase_ChromiumImpl;
void SetPermissionLifetimeManager(
PermissionLifetimeManager* lifetime_manager);
void SetPermissionLifetimeManagerFactory(
const base::RepeatingCallback<
PermissionLifetimeManager*(content::BrowserContext*)>& factory);
private:
void PermissionDecided(const PermissionRequestID& id,
@@ -39,8 +47,6 @@ class PermissionContextBase : public PermissionContextBase_ChromiumImpl {
BrowserPermissionCallback callback,
ContentSetting content_setting,
bool is_one_time) override;
PermissionLifetimeManager* permission_lifetime_manager_ = nullptr;
};
} // namespace permissions