Index: Source/modules/notifications/Notification.cpp |
diff --git a/Source/modules/notifications/Notification.cpp b/Source/modules/notifications/Notification.cpp |
index 78935834f83fb4ba6c14892e13da8eff0ae150c5..e6b38ea94120cbf01f632388a174303338ea9fea 100644 |
--- a/Source/modules/notifications/Notification.cpp |
+++ b/Source/modules/notifications/Notification.cpp |
@@ -39,6 +39,7 @@ |
#include "core/page/WindowFocusAllowedIndicator.h" |
#include "modules/notifications/NotificationClient.h" |
#include "modules/notifications/NotificationController.h" |
+#include "modules/notifications/NotificationPermissionClient.h" |
namespace blink { |
@@ -168,8 +169,13 @@ const String& Notification::permission(ExecutionContext* context) |
void Notification::requestPermission(ExecutionContext* context, PassOwnPtr<NotificationPermissionCallback> callback) |
{ |
- ASSERT(toDocument(context)->page()); |
- NotificationController::clientFrom(context).requestPermission(context, callback); |
+ // FIXME: Assert that this code-path will only be reached for Document environments |
+ // when Blink supports [Exposed] annotations on class members in IDL definitions. |
+ |
+ if (NotificationPermissionClient* permissionClient = NotificationPermissionClient::from(context)) { |
+ permissionClient->requestPermission(context, callback); |
+ return; |
+ } |
} |
bool Notification::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event) |