| Index: chrome/browser/notifications/desktop_notification_service.cc | 
| diff --git a/chrome/browser/notifications/desktop_notification_service.cc b/chrome/browser/notifications/desktop_notification_service.cc | 
| index fad44eb4d08637db2d682900097157e443a90a9d..2806ce1ed5c0d89cc560a76f93f6ed66666dde74 100644 | 
| --- a/chrome/browser/notifications/desktop_notification_service.cc | 
| +++ b/chrome/browser/notifications/desktop_notification_service.cc | 
| @@ -102,11 +102,12 @@ std::string DesktopNotificationService::AddIconNotification( | 
|  | 
| DesktopNotificationService::DesktopNotificationService(Profile* profile) | 
| : PermissionContextBase(profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS), | 
| -      profile_(profile), | 
| +      profile_(profile) | 
| #if defined(ENABLE_EXTENSIONS) | 
| -      extension_registry_observer_(this), | 
| +      , | 
| +      extension_registry_observer_(this) | 
| #endif | 
| -      weak_factory_(this) { | 
| +{ | 
| OnStringListPrefChanged( | 
| prefs::kMessageCenterDisabledExtensionIds, &disabled_extension_ids_); | 
| OnStringListPrefChanged( | 
| @@ -142,7 +143,7 @@ void DesktopNotificationService::RequestNotificationPermission( | 
| const PermissionRequestID& request_id, | 
| const GURL& requesting_origin, | 
| bool user_gesture, | 
| -    const NotificationPermissionCallback& callback) { | 
| +    const base::Callback<void(bool)>& result_callback) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
|  | 
| #if defined(ENABLE_EXTENSIONS) | 
| @@ -169,19 +170,16 @@ void DesktopNotificationService::RequestNotificationPermission( | 
| extensions::APIPermission::kNotifications, | 
| extension, | 
| web_contents->GetRenderViewHost())) { | 
| -    callback.Run(blink::WebNotificationPermissionAllowed); | 
| +    result_callback.Run(true); | 
| return; | 
| } | 
| #endif | 
|  | 
| -  RequestPermission( | 
| -      web_contents, | 
| -      request_id, | 
| -      requesting_origin, | 
| -      user_gesture, | 
| -      base::Bind(&DesktopNotificationService::OnNotificationPermissionRequested, | 
| -                 weak_factory_.GetWeakPtr(), | 
| -                 callback)); | 
| +  RequestPermission(web_contents, | 
| +                    request_id, | 
| +                    requesting_origin, | 
| +                    user_gesture, | 
| +                    result_callback); | 
| } | 
|  | 
| void DesktopNotificationService::ShowDesktopNotification( | 
| @@ -357,15 +355,6 @@ void DesktopNotificationService::UpdateContentSetting( | 
| } | 
| } | 
|  | 
| -void DesktopNotificationService::OnNotificationPermissionRequested( | 
| -    const NotificationPermissionCallback& callback, bool allowed) { | 
| -  blink::WebNotificationPermission permission = allowed ? | 
| -      blink::WebNotificationPermissionAllowed : | 
| -      blink::WebNotificationPermissionDenied; | 
| - | 
| -  callback.Run(permission); | 
| -} | 
| - | 
| void DesktopNotificationService::FirePermissionLevelChangedEvent( | 
| const NotifierId& notifier_id, bool enabled) { | 
| #if defined(ENABLE_EXTENSIONS) | 
|  |