Chromium Code Reviews| Index: chrome/browser/extensions/api/spellcheck/spellcheck_api.cc |
| diff --git a/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc b/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc |
| index a249b4a26603091e5a5135dda531125b01220044..e5077495a77bde3b1fd84310e47eb0b0da35cbd7 100644 |
| --- a/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc |
| +++ b/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc |
| @@ -12,6 +12,7 @@ |
| #include "chrome/common/extensions/api/spellcheck/spellcheck_handler.h" |
| #include "content/public/browser/notification_details.h" |
|
limasdf
2014/04/24 17:46:48
I think i can kill this includes. will upload soon
|
| #include "content/public/browser/notification_source.h" |
| +#include "extensions/browser/extension_registry.h" |
| #include "extensions/common/manifest_constants.h" |
| namespace extensions { |
| @@ -40,13 +41,10 @@ SpellcheckService::DictionaryFormat GetDictionaryFormat(std::string format) { |
| } // namespace |
| -SpellcheckAPI::SpellcheckAPI(content::BrowserContext* context) { |
| - Profile* profile = Profile::FromBrowserContext(context); |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, |
| - content::Source<Profile>(profile)); |
| - registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, |
| - content::Source<Profile>(profile)); |
| +SpellcheckAPI::SpellcheckAPI(content::BrowserContext* context) |
| + : extension_registry_observer_(this) { |
| + extension_registry_observer_.Add( |
| + ExtensionRegistry::Get(Profile::FromBrowserContext(context))); |
| } |
| SpellcheckAPI::~SpellcheckAPI() { |
| @@ -61,41 +59,32 @@ SpellcheckAPI::GetFactoryInstance() { |
| return g_factory.Pointer(); |
| } |
| -void SpellcheckAPI::Observe(int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details) { |
| - Profile* profile = content::Source<Profile>(source).ptr(); |
| - SpellcheckService* spellcheck = NULL; |
| - switch (type) { |
| - case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: { |
| - const Extension* extension = content::Details<Extension>(details).ptr(); |
| - SpellcheckDictionaryInfo* spellcheck_info = |
| - GetSpellcheckDictionaryInfo(extension); |
| - if (spellcheck_info) { |
| - // TODO(rlp): Handle load failure. = |
| - spellcheck = SpellcheckServiceFactory::GetForContext(profile); |
| - spellcheck->LoadExternalDictionary( |
| - spellcheck_info->language, |
| - spellcheck_info->locale, |
| - spellcheck_info->path, |
| - GetDictionaryFormat(spellcheck_info->format)); |
| - } |
| - break; |
| - } |
| - case chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: { |
| - const Extension* extension = |
| - content::Details<UnloadedExtensionInfo>(details)->extension; |
| - SpellcheckDictionaryInfo* spellcheck_info = |
| - GetSpellcheckDictionaryInfo(extension); |
| - if (spellcheck_info) { |
| - // TODO(rlp): Handle unload failure. |
| - spellcheck = SpellcheckServiceFactory::GetForContext(profile); |
| - spellcheck->UnloadExternalDictionary(spellcheck_info->path); |
| - } |
| - break; |
| - } |
| - default: |
| - NOTREACHED(); |
| +void SpellcheckAPI::OnExtensionLoaded(content::BrowserContext* browser_context, |
| + const Extension* extension) { |
| + SpellcheckDictionaryInfo* spellcheck_info = |
| + GetSpellcheckDictionaryInfo(extension); |
| + if (spellcheck_info) { |
| + // TODO(rlp): Handle load failure. = |
| + SpellcheckService* spellcheck = |
| + SpellcheckServiceFactory::GetForContext(browser_context); |
| + spellcheck->LoadExternalDictionary( |
| + spellcheck_info->language, |
| + spellcheck_info->locale, |
| + spellcheck_info->path, |
| + GetDictionaryFormat(spellcheck_info->format)); |
| + } |
| +} |
| +void SpellcheckAPI::OnExtensionUnloaded( |
| + content::BrowserContext* browser_context, |
| + const Extension* extension, |
| + UnloadedExtensionInfo::Reason reason) { |
| + SpellcheckDictionaryInfo* spellcheck_info = |
| + GetSpellcheckDictionaryInfo(extension); |
| + if (spellcheck_info) { |
| + // TODO(rlp): Handle unload failure. |
| + SpellcheckService* spellcheck = |
| + SpellcheckServiceFactory::GetForContext(browser_context); |
| + spellcheck->UnloadExternalDictionary(spellcheck_info->path); |
| } |
| } |