Commit 09b9e2e2 authored by Albert Chaulk's avatar Albert Chaulk Committed by Commit Bot

[Chromecast] Change CastExtensionSystem to use ExtensionRegistrar

app_shell has updated to move a lot of load and init code into
ExtensionRegistrar

Change-Id: Iaf8b1c4c50dd0a526f7dfc7a0a8aba759f55fe6c
Reviewed-on: https://chromium-review.googlesource.com/941548
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Reviewed-by: default avatarLuke Halliwell <halliwell@chromium.org>
Reviewed-by: default avatarKevin Schoedel <kpschoedel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542863}
parent f5e8b277
...@@ -95,18 +95,7 @@ const Extension* CastExtensionSystem::LoadExtensionByManifest( ...@@ -95,18 +95,7 @@ const Extension* CastExtensionSystem::LoadExtensionByManifest(
return nullptr; return nullptr;
} }
ExtensionRegistry::Get(browser_context_)->AddEnabled(extension.get()); extension_registrar_->AddExtension(extension);
RegisterExtensionWithRequestContexts(
extension.get(),
base::BindRepeating(
&CastExtensionSystem::OnExtensionRegisteredWithRequestContexts,
weak_factory_.GetWeakPtr(), extension));
RendererStartupHelperFactory::GetForBrowserContext(browser_context_)
->OnExtensionLoaded(*extension);
ExtensionRegistry::Get(browser_context_)->TriggerOnLoaded(extension.get());
return extension.get(); return extension.get();
} }
...@@ -135,25 +124,7 @@ const Extension* CastExtensionSystem::LoadExtension( ...@@ -135,25 +124,7 @@ const Extension* CastExtensionSystem::LoadExtension(
LOG(WARNING) << warning.message; LOG(WARNING) << warning.message;
} }
// TODO(b/70902491): We may want to do some of these things here: extension_registrar_->AddExtension(extension);
// * Create a PermissionsUpdater.
// * Call PermissionsUpdater::GrantActivePermissions().
// * Call ExtensionService::SatisfyImports().
// * Call ExtensionPrefs::OnExtensionInstalled().
// * Call ExtensionRegistryObserver::OnExtensionWillbeInstalled().
ExtensionRegistry::Get(browser_context_)->AddEnabled(extension.get());
RegisterExtensionWithRequestContexts(
extension.get(),
base::BindRepeating(
&CastExtensionSystem::OnExtensionRegisteredWithRequestContexts,
weak_factory_.GetWeakPtr(), extension));
RendererStartupHelperFactory::GetForBrowserContext(browser_context_)
->OnExtensionLoaded(*extension);
ExtensionRegistry::Get(browser_context_)->TriggerOnLoaded(extension.get());
return extension.get(); return extension.get();
} }
...@@ -197,6 +168,9 @@ void CastExtensionSystem::InitForRegularProfile(bool extensions_enabled) { ...@@ -197,6 +168,9 @@ void CastExtensionSystem::InitForRegularProfile(bool extensions_enabled) {
shared_user_script_master_ = shared_user_script_master_ =
std::make_unique<SharedUserScriptMaster>(browser_context_); std::make_unique<SharedUserScriptMaster>(browser_context_);
extension_registrar_ =
std::make_unique<ExtensionRegistrar>(browser_context_, this);
} }
void CastExtensionSystem::InitForIncognitoProfile() { void CastExtensionSystem::InitForIncognitoProfile() {
...@@ -298,4 +272,30 @@ void CastExtensionSystem::OnExtensionRegisteredWithRequestContexts( ...@@ -298,4 +272,30 @@ void CastExtensionSystem::OnExtensionRegisteredWithRequestContexts(
registry->TriggerOnReady(extension.get()); registry->TriggerOnReady(extension.get());
} }
void CastExtensionSystem::PreAddExtension(const Extension* extension,
const Extension* old_extension) {}
void CastExtensionSystem::PostActivateExtension(
scoped_refptr<const Extension> extension) {}
void CastExtensionSystem::PostDeactivateExtension(
scoped_refptr<const Extension> extension) {}
void CastExtensionSystem::LoadExtensionForReload(
const ExtensionId& extension_id,
const base::FilePath& path,
ExtensionRegistrar::LoadErrorBehavior load_error_behavior) {}
bool CastExtensionSystem::CanEnableExtension(const Extension* extension) {
return true;
}
bool CastExtensionSystem::CanDisableExtension(const Extension* extension) {
return true;
}
bool CastExtensionSystem::ShouldBlockExtension(const Extension* extension) {
return false;
}
} // namespace extensions } // namespace extensions
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "extensions/browser/extension_registrar.h"
#include "extensions/browser/extension_system.h" #include "extensions/browser/extension_system.h"
#include "extensions/common/one_shot_event.h" #include "extensions/common/one_shot_event.h"
...@@ -27,7 +28,8 @@ class ValueStoreFactory; ...@@ -27,7 +28,8 @@ class ValueStoreFactory;
// A simplified version of ExtensionSystem for cast_shell. Allows // A simplified version of ExtensionSystem for cast_shell. Allows
// cast_shell to skip initialization of services it doesn't need. // cast_shell to skip initialization of services it doesn't need.
class CastExtensionSystem : public ExtensionSystem { class CastExtensionSystem : public ExtensionSystem,
public ExtensionRegistrar::Delegate {
public: public:
explicit CastExtensionSystem(content::BrowserContext* browser_context); explicit CastExtensionSystem(content::BrowserContext* browser_context);
~CastExtensionSystem() override; ~CastExtensionSystem() override;
...@@ -85,6 +87,20 @@ class CastExtensionSystem : public ExtensionSystem { ...@@ -85,6 +87,20 @@ class CastExtensionSystem : public ExtensionSystem {
bool FinishDelayedInstallationIfReady(const std::string& extension_id, bool FinishDelayedInstallationIfReady(const std::string& extension_id,
bool install_immediately) override; bool install_immediately) override;
// ExtensionRegistrar::Delegate implementation:
void PreAddExtension(const Extension* extension,
const Extension* old_extension) override;
void PostActivateExtension(scoped_refptr<const Extension> extension) override;
void PostDeactivateExtension(
scoped_refptr<const Extension> extension) override;
void LoadExtensionForReload(
const ExtensionId& extension_id,
const base::FilePath& path,
ExtensionRegistrar::LoadErrorBehavior load_error_behavior) override;
bool CanEnableExtension(const Extension* extension) override;
bool CanDisableExtension(const Extension* extension) override;
bool ShouldBlockExtension(const Extension* extension) override;
private: private:
void OnExtensionRegisteredWithRequestContexts( void OnExtensionRegisteredWithRequestContexts(
scoped_refptr<Extension> extension); scoped_refptr<Extension> extension);
...@@ -98,6 +114,7 @@ class CastExtensionSystem : public ExtensionSystem { ...@@ -98,6 +114,7 @@ class CastExtensionSystem : public ExtensionSystem {
std::unique_ptr<QuotaService> quota_service_; std::unique_ptr<QuotaService> quota_service_;
std::unique_ptr<AppSorting> app_sorting_; std::unique_ptr<AppSorting> app_sorting_;
std::unique_ptr<SharedUserScriptMaster> shared_user_script_master_; std::unique_ptr<SharedUserScriptMaster> shared_user_script_master_;
std::unique_ptr<ExtensionRegistrar> extension_registrar_;
scoped_refptr<ValueStoreFactory> store_factory_; scoped_refptr<ValueStoreFactory> store_factory_;
......
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