summaryrefslogtreecommitdiffstats
path: root/chrome/browser/notifications/desktop_notification_service.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/notifications/desktop_notification_service.cc')
-rw-r--r--chrome/browser/notifications/desktop_notification_service.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/chrome/browser/notifications/desktop_notification_service.cc b/chrome/browser/notifications/desktop_notification_service.cc
index f0eb62d..53cc37b 100644
--- a/chrome/browser/notifications/desktop_notification_service.cc
+++ b/chrome/browser/notifications/desktop_notification_service.cc
@@ -8,6 +8,7 @@
#include "app/resource_bundle.h"
#include "base/thread.h"
#include "base/utf_string_conversions.h"
+#include "chrome/browser/browser_list.h"
#include "chrome/browser/child_process_host.h"
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/extensions/extensions_service.h"
@@ -375,12 +376,18 @@ void DesktopNotificationService::PersistPermissionChange(
}
void DesktopNotificationService::RequestPermission(
- const GURL& origin, int process_id, int route_id, int callback_context,
- TabContents* tab) {
+ const GURL& origin, int process_id, int route_id, int callback_context) {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
+ // Show an info bar requesting permission.
+ Browser* browser = BrowserList::GetLastActive();
+ if (!browser) {
+ // Reached during ui tests.
+ return;
+ }
+ TabContents* tab = browser->GetSelectedTabContents();
if (!tab)
return;
- // Show an info bar requesting permission.
+
std::wstring display_name = DisplayNameForOrigin(origin);
tab->AddInfoBar(new NotificationPermissionInfoBarDelegate(