diff options
3 files changed, 13 insertions, 7 deletions
diff --git a/chrome/browser/notifications/desktop_notification_service.cc b/chrome/browser/notifications/desktop_notification_service.cc index 477b505..d170891 100644 --- a/chrome/browser/notifications/desktop_notification_service.cc +++ b/chrome/browser/notifications/desktop_notification_service.cc @@ -100,12 +100,14 @@ class NotificationPermissionInfoBarDelegate : public ConfirmInfoBarDelegate { public: NotificationPermissionInfoBarDelegate(TabContents* contents, const GURL& origin, + int process_id, + int route_id, int callback_context) : ConfirmInfoBarDelegate(contents), origin_(origin), profile_(contents->profile()), - process_id_(contents->process()->id()), - route_id_(contents->render_view_host()->routing_id()), + process_id_(process_id), + route_id_(route_id), callback_context_(callback_context), action_taken_(false) { } @@ -247,7 +249,7 @@ void DesktopNotificationService::DenyPermission(const GURL& origin) { } void DesktopNotificationService::RequestPermission( - const GURL& origin, int callback_context) { + 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(); @@ -258,8 +260,8 @@ void DesktopNotificationService::RequestPermission( TabContents* tab = browser->GetSelectedTabContents(); if (!tab) return; - tab->AddInfoBar(new NotificationPermissionInfoBarDelegate(tab, origin, - callback_context)); + tab->AddInfoBar(new NotificationPermissionInfoBarDelegate( + tab, origin, process_id, route_id, callback_context)); } void DesktopNotificationService::ShowNotification( diff --git a/chrome/browser/notifications/desktop_notification_service.h b/chrome/browser/notifications/desktop_notification_service.h index 1e1fb16..86ad6d1 100644 --- a/chrome/browser/notifications/desktop_notification_service.h +++ b/chrome/browser/notifications/desktop_notification_service.h @@ -33,7 +33,10 @@ class DesktopNotificationService { // Requests permission (using an info-bar) for a given origin. // |callback_context| contains an opaque value to pass back to the // requesting process when the info-bar finishes. - void RequestPermission(const GURL& origin, int callback_context); + void RequestPermission(const GURL& origin, + int process_id, + int route_id, + int callback_context); // Takes a notification object and shows it in the UI. void ShowNotification(const Notification& notification); diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 5849459..0f61b0f 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -1676,7 +1676,8 @@ void RenderViewHost::OnRequestNotificationPermission( const GURL& source_origin, int callback_context) { DesktopNotificationService* service = process()->profile()->GetDesktopNotificationService(); - service->RequestPermission(source_origin, callback_context); + service->RequestPermission( + source_origin, process()->id(), routing_id(), callback_context); } void RenderViewHost::OnExtensionRequest(const std::string& name, |