[go: up one dir, main page]

Changeset 277420 in webkit


Ignore:
Timestamp:
May 12, 2021, 10:02:45 PM (4 years ago)
Author:
Chris Dumez
Message:

Notification.requestPermission() should return a Promise
https://bugs.webkit.org/show_bug.cgi?id=225712

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Drop manual test that should not have been imported from WPT. The test happened to be using Notification.requestPermission()
internally.

  • web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https.html: Removed.

Source/WebCore:

Notification.requestPermission() should return a Promise as per the specification:

Both Firefox and Chrome already support this.

Test: http/tests/notifications/request-with-promise.html

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::requestPermission):

  • Modules/notifications/Notification.h:
  • Modules/notifications/Notification.idl:
  • Modules/notifications/NotificationClient.h:

Source/WebKit:

Update code now that WebCore passes a CompletionHandler instead of a
NotificationPermissionCallback.

  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:

(WebKit::NotificationPermissionRequestManager::~NotificationPermissionRequestManager):
(WebKit::NotificationPermissionRequestManager::startRequest):

  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:

(WebKit::WebNotificationClient::requestPermission):

  • WebProcess/WebCoreSupport/WebNotificationClient.h:

Source/WebKitLegacy/mac:

Update code now that WebCore passes a CompletionHandler instead of a
NotificationPermissionCallback.

  • WebCoreSupport/WebNotificationClient.h:
  • WebCoreSupport/WebNotificationClient.mm:

(WebNotificationClient::requestPermission):
(-[WebNotificationPolicyListener initWithCompletionHandler:]):
(-[WebNotificationPolicyListener allow]):
(-[WebNotificationPolicyListener deny]):

Source/WebKitLegacy/win:

Update code now that WebCore passes a CompletionHandler instead of a
NotificationPermissionCallback.

  • WebCoreSupport/WebDesktopNotificationsDelegate.cpp:

(WebDesktopNotificationsDelegate::requestPermission):

  • WebCoreSupport/WebDesktopNotificationsDelegate.h:

LayoutTests:

  • http/tests/notifications/notification-in-non-secure-context-expected.txt:

Rebaseline test now that we log an error message in the JS console when trying to call
Notification.requestPermission() in a non-secure context.

  • http/tests/notifications/request-with-promise-expected.txt: Added.
  • http/tests/notifications/request-with-promise.html: Added.

Add layout test coverage.

Location:
trunk
Files:
2 added
2 deleted
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r277419 r277420  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        Notification.requestPermission() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=225712
     5
     6        Reviewed by Darin Adler.
     7
     8        * http/tests/notifications/notification-in-non-secure-context-expected.txt:
     9        Rebaseline test now that we log an error message in the JS console when trying to call
     10        Notification.requestPermission() in a non-secure context.
     11
     12        * http/tests/notifications/request-with-promise-expected.txt: Added.
     13        * http/tests/notifications/request-with-promise.html: Added.
     14        Add layout test coverage.
     15
    1162021-05-12  Diego Pino Garcia  <dpino@igalia.com>
    217
  • trunk/LayoutTests/http/tests/notifications/notification-in-non-secure-context-expected.txt

    r267644 r277420  
     1CONSOLE MESSAGE: The Notification permission may only be requested in a secure context.
     2CONSOLE MESSAGE: The Notification permission may only be requested in a secure context.
    13
    24PASS Notification permission in insecure context
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r277391 r277420  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        Notification.requestPermission() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=225712
     5
     6        Reviewed by Darin Adler.
     7
     8        Drop manual test that should not have been imported from WPT. The test happened to be using Notification.requestPermission()
     9        internally.
     10
     11        * web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https-expected.txt: Removed.
     12        * web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https.html: Removed.
     13
    1142021-05-12  Ziran Sun  <zsun@igalia.com>
    215
  • trunk/Source/WebCore/ChangeLog

    r277418 r277420  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        Notification.requestPermission() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=225712
     5
     6        Reviewed by Darin Adler.
     7
     8        Notification.requestPermission() should return a Promise as per the specification:
     9        - https://notifications.spec.whatwg.org/#notification
     10
     11        Both Firefox and Chrome already support this.
     12
     13        Test: http/tests/notifications/request-with-promise.html
     14
     15        * Modules/notifications/Notification.cpp:
     16        (WebCore::Notification::requestPermission):
     17        * Modules/notifications/Notification.h:
     18        * Modules/notifications/Notification.idl:
     19        * Modules/notifications/NotificationClient.h:
     20
    1212021-05-12  Fujii Hironori  <Hironori.Fujii@sony.com>
    222
  • trunk/Source/WebCore/Modules/notifications/Notification.cpp

    r260576 r277420  
    3939#include "Event.h"
    4040#include "EventNames.h"
     41#include "JSDOMPromiseDeferred.h"
    4142#include "NotificationClient.h"
    4243#include "NotificationController.h"
     
    4445#include "WindowEventLoop.h"
    4546#include "WindowFocusAllowedIndicator.h"
     47#include <wtf/CompletionHandler.h>
    4648#include <wtf/IsoMallocInlines.h>
    4749
     
    185187}
    186188
    187 void Notification::requestPermission(Document& document, RefPtr<NotificationPermissionCallback>&& callback)
    188 {
     189void Notification::requestPermission(Document& document, RefPtr<NotificationPermissionCallback>&& callback, Ref<DeferredPromise>&& promise)
     190{
     191    auto resolvePromiseAndCallback = [document = makeRef(document), callback = WTFMove(callback), promise = WTFMove(promise)](Permission permission) mutable {
     192        document->eventLoop().queueTask(TaskSource::DOMManipulation, [callback = WTFMove(callback), promise = WTFMove(promise), permission]() mutable {
     193            if (callback)
     194                callback->handleEvent(permission);
     195            promise->resolve<IDLEnumeration<NotificationPermission>>(permission);
     196        });
     197    };
     198
    189199    auto* page = document.page();
    190200    if (!page)
    191         return;
     201        return resolvePromiseAndCallback(Permission::Denied);
    192202
    193203    if (!document.isSecureContext()) {
    194         if (callback) {
    195             document.eventLoop().queueTask(TaskSource::DOMManipulation, [callback = WTFMove(callback)]() mutable {
    196                 callback->handleEvent(Permission::Denied);
    197             });
    198         }
    199         return;
    200     }
    201 
    202     NotificationController::from(page)->client().requestPermission(&document, WTFMove(callback));
     204        document.addConsoleMessage(MessageSource::Security, MessageLevel::Error, "The Notification permission may only be requested in a secure context."_s);
     205        return resolvePromiseAndCallback(Permission::Denied);
     206    }
     207
     208    NotificationController::from(page)->client().requestPermission(document, WTFMove(resolvePromiseAndCallback));
    203209}
    204210
  • trunk/Source/WebCore/Modules/notifications/Notification.h

    r260576 r277420  
    4343namespace WebCore {
    4444
     45class DeferredPromise;
    4546class Document;
    4647class NotificationPermissionCallback;
     
    8384
    8485    static Permission permission(Document&);
    85     static void requestPermission(Document&, RefPtr<NotificationPermissionCallback>&&);
     86    static void requestPermission(Document&, RefPtr<NotificationPermissionCallback>&&, Ref<DeferredPromise>&&);
    8687
    8788    ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); }
  • trunk/Source/WebCore/Modules/notifications/Notification.idl

    r267813 r277420  
    4141
    4242    [CallWith=Document] static readonly attribute NotificationPermission permission;
    43     [CallWith=Document] static undefined requestPermission(optional NotificationPermissionCallback? deprecatedCallback); // FIXME: This should return a Promise<NotificationPermission>.
     43    [CallWith=Document] static Promise<NotificationPermission> requestPermission(optional NotificationPermissionCallback? deprecatedCallback);
    4444
    4545    // static readonly attribute unsigned long maxActions;
  • trunk/Source/WebCore/Modules/notifications/NotificationClient.h

    r277376 r277420  
    4545public:
    4646    using Permission = NotificationPermission;
     47    using PermissionHandler = CompletionHandler<void(Permission)>;
    4748
    4849    // Requests that a notification be shown.
     
    6768    // script context. The callback parameter should be run when the user has
    6869    // made a decision.
    69     virtual void requestPermission(ScriptExecutionContext*, RefPtr<NotificationPermissionCallback>&&) = 0;
     70    virtual void requestPermission(ScriptExecutionContext&, PermissionHandler&&) = 0;
    7071
    7172    // Checks the current level of permission.
  • trunk/Source/WebKit/ChangeLog

    r277417 r277420  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        Notification.requestPermission() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=225712
     5
     6        Reviewed by Darin Adler.
     7
     8        Update code now that WebCore passes a CompletionHandler instead of a
     9        NotificationPermissionCallback.
     10
     11        * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
     12        (WebKit::NotificationPermissionRequestManager::~NotificationPermissionRequestManager):
     13        (WebKit::NotificationPermissionRequestManager::startRequest):
     14        * WebProcess/Notifications/NotificationPermissionRequestManager.h:
     15        * WebProcess/WebCoreSupport/WebNotificationClient.cpp:
     16        (WebKit::WebNotificationClient::requestPermission):
     17        * WebProcess/WebCoreSupport/WebNotificationClient.h:
     18
    1192021-05-12  Fujii Hironori  <Hironori.Fujii@sony.com>
    220
  • trunk/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp

    r277414 r277420  
    6060#endif
    6161
     62NotificationPermissionRequestManager::~NotificationPermissionRequestManager()
     63{
    6264#if ENABLE(NOTIFICATIONS)
    63 void NotificationPermissionRequestManager::startRequest(const SecurityOriginData& securityOrigin, RefPtr<NotificationPermissionCallback>&& callback)
     65    auto requestsPerOrigin = std::exchange(m_requestsPerOrigin, { });
     66    for (auto& permissionHandlers : requestsPerOrigin.values())
     67        callPermissionHandlersWith(permissionHandlers, Permission::Denied);
     68#endif
     69}
     70
     71#if ENABLE(NOTIFICATIONS)
     72void NotificationPermissionRequestManager::startRequest(const SecurityOriginData& securityOrigin, PermissionHandler&& permissionHandler)
    6473{
    6574    auto permission = permissionLevel(securityOrigin);
    66     if (permission != NotificationClient::Permission::Default) {
    67         if (callback)
    68             callback->handleEvent(permission);
    69         return;
    70     }
     75    if (permission != Permission::Default)
     76        return permissionHandler(permission);
    7177
    72     auto addResult = m_requestsPerOrigin.add(securityOrigin, Vector<RefPtr<WebCore::NotificationPermissionCallback>> { });
    73     addResult.iterator->value.append(WTFMove(callback));
     78    auto addResult = m_requestsPerOrigin.add(securityOrigin, PermissionHandlers { });
     79    addResult.iterator->value.append(WTFMove(permissionHandler));
    7480    if (!addResult.isNewEntry)
    7581        return;
    7682
    77     m_page->sendWithAsyncReply(Messages::WebPageProxy::RequestNotificationPermission(securityOrigin.toString()), [this, protectedThis = makeRef(*this), callback = WTFMove(callback), securityOrigin](bool allowed) mutable {
     83    m_page->sendWithAsyncReply(Messages::WebPageProxy::RequestNotificationPermission(securityOrigin.toString()), [this, protectedThis = makeRef(*this), permissionHandler = WTFMove(permissionHandler), securityOrigin](bool allowed) mutable {
    7884        WebProcess::singleton().supplement<WebNotificationManager>()->didUpdateNotificationDecision(securityOrigin.toString(), allowed);
    7985
    80         auto callbacks = m_requestsPerOrigin.take(securityOrigin);
    81         for (auto& callback : callbacks) {
    82             if (callback)
    83                 callback->handleEvent(allowed ? NotificationClient::Permission::Granted : NotificationClient::Permission::Denied);
    84         }
     86        auto permissionHandlers = m_requestsPerOrigin.take(securityOrigin);
     87        callPermissionHandlersWith(permissionHandlers, allowed ? Permission::Granted : Permission::Denied);
    8588    });
     89}
     90
     91void NotificationPermissionRequestManager::callPermissionHandlersWith(PermissionHandlers& permissionHandlers, Permission permission)
     92{
     93    for (auto& permissionHandler : permissionHandlers)
     94        permissionHandler(permission);
    8695}
    8796#endif
    8897
    89 NotificationClient::Permission NotificationPermissionRequestManager::permissionLevel(const SecurityOriginData& securityOrigin)
     98auto NotificationPermissionRequestManager::permissionLevel(const SecurityOriginData& securityOrigin) -> Permission
    9099{
    91100#if ENABLE(NOTIFICATIONS)
    92101    if (!m_page->corePage()->settings().notificationsEnabled())
    93         return NotificationClient::Permission::Denied;
     102        return Permission::Denied;
    94103   
    95104    return WebProcess::singleton().supplement<WebNotificationManager>()->policyForOrigin(securityOrigin.toString());
    96105#else
    97106    UNUSED_PARAM(securityOrigin);
    98     return NotificationClient::Permission::Denied;
     107    return Permission::Denied;
    99108#endif
    100109}
  • trunk/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h

    r277414 r277420  
    4747public:
    4848    static Ref<NotificationPermissionRequestManager> create(WebPage*);
     49    ~NotificationPermissionRequestManager();
     50
     51    using Permission = WebCore::NotificationClient::Permission;
     52    using PermissionHandler = WebCore::NotificationClient::PermissionHandler;
    4953
    5054#if ENABLE(NOTIFICATIONS)
    51     void startRequest(const WebCore::SecurityOriginData&, RefPtr<WebCore::NotificationPermissionCallback>&&);
     55    void startRequest(const WebCore::SecurityOriginData&, PermissionHandler&&);
    5256#endif
    5357   
    54     WebCore::NotificationClient::Permission permissionLevel(const WebCore::SecurityOriginData&);
     58    Permission permissionLevel(const WebCore::SecurityOriginData&);
    5559
    5660    // For testing purposes only.
     
    6266
    6367#if ENABLE(NOTIFICATIONS)
    64     HashMap<WebCore::SecurityOriginData, Vector<RefPtr<WebCore::NotificationPermissionCallback>>> m_requestsPerOrigin;
     68    using PermissionHandlers = Vector<PermissionHandler>;
     69    static void callPermissionHandlersWith(PermissionHandlers&, Permission);
     70
     71    HashMap<WebCore::SecurityOriginData, PermissionHandlers> m_requestsPerOrigin;
    6572    WebPage* m_page;
    6673#endif
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebNotificationClient.cpp

    r277376 r277420  
    7272}
    7373
    74 void WebNotificationClient::requestPermission(ScriptExecutionContext* context, RefPtr<NotificationPermissionCallback>&& callback)
     74void WebNotificationClient::requestPermission(ScriptExecutionContext& context, PermissionHandler&& permissionHandler)
    7575{
    76     auto* securityOrigin = context->securityOrigin();
    77     if (!securityOrigin) {
    78         if (callback)
    79             callback->handleEvent(NotificationClient::Permission::Denied);
    80         return;
    81     }
    82     m_page->notificationPermissionRequestManager()->startRequest(securityOrigin->data(), WTFMove(callback));
     76    auto* securityOrigin = context.securityOrigin();
     77    if (!securityOrigin)
     78        return permissionHandler(NotificationClient::Permission::Denied);
     79    m_page->notificationPermissionRequestManager()->startRequest(securityOrigin->data(), WTFMove(permissionHandler));
    8380}
    8481
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebNotificationClient.h

    r277376 r277420  
    3232
    3333namespace WebCore {
    34 class NotificationPermissionCallback;
    3534class ScriptExecutionContext;
    3635} // namespace WebCore
     
    5251    void notificationObjectDestroyed(WebCore::Notification*) override;
    5352    void notificationControllerDestroyed() override;
    54     void requestPermission(WebCore::ScriptExecutionContext*, RefPtr<WebCore::NotificationPermissionCallback>&&) override;
     53    void requestPermission(WebCore::ScriptExecutionContext&, PermissionHandler&&) override;
    5554    WebCore::NotificationClient::Permission checkPermission(WebCore::ScriptExecutionContext*) override;
    5655   
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r277376 r277420  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        Notification.requestPermission() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=225712
     5
     6        Reviewed by Darin Adler.
     7
     8        Update code now that WebCore passes a CompletionHandler instead of a
     9        NotificationPermissionCallback.
     10
     11        * WebCoreSupport/WebNotificationClient.h:
     12        * WebCoreSupport/WebNotificationClient.mm:
     13        (WebNotificationClient::requestPermission):
     14        (-[WebNotificationPolicyListener initWithCompletionHandler:]):
     15        (-[WebNotificationPolicyListener allow]):
     16        (-[WebNotificationPolicyListener deny]):
     17
    1182021-05-12  Chris Dumez  <cdumez@apple.com>
    219
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebNotificationClient.h

    r277376 r277420  
    5151    void notificationObjectDestroyed(WebCore::Notification*) override;
    5252    void notificationControllerDestroyed() override;
    53     void requestPermission(WebCore::ScriptExecutionContext*, RefPtr<WebCore::NotificationPermissionCallback>&&) override;
     53    void requestPermission(WebCore::ScriptExecutionContext&, PermissionHandler&&) override;
    5454    WebCore::NotificationClient::Permission checkPermission(WebCore::ScriptExecutionContext*) override;
    5555
    56     void requestPermission(WebCore::ScriptExecutionContext*, WebNotificationPolicyListener *);
     56    void requestPermission(WebCore::ScriptExecutionContext&, WebNotificationPolicyListener *);
    5757
    5858    WebView *m_webView;
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebNotificationClient.mm

    r277376 r277420  
    3434#import "WebUIDelegatePrivate.h"
    3535#import "WebViewInternal.h"
    36 #import <WebCore/NotificationPermissionCallback.h>
    3736#import <WebCore/ScriptExecutionContext.h>
    3837#import <wtf/BlockObjCExceptions.h>
     38#import <wtf/CompletionHandler.h>
    3939#import <wtf/cocoa/VectorCocoa.h>
    4040
     
    4343@interface WebNotificationPolicyListener : NSObject <WebAllowDenyPolicyListener>
    4444{
    45     RefPtr<NotificationPermissionCallback> _callback;
    46 }
    47 - (id)initWithCallback:(RefPtr<NotificationPermissionCallback>&&)callback;
     45    NotificationClient::PermissionHandler _permissionHandler;
     46}
     47- (id)initWithPermissionHandler:(NotificationClient::PermissionHandler&&)permissionHandler;
    4848@end
    4949
     
    123123}
    124124
    125 void WebNotificationClient::requestPermission(ScriptExecutionContext* context, WebNotificationPolicyListener *listener)
     125void WebNotificationClient::requestPermission(ScriptExecutionContext& context, WebNotificationPolicyListener *listener)
    126126{
    127127    SEL selector = @selector(webView:decidePolicyForNotificationRequestFromOrigin:listener:);
     
    131131    m_everRequestedPermission = true;
    132132
    133     auto webOrigin = adoptNS([[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:context->securityOrigin()]);
     133    auto webOrigin = adoptNS([[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:context.securityOrigin()]);
    134134   
    135135    CallUIDelegate(m_webView, selector, webOrigin.get(), listener);
    136136}
    137137
    138 void WebNotificationClient::requestPermission(ScriptExecutionContext* context, RefPtr<NotificationPermissionCallback>&& callback)
     138void WebNotificationClient::requestPermission(ScriptExecutionContext& context, PermissionHandler&& permissionHandler)
    139139{
    140140    BEGIN_BLOCK_OBJC_EXCEPTIONS
    141     auto listener = adoptNS([[WebNotificationPolicyListener alloc] initWithCallback:WTFMove(callback)]);
     141    auto listener = adoptNS([[WebNotificationPolicyListener alloc] initWithPermissionHandler:WTFMove(permissionHandler)]);
    142142    requestPermission(context, listener.get());
    143143    END_BLOCK_OBJC_EXCEPTIONS
     
    171171@implementation WebNotificationPolicyListener
    172172
    173 - (id)initWithCallback:(RefPtr<NotificationPermissionCallback>&&)callback
     173- (id)initWithPermissionHandler:(NotificationClient::PermissionHandler&&)permissionHandler
    174174{
    175175    if (!(self = [super init]))
    176176        return nil;
    177177
    178     _callback = WTFMove(callback);
     178    _permissionHandler = WTFMove(permissionHandler);
    179179    return self;
    180180}
     
    182182- (void)allow
    183183{
    184     if (_callback)
    185         _callback->handleEvent(NotificationClient::Permission::Granted);
     184    if (_permissionHandler)
     185        _permissionHandler(NotificationClient::Permission::Granted);
    186186}
    187187
    188188- (void)deny
    189189{
    190     if (_callback)
    191         _callback->handleEvent(NotificationClient::Permission::Denied);
     190    if (_permissionHandler)
     191        _permissionHandler(NotificationClient::Permission::Denied);
    192192}
    193193
  • trunk/Source/WebKitLegacy/win/ChangeLog

    r277376 r277420  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        Notification.requestPermission() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=225712
     5
     6        Reviewed by Darin Adler.
     7
     8        Update code now that WebCore passes a CompletionHandler instead of a
     9        NotificationPermissionCallback.
     10
     11        * WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
     12        (WebDesktopNotificationsDelegate::requestPermission):
     13        * WebCoreSupport/WebDesktopNotificationsDelegate.h:
     14
    1152021-05-12  Chris Dumez  <cdumez@apple.com>
    216
  • trunk/Source/WebKitLegacy/win/WebCoreSupport/WebDesktopNotificationsDelegate.cpp

    r277376 r277420  
    178178}
    179179
    180 void WebDesktopNotificationsDelegate::requestPermission(SecurityOrigin*, RefPtr<NotificationPermissionCallback>&&)
    181 {
     180void WebDesktopNotificationsDelegate::requestPermission(SecurityOrigin&, PermissionHandler&& permissionHandler)
     181{
     182    permissionHandler(Permission::Denied);
    182183}
    183184
  • trunk/Source/WebKitLegacy/win/WebCoreSupport/WebDesktopNotificationsDelegate.h

    r277376 r277420  
    5454    virtual void notificationObjectDestroyed(WebCore::Notification* object);
    5555    virtual void notificationControllerDestroyed();
    56     virtual void requestPermission(WebCore::SecurityOrigin*, RefPtr<WebCore::NotificationPermissionCallback>&&);
     56    virtual void requestPermission(WebCore::SecurityOrigin&, PermissionHandler&&);
    5757    virtual WebCore::NotificationClient::Permission checkPermission(const URL&);
    5858
Note: See TracChangeset for help on using the changeset viewer.