Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android component updater #2484

Merged
merged 13 commits into from
May 24, 2019
7 changes: 3 additions & 4 deletions browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,12 @@ source_set("browser_process") {
"component_updater/brave_component_installer.h",
"component_updater/brave_component_updater_configurator.cc",
"component_updater/brave_component_updater_configurator.h",
"component_updater/brave_component_updater_delegate.cc",
"component_updater/brave_component_updater_delegate.h",
"component_updater/brave_crx_update_service.cc",
"component_updater/brave_crx_update_service.h",
"content_settings/brave_cookie_settings_factory.cc",
"content_settings/brave_cookie_settings_factory.h",
# TODO(bridiver) - move this from extensions -> component_updater
# and rename to BraveComponent
"extensions/brave_component_extension.cc",
"extensions/brave_component_extension.h",
"geolocation/brave_geolocation_permission_context.cc",
"geolocation/brave_geolocation_permission_context.h",
"mac/sparkle_glue.mm",
Expand Down Expand Up @@ -91,6 +89,7 @@ source_set("browser_process") {
"//brave/browser/tor",
"//brave/common",
"//brave/components/brave_ads/browser",
"//brave/components/brave_component_updater/browser",
"//brave/components/brave_referrals/browser",
"//brave/components/brave_rewards/browser",
"//brave/components/brave_shields/browser:brave_shields",
Expand Down
28 changes: 22 additions & 6 deletions browser/brave_browser_process_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "base/threading/sequenced_task_runner_handle.h"
#include "brave/browser/brave_stats_updater.h"
#include "brave/browser/component_updater/brave_component_updater_configurator.h"
#include "brave/browser/component_updater/brave_component_updater_delegate.h"
#include "brave/browser/extensions/brave_tor_client_updater.h"
#include "brave/browser/profiles/brave_profile_manager.h"
#include "brave/components/brave_shields/browser/ad_block_custom_filters_service.h"
Expand Down Expand Up @@ -76,6 +77,15 @@ BraveBrowserProcessImpl::BraveBrowserProcessImpl(StartupData* startup_data)
base::Unretained(brave_stats_updater_.get())));
}

brave_component_updater::BraveComponent::Delegate*
BraveBrowserProcessImpl::brave_component_updater_delegate() {
if (!brave_component_updater_delegate_)
brave_component_updater_delegate_ =
std::make_unique<brave::BraveComponentUpdaterDelegate>();

return brave_component_updater_delegate_.get();
}

component_updater::ComponentUpdateService*
BraveBrowserProcessImpl::component_updater() {
if (component_updater_)
Expand Down Expand Up @@ -117,23 +127,26 @@ BraveBrowserProcessImpl::ad_block_service() {
if (ad_block_service_)
return ad_block_service_.get();

ad_block_service_ = brave_shields::AdBlockServiceFactory();
ad_block_service_ =
brave_shields::AdBlockServiceFactory(brave_component_updater_delegate());
return ad_block_service_.get();
}

brave_shields::AdBlockCustomFiltersService*
BraveBrowserProcessImpl::ad_block_custom_filters_service() {
if (!ad_block_custom_filters_service_)
ad_block_custom_filters_service_ =
brave_shields::AdBlockCustomFiltersServiceFactory();
brave_shields::AdBlockCustomFiltersServiceFactory(
brave_component_updater_delegate());
return ad_block_custom_filters_service_.get();
}

brave_shields::AdBlockRegionalServiceManager*
BraveBrowserProcessImpl::ad_block_regional_service_manager() {
if (!ad_block_regional_service_manager_)
ad_block_regional_service_manager_ =
brave_shields::AdBlockRegionalServiceManagerFactory();
brave_shields::AdBlockRegionalServiceManagerFactory(
brave_component_updater_delegate());
return ad_block_regional_service_manager_.get();
}

Expand Down Expand Up @@ -179,15 +192,17 @@ brave_shields::HTTPSEverywhereService*
BraveBrowserProcessImpl::https_everywhere_service() {
if (!https_everywhere_service_)
https_everywhere_service_ =
brave_shields::HTTPSEverywhereServiceFactory();
brave_shields::HTTPSEverywhereServiceFactory(
brave_component_updater_delegate());
return https_everywhere_service_.get();
}

brave_shields::LocalDataFilesService*
BraveBrowserProcessImpl::local_data_files_service() {
if (!local_data_files_service_)
local_data_files_service_ =
brave_shields::LocalDataFilesServiceFactory();
brave_shields::LocalDataFilesServiceFactory(
brave_component_updater_delegate());
return local_data_files_service_.get();
}

Expand All @@ -197,7 +212,8 @@ BraveBrowserProcessImpl::tor_client_updater() {
if (tor_client_updater_)
return tor_client_updater_.get();

tor_client_updater_ = extensions::BraveTorClientUpdaterFactory();
tor_client_updater_ = extensions::BraveTorClientUpdaterFactory(
brave_component_updater_delegate());
return tor_client_updater_.get();
}
#endif
Expand Down
6 changes: 6 additions & 0 deletions browser/brave_browser_process_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <memory>

#include "brave/browser/tor/buildflags.h"
#include "brave/components/brave_component_updater/browser/brave_component.h"
#include "brave/components/brave_referrals/buildflags/buildflags.h"
#include "chrome/browser/browser_process_impl.h"
#include "extensions/buildflags/buildflags.h"
Expand Down Expand Up @@ -39,6 +40,8 @@ namespace extensions {
class BraveTorClientUpdater;
}

using brave_component_updater::BraveComponent;

class BraveBrowserProcessImpl : public BrowserProcessImpl {
public:
explicit BraveBrowserProcessImpl(StartupData* startup_data);
Expand Down Expand Up @@ -71,6 +74,9 @@ class BraveBrowserProcessImpl : public BrowserProcessImpl {
private:
void CreateProfileManager();

BraveComponent::Delegate* brave_component_updater_delegate();

std::unique_ptr<BraveComponent::Delegate> brave_component_updater_delegate_;
std::unique_ptr<brave_shields::AdBlockService> ad_block_service_;
std::unique_ptr<brave_shields::AdBlockCustomFiltersService>
ad_block_custom_filters_service_;
Expand Down
23 changes: 13 additions & 10 deletions browser/component_updater/brave_component_installer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,10 @@ namespace brave {
BraveComponentInstallerPolicy::BraveComponentInstallerPolicy(
const std::string& name,
const std::string& base64_public_key,
const ReadyCallback& ready_callback)
ReadyCallback ready_callback)
: name_(name),
base64_public_key_(base64_public_key),
ready_callback_(ready_callback) {
ready_callback_(std::move(ready_callback)) {
base::Base64Decode(base64_public_key, &public_key_);
}

Expand Down Expand Up @@ -117,10 +117,12 @@ void BraveComponentInstallerPolicy::OnCustomUninstall() {
}

void BraveComponentInstallerPolicy::ComponentReady(
const base::Version& version,
const base::FilePath& install_dir,
std::unique_ptr<base::DictionaryValue> manifest) {
ready_callback_.Run(install_dir, GetManifestString(*manifest, base64_public_key_));
const base::Version& version,
const base::FilePath& install_dir,
std::unique_ptr<base::DictionaryValue> manifest) {
std::move(ready_callback_).Run(
install_dir,
GetManifestString(*manifest, base64_public_key_));
}

base::FilePath BraveComponentInstallerPolicy::GetRelativeInstallDir() const {
Expand Down Expand Up @@ -152,11 +154,12 @@ void RegisterComponent(
component_updater::ComponentUpdateService* cus,
const std::string& name,
const std::string& base64_public_key,
const base::Closure& registered_callback,
const ReadyCallback& ready_callback) {
base::OnceClosure registered_callback,
ReadyCallback ready_callback) {
auto installer = base::MakeRefCounted<component_updater::ComponentInstaller>(
std::make_unique<BraveComponentInstallerPolicy>(name, base64_public_key, ready_callback));
installer->Register(cus, registered_callback);
std::make_unique<BraveComponentInstallerPolicy>(
name, base64_public_key, std::move(ready_callback)));
installer->Register(cus, std::move(registered_callback));
}

} // namespace brave
12 changes: 4 additions & 8 deletions browser/component_updater/brave_component_installer.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@
#include "components/component_updater/component_installer.h"
#include "components/update_client/update_client.h"

namespace base {
class FilePath;
} // namespace base

using ReadyCallback = base::Callback<void(const base::FilePath&,
using ReadyCallback = base::OnceCallback<void(const base::FilePath&,
const std::string& manifest)>;

namespace brave {
Expand All @@ -32,7 +28,7 @@ class BraveComponentInstallerPolicy :
public:
explicit BraveComponentInstallerPolicy(const std::string& name,
const std::string& base64_public_key,
const ReadyCallback& ready_callback);
ReadyCallback ready_callback);

~BraveComponentInstallerPolicy() override;

Expand Down Expand Up @@ -67,8 +63,8 @@ class BraveComponentInstallerPolicy :
void RegisterComponent(component_updater::ComponentUpdateService* cus,
const std::string& name,
const std::string& base64_public_key,
const base::Closure& registered_callback,
const ReadyCallback& ready_callback);
base::OnceClosure registered_callback,
ReadyCallback ready_callback);

} // namespace brave

Expand Down
44 changes: 44 additions & 0 deletions browser/component_updater/brave_component_updater_delegate.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/* 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/component_updater/brave_component_updater_delegate.h"

#include "brave/browser/component_updater/brave_component_installer.h"
#include "chrome/browser/ui/webui/components_ui.h"
#include "chrome/browser/browser_process.h"
#include "components/component_updater/component_updater_service.h"

using brave_component_updater::BraveComponent;

namespace brave {

BraveComponentUpdaterDelegate::BraveComponentUpdaterDelegate() {
}

BraveComponentUpdaterDelegate::~BraveComponentUpdaterDelegate() {}

void BraveComponentUpdaterDelegate::Register(
const std::string& component_name,
const std::string& component_base64_public_key,
base::OnceClosure registered_callback,
BraveComponent::ReadyCallback ready_callback) {
brave::RegisterComponent(g_browser_process->component_updater(),
component_name,
component_base64_public_key,
std::move(registered_callback),
std::move(ready_callback));
}

bool BraveComponentUpdaterDelegate::Unregister(
const std::string& component_id) {
return g_browser_process->component_updater()->UnregisterComponent(
component_id);
}

void BraveComponentUpdaterDelegate::OnDemandUpdate(
const std::string& component_id) {
ComponentsUI::OnDemandUpdate(component_id);
}

} // namespace brave
36 changes: 36 additions & 0 deletions browser/component_updater/brave_component_updater_delegate.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* 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_COMPONENT_UPDATER_BRAVE_COMPONENT_UPDATER_DELEGATE_H_
#define BRAVE_BROWSER_COMPONENT_UPDATER_BRAVE_COMPONENT_UPDATER_DELEGATE_H_

#include <string>

#include "base/macros.h"
#include "brave/components/brave_component_updater/browser/brave_component.h"

using brave_component_updater::BraveComponent;

namespace brave {

class BraveComponentUpdaterDelegate : public BraveComponent::Delegate {
public:
BraveComponentUpdaterDelegate();
~BraveComponentUpdaterDelegate() override;

// brave_component_updater::BraveComponent::Delegate implementation
void Register(const std::string& component_name,
const std::string& component_base64_public_key,
base::OnceClosure registered_callback,
BraveComponent::ReadyCallback ready_callback) override;
bool Unregister(const std::string& component_id) override;
void OnDemandUpdate(const std::string& component_id) override;

private:
DISALLOW_COPY_AND_ASSIGN(BraveComponentUpdaterDelegate);
};

} // namespace brave

#endif // BRAVE_BROWSER_COMPONENT_UPDATER_BRAVE_COMPONENT_UPDATER_DELEGATE_H_
1 change: 1 addition & 0 deletions browser/extensions/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ source_set("extensions") {
"//brave/app:brave_generated_resources_grit",
"//brave/common:pref_names",
"//brave/common/extensions/api",
"//brave/components/brave_component_updater/browser",
"//brave/components/brave_extension:static_resources",
"//brave/components/brave_extension:generated_resources",
"//brave/components/brave_sync",
Expand Down
63 changes: 0 additions & 63 deletions browser/extensions/brave_component_extension.cc

This file was deleted.

Loading