Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(346)

Side by Side Diff: chrome/browser/notifications/notification_options_menu_model.cc

Issue 8827013: Move/replace/rename URL-based extension getters from ExtensionService to/in ExtensionSet. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: id Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/notifications/notification_options_menu_model.h" 5 #include "chrome/browser/notifications/notification_options_menu_model.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 NOTREACHED(); 110 NOTREACHED();
111 } 111 }
112 112
113 NotificationOptionsMenuModel::NotificationOptionsMenuModel(Balloon* balloon) 113 NotificationOptionsMenuModel::NotificationOptionsMenuModel(Balloon* balloon)
114 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)), 114 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)),
115 balloon_(balloon) { 115 balloon_(balloon) {
116 const Notification& notification = balloon->notification(); 116 const Notification& notification = balloon->notification();
117 const GURL& origin = notification.origin_url(); 117 const GURL& origin = notification.origin_url();
118 118
119 if (origin.SchemeIs(chrome::kExtensionScheme)) { 119 if (origin.SchemeIs(chrome::kExtensionScheme)) {
120 ExtensionService* ext_service = 120 ExtensionService* extension_service =
121 balloon_->profile()->GetExtensionService(); 121 balloon_->profile()->GetExtensionService();
122 const Extension* extension = ext_service->GetExtensionByURL(origin); 122 const Extension* extension =
123 extension_service->extensions()->GetExtensionOrAppByURL(
124 ExtensionURLInfo(origin));
123 // We get back no extension here when we show the notification after 125 // We get back no extension here when we show the notification after
124 // the extension has crashed. 126 // the extension has crashed.
125 if (extension) { 127 if (extension) {
126 const string16 disable_label = l10n_util::GetStringUTF16( 128 const string16 disable_label = l10n_util::GetStringUTF16(
127 IDS_EXTENSIONS_DISABLE); 129 IDS_EXTENSIONS_DISABLE);
128 AddItem(kToggleExtensionCommand, disable_label); 130 AddItem(kToggleExtensionCommand, disable_label);
129 } 131 }
130 } else { 132 } else {
131 const string16 disable_label = l10n_util::GetStringFUTF16( 133 const string16 disable_label = l10n_util::GetStringFUTF16(
132 IDS_NOTIFICATION_BALLOON_REVOKE_MESSAGE, 134 IDS_NOTIFICATION_BALLOON_REVOKE_MESSAGE,
(...skipping 25 matching lines...) Expand all
158 // TODO(tfarina,johnnyg): Remove this code if we decide to close notifications 160 // TODO(tfarina,johnnyg): Remove this code if we decide to close notifications
159 // after permissions are revoked. 161 // after permissions are revoked.
160 if (command_id == kTogglePermissionCommand || 162 if (command_id == kTogglePermissionCommand ||
161 command_id == kToggleExtensionCommand) { 163 command_id == kToggleExtensionCommand) {
162 const Notification& notification = balloon_->notification(); 164 const Notification& notification = balloon_->notification();
163 const GURL& origin = notification.origin_url(); 165 const GURL& origin = notification.origin_url();
164 166
165 DesktopNotificationService* service = 167 DesktopNotificationService* service =
166 DesktopNotificationServiceFactory::GetForProfile(balloon_->profile()); 168 DesktopNotificationServiceFactory::GetForProfile(balloon_->profile());
167 if (origin.SchemeIs(chrome::kExtensionScheme)) { 169 if (origin.SchemeIs(chrome::kExtensionScheme)) {
168 ExtensionService* ext_service = 170 ExtensionService* extension_service =
169 balloon_->profile()->GetExtensionService(); 171 balloon_->profile()->GetExtensionService();
170 const Extension* extension = ext_service->GetExtensionByURL(origin); 172 const Extension* extension =
173 extension_service->extensions()->GetExtensionOrAppByURL(
174 ExtensionURLInfo(origin));
171 if (extension) { 175 if (extension) {
172 return l10n_util::GetStringUTF16( 176 return l10n_util::GetStringUTF16(
173 ext_service->IsExtensionEnabled(extension->id()) ? 177 extension_service->IsExtensionEnabled(extension->id()) ?
174 IDS_EXTENSIONS_DISABLE : 178 IDS_EXTENSIONS_DISABLE :
175 IDS_EXTENSIONS_ENABLE); 179 IDS_EXTENSIONS_ENABLE);
176 } 180 }
177 } else { 181 } else {
178 if (service->GetContentSetting(origin) == CONTENT_SETTING_ALLOW) { 182 if (service->GetContentSetting(origin) == CONTENT_SETTING_ALLOW) {
179 return l10n_util::GetStringFUTF16( 183 return l10n_util::GetStringFUTF16(
180 IDS_NOTIFICATION_BALLOON_REVOKE_MESSAGE, 184 IDS_NOTIFICATION_BALLOON_REVOKE_MESSAGE,
181 notification.display_source()); 185 notification.display_source());
182 } else { 186 } else {
183 return l10n_util::GetStringFUTF16( 187 return l10n_util::GetStringFUTF16(
(...skipping 21 matching lines...) Expand all
205 209
206 bool NotificationOptionsMenuModel::GetAcceleratorForCommandId( 210 bool NotificationOptionsMenuModel::GetAcceleratorForCommandId(
207 int /* command_id */, ui::Accelerator* /* accelerator */) { 211 int /* command_id */, ui::Accelerator* /* accelerator */) {
208 // Currently no accelerators. 212 // Currently no accelerators.
209 return false; 213 return false;
210 } 214 }
211 215
212 void NotificationOptionsMenuModel::ExecuteCommand(int command_id) { 216 void NotificationOptionsMenuModel::ExecuteCommand(int command_id) {
213 DesktopNotificationService* service = 217 DesktopNotificationService* service =
214 DesktopNotificationServiceFactory::GetForProfile(balloon_->profile()); 218 DesktopNotificationServiceFactory::GetForProfile(balloon_->profile());
215 ExtensionService* ext_service = 219 ExtensionService* extension_service =
216 balloon_->profile()->GetExtensionService(); 220 balloon_->profile()->GetExtensionService();
217 const GURL& origin = balloon_->notification().origin_url(); 221 const GURL& origin = balloon_->notification().origin_url();
218 switch (command_id) { 222 switch (command_id) {
219 case kTogglePermissionCommand: 223 case kTogglePermissionCommand:
220 if (service->GetContentSetting(origin) == CONTENT_SETTING_ALLOW) 224 if (service->GetContentSetting(origin) == CONTENT_SETTING_ALLOW)
221 service->DenyPermission(origin); 225 service->DenyPermission(origin);
222 else 226 else
223 service->GrantPermission(origin); 227 service->GrantPermission(origin);
224 break; 228 break;
225 case kToggleExtensionCommand: { 229 case kToggleExtensionCommand: {
226 const Extension* extension = ext_service->GetExtensionByURL(origin); 230 const Extension* extension =
231 extension_service->extensions()->GetExtensionOrAppByURL(
232 ExtensionURLInfo(origin));
227 if (extension) { 233 if (extension) {
228 const std::string& id = extension->id(); 234 const std::string& id = extension->id();
229 if (ext_service->IsExtensionEnabled(id)) 235 if (extension_service->IsExtensionEnabled(id))
230 ext_service->DisableExtension(id); 236 extension_service->DisableExtension(id);
231 else 237 else
232 ext_service->EnableExtension(id); 238 extension_service->EnableExtension(id);
233 } 239 }
234 break; 240 break;
235 } 241 }
236 case kOpenContentSettingsCommand: { 242 case kOpenContentSettingsCommand: {
237 Browser* browser = 243 Browser* browser =
238 BrowserList::GetLastActiveWithProfile(balloon_->profile()); 244 BrowserList::GetLastActiveWithProfile(balloon_->profile());
239 if (!browser) { 245 if (!browser) {
240 // It is possible that there is no browser window (e.g. when there are 246 // It is possible that there is no browser window (e.g. when there are
241 // background pages, or for a chrome frame process on windows). 247 // background pages, or for a chrome frame process on windows).
242 browser = Browser::Create(balloon_->profile()); 248 browser = Browser::Create(balloon_->profile());
243 } 249 }
244 browser->ShowContentSettingsPage(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 250 browser->ShowContentSettingsPage(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
245 break; 251 break;
246 } 252 }
247 default: 253 default:
248 NOTREACHED(); 254 NOTREACHED();
249 break; 255 break;
250 } 256 }
251 } 257 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698