feat: flesh out the api for //extensions (#21587)
This commit is contained in:
parent
8bc0c92137
commit
fa42b5980e
10 changed files with 159 additions and 13 deletions
|
@ -78,7 +78,7 @@ const Extension* AtomExtensionLoader::LoadExtension(
|
|||
return extension.get();
|
||||
}
|
||||
|
||||
void AtomExtensionLoader::ReloadExtension(ExtensionId extension_id) {
|
||||
void AtomExtensionLoader::ReloadExtension(const ExtensionId& extension_id) {
|
||||
const Extension* extension = ExtensionRegistry::Get(browser_context_)
|
||||
->GetInstalledExtension(extension_id);
|
||||
// We shouldn't be trying to reload extensions that haven't been added.
|
||||
|
@ -94,8 +94,14 @@ void AtomExtensionLoader::ReloadExtension(ExtensionId extension_id) {
|
|||
return;
|
||||
}
|
||||
|
||||
void AtomExtensionLoader::UnloadExtension(
|
||||
const ExtensionId& extension_id,
|
||||
extensions::UnloadedExtensionReason reason) {
|
||||
extension_registrar_.RemoveExtension(extension_id, reason);
|
||||
}
|
||||
|
||||
void AtomExtensionLoader::FinishExtensionReload(
|
||||
const ExtensionId old_extension_id,
|
||||
const ExtensionId& old_extension_id,
|
||||
scoped_refptr<const Extension> extension) {
|
||||
if (extension) {
|
||||
extension_registrar_.AddExtension(extension);
|
||||
|
|
|
@ -41,12 +41,15 @@ class AtomExtensionLoader : public ExtensionRegistrar::Delegate {
|
|||
// reloading.
|
||||
// This may invalidate references to the old Extension object, so it takes the
|
||||
// ID by value.
|
||||
void ReloadExtension(ExtensionId extension_id);
|
||||
void ReloadExtension(const ExtensionId& extension_id);
|
||||
|
||||
void UnloadExtension(const ExtensionId& extension_id,
|
||||
extensions::UnloadedExtensionReason reason);
|
||||
|
||||
private:
|
||||
// If the extension loaded successfully, enables it. If it's an app, launches
|
||||
// it. If the load failed, updates ShellKeepAliveRequester.
|
||||
void FinishExtensionReload(const ExtensionId old_extension_id,
|
||||
void FinishExtensionReload(const ExtensionId& old_extension_id,
|
||||
scoped_refptr<const Extension> extension);
|
||||
|
||||
// ExtensionRegistrar::Delegate:
|
||||
|
|
|
@ -49,7 +49,7 @@ const Extension* AtomExtensionSystem::LoadExtension(
|
|||
}
|
||||
|
||||
const Extension* AtomExtensionSystem::LoadApp(const base::FilePath& app_dir) {
|
||||
CHECK(false); // Should never call LoadApp
|
||||
NOTIMPLEMENTED() << "Attempted to load platform app in Electron";
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
@ -66,6 +66,11 @@ void AtomExtensionSystem::ReloadExtension(const ExtensionId& extension_id) {
|
|||
extension_loader_->ReloadExtension(extension_id);
|
||||
}
|
||||
|
||||
void AtomExtensionSystem::RemoveExtension(const ExtensionId& extension_id) {
|
||||
extension_loader_->UnloadExtension(
|
||||
extension_id, extensions::UnloadedExtensionReason::UNINSTALL);
|
||||
}
|
||||
|
||||
void AtomExtensionSystem::Shutdown() {
|
||||
extension_loader_.reset();
|
||||
}
|
||||
|
|
|
@ -53,6 +53,8 @@ class AtomExtensionSystem : public ExtensionSystem {
|
|||
// Reloads the extension with id |extension_id|.
|
||||
void ReloadExtension(const ExtensionId& extension_id);
|
||||
|
||||
void RemoveExtension(const ExtensionId& extension_id);
|
||||
|
||||
// KeyedService implementation:
|
||||
void Shutdown() override;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue