Revert "Revert "Allow all extensions, warn for unvetted, 1 component updater only now""
This reverts commit 61f822d203.
This commit is contained in:
@@ -138,6 +138,10 @@ By installing this extension, you are agreeing to the Google Widevine Terms of U
|
||||
<message name="IDS_BLOCKED_AUTOPLAY_NO_ACTION" desc="Radio button choice to continue blocking a site from autoplay media, displayed in bubble when a page tries to autoplay media.">
|
||||
Continue blocking autoplay
|
||||
</message>
|
||||
<!-- Extensions -->
|
||||
<message name="IDS_UNVETTED_EXTENSION_INSTALL_PROMPT_TITLE" desc="Titlebar of the extension or app installation prompt which was not vetted by Brave. Asks the user if they want to install a particular extension or app.">
|
||||
NOT A RECOMMENDED BRAVE EXTENSION! Add "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>"?
|
||||
</message>
|
||||
<!-- Appearance -->
|
||||
<message name="IDS_SETTINGS_APPEARANCE_SETTINGS_BRAVE_THEMES" desc="The label for brave theme change setting options">
|
||||
Brave colors
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "chrome/common/chrome_paths_internal.h"
|
||||
#include "chrome/common/chrome_switches.h"
|
||||
#include "components/password_manager/core/common/password_manager_features.h"
|
||||
#include "extensions/common/extension_features.h"
|
||||
#include "ui/base/ui_base_features.h"
|
||||
|
||||
#if !defined(CHROME_MULTIPLE_DLL_BROWSER)
|
||||
@@ -119,7 +120,8 @@ bool BraveMainDelegate::BasicStartupComplete(int* exit_code) {
|
||||
std::stringstream enabled_features;
|
||||
enabled_features << features::kEnableEmojiContextMenu.name
|
||||
<< "," << features::kDesktopPWAWindowing.name
|
||||
<< "," << password_manager::features::kFillOnAccountSelect.name;
|
||||
<< "," << password_manager::features::kFillOnAccountSelect.name
|
||||
<< "," << extensions::features::kNewExtensionUpdaterService.name;
|
||||
command_line.AppendSwitchASCII(switches::kEnableFeatures,
|
||||
enabled_features.str());
|
||||
return ChromeMainDelegate::BasicStartupComplete(exit_code);
|
||||
|
||||
@@ -43,11 +43,9 @@ BraveBrowserProcessImpl::BraveBrowserProcessImpl()
|
||||
}
|
||||
|
||||
component_updater::ComponentUpdateService*
|
||||
BraveBrowserProcessImpl::component_updater(
|
||||
std::unique_ptr<component_updater::ComponentUpdateService> &component_updater,
|
||||
bool use_brave_server) {
|
||||
if (component_updater)
|
||||
return component_updater.get();
|
||||
BraveBrowserProcessImpl::component_updater() {
|
||||
if (component_updater_)
|
||||
return component_updater_.get();
|
||||
|
||||
if (!BrowserThread::CurrentlyOn(BrowserThread::UI))
|
||||
return nullptr;
|
||||
@@ -64,23 +62,13 @@ BraveBrowserProcessImpl::component_updater(
|
||||
if (!scheduler)
|
||||
scheduler = std::make_unique<component_updater::TimerUpdateScheduler>();
|
||||
|
||||
component_updater = component_updater::ComponentUpdateServiceFactory(
|
||||
component_updater_ = component_updater::ComponentUpdateServiceFactory(
|
||||
component_updater::MakeBraveComponentUpdaterConfigurator(
|
||||
base::CommandLine::ForCurrentProcess(),
|
||||
g_browser_process->local_state(), use_brave_server),
|
||||
g_browser_process->local_state()),
|
||||
std::move(scheduler));
|
||||
|
||||
return component_updater.get();
|
||||
}
|
||||
|
||||
component_updater::ComponentUpdateService*
|
||||
BraveBrowserProcessImpl::component_updater() {
|
||||
return component_updater(component_updater_, true);
|
||||
}
|
||||
|
||||
component_updater::ComponentUpdateService*
|
||||
BraveBrowserProcessImpl::google_component_updater() {
|
||||
return component_updater(google_component_updater_, false);
|
||||
return component_updater_.get();
|
||||
}
|
||||
|
||||
brave_shields::AdBlockService*
|
||||
|
||||
@@ -31,7 +31,6 @@ class BraveBrowserProcessImpl : public BrowserProcessImpl {
|
||||
|
||||
// BrowserProcess implementation.
|
||||
component_updater::ComponentUpdateService* component_updater() override;
|
||||
component_updater::ComponentUpdateService* google_component_updater();
|
||||
|
||||
brave_shields::AdBlockService* ad_block_service();
|
||||
brave_shields::AdBlockRegionalService* ad_block_regional_service();
|
||||
@@ -49,15 +48,6 @@ class BraveBrowserProcessImpl : public BrowserProcessImpl {
|
||||
https_everywhere_service_;
|
||||
std::unique_ptr<brave::BraveStatsUpdater> brave_stats_updater_;
|
||||
std::unique_ptr<extensions::BraveTorClientUpdater> tor_client_updater_;
|
||||
|
||||
component_updater::ComponentUpdateService* component_updater(
|
||||
std::unique_ptr<component_updater::ComponentUpdateService>&,
|
||||
bool use_brave_server);
|
||||
std::unique_ptr<component_updater::ComponentUpdateService>
|
||||
google_component_updater_;
|
||||
std::unique_ptr<component_updater::ComponentUpdateService>
|
||||
brave_component_updater_;
|
||||
|
||||
std::unique_ptr<ProfileCreationMonitor> profile_creation_monitor_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(BraveBrowserProcessImpl);
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/version.h"
|
||||
#include "brave/common/network_constants.h"
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/net/system_network_context_manager.h"
|
||||
@@ -39,8 +38,7 @@ namespace {
|
||||
class BraveConfigurator : public update_client::Configurator {
|
||||
public:
|
||||
BraveConfigurator(const base::CommandLine* cmdline,
|
||||
PrefService* pref_service,
|
||||
bool use_brave_server);
|
||||
PrefService* pref_service);
|
||||
|
||||
// update_client::Configurator overrides.
|
||||
int InitialDelay() const override;
|
||||
@@ -75,7 +73,6 @@ class BraveConfigurator : public update_client::Configurator {
|
||||
|
||||
ConfiguratorImpl configurator_impl_;
|
||||
PrefService* pref_service_; // This member is not owned by this class.
|
||||
bool use_brave_server_;
|
||||
|
||||
~BraveConfigurator() override {}
|
||||
};
|
||||
@@ -85,22 +82,14 @@ class BraveConfigurator : public update_client::Configurator {
|
||||
// a custom message signing protocol and it does not depend on using HTTPS.
|
||||
BraveConfigurator::BraveConfigurator(
|
||||
const base::CommandLine* cmdline,
|
||||
PrefService* pref_service,
|
||||
bool use_brave_server)
|
||||
PrefService* pref_service)
|
||||
: configurator_impl_(ComponentUpdaterCommandLineConfigPolicy(cmdline), false),
|
||||
pref_service_(pref_service),
|
||||
use_brave_server_(use_brave_server) {
|
||||
pref_service_(pref_service) {
|
||||
DCHECK(pref_service_);
|
||||
}
|
||||
|
||||
int BraveConfigurator::InitialDelay() const {
|
||||
if (use_brave_server_) {
|
||||
return configurator_impl_.InitialDelay();
|
||||
}
|
||||
// This just makes it so as soon as the Google component update
|
||||
// is used it checks for Widevine, which is currently the only
|
||||
// place we use it.
|
||||
return 10;
|
||||
return configurator_impl_.InitialDelay();
|
||||
}
|
||||
|
||||
int BraveConfigurator::NextCheckDelay() const {
|
||||
@@ -116,10 +105,6 @@ int BraveConfigurator::UpdateDelay() const {
|
||||
}
|
||||
|
||||
std::vector<GURL> BraveConfigurator::UpdateUrl() const {
|
||||
if (use_brave_server_) {
|
||||
return std::vector<GURL>
|
||||
{GURL(kBraveUpdatesExtensionsEndpoint)};
|
||||
}
|
||||
return configurator_impl_.UpdateUrl();
|
||||
}
|
||||
|
||||
@@ -190,10 +175,7 @@ bool BraveConfigurator::EnabledBackgroundDownloader() const {
|
||||
}
|
||||
|
||||
bool BraveConfigurator::EnabledCupSigning() const {
|
||||
if (use_brave_server_) {
|
||||
return false;
|
||||
}
|
||||
return configurator_impl_.EnabledCupSigning();
|
||||
return false;
|
||||
}
|
||||
|
||||
PrefService* BraveConfigurator::GetPrefService() const {
|
||||
@@ -228,9 +210,8 @@ void RegisterPrefsForBraveComponentUpdaterConfigurator(
|
||||
scoped_refptr<update_client::Configurator>
|
||||
MakeBraveComponentUpdaterConfigurator(
|
||||
const base::CommandLine* cmdline,
|
||||
PrefService* pref_service,
|
||||
bool use_brave_server) {
|
||||
return base::MakeRefCounted<BraveConfigurator>(cmdline, pref_service, use_brave_server);
|
||||
PrefService* pref_service) {
|
||||
return base::MakeRefCounted<BraveConfigurator>(cmdline, pref_service);
|
||||
}
|
||||
|
||||
} // namespace component_updater
|
||||
|
||||
@@ -31,8 +31,7 @@ void RegisterPrefsForBraveComponentUpdaterConfigurator(
|
||||
scoped_refptr<update_client::Configurator>
|
||||
MakeBraveComponentUpdaterConfigurator(
|
||||
const base::CommandLine* cmdline,
|
||||
PrefService* pref_service,
|
||||
bool use_brave_server);
|
||||
PrefService* pref_service);
|
||||
|
||||
} // namespace component_updater
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ source_set("extensions") {
|
||||
"brave_component_extension_resource_manager.h",
|
||||
"brave_component_loader.cc",
|
||||
"brave_component_loader.h",
|
||||
"brave_extension_install_prompt.cc",
|
||||
"brave_extension_install_prompt.h",
|
||||
"brave_extension_management.cc",
|
||||
"brave_extension_management.h",
|
||||
"brave_extension_provider.cc",
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* 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/extensions/brave_extension_install_prompt.h"
|
||||
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "brave/browser/extensions/brave_extension_provider.h"
|
||||
#include "brave/grit/brave_generated_resources.h"
|
||||
#include "extensions/common/extension_id.h"
|
||||
#include "ui/base/l10n/l10n_util.h"
|
||||
|
||||
BravePrompt::BravePrompt(ExtensionInstallPrompt::PromptType type) :
|
||||
ExtensionInstallPrompt::Prompt(type) {
|
||||
}
|
||||
|
||||
BravePrompt::~BravePrompt() {
|
||||
}
|
||||
|
||||
base::string16 BravePrompt::GetDialogTitle() const {
|
||||
if (!extensions::BraveExtensionProvider::IsVetted(extension())) {
|
||||
if (type_ == ExtensionInstallPrompt::INSTALL_PROMPT ||
|
||||
type_ == ExtensionInstallPrompt::INLINE_INSTALL_PROMPT) {
|
||||
return l10n_util::GetStringFUTF16(IDS_UNVETTED_EXTENSION_INSTALL_PROMPT_TITLE,
|
||||
base::UTF8ToUTF16(extension_->name()));
|
||||
}
|
||||
}
|
||||
return ExtensionInstallPrompt::Prompt::GetDialogTitle();
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* 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_EXTENSIONS_BRAVE_EXTENSION_INSTALL_PROMPT_H_
|
||||
#define BRAVE_BROWSER_EXTENSIONS_BRAVE_EXTENSION_INSTALL_PROMPT_H_
|
||||
|
||||
#include "chrome/browser/extensions/extension_install_prompt.h"
|
||||
|
||||
class BravePrompt : public ExtensionInstallPrompt::Prompt {
|
||||
public:
|
||||
explicit BravePrompt(ExtensionInstallPrompt::PromptType type);
|
||||
~BravePrompt() override;
|
||||
|
||||
base::string16 GetDialogTitle() const override;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(BravePrompt);
|
||||
};
|
||||
|
||||
#endif // BRAVE_BROWSER_EXTENSIONS_BRAVE_EXTENSION_INSTALL_PROMPT_H_
|
||||
@@ -15,12 +15,21 @@
|
||||
|
||||
namespace {
|
||||
|
||||
bool IsWhitelisted(const extensions::Extension* extension) {
|
||||
// Allow PWAs to run
|
||||
if (extension->GetType() == extensions::Manifest::TYPE_HOSTED_APP) {
|
||||
return true;
|
||||
}
|
||||
static std::vector<std::string> whitelist({
|
||||
bool IsBlacklisted(const extensions::Extension* extension) {
|
||||
// This is a hardcoded list of extensions to block.
|
||||
// Typically instead you can just use the brave/go-updater to list
|
||||
// a blacklisted extension that you want to block for existing clients.
|
||||
// mlklomjnahgiddgfdgjhibinlfibfffc is used for tests, it corresponds to
|
||||
// brave/test/data/should-be-blocked-extension
|
||||
return extension->id() == "mlklomjnahgiddgfdgjhibinlfibfffc";
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace extensions {
|
||||
|
||||
bool BraveExtensionProvider::IsVetted(const Extension* extension) {
|
||||
static std::vector<std::string> vetted_extensions({
|
||||
brave_extension_id,
|
||||
brave_webtorrent_extension_id,
|
||||
pdfjs_extension_id,
|
||||
@@ -83,14 +92,10 @@ bool IsWhitelisted(const extensions::Extension* extension) {
|
||||
// Test ID: Brave Tor Client Updater
|
||||
"ngicbhhaldfdgmjhilmnleppfpmkgbbk"
|
||||
});
|
||||
return std::find(whitelist.begin(), whitelist.end(),
|
||||
extension->id()) != whitelist.end();
|
||||
return std::find(vetted_extensions.begin(), vetted_extensions.end(),
|
||||
extension->id()) != vetted_extensions.end();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace extensions {
|
||||
|
||||
BraveExtensionProvider::BraveExtensionProvider() {
|
||||
}
|
||||
|
||||
@@ -108,7 +113,7 @@ std::string BraveExtensionProvider::GetDebugPolicyProviderName() const {
|
||||
|
||||
bool BraveExtensionProvider::UserMayLoad(const Extension* extension,
|
||||
base::string16* error) const {
|
||||
if (!IsWhitelisted(extension)) {
|
||||
if (IsBlacklisted(extension)) {
|
||||
if (error) {
|
||||
*error =
|
||||
l10n_util::GetStringFUTF16(IDS_EXTENSION_CANT_INSTALL_ON_BRAVE,
|
||||
|
||||
@@ -18,6 +18,7 @@ class BraveExtensionProvider : public ManagementPolicy::Provider {
|
||||
base::string16* error) const override;
|
||||
bool MustRemainInstalled(const Extension* extension,
|
||||
base::string16* error) const override;
|
||||
static bool IsVetted(const extensions::Extension* extension);
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(BraveExtensionProvider);
|
||||
};
|
||||
|
||||
@@ -3,6 +3,8 @@ import("//build/config/features.gni")
|
||||
source_set("net") {
|
||||
configs += [ "//brave/build/geolocation" ]
|
||||
sources = [
|
||||
"brave_common_static_redirect_network_delegate_helper.cc",
|
||||
"brave_common_static_redirect_network_delegate_helper.h",
|
||||
"brave_network_delegate_base.cc",
|
||||
"brave_network_delegate_base.h",
|
||||
"brave_httpse_network_delegate_helper.cc",
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* 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/net/brave_common_static_redirect_network_delegate_helper.h"
|
||||
|
||||
#include "brave/common/network_constants.h"
|
||||
#include "components/component_updater/component_updater_url_constants.h"
|
||||
#include "extensions/common/extension_urls.h"
|
||||
#include "extensions/common/url_pattern.h"
|
||||
#include "net/url_request/url_request.h"
|
||||
|
||||
|
||||
namespace brave {
|
||||
|
||||
// Update server checks happen from the profile context for admin policy installed extensions.
|
||||
// Update server checks happen from the system context for normal update operations.
|
||||
bool IsUpdaterURL(const GURL& gurl) {
|
||||
static std::vector<URLPattern> updater_patterns({
|
||||
URLPattern(URLPattern::SCHEME_HTTPS, std::string(component_updater::kUpdaterDefaultUrl) + "*"),
|
||||
URLPattern(URLPattern::SCHEME_HTTP, std::string(component_updater::kUpdaterFallbackUrl) + "*"),
|
||||
URLPattern(URLPattern::SCHEME_HTTPS, std::string(extension_urls::kChromeWebstoreUpdateURL) + "*")
|
||||
});
|
||||
bool braveRedirect = gurl.query().find("braveRedirect=true") != std::string::npos;
|
||||
return std::any_of(updater_patterns.begin(), updater_patterns.end(),
|
||||
[&gurl, braveRedirect](URLPattern pattern) {
|
||||
return !braveRedirect && pattern.MatchesURL(gurl);
|
||||
});
|
||||
}
|
||||
|
||||
int OnBeforeURLRequest_CommonStaticRedirectWork(
|
||||
net::URLRequest* request,
|
||||
GURL* new_url,
|
||||
const ResponseCallback& next_callback,
|
||||
std::shared_ptr<BraveRequestInfo> ctx) {
|
||||
GURL::Replacements replacements;
|
||||
if (IsUpdaterURL(request->url())) {
|
||||
replacements.SetQueryStr(request->url().query_piece());
|
||||
*new_url = GURL(kBraveUpdatesExtensionsEndpoint).ReplaceComponents(replacements);
|
||||
return net::OK;
|
||||
}
|
||||
return net::OK;
|
||||
}
|
||||
|
||||
} // namespace brave
|
||||
@@ -0,0 +1,27 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* 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_NET_BRAVE_COMMON_STATIC_REDIRECT_NETWORK_DELEGATE_H_
|
||||
#define BRAVE_BROWSER_NET_BRAVE_COMMON_STATIC_REDIRECT_NETWORK_DELEGATE_H_
|
||||
|
||||
#include "chrome/browser/net/chrome_network_delegate.h"
|
||||
#include "brave/browser/net/url_context.h"
|
||||
|
||||
struct BraveRequestInfo;
|
||||
|
||||
namespace net {
|
||||
class URLRequest;
|
||||
}
|
||||
|
||||
namespace brave {
|
||||
|
||||
int OnBeforeURLRequest_CommonStaticRedirectWork(
|
||||
net::URLRequest* request,
|
||||
GURL* new_url,
|
||||
const ResponseCallback& next_callback,
|
||||
std::shared_ptr<BraveRequestInfo> ctx);
|
||||
|
||||
} // namespace brave
|
||||
|
||||
#endif // BRAVE_BROWSER_NET_BRAVE_COMMON_STATIC_REDIRECT_NETWORK_DELEGATE_H_
|
||||
@@ -0,0 +1,74 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* 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/net/brave_common_static_redirect_network_delegate_helper.h"
|
||||
|
||||
#include "brave/browser/net/url_context.h"
|
||||
#include "brave/common/network_constants.h"
|
||||
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
|
||||
#include "components/component_updater/component_updater_url_constants.h"
|
||||
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
|
||||
#include "net/url_request/url_request_test_util.h"
|
||||
#include "url/gurl.h"
|
||||
#include "url/url_constants.h"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class BraveCommonStaticRedirectNetworkDelegateHelperTest: public testing::Test {
|
||||
public:
|
||||
BraveCommonStaticRedirectNetworkDelegateHelperTest()
|
||||
: thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
|
||||
context_(new net::TestURLRequestContext(true)) {
|
||||
}
|
||||
~BraveCommonStaticRedirectNetworkDelegateHelperTest() override {}
|
||||
void SetUp() override {
|
||||
context_->Init();
|
||||
}
|
||||
net::TestURLRequestContext* context() { return context_.get(); }
|
||||
|
||||
private:
|
||||
content::TestBrowserThreadBundle thread_bundle_;
|
||||
std::unique_ptr<net::TestURLRequestContext> context_;
|
||||
};
|
||||
|
||||
TEST_F(BraveCommonStaticRedirectNetworkDelegateHelperTest, ModifyComponentUpdaterURL) {
|
||||
net::TestDelegate test_delegate;
|
||||
std::string query_string("?foo=bar");
|
||||
GURL url(std::string(component_updater::kUpdaterDefaultUrl) + query_string);
|
||||
std::unique_ptr<net::URLRequest> request =
|
||||
context()->CreateRequest(url, net::IDLE, &test_delegate,
|
||||
TRAFFIC_ANNOTATION_FOR_TESTS);
|
||||
std::shared_ptr<brave::BraveRequestInfo>
|
||||
before_url_context(new brave::BraveRequestInfo());
|
||||
brave::ResponseCallback callback;
|
||||
GURL new_url;
|
||||
GURL expected_url(std::string(kBraveUpdatesExtensionsEndpoint + query_string));
|
||||
int ret =
|
||||
OnBeforeURLRequest_CommonStaticRedirectWork(request.get(), &new_url, callback,
|
||||
before_url_context);
|
||||
EXPECT_EQ(new_url, expected_url);
|
||||
EXPECT_EQ(ret, net::OK);
|
||||
}
|
||||
|
||||
TEST_F(BraveCommonStaticRedirectNetworkDelegateHelperTest, NoModifyComponentUpdaterURL) {
|
||||
net::TestDelegate test_delegate;
|
||||
std::string query_string("?braveRedirect=true");
|
||||
GURL url(std::string(component_updater::kUpdaterDefaultUrl) + query_string);
|
||||
std::unique_ptr<net::URLRequest> request =
|
||||
context()->CreateRequest(url, net::IDLE, &test_delegate,
|
||||
TRAFFIC_ANNOTATION_FOR_TESTS);
|
||||
std::shared_ptr<brave::BraveRequestInfo>
|
||||
before_url_context(new brave::BraveRequestInfo());
|
||||
brave::ResponseCallback callback;
|
||||
GURL new_url;
|
||||
GURL expected_url;
|
||||
int ret =
|
||||
OnBeforeURLRequest_CommonStaticRedirectWork(request.get(), &new_url, callback,
|
||||
before_url_context);
|
||||
EXPECT_EQ(new_url, expected_url);
|
||||
EXPECT_EQ(ret, net::OK);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include "brave/browser/net/brave_profile_network_delegate.h"
|
||||
|
||||
#include "brave/browser/net/brave_common_static_redirect_network_delegate_helper.h"
|
||||
#include "brave/browser/net/brave_httpse_network_delegate_helper.h"
|
||||
#include "brave/browser/net/brave_site_hacks_network_delegate_helper.h"
|
||||
#include "brave/components/brave_rewards/browser/buildflags/buildflags.h"
|
||||
@@ -21,8 +22,11 @@ BraveProfileNetworkDelegate::BraveProfileNetworkDelegate(
|
||||
before_url_request_callbacks_.push_back(callback);
|
||||
|
||||
callback =
|
||||
base::Bind(
|
||||
brave::OnBeforeURLRequest_HttpsePreFileWork);
|
||||
base::Bind(brave::OnBeforeURLRequest_HttpsePreFileWork);
|
||||
before_url_request_callbacks_.push_back(callback);
|
||||
|
||||
callback =
|
||||
base::Bind(brave::OnBeforeURLRequest_CommonStaticRedirectWork);
|
||||
before_url_request_callbacks_.push_back(callback);
|
||||
|
||||
#if BUILDFLAG(BRAVE_REWARDS_ENABLED)
|
||||
@@ -31,10 +35,8 @@ BraveProfileNetworkDelegate::BraveProfileNetworkDelegate(
|
||||
#endif
|
||||
|
||||
brave::OnBeforeStartTransactionCallback start_transactions_callback =
|
||||
base::Bind(
|
||||
brave::OnBeforeStartTransaction_SiteHacksWork);
|
||||
base::Bind(brave::OnBeforeStartTransaction_SiteHacksWork);
|
||||
before_start_transaction_callbacks_.push_back(start_transactions_callback);
|
||||
|
||||
}
|
||||
|
||||
BraveProfileNetworkDelegate::~BraveProfileNetworkDelegate() {
|
||||
|
||||
@@ -5,11 +5,9 @@
|
||||
#include "brave/browser/net/brave_static_redirect_network_delegate_helper.h"
|
||||
|
||||
#include "brave/common/network_constants.h"
|
||||
#include "components/component_updater/component_updater_url_constants.h"
|
||||
#include "extensions/common/url_pattern.h"
|
||||
#include "net/url_request/url_request.h"
|
||||
|
||||
|
||||
namespace brave {
|
||||
|
||||
int OnBeforeURLRequest_StaticRedirectWork(
|
||||
|
||||
@@ -110,4 +110,25 @@ TEST_F(BraveStaticRedirectNetworkDelegateHelperTest, ModifySafeBrowsingURLV5) {
|
||||
EXPECT_EQ(ret, net::OK);
|
||||
}
|
||||
|
||||
|
||||
TEST_F(BraveStaticRedirectNetworkDelegateHelperTest, ModifyComponentUpdaterURL) {
|
||||
net::TestDelegate test_delegate;
|
||||
std::string query_string("?foo=bar");
|
||||
GURL url(std::string(component_updater::kUpdaterDefaultUrl) + query_string);
|
||||
std::unique_ptr<net::URLRequest> request =
|
||||
context()->CreateRequest(url, net::IDLE, &test_delegate,
|
||||
TRAFFIC_ANNOTATION_FOR_TESTS);
|
||||
std::shared_ptr<brave::BraveRequestInfo>
|
||||
before_url_context(new brave::BraveRequestInfo());
|
||||
brave::ResponseCallback callback;
|
||||
GURL new_url;
|
||||
GURL expected_url(std::string(kBraveUpdatesExtensionsEndpoint + query_string));
|
||||
int ret =
|
||||
OnBeforeURLRequest_StaticRedirectWork(request.get(), &new_url, callback,
|
||||
before_url_context);
|
||||
EXPECT_EQ(new_url, expected_url);
|
||||
EXPECT_EQ(ret, net::OK);
|
||||
}
|
||||
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
#include "brave/browser/net/brave_system_network_delegate.h"
|
||||
|
||||
#include "brave/browser/net/brave_common_static_redirect_network_delegate_helper.h"
|
||||
#include "brave/browser/net/brave_static_redirect_network_delegate_helper.h"
|
||||
|
||||
|
||||
BraveSystemNetworkDelegate::BraveSystemNetworkDelegate(
|
||||
extensions::EventRouterForwarder* event_router) :
|
||||
BraveNetworkDelegateBase(event_router) {
|
||||
@@ -14,6 +14,9 @@ BraveSystemNetworkDelegate::BraveSystemNetworkDelegate(
|
||||
base::Bind(
|
||||
brave::OnBeforeURLRequest_StaticRedirectWork);
|
||||
before_url_request_callbacks_.push_back(callback);
|
||||
callback = base::Bind(
|
||||
brave::OnBeforeURLRequest_CommonStaticRedirectWork);
|
||||
before_url_request_callbacks_.push_back(callback);
|
||||
}
|
||||
|
||||
BraveSystemNetworkDelegate::~BraveSystemNetworkDelegate() {
|
||||
|
||||
@@ -52,7 +52,7 @@ void BraveWidevineContentSettingPluginBubbleModel::RunPluginsOnPage() {
|
||||
|
||||
PrefService* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
|
||||
prefs->SetBoolean(kWidevineOptedIn, true);
|
||||
RegisterWidevineCdmComponent(g_brave_browser_process->google_component_updater());
|
||||
RegisterWidevineCdmComponent(g_brave_browser_process->component_updater());
|
||||
ChromeSubresourceFilterClient::FromWebContents(web_contents())
|
||||
->OnReloadRequested();
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ void RegisterWidevineCdmComponent(ComponentUpdateService* cus) {
|
||||
prefs->GetBoolean(kWidevineOptedIn);
|
||||
if (widevine_opted_in) {
|
||||
RegisterWidevineCdmComponent_ChromiumImpl(
|
||||
g_brave_browser_process->google_component_updater());
|
||||
g_brave_browser_process->component_updater());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "brave/common/network_constants.h"
|
||||
|
||||
const char kBraveUpdatesExtensionsEndpoint[] = "https://laptop-updates.brave.com/extensions";
|
||||
const char kBraveUpdatesExtensionsEndpoint[] = "https://go-updater.brave.com/extensions";
|
||||
// For debgugging:
|
||||
// const char kBraveUpdatesExtensionsEndpoint[] = "http://localhost:8192/extensions";
|
||||
|
||||
const char kEmptyDataURI[] = "data:application/javascript;base64,MA==";
|
||||
const char kJSDataURLPrefix[] = "data:application/javascript;base64,";
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc
|
||||
index e30137f3c244cfeb22bacd36eb059913f9fd4c04..35e9433e15919bb5158e4b2e3a65e28b18cdb6db 100644
|
||||
--- a/chrome/browser/extensions/extension_install_prompt.cc
|
||||
+++ b/chrome/browser/extensions/extension_install_prompt.cc
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/threading/thread_task_runner_handle.h"
|
||||
+#include "brave/browser/extensions/brave_extension_install_prompt.h"
|
||||
#include "chrome/browser/extensions/extension_install_prompt_show_params.h"
|
||||
#include "chrome/browser/extensions/extension_util.h"
|
||||
#include "chrome/browser/extensions/permissions_updater.h"
|
||||
@@ -546,7 +547,7 @@ void ExtensionInstallPrompt::ShowDialog(
|
||||
const SkBitmap* icon,
|
||||
const ShowDialogCallback& show_dialog_callback) {
|
||||
ShowDialog(done_callback, extension, icon,
|
||||
- std::make_unique<Prompt>(INSTALL_PROMPT), show_dialog_callback);
|
||||
+ std::make_unique<BravePrompt>(INSTALL_PROMPT), show_dialog_callback);
|
||||
}
|
||||
|
||||
void ExtensionInstallPrompt::ShowDialog(
|
||||
@@ -0,0 +1,30 @@
|
||||
diff --git a/chrome/browser/extensions/extension_install_prompt.h b/chrome/browser/extensions/extension_install_prompt.h
|
||||
index db454db003ec58d6a0f23f6e6c70a1f106350907..77c6350e77412d5a61adab52511548a00b7018c1 100644
|
||||
--- a/chrome/browser/extensions/extension_install_prompt.h
|
||||
+++ b/chrome/browser/extensions/extension_install_prompt.h
|
||||
@@ -86,7 +86,7 @@ class ExtensionInstallPrompt {
|
||||
class Prompt {
|
||||
public:
|
||||
explicit Prompt(PromptType type);
|
||||
- ~Prompt();
|
||||
+ virtual ~Prompt();
|
||||
|
||||
void AddPermissions(const extensions::PermissionMessages& permissions);
|
||||
void SetIsShowingDetails(DetailsType type,
|
||||
@@ -100,7 +100,7 @@ class ExtensionInstallPrompt {
|
||||
PromptType type() const { return type_; }
|
||||
|
||||
// Getters for UI element labels.
|
||||
- base::string16 GetDialogTitle() const;
|
||||
+ virtual base::string16 GetDialogTitle() const;
|
||||
int GetDialogButtons() const;
|
||||
// Returns the empty string when there should be no "accept" button.
|
||||
base::string16 GetAcceptButtonLabel() const;
|
||||
@@ -165,6 +165,7 @@ class ExtensionInstallPrompt {
|
||||
|
||||
private:
|
||||
friend class base::RefCountedThreadSafe<Prompt>;
|
||||
+ friend class BravePrompt;
|
||||
|
||||
struct InstallPromptPermissions {
|
||||
InstallPromptPermissions();
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/extensions/browser/updater/update_service.cc b/extensions/browser/updater/update_service.cc
|
||||
index 93dda0f45fe1d3f44f229ff4fe5fc0ff6a02ab6c..865b867cde2234777a78c3b914f68123cfb681ee 100644
|
||||
--- a/extensions/browser/updater/update_service.cc
|
||||
+++ b/extensions/browser/updater/update_service.cc
|
||||
@@ -32,7 +32,7 @@ namespace extensions {
|
||||
namespace {
|
||||
|
||||
// 98% of update checks have 22 or less extensions.
|
||||
-constexpr size_t kMaxExtensionsPerUpdate = 22;
|
||||
+constexpr size_t kMaxExtensionsPerUpdate = 1;
|
||||
|
||||
void SendUninstallPingCompleteCallback(update_client::Error error) {}
|
||||
|
||||
@@ -31,6 +31,7 @@ test("brave_unit_tests") {
|
||||
"//brave/browser/autoplay/autoplay_permission_context_unittest.cc",
|
||||
"//brave/browser/brave_resources_util_unittest.cc",
|
||||
"//brave/browser/brave_stats_updater_unittest.cc",
|
||||
"//brave/browser/net/brave_common_static_redirect_network_delegate_helper_unittest.cc",
|
||||
"//brave/browser/net/brave_site_hacks_network_delegate_helper_unittest.cc",
|
||||
"//brave/browser/net/brave_static_redirect_network_delegate_helper_unittest.cc",
|
||||
"//brave/chromium_src/chrome/browser/signin/account_consistency_disabled_unittest.cc",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzVwjhTBA7xISD
|
||||
NxJ03pMGhuVVl3U1FAD0T8/85uEEF1R5ugI8H/MruN77vSqqsslhSez/WmOobRdj
|
||||
+fLOWOixxcdcvXG0fCme4NcE1ArI0qKjOksKakv5wt1LIXZEmwOchL+Tn5nIC32z
|
||||
al7UhBFHTbtPDFAmAAD3BPANRODAITSQk/+aG2Mf2topab2wK6IzKOjcil4HLRcw
|
||||
Zse+3/AD9Ek2RNtcpjKeMVKFNyWXnDyZHGFSWLYSQKXiFu8hU9iFyxvLD/I2Wbhr
|
||||
QJPlKh7WS78J3Hzb81H8TdDuAxQKfvSj3iwXVLmrbxzXzxOUebkRGMDPRLwvDd/Y
|
||||
0YwXsnFpAgMBAAECggEACQNkCxytSS+ygDy9lPmVtpODhaZ3ycvgU2cKezmoT/IT
|
||||
OQ3v7FEnwcgIDuteMFeNdvIF8vx6Oz4GWaw3d4bw5PRddWwBAbLmzZkbvV6hzx+E
|
||||
9IKqwFKA0IPqZsr+/Go1B4IFddgk3LC1J9X9/5zGmIiP1CR4h7xi0AdjwCr4x7cd
|
||||
5ei6M86g64tACWD+iWH5vc5TEq5zmrCrGD1hsujV0s9kzUhwsSSpI37UFT0qJRlz
|
||||
O/D32b9dcnbP6hU6Bb+POHkFM3Bd91cL/xgDTOvVV6jJlikMPFw9lPk6jB+2MnEc
|
||||
r897WF2tIMKsVVF7Bz5SFk/C+8RqjfLrGA0UE2gCzQKBgQDpARrdffQlhQtra2Kl
|
||||
Xd2w4hQoncTn2vnX92aaIdR4NKosdahZpF7lgScelUwZGCvDfH+yRYaIf5kjno1b
|
||||
q6fzx3vdVA9B4X17aP90IWucuiRX22PkruOtKkCjZ/HiFoKzgypRUEWGbUsrXojh
|
||||
es4HxZ/Cmpr9F7NWd08JpL14JQKBgQDFChdAfzlt+U7kWLajjWR0Bl1ff8PnhUTZ
|
||||
N+oXFww6JQo3ICcloY5WaJvKlBazBKYsVHWu28LVAFwMnmxm/BFJGcVPpRFUMbp/
|
||||
9MnE7lhrBt3+eSv8sskJeXtAWBfkqkKzRRpIB26HIVIVf71bX4kyXOnrw4GY0rn1
|
||||
KmQNPne+9QKBgQC4C01jIrgUYtCwWrQiltAjhZASvPvpf8fVVO/QU2R2RnMchxsh
|
||||
I3ppoeh6eccQE02OLerXr58idldKEVTq0d3p6unl2x3qFeh98GPHIRbVRxqp4vs2
|
||||
iQYBo9xGtjYTNWCr1rE4ZUVldzLm4NcR82SGMw2MM36052GarMbbgSq/mQKBgQCT
|
||||
AfRXKpSueFNkCsw5OkS4TAdeOPTwx32WkyEUGR4GQ5xbhKGwcdjAn0uc2OAWsGFK
|
||||
sbkbvNqgEKScxZYbP/WllJSh14YWSwPac8gWJb3SHE2EjuNCpiFX8EsEtrUc5erd
|
||||
1bDGDMVqDHIxmByvD5hM+wWL4VHPs2kKgZYkS3cMAQKBgHtcOT7nXmwteU16Wm1M
|
||||
S58BdPKpDV+vAUGriVxsGPeCFEALBTTqzCuAKwoYt6bQdN9mZl6bMmXMvMJkRoJA
|
||||
3nEeAg3SE4mjB/fjpt7FEJ0vgKKn+FiJZL2uuoJQJjXVT/fvabMPsCeaNDoDxQfX
|
||||
4za/FZKQ1vRtG3eR9K2X2Pn0
|
||||
-----END PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user