| 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..3f88362d775a817b97e54ddc712b2281f4d112d1 100644
|
| --- a/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc
|
| +++ b/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc
|
| @@ -5,13 +5,10 @@
|
| #include "chrome/browser/extensions/api/spellcheck/spellcheck_api.h"
|
|
|
| #include "base/lazy_instance.h"
|
| -#include "chrome/browser/chrome_notification_types.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/spellchecker/spellcheck_factory.h"
|
| #include "chrome/browser/spellchecker/spellcheck_service.h"
|
| #include "chrome/common/extensions/api/spellcheck/spellcheck_handler.h"
|
| -#include "content/public/browser/notification_details.h"
|
| -#include "content/public/browser/notification_source.h"
|
| +#include "extensions/browser/extension_registry.h"
|
| #include "extensions/common/manifest_constants.h"
|
|
|
| namespace extensions {
|
| @@ -40,13 +37,9 @@ 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(context));
|
| }
|
|
|
| SpellcheckAPI::~SpellcheckAPI() {
|
| @@ -61,41 +54,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);
|
| }
|
| }
|
|
|
|
|