Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / extension_web_ui_override_registrar.cc
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/extension_web_ui_override_registrar.h"
6
7 #include "base/lazy_instance.h"
8 #include "chrome/browser/extensions/extension_web_ui.h"
9 #include "chrome/browser/profiles/profile.h"
10 #include "extensions/browser/extension_registry.h"
11
12 namespace extensions {
13
14 ExtensionWebUIOverrideRegistrar::ExtensionWebUIOverrideRegistrar(
15     content::BrowserContext* context)
16     : extension_registry_observer_(this) {
17   extension_registry_observer_.Add(ExtensionRegistry::Get(context));
18 }
19
20 ExtensionWebUIOverrideRegistrar::~ExtensionWebUIOverrideRegistrar() {
21 }
22
23 void ExtensionWebUIOverrideRegistrar::OnExtensionLoaded(
24     content::BrowserContext* browser_context,
25     const Extension* extension) {
26   ExtensionWebUI::RegisterChromeURLOverrides(
27       Profile::FromBrowserContext(browser_context),
28       URLOverrides::GetChromeURLOverrides(extension));
29 }
30
31 void ExtensionWebUIOverrideRegistrar::OnExtensionUnloaded(
32     content::BrowserContext* browser_context,
33     const Extension* extension,
34     UnloadedExtensionInfo::Reason reason) {
35   ExtensionWebUI::UnregisterChromeURLOverrides(
36       Profile::FromBrowserContext(browser_context),
37       URLOverrides::GetChromeURLOverrides(extension));
38 }
39
40 static base::LazyInstance<
41     BrowserContextKeyedAPIFactory<ExtensionWebUIOverrideRegistrar> > g_factory =
42     LAZY_INSTANCE_INITIALIZER;
43
44 // static
45 BrowserContextKeyedAPIFactory<ExtensionWebUIOverrideRegistrar>*
46 ExtensionWebUIOverrideRegistrar::GetFactoryInstance() {
47   return g_factory.Pointer();
48 }
49
50 }  // namespace extensions