Commit d79d123c authored by Anna Malova's avatar Anna Malova Committed by Commit Bot

Introduce AwBrowserProcess class. This class is for managing global objects.

Move Safe Browsing objects from AwBrowserContext to AwBrowserProcess.
AwSafeBrowsingUIManager, TriggerManager, DatabaseManager and AwSafeBrowsingWhitelistManager
are supposed to be global and not tied to any profile.

Bug: 963875
Change-Id: Id353809e069a619223d396fa29b217534c680432
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1690854Reviewed-by: default avatarNate Fischer <ntfschr@chromium.org>
Reviewed-by: default avatarTobias Sargeant <tobiasjs@chromium.org>
Commit-Queue: Anna Malova <amalova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#676817}
parent 92de8dc5
...@@ -487,6 +487,8 @@ source_set("common") { ...@@ -487,6 +487,8 @@ source_set("common") {
"browser/aw_browser_permission_request_delegate.h", "browser/aw_browser_permission_request_delegate.h",
"browser/aw_browser_policy_connector.cc", "browser/aw_browser_policy_connector.cc",
"browser/aw_browser_policy_connector.h", "browser/aw_browser_policy_connector.h",
"browser/aw_browser_process.cc",
"browser/aw_browser_process.h",
"browser/aw_browser_terminator.cc", "browser/aw_browser_terminator.cc",
"browser/aw_browser_terminator.h", "browser/aw_browser_terminator.h",
"browser/aw_content_browser_client.cc", "browser/aw_content_browser_client.cc",
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include "android_webview/browser/aw_resource_context.h" #include "android_webview/browser/aw_resource_context.h"
#include "android_webview/browser/aw_web_ui_controller_factory.h" #include "android_webview/browser/aw_web_ui_controller_factory.h"
#include "android_webview/browser/net/aw_url_request_context_getter.h" #include "android_webview/browser/net/aw_url_request_context_getter.h"
#include "android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h"
#include "base/base_paths_posix.h" #include "base/base_paths_posix.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/feature_list.h" #include "base/feature_list.h"
...@@ -37,7 +36,7 @@ ...@@ -37,7 +36,7 @@
#include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "components/prefs/pref_service_factory.h" #include "components/prefs/pref_service_factory.h"
#include "components/safe_browsing/triggers/trigger_manager.h" #include "components/safe_browsing/common/safe_browsing_prefs.h"
#include "components/url_formatter/url_fixer.h" #include "components/url_formatter/url_fixer.h"
#include "components/user_prefs/user_prefs.h" #include "components/user_prefs/user_prefs.h"
#include "components/visitedlink/browser/visitedlink_master.h" #include "components/visitedlink/browser/visitedlink_master.h"
...@@ -52,6 +51,7 @@ ...@@ -52,6 +51,7 @@
#include "net/proxy_resolution/proxy_resolution_service.h" #include "net/proxy_resolution/proxy_resolution_service.h"
#include "services/network/public/cpp/features.h" #include "services/network/public/cpp/features.h"
#include "services/preferences/tracked/segregated_pref_store.h" #include "services/preferences/tracked/segregated_pref_store.h"
using base::FilePath; using base::FilePath;
using content::BrowserThread; using content::BrowserThread;
...@@ -87,18 +87,6 @@ std::unique_ptr<net::ProxyConfigServiceAndroid> CreateProxyConfigService() { ...@@ -87,18 +87,6 @@ std::unique_ptr<net::ProxyConfigServiceAndroid> CreateProxyConfigService() {
return config_service_android; return config_service_android;
} }
std::unique_ptr<AwSafeBrowsingWhitelistManager>
CreateSafeBrowsingWhitelistManager() {
// Should not be called until the end of PreMainMessageLoopRun,
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
base::CreateSequencedTaskRunnerWithTraits(
{base::MayBlock(), base::TaskPriority::BEST_EFFORT});
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner =
base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO});
return std::make_unique<AwSafeBrowsingWhitelistManager>(
background_task_runner, io_task_runner);
}
// Empty method to skip origin security check as DownloadManager will set its // Empty method to skip origin security check as DownloadManager will set its
// own method. // own method.
bool IgnoreOriginSecurityCheck(const GURL& url) { bool IgnoreOriginSecurityCheck(const GURL& url) {
...@@ -264,15 +252,6 @@ void AwBrowserContext::PreMainMessageLoopRun(net::NetLog* net_log) { ...@@ -264,15 +252,6 @@ void AwBrowserContext::PreMainMessageLoopRun(net::NetLog* net_log) {
auth_pref_callback); auth_pref_callback);
} }
safe_browsing_ui_manager_ =
new AwSafeBrowsingUIManager(GetAwURLRequestContext());
safe_browsing_trigger_manager_ =
std::make_unique<safe_browsing::TriggerManager>(
safe_browsing_ui_manager_.get(),
/*referrer_chain_provider=*/nullptr,
/*local_state_prefs=*/nullptr);
safe_browsing_whitelist_manager_ = CreateSafeBrowsingWhitelistManager();
content::WebUIControllerFactory::RegisterFactory( content::WebUIControllerFactory::RegisterFactory(
AwWebUIControllerFactory::GetInstance()); AwWebUIControllerFactory::GetInstance());
} }
...@@ -417,39 +396,6 @@ AwBrowserContext::RetriveInProgressDownloadManager() { ...@@ -417,39 +396,6 @@ AwBrowserContext::RetriveInProgressDownloadManager() {
base::BindRepeating(&content::DownloadRequestUtils::IsURLSafe), nullptr); base::BindRepeating(&content::DownloadRequestUtils::IsURLSafe), nullptr);
} }
AwSafeBrowsingUIManager* AwBrowserContext::GetSafeBrowsingUIManager() const {
return safe_browsing_ui_manager_.get();
}
safe_browsing::RemoteSafeBrowsingDatabaseManager*
AwBrowserContext::GetSafeBrowsingDBManager() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (!safe_browsing_db_manager_) {
safe_browsing_db_manager_ =
new safe_browsing::RemoteSafeBrowsingDatabaseManager();
}
if (!safe_browsing_db_manager_started_) {
// V4ProtocolConfig is not used. Just create one with empty values..
safe_browsing::V4ProtocolConfig config("", false, "", "");
safe_browsing_db_manager_->StartOnIOThread(
safe_browsing_ui_manager_->GetURLLoaderFactoryOnIOThread(), config);
safe_browsing_db_manager_started_ = true;
}
return safe_browsing_db_manager_.get();
}
safe_browsing::TriggerManager* AwBrowserContext::GetSafeBrowsingTriggerManager()
const {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
return safe_browsing_trigger_manager_.get();
}
AwSafeBrowsingWhitelistManager*
AwBrowserContext::GetSafeBrowsingWhitelistManager() const {
// Should not be called until the end of PreMainMessageLoopRun,
return safe_browsing_whitelist_manager_.get();
}
network::mojom::HttpAuthDynamicParamsPtr network::mojom::HttpAuthDynamicParamsPtr
AwBrowserContext::CreateHttpAuthDynamicParams() { AwBrowserContext::CreateHttpAuthDynamicParams() {
network::mojom::HttpAuthDynamicParamsPtr auth_dynamic_params = network::mojom::HttpAuthDynamicParamsPtr auth_dynamic_params =
......
...@@ -10,14 +10,13 @@ ...@@ -10,14 +10,13 @@
#include "android_webview/browser/aw_ssl_host_state_delegate.h" #include "android_webview/browser/aw_ssl_host_state_delegate.h"
#include "android_webview/browser/net/aw_proxy_config_monitor.h" #include "android_webview/browser/net/aw_proxy_config_monitor.h"
#include "android_webview/browser/safe_browsing/aw_safe_browsing_ui_manager.h"
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "components/keyed_service/core/simple_factory_key.h" #include "components/keyed_service/core/simple_factory_key.h"
#include "components/prefs/pref_change_registrar.h" #include "components/prefs/pref_change_registrar.h"
#include "components/safe_browsing/android/remote_database_manager.h" #include "components/prefs/pref_registry_simple.h"
#include "components/visitedlink/browser/visitedlink_delegate.h" #include "components/visitedlink/browser/visitedlink_delegate.h"
#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_context.h"
...@@ -51,15 +50,10 @@ namespace visitedlink { ...@@ -51,15 +50,10 @@ namespace visitedlink {
class VisitedLinkMaster; class VisitedLinkMaster;
} }
namespace safe_browsing {
class TriggerManager;
} // namespace safe_browsing
namespace android_webview { namespace android_webview {
class AwFormDatabaseService; class AwFormDatabaseService;
class AwQuotaManagerBridge; class AwQuotaManagerBridge;
class AwSafeBrowsingWhitelistManager;
class AwURLRequestContextGetter; class AwURLRequestContextGetter;
namespace prefs { namespace prefs {
...@@ -133,11 +127,6 @@ class AwBrowserContext : public content::BrowserContext, ...@@ -133,11 +127,6 @@ class AwBrowserContext : public content::BrowserContext,
// visitedlink::VisitedLinkDelegate implementation. // visitedlink::VisitedLinkDelegate implementation.
void RebuildTable(const scoped_refptr<URLEnumerator>& enumerator) override; void RebuildTable(const scoped_refptr<URLEnumerator>& enumerator) override;
AwSafeBrowsingUIManager* GetSafeBrowsingUIManager() const;
safe_browsing::RemoteSafeBrowsingDatabaseManager* GetSafeBrowsingDBManager();
safe_browsing::TriggerManager* GetSafeBrowsingTriggerManager() const;
AwSafeBrowsingWhitelistManager* GetSafeBrowsingWhitelistManager() const;
// Constructs HttpAuthDynamicParams based on |user_pref_service_|. // Constructs HttpAuthDynamicParams based on |user_pref_service_|.
network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams(); network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams();
...@@ -167,14 +156,6 @@ class AwBrowserContext : public content::BrowserContext, ...@@ -167,14 +156,6 @@ class AwBrowserContext : public content::BrowserContext,
std::unique_ptr<content::PermissionControllerDelegate> permission_manager_; std::unique_ptr<content::PermissionControllerDelegate> permission_manager_;
PrefChangeRegistrar pref_change_registrar_; PrefChangeRegistrar pref_change_registrar_;
scoped_refptr<AwSafeBrowsingUIManager> safe_browsing_ui_manager_;
std::unique_ptr<safe_browsing::TriggerManager> safe_browsing_trigger_manager_;
scoped_refptr<safe_browsing::RemoteSafeBrowsingDatabaseManager>
safe_browsing_db_manager_;
bool safe_browsing_db_manager_started_ = false;
std::unique_ptr<AwSafeBrowsingWhitelistManager>
safe_browsing_whitelist_manager_;
SimpleFactoryKey simple_factory_key_; SimpleFactoryKey simple_factory_key_;
DISALLOW_COPY_AND_ASSIGN(AwBrowserContext); DISALLOW_COPY_AND_ASSIGN(AwBrowserContext);
......
...@@ -77,6 +77,9 @@ int AwBrowserMainParts::PreEarlyInitialization() { ...@@ -77,6 +77,9 @@ int AwBrowserMainParts::PreEarlyInitialization() {
main_task_executor_ = std::make_unique<base::SingleThreadTaskExecutor>( main_task_executor_ = std::make_unique<base::SingleThreadTaskExecutor>(
base::MessagePump::Type::UI); base::MessagePump::Type::UI);
} }
browser_process_ = std::make_unique<AwBrowserProcess>(
browser_client_->aw_feature_list_creator());
return service_manager::RESULT_CODE_NORMAL_EXIT; return service_manager::RESULT_CODE_NORMAL_EXIT;
} }
...@@ -118,7 +121,7 @@ int AwBrowserMainParts::PreCreateThreads() { ...@@ -118,7 +121,7 @@ int AwBrowserMainParts::PreCreateThreads() {
void AwBrowserMainParts::PreMainMessageLoopRun() { void AwBrowserMainParts::PreMainMessageLoopRun() {
AwBrowserContext* context = browser_client_->InitBrowserContext(); AwBrowserContext* context = browser_client_->InitBrowserContext();
context->PreMainMessageLoopRun(browser_client_->GetNonNetworkServiceNetLog()); context->PreMainMessageLoopRun(browser_client_->GetNonNetworkServiceNetLog());
AwBrowserProcess::GetInstance()->InitSafeBrowsing();
content::RenderFrameHost::AllowInjectingJavaScript(); content::RenderFrameHost::AllowInjectingJavaScript();
} }
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <memory> #include <memory>
#include "android_webview/browser/aw_browser_process.h"
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/task/single_thread_task_executor.h" #include "base/task/single_thread_task_executor.h"
...@@ -15,6 +16,7 @@ ...@@ -15,6 +16,7 @@
namespace android_webview { namespace android_webview {
class AwContentBrowserClient; class AwContentBrowserClient;
class AwBrowserProcess;
class AwBrowserMainParts : public content::BrowserMainParts { class AwBrowserMainParts : public content::BrowserMainParts {
public: public:
...@@ -34,6 +36,8 @@ class AwBrowserMainParts : public content::BrowserMainParts { ...@@ -34,6 +36,8 @@ class AwBrowserMainParts : public content::BrowserMainParts {
AwContentBrowserClient* browser_client_; AwContentBrowserClient* browser_client_;
std::unique_ptr<AwBrowserProcess> browser_process_;
DISALLOW_COPY_AND_ASSIGN(AwBrowserMainParts); DISALLOW_COPY_AND_ASSIGN(AwBrowserMainParts);
}; };
......
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "android_webview/browser/aw_browser_process.h"
#include "android_webview/browser/aw_browser_context.h"
#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
using content::BrowserThread;
namespace android_webview {
namespace {
AwBrowserProcess* g_aw_browser_process = nullptr;
} // namespace
// static
AwBrowserProcess* AwBrowserProcess::GetInstance() {
return g_aw_browser_process;
}
AwBrowserProcess::AwBrowserProcess(
AwFeatureListCreator* aw_feature_list_creator) {
g_aw_browser_process = this;
aw_feature_list_creator_ = aw_feature_list_creator;
}
AwBrowserProcess::~AwBrowserProcess() {
g_aw_browser_process = nullptr;
}
PrefService* AwBrowserProcess::local_state() {
if (!local_state_)
CreateLocalState();
return local_state_.get();
}
void AwBrowserProcess::CreateLocalState() {
DCHECK(!local_state_);
local_state_ = aw_feature_list_creator_->TakePrefService();
DCHECK(local_state_);
}
void AwBrowserProcess::InitSafeBrowsing() {
CreateSafeBrowsingUIManager();
CreateSafeBrowsingWhitelistManager();
}
void AwBrowserProcess::CreateSafeBrowsingUIManager() {
safe_browsing_ui_manager_ = new AwSafeBrowsingUIManager(
AwBrowserContext::GetDefault()->GetAwURLRequestContext());
}
void AwBrowserProcess::CreateSafeBrowsingWhitelistManager() {
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
base::CreateSequencedTaskRunnerWithTraits(
{base::MayBlock(), base::TaskPriority::BEST_EFFORT});
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner =
base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO});
safe_browsing_whitelist_manager_ =
std::make_unique<AwSafeBrowsingWhitelistManager>(background_task_runner,
io_task_runner);
}
safe_browsing::RemoteSafeBrowsingDatabaseManager*
AwBrowserProcess::GetSafeBrowsingDBManager() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (!safe_browsing_db_manager_) {
safe_browsing_db_manager_ =
new safe_browsing::RemoteSafeBrowsingDatabaseManager();
}
if (!safe_browsing_db_manager_started_) {
// V4ProtocolConfig is not used. Just create one with empty values..
safe_browsing::V4ProtocolConfig config("", false, "", "");
safe_browsing_db_manager_->StartOnIOThread(
GetSafeBrowsingUIManager()->GetURLLoaderFactoryOnIOThread(), config);
safe_browsing_db_manager_started_ = true;
}
return safe_browsing_db_manager_.get();
}
safe_browsing::TriggerManager*
AwBrowserProcess::GetSafeBrowsingTriggerManager() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (!safe_browsing_trigger_manager_) {
safe_browsing_trigger_manager_ =
std::make_unique<safe_browsing::TriggerManager>(
GetSafeBrowsingUIManager(),
/*referrer_chain_provider=*/nullptr,
/*local_state_prefs=*/nullptr);
}
return safe_browsing_trigger_manager_.get();
}
AwSafeBrowsingWhitelistManager*
AwBrowserProcess::GetSafeBrowsingWhitelistManager() const {
return safe_browsing_whitelist_manager_.get();
}
AwSafeBrowsingUIManager* AwBrowserProcess::GetSafeBrowsingUIManager() const {
return safe_browsing_ui_manager_.get();
}
} // namespace android_webview
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This interface is for managing the global services of the application.
#ifndef ANDROID_WEBVIEW_BROWSER_AW_BROWSER_PROCESS_H_
#define ANDROID_WEBVIEW_BROWSER_AW_BROWSER_PROCESS_H_
#include "android_webview/browser/aw_feature_list_creator.h"
#include "android_webview/browser/safe_browsing/aw_safe_browsing_ui_manager.h"
#include "android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h"
#include "components/prefs/pref_service.h"
#include "components/safe_browsing/android/remote_database_manager.h"
#include "components/safe_browsing/triggers/trigger_manager.h"
namespace android_webview {
class AwBrowserProcess {
public:
AwBrowserProcess(AwFeatureListCreator* aw_feature_list_creator);
~AwBrowserProcess();
static AwBrowserProcess* GetInstance();
PrefService* local_state();
void CreateLocalState();
void InitSafeBrowsing();
safe_browsing::RemoteSafeBrowsingDatabaseManager* GetSafeBrowsingDBManager();
// Called on UI thread.
// This method lazily creates TriggerManager.
// Needs to happen after |safe_browsing_ui_manager_| is created.
safe_browsing::TriggerManager* GetSafeBrowsingTriggerManager();
// InitSafeBrowsing must be called first.
// Called on UI and IO threads.
AwSafeBrowsingWhitelistManager* GetSafeBrowsingWhitelistManager() const;
// InitSafeBrowsing must be called first.
// Called on UI and IO threads.
AwSafeBrowsingUIManager* GetSafeBrowsingUIManager() const;
private:
void CreateSafeBrowsingUIManager();
void CreateSafeBrowsingWhitelistManager();
// If non-null, this object holds a pref store that will be taken by
// AwBrowserProcess to create the |local_state_|.
// The AwFeatureListCreator is owned by AwMainDelegate.
AwFeatureListCreator* aw_feature_list_creator_;
std::unique_ptr<PrefService> local_state_;
// Accessed on both UI and IO threads.
scoped_refptr<AwSafeBrowsingUIManager> safe_browsing_ui_manager_;
// Accessed on UI thread only.
std::unique_ptr<safe_browsing::TriggerManager> safe_browsing_trigger_manager_;
// These two are accessed on IO thread only.
scoped_refptr<safe_browsing::RemoteSafeBrowsingDatabaseManager>
safe_browsing_db_manager_;
bool safe_browsing_db_manager_started_ = false;
// TODO(amalova): Consider to make WhitelistManager per-profile.
// Accessed on UI and IO threads.
std::unique_ptr<AwSafeBrowsingWhitelistManager>
safe_browsing_whitelist_manager_;
DISALLOW_COPY_AND_ASSIGN(AwBrowserProcess);
};
} // namespace android_webview
#endif // ANDROID_WEBVIEW_BROWSER_AW_BROWSER_PROCESS_H_
...@@ -935,9 +935,9 @@ AwContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate() { ...@@ -935,9 +935,9 @@ AwContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate() {
if (!safe_browsing_url_checker_delegate_) { if (!safe_browsing_url_checker_delegate_) {
safe_browsing_url_checker_delegate_ = new AwUrlCheckerDelegateImpl( safe_browsing_url_checker_delegate_ = new AwUrlCheckerDelegateImpl(
browser_context_->GetSafeBrowsingDBManager(), AwBrowserProcess::GetInstance()->GetSafeBrowsingDBManager(),
browser_context_->GetSafeBrowsingUIManager(), AwBrowserProcess::GetInstance()->GetSafeBrowsingUIManager(),
browser_context_->GetSafeBrowsingWhitelistManager()); AwBrowserProcess::GetInstance()->GetSafeBrowsingWhitelistManager());
} }
return safe_browsing_url_checker_delegate_.get(); return safe_browsing_url_checker_delegate_.get();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "android_webview/browser/aw_browser_context.h" #include "android_webview/browser/aw_browser_process.h"
#include "android_webview/browser/aw_content_browser_client.h" #include "android_webview/browser/aw_content_browser_client.h"
#include "android_webview/browser/aw_contents.h" #include "android_webview/browser/aw_contents.h"
#include "android_webview/browser/aw_contents_io_thread_client.h" #include "android_webview/browser/aw_contents_io_thread_client.h"
...@@ -65,7 +65,7 @@ JNI_AwContentsStatics_GetSafeBrowsingPrivacyPolicyUrl(JNIEnv* env) { ...@@ -65,7 +65,7 @@ JNI_AwContentsStatics_GetSafeBrowsingPrivacyPolicyUrl(JNIEnv* env) {
GURL privacy_policy_url( GURL privacy_policy_url(
security_interstitials::kSafeBrowsingPrivacyPolicyUrl); security_interstitials::kSafeBrowsingPrivacyPolicyUrl);
std::string locale = std::string locale =
AwBrowserContext::GetDefault()->GetSafeBrowsingUIManager()->app_locale(); AwBrowserProcess::GetInstance()->GetSafeBrowsingUIManager()->app_locale();
privacy_policy_url = privacy_policy_url =
google_util::AppendGoogleLocaleParam(privacy_policy_url, locale); google_util::AppendGoogleLocaleParam(privacy_policy_url, locale);
return base::android::ConvertUTF8ToJavaString(env, privacy_policy_url.spec()); return base::android::ConvertUTF8ToJavaString(env, privacy_policy_url.spec());
...@@ -105,7 +105,7 @@ void JNI_AwContentsStatics_SetSafeBrowsingWhitelist( ...@@ -105,7 +105,7 @@ void JNI_AwContentsStatics_SetSafeBrowsingWhitelist(
std::vector<std::string> rules; std::vector<std::string> rules;
base::android::AppendJavaStringArrayToStringVector(env, jrules, &rules); base::android::AppendJavaStringArrayToStringVector(env, jrules, &rules);
AwSafeBrowsingWhitelistManager* whitelist_manager = AwSafeBrowsingWhitelistManager* whitelist_manager =
AwBrowserContext::GetDefault()->GetSafeBrowsingWhitelistManager(); AwBrowserProcess::GetInstance()->GetSafeBrowsingWhitelistManager();
whitelist_manager->SetWhitelistOnUIThread( whitelist_manager->SetWhitelistOnUIThread(
std::move(rules), std::move(rules),
base::BindOnce(&SafeBrowsingWhitelistAssigned, base::BindOnce(&SafeBrowsingWhitelistAssigned,
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include <string> #include <string>
#include <utility> #include <utility>
#include "android_webview/browser/aw_browser_context.h" #include "android_webview/browser/aw_browser_process.h"
#include "android_webview/browser/aw_contents_client_bridge.h" #include "android_webview/browser/aw_contents_client_bridge.h"
#include "android_webview/browser/aw_contents_io_thread_client.h" #include "android_webview/browser/aw_contents_io_thread_client.h"
#include "android_webview/browser/aw_resource_context.h" #include "android_webview/browser/aw_resource_context.h"
...@@ -259,9 +259,9 @@ void AwResourceDispatcherHostDelegate::RequestBeginning( ...@@ -259,9 +259,9 @@ void AwResourceDispatcherHostDelegate::RequestBeginning(
content::ResourceThrottle* throttle = content::ResourceThrottle* throttle =
MaybeCreateAwSafeBrowsingResourceThrottle( MaybeCreateAwSafeBrowsingResourceThrottle(
request, resource_type, request, resource_type,
AwBrowserContext::GetDefault()->GetSafeBrowsingDBManager(), AwBrowserProcess::GetInstance()->GetSafeBrowsingDBManager(),
AwBrowserContext::GetDefault()->GetSafeBrowsingUIManager(), AwBrowserProcess::GetInstance()->GetSafeBrowsingUIManager(),
AwBrowserContext::GetDefault() AwBrowserProcess::GetInstance()
->GetSafeBrowsingWhitelistManager()); ->GetSafeBrowsingWhitelistManager());
if (throttle == nullptr) { if (throttle == nullptr) {
// Should not happen // Should not happen
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <memory> #include <memory>
#include "android_webview/browser/aw_browser_context.h" #include "android_webview/browser/aw_browser_context.h"
#include "android_webview/browser/aw_browser_process.h"
#include "android_webview/browser/safe_browsing/aw_safe_browsing_ui_manager.h" #include "android_webview/browser/safe_browsing/aw_safe_browsing_ui_manager.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
...@@ -20,7 +21,6 @@ ...@@ -20,7 +21,6 @@
#include "content/public/browser/navigation_entry.h" #include "content/public/browser/navigation_entry.h"
#include "content/public/browser/storage_partition.h" #include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
using content::InterstitialPage; using content::InterstitialPage;
using content::WebContents; using content::WebContents;
using security_interstitials::BaseSafeBrowsingErrorUI; using security_interstitials::BaseSafeBrowsingErrorUI;
...@@ -66,7 +66,8 @@ AwSafeBrowsingBlockingPage::AwSafeBrowsingBlockingPage( ...@@ -66,7 +66,8 @@ AwSafeBrowsingBlockingPage::AwSafeBrowsingBlockingPage(
// HistoryServiceFactory lives in the chrome/ layer and relies on Profile // HistoryServiceFactory lives in the chrome/ layer and relies on Profile
// which we don't have in Android WebView (crbug.com/731744). // which we don't have in Android WebView (crbug.com/731744).
threat_details_in_progress_ = threat_details_in_progress_ =
aw_browser_context->GetSafeBrowsingTriggerManager() AwBrowserProcess::GetInstance()
->GetSafeBrowsingTriggerManager()
->StartCollectingThreatDetails( ->StartCollectingThreatDetails(
safe_browsing::TriggerType::SECURITY_INTERSTITIAL, web_contents, safe_browsing::TriggerType::SECURITY_INTERSTITIAL, web_contents,
unsafe_resources[0], url_loader_factory, unsafe_resources[0], url_loader_factory,
...@@ -133,9 +134,8 @@ void AwSafeBrowsingBlockingPage::FinishThreatDetails( ...@@ -133,9 +134,8 @@ void AwSafeBrowsingBlockingPage::FinishThreatDetails(
// Finish computing threat details. TriggerManager will decide if it is safe // Finish computing threat details. TriggerManager will decide if it is safe
// to send the report. // to send the report.
AwBrowserContext* aw_browser_context = bool report_sent = AwBrowserProcess::GetInstance()
AwBrowserContext::FromWebContents(web_contents()); ->GetSafeBrowsingTriggerManager()
bool report_sent = aw_browser_context->GetSafeBrowsingTriggerManager()
->FinishCollectingThreatDetails( ->FinishCollectingThreatDetails(
safe_browsing::TriggerType::SECURITY_INTERSTITIAL, safe_browsing::TriggerType::SECURITY_INTERSTITIAL,
web_contents(), delay, did_proceed, num_visits, web_contents(), delay, did_proceed, num_visits,
......
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