| 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,
|
|
|