Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1072)

Unified Diff: chrome/browser/extensions/extension_web_ui_override_registrar.cc

Issue 1543923002: [Extensions] Fix chrome url override settings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_web_ui_override_registrar.cc
diff --git a/chrome/browser/extensions/extension_web_ui_override_registrar.cc b/chrome/browser/extensions/extension_web_ui_override_registrar.cc
index a0ffd99849a6275bdaad88e24d920eeb023bc520..9d9d970064704984c09270c7d7fd64dbb0874ad5 100644
--- a/chrome/browser/extensions/extension_web_ui_override_registrar.cc
+++ b/chrome/browser/extensions/extension_web_ui_override_registrar.cc
@@ -8,13 +8,23 @@
#include "chrome/browser/extensions/extension_web_ui.h"
#include "chrome/browser/profiles/profile.h"
#include "extensions/browser/extension_registry.h"
+#include "extensions/browser/extension_system.h"
+#include "extensions/common/one_shot_event.h"
namespace extensions {
ExtensionWebUIOverrideRegistrar::ExtensionWebUIOverrideRegistrar(
content::BrowserContext* context)
- : extension_registry_observer_(this) {
+ : extension_registry_observer_(this),
+ weak_factory_(this) {
+ ExtensionWebUI::InitializeChromeURLOverrides(
+ Profile::FromBrowserContext(context));
extension_registry_observer_.Add(ExtensionRegistry::Get(context));
+ ExtensionSystem::Get(context)->ready().Post(
+ FROM_HERE,
+ base::Bind(&ExtensionWebUIOverrideRegistrar::OnExtensionSystemReady,
+ weak_factory_.GetWeakPtr(),
+ context));
}
ExtensionWebUIOverrideRegistrar::~ExtensionWebUIOverrideRegistrar() {
@@ -23,7 +33,7 @@ ExtensionWebUIOverrideRegistrar::~ExtensionWebUIOverrideRegistrar() {
void ExtensionWebUIOverrideRegistrar::OnExtensionLoaded(
content::BrowserContext* browser_context,
const Extension* extension) {
- ExtensionWebUI::RegisterChromeURLOverrides(
+ ExtensionWebUI::RegisterOrActivateChromeURLOverrides(
Profile::FromBrowserContext(browser_context),
URLOverrides::GetChromeURLOverrides(extension));
}
@@ -32,11 +42,26 @@ void ExtensionWebUIOverrideRegistrar::OnExtensionUnloaded(
content::BrowserContext* browser_context,
const Extension* extension,
UnloadedExtensionInfo::Reason reason) {
+ ExtensionWebUI::DeactivateChromeURLOverrides(
+ Profile::FromBrowserContext(browser_context),
+ URLOverrides::GetChromeURLOverrides(extension));
+}
+
+void ExtensionWebUIOverrideRegistrar::OnExtensionUninstalled(
+ content::BrowserContext* browser_context,
+ const Extension* extension,
+ UninstallReason reason) {
ExtensionWebUI::UnregisterChromeURLOverrides(
Profile::FromBrowserContext(browser_context),
URLOverrides::GetChromeURLOverrides(extension));
}
+void ExtensionWebUIOverrideRegistrar::OnExtensionSystemReady(
+ content::BrowserContext* context) {
+ ExtensionWebUI::ValidateChromeURLOverrides(
+ Profile::FromBrowserContext(context));
+}
+
static base::LazyInstance<
BrowserContextKeyedAPIFactory<ExtensionWebUIOverrideRegistrar> > g_factory =
LAZY_INSTANCE_INITIALIZER;

Powered by Google App Engine
This is Rietveld 408576698