Index: chrome/browser/extensions/extension_info_map.cc |
diff --git a/chrome/browser/extensions/extension_info_map.cc b/chrome/browser/extensions/extension_info_map.cc |
index 10fa8c394b295ee3de2fd88fef1632cc24ff2c79..02eca8317e8d10085ba23e12b16b63d77f186dc3 100644 |
--- a/chrome/browser/extensions/extension_info_map.cc |
+++ b/chrome/browser/extensions/extension_info_map.cc |
@@ -30,6 +30,9 @@ struct ExtensionInfoMap::ExtraData { |
// True if the user has allowed this extension to run in incognito mode. |
bool incognito_enabled; |
+ // True if the user has disabled notifications for this extension manually. |
+ bool notifications_disabled; |
+ |
ExtraData(); |
~ExtraData(); |
}; |
@@ -46,13 +49,15 @@ const extensions::ProcessMap& ExtensionInfoMap::process_map() const { |
void ExtensionInfoMap::AddExtension(const Extension* extension, |
base::Time install_time, |
- bool incognito_enabled) { |
+ bool incognito_enabled, |
+ bool notifications_disabled) { |
CheckOnValidThread(); |
extensions_.Insert(extension); |
disabled_extensions_.Remove(extension->id()); |
extra_data_[extension->id()].install_time = install_time; |
extra_data_[extension->id()].incognito_enabled = incognito_enabled; |
+ extra_data_[extension->id()].notifications_disabled = notifications_disabled; |
} |
void ExtensionInfoMap::RemoveExtension( |
@@ -177,6 +182,22 @@ bool ExtensionInfoMap::IsSigninProcess(int process_id) const { |
return process_id == signin_process_id_; |
} |
+void ExtensionInfoMap::SetNotificationsDisabled( |
+ const std::string& extension_id, |
+ bool notifications_disabled) { |
+ ExtraDataMap::iterator iter = extra_data_.find(extension_id); |
+ if (iter != extra_data_.end()) |
+ iter->second.notifications_disabled = notifications_disabled; |
+} |
+ |
+bool ExtensionInfoMap::GetNotificationsDisabledForExtension( |
+ const std::string& extension_id) const { |
+ ExtraDataMap::const_iterator iter = extra_data_.find(extension_id); |
+ if (iter != extra_data_.end()) |
+ return iter->second.notifications_disabled; |
+ return false; |
+} |
+ |
ExtensionInfoMap::~ExtensionInfoMap() { |
if (quota_service_) { |
BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, |