Skip to content

Commit

Permalink
Update ipfs pref when extension loaded or unloaded
Browse files Browse the repository at this point in the history
  • Loading branch information
yrliou committed Apr 24, 2019
1 parent 99ba3c6 commit 2991d54
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 2 deletions.
3 changes: 3 additions & 0 deletions browser/extensions/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ source_set("extensions") {

deps = [
"//base",
"//brave/common:pref_names",
"//brave/common/extensions/api",
"//brave/components/brave_extension:static_resources",
"//brave/components/brave_extension:generated_resources",
Expand All @@ -53,7 +54,9 @@ source_set("extensions") {
"//brave/components/brave_webtorrent:generated_resources",
"//brave/components/brave_webtorrent:static_resources",
"//chrome/browser",
"//components/prefs",
"//content/public/browser",
"//extensions/browser",
"//extensions/common",
]
}
25 changes: 24 additions & 1 deletion browser/extensions/brave_extension_management.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,23 @@
#include "brave/browser/brave_browser_process_impl.h"
#include "brave/common/brave_switches.h"
#include "brave/common/extensions/extension_constants.h"
#include "brave/common/pref_names.h"
#include "brave/browser/extensions/brave_extension_provider.h"
#include "brave/browser/extensions/brave_tor_client_updater.h"
#include "chrome/browser/extensions/external_policy_loader.h"
#include "chrome/browser/profiles/profile.h"
#include "components/prefs/pref_service.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_urls.h"

namespace extensions {

BraveExtensionManagement::BraveExtensionManagement(Profile* profile)
: ExtensionManagement(profile) {
: ExtensionManagement(profile),
extension_registry_observer_(this) {
extension_registry_observer_.Add(ExtensionRegistry::Get(
static_cast<content::BrowserContext*>(profile)));
providers_.push_back(
std::make_unique<BraveExtensionProvider>());
RegisterBraveExtensions();
Expand All @@ -32,4 +40,19 @@ void BraveExtensionManagement::RegisterBraveExtensions() {
g_brave_browser_process->tor_client_updater()->Register();
}

void BraveExtensionManagement::OnExtensionLoaded(
content::BrowserContext* browser_context,
const Extension* extension) {
if (extension->id() == ipfs_companion_extension_id)
pref_service_->SetBoolean(kIPFSCompanionEnabled, true);
}

void BraveExtensionManagement::OnExtensionUnloaded(
content::BrowserContext* browser_context,
const Extension* extension,
UnloadedExtensionReason reason) {
if (extension->id() == ipfs_companion_extension_id)
pref_service_->SetBoolean(kIPFSCompanionEnabled, false);
}

} // namespace extensions
20 changes: 19 additions & 1 deletion browser/extensions/brave_extension_management.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,35 @@
#ifndef BRAVE_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_H_
#define BRAVE_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_H_

#include "base/scoped_observer.h"
#include "chrome/browser/extensions/extension_management.h"
#include "extensions/browser/extension_registry_observer.h"

namespace extensions {

class BraveExtensionManagement : public ExtensionManagement {
class ExtensionRegistry;

class BraveExtensionManagement : public ExtensionManagement,
public ExtensionRegistryObserver {
public:
BraveExtensionManagement(Profile* profile);
~BraveExtensionManagement() override;

private:
void RegisterBraveExtensions();

// ExtensionRegistryObserver implementation.
void OnExtensionLoaded(
content::BrowserContext* browser_context,
const Extension* extension) override;
void OnExtensionUnloaded(
content::BrowserContext* browser_context,
const Extension* extension,
UnloadedExtensionReason reason) override;

ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
extension_registry_observer_;

DISALLOW_COPY_AND_ASSIGN(BraveExtensionManagement);
};

Expand Down

0 comments on commit 2991d54

Please sign in to comment.