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

Side by Side Diff: chrome/browser/extensions/api/declarative/rules_registry_service.cc

Issue 299393002: Use ExtensionRegistryObserver instead of deprecated extension notification from c/b/extension (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 6 months 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" 5 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 30 matching lines...) Expand all
41 } 41 }
42 42
43 } // namespace 43 } // namespace
44 44
45 RulesRegistryService::RulesRegistryService(content::BrowserContext* context) 45 RulesRegistryService::RulesRegistryService(content::BrowserContext* context)
46 : content_rules_registry_(NULL), 46 : content_rules_registry_(NULL),
47 extension_registry_observer_(this), 47 extension_registry_observer_(this),
48 profile_(Profile::FromBrowserContext(context)) { 48 profile_(Profile::FromBrowserContext(context)) {
49 if (profile_) { 49 if (profile_) {
50 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_)); 50 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_));
51 registrar_.Add(this,
52 chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED,
53 content::Source<Profile>(profile_->GetOriginalProfile()));
54 registrar_.Add( 51 registrar_.Add(
55 this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, 52 this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED,
56 content::NotificationService::AllBrowserContextsAndSources()); 53 content::NotificationService::AllBrowserContextsAndSources());
57 EnsureDefaultRulesRegistriesRegistered(WebViewKey(0, 0)); 54 EnsureDefaultRulesRegistriesRegistered(WebViewKey(0, 0));
58 } 55 }
59 } 56 }
60 57
61 RulesRegistryService::~RulesRegistryService() {} 58 RulesRegistryService::~RulesRegistryService() {}
62 59
63 void RulesRegistryService::EnsureDefaultRulesRegistriesRegistered( 60 void RulesRegistryService::EnsureDefaultRulesRegistriesRegistered(
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 NotifyRegistriesHelper(&RulesRegistry::OnExtensionLoaded, extension->id()); 206 NotifyRegistriesHelper(&RulesRegistry::OnExtensionLoaded, extension->id());
210 } 207 }
211 208
212 void RulesRegistryService::OnExtensionUnloaded( 209 void RulesRegistryService::OnExtensionUnloaded(
213 content::BrowserContext* browser_context, 210 content::BrowserContext* browser_context,
214 const Extension* extension, 211 const Extension* extension,
215 UnloadedExtensionInfo::Reason reason) { 212 UnloadedExtensionInfo::Reason reason) {
216 NotifyRegistriesHelper(&RulesRegistry::OnExtensionUnloaded, extension->id()); 213 NotifyRegistriesHelper(&RulesRegistry::OnExtensionUnloaded, extension->id());
217 } 214 }
218 215
216 void RulesRegistryService::OnExtensionUninstalled(
217 content::BrowserContext* browser_context,
218 const Extension* extension) {
219 NotifyRegistriesHelper(&RulesRegistry::OnExtensionUninstalled,
220 extension->id());
221 }
222
219 void RulesRegistryService::Observe( 223 void RulesRegistryService::Observe(
220 int type, 224 int type,
221 const content::NotificationSource& source, 225 const content::NotificationSource& source,
222 const content::NotificationDetails& details) { 226 const content::NotificationDetails& details) {
223 switch (type) { 227 DCHECK_EQ(content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, type);
224 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED: { 228
225 const Extension* extension = 229 content::RenderProcessHost* process =
226 content::Details<const Extension>(details).ptr(); 230 content::Source<content::RenderProcessHost>(source).ptr();
227 NotifyRegistriesHelper(&RulesRegistry::OnExtensionUninstalled, 231 RemoveWebViewRulesRegistries(process->GetID());
228 extension->id());
229 break;
230 }
231 case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED: {
232 content::RenderProcessHost* process =
233 content::Source<content::RenderProcessHost>(source).ptr();
234 RemoveWebViewRulesRegistries(process->GetID());
235 break;
236 }
237 default:
238 NOTREACHED();
239 break;
240 }
241 } 232 }
242 233
243 } // namespace extensions 234 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698