Index: Source/modules/notifications/Notification.cpp |
diff --git a/Source/modules/notifications/Notification.cpp b/Source/modules/notifications/Notification.cpp |
index aec3cc8c75be88b0234af95609a6bb32575c6e5e..f2f3879e24891b956395afdf167084ff82c6df58 100644 |
--- a/Source/modules/notifications/Notification.cpp |
+++ b/Source/modules/notifications/Notification.cpp |
@@ -311,14 +311,12 @@ WebNotificationPermission Notification::checkPermission(ExecutionContext* contex |
ScriptPromise Notification::requestPermission(ScriptState* scriptState, NotificationPermissionCallback* deprecatedCallback) |
{ |
ExecutionContext* context = scriptState->executionContext(); |
- NotificationPermissionClient* permissionClient = NotificationPermissionClient::from(context); |
- if (!permissionClient) { |
- // TODO(peter): Assert that this code-path will only be reached for Document environments when Blink |
- // supports [Exposed] annotations on class members in IDL definitions. See https://crbug.com/442139. |
- return ScriptPromise::cast(scriptState, v8String(scriptState->isolate(), permission(context))); |
- } |
+ if (NotificationPermissionClient* permissionClient = NotificationPermissionClient::from(context)) |
+ return permissionClient->requestPermission(scriptState, deprecatedCallback); |
- return permissionClient->requestPermission(scriptState, deprecatedCallback); |
+ // The context has been detached. Return a promise that will never settle. |
+ ASSERT(context->activeDOMObjectsAreStopped()); |
+ return ScriptPromise(); |
} |
size_t Notification::maxActions() |