Index: chrome/browser/extensions/api/settings_overrides/settings_overrides_api.h |
diff --git a/chrome/browser/extensions/api/settings_overrides/settings_overrides_api.h b/chrome/browser/extensions/api/settings_overrides/settings_overrides_api.h |
index 89fd425c5ee5f8079bb1426ba8554900beb14213..2781665c3a50a89eab72586b1f07d05956c3f1dc 100644 |
--- a/chrome/browser/extensions/api/settings_overrides/settings_overrides_api.h |
+++ b/chrome/browser/extensions/api/settings_overrides/settings_overrides_api.h |
@@ -5,7 +5,6 @@ |
#ifndef CHROME_BROWSER_EXTENSIONS_API_SETTINGS_OVERRIDES_SETTINGS_OVERRIDES_API_H_ |
#define CHROME_BROWSER_EXTENSIONS_API_SETTINGS_OVERRIDES_SETTINGS_OVERRIDES_API_H_ |
-#include <memory> |
#include <set> |
#include <string> |
@@ -33,12 +32,14 @@ |
private: |
friend class BrowserContextKeyedAPIFactory<SettingsOverridesAPI>; |
+ typedef std::set<scoped_refptr<const Extension> > PendingExtensions; |
+ |
// Wrappers around PreferenceAPI. |
void SetPref(const std::string& extension_id, |
const std::string& pref_key, |
- std::unique_ptr<base::Value> value) const; |
+ base::Value* value); |
void UnsetPref(const std::string& extension_id, |
- const std::string& pref_key) const; |
+ const std::string& pref_key); |
// ExtensionRegistryObserver implementation. |
void OnExtensionLoaded(content::BrowserContext* browser_context, |
@@ -47,6 +48,11 @@ |
const Extension* extension, |
UnloadedExtensionInfo::Reason reason) override; |
+ // KeyedService implementation. |
+ void Shutdown() override; |
+ |
+ void OnTemplateURLsLoaded(); |
+ |
void RegisterSearchProvider(const Extension* extension) const; |
// BrowserContextKeyedAPI implementation. |
static const char* service_name() { return "SettingsOverridesAPI"; } |
@@ -54,9 +60,15 @@ |
Profile* profile_; |
TemplateURLService* url_service_; |
+ // List of extensions waiting for the TemplateURLService to Load to |
+ // have search provider registered. |
+ PendingExtensions pending_extensions_; |
+ |
// Listen to extension load, unloaded notifications. |
ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> |
extension_registry_observer_; |
+ |
+ std::unique_ptr<TemplateURLService::Subscription> template_url_sub_; |
DISALLOW_COPY_AND_ASSIGN(SettingsOverridesAPI); |
}; |