Changeset 62939 in webkit


Ignore:
Timestamp:
Jul 9, 2010 4:47:15 AM (14 years ago)
Author:
yael.aharon@nokia.com
Message:

2010-07-09 Yael Aharon <yael.aharon@nokia.com>

Reviewed by Laszlo Gombos.

NotificationPresenter needs a cancelRequestPermission API
https://bugs.webkit.org/show_bug.cgi?id=41783

Updated NotificationPresenter API, to use ScriptExecutionContext instead of origin.
Added new API NotificationPresenter::cancelRequestsForPermision
The new API will be implemented and a test will be added in a followup patch.

  • notifications/Notification.cpp: (WebCore::Notification::Notification):
  • notifications/NotificationCenter.cpp: (WebCore::NotificationCenter::checkPermission): (WebCore::NotificationCenter::requestPermission): (WebCore::NotificationCenter::disconnectFrame):
  • notifications/NotificationCenter.h:
  • notifications/NotificationPresenter.h:

2010-07-09 Yael Aharon <yael.aharon@nokia.com>

Reviewed by Laszlo Gombos.

NotificationPresenter needs a cancelRequestPermission API
https://bugs.webkit.org/show_bug.cgi?id=41783

Updated the NotificationPresenter API.

  • src/NotificationPresenterImpl.cpp: (WebKit::NotificationPresenterImpl::checkPermission): (WebKit::NotificationPresenterImpl::requestPermission):
  • src/NotificationPresenterImpl.h: (WebKit::NotificationPresenterImpl::cancelRequestsForPermission):

2010-07-09 Yael Aharon <yael.aharon@nokia.com>

Reviewed by Laszlo Gombos.

NotificationPresenter needs a cancelRequestPermission API
https://bugs.webkit.org/show_bug.cgi?id=41783

Updated NotificationPresenter API to use ScriptExecutionContext instead of origin
and added a new NotificationPresenter::cancelRequestsForPermission API.
The new API will be implemented in a followup patch.

  • WebCoreSupport/NotificationPresenterClientQt.cpp: (WebCore::NotificationPresenterClientQt::requestPermission): (WebCore::NotificationPresenterClientQt::checkPermission): (WebCore::NotificationPresenterClientQt::cancelRequestsForPermission):
  • WebCoreSupport/NotificationPresenterClientQt.h:
Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r62937 r62939  
     12010-07-09  Yael Aharon  <yael.aharon@nokia.com>
     2
     3        Reviewed by Laszlo Gombos.
     4
     5        NotificationPresenter needs a cancelRequestPermission API
     6        https://bugs.webkit.org/show_bug.cgi?id=41783
     7
     8        Updated NotificationPresenter API, to use ScriptExecutionContext instead of origin.
     9        Added new API NotificationPresenter::cancelRequestsForPermision
     10        The new API will be implemented and a test will be added in a followup patch.
     11
     12        * notifications/Notification.cpp:
     13        (WebCore::Notification::Notification):
     14        * notifications/NotificationCenter.cpp:
     15        (WebCore::NotificationCenter::checkPermission):
     16        (WebCore::NotificationCenter::requestPermission):
     17        (WebCore::NotificationCenter::disconnectFrame):
     18        * notifications/NotificationCenter.h:
     19        * notifications/NotificationPresenter.h:
     20
    1212010-07-09  Andreas Wictor  <andreas.wictor@xcerion.com>
    222
  • trunk/WebCore/notifications/Notification.cpp

    r61316 r62939  
    5353{
    5454    ASSERT(m_presenter);
    55     if (m_presenter->checkPermission(context->url()) != NotificationPresenter::PermissionAllowed) {
     55    if (m_presenter->checkPermission(context) != NotificationPresenter::PermissionAllowed) {
    5656        ec = SECURITY_ERR;
    5757        return;
     
    7474{
    7575    ASSERT(m_presenter);
    76     if (m_presenter->checkPermission(context->url()) != NotificationPresenter::PermissionAllowed) {
     76    if (m_presenter->checkPermission(context) != NotificationPresenter::PermissionAllowed) {
    7777        ec = SECURITY_ERR;
    7878        return;
  • trunk/WebCore/notifications/NotificationCenter.cpp

    r56756 r62939  
    5050    if (!presenter())
    5151        return NotificationPresenter::PermissionDenied;
    52     return m_notificationPresenter->checkPermission(m_scriptExecutionContext->url());
     52    return m_notificationPresenter->checkPermission(m_scriptExecutionContext);
    5353}
    5454
     
    5757    if (!presenter())
    5858        return;
    59     m_notificationPresenter->requestPermission(m_scriptExecutionContext->securityOrigin(), callback);
     59    m_notificationPresenter->requestPermission(m_scriptExecutionContext, callback);
     60}
     61
     62void NotificationCenter::disconnectFrame()
     63{
     64    m_notificationPresenter->cancelRequestsForPermission(m_scriptExecutionContext);
     65    m_notificationPresenter = 0;
    6066}
    6167
  • trunk/WebCore/notifications/NotificationCenter.h

    r61521 r62939  
    7878        void requestPermission(PassRefPtr<VoidCallback> callback);
    7979
    80         void disconnectFrame() { m_notificationPresenter = 0; }
     80        void disconnectFrame();
    8181
    8282    private:
  • trunk/WebCore/notifications/NotificationPresenter.h

    r56756 r62939  
    4242    class Notification;
    4343    class KURL;
    44     class SecurityOrigin;
     44    class ScriptExecutionContext;
    4545    class String;
    4646
     
    6868
    6969        // Requests user permission to show desktop notifications from a particular
    70         // origin. The callback parameter should be run when the user has
     70        // script context. The callback parameter should be run when the user has
    7171        // made a decision.
    72         virtual void requestPermission(SecurityOrigin*, PassRefPtr<VoidCallback>) = 0;
     72        virtual void requestPermission(ScriptExecutionContext*, PassRefPtr<VoidCallback>) = 0;
     73
     74        // Cancel all outstanding requests for the ScriptExecutionContext
     75        virtual void cancelRequestsForPermission(ScriptExecutionContext*) = 0;
    7376
    7477        // Checks the current level of permission.
    75         virtual Permission checkPermission(const KURL&) = 0;
     78        virtual Permission checkPermission(ScriptExecutionContext*) = 0;
    7679    };
    7780
  • trunk/WebKit/chromium/ChangeLog

    r62927 r62939  
     12010-07-09  Yael Aharon  <yael.aharon@nokia.com>
     2
     3        Reviewed by Laszlo Gombos.
     4
     5        NotificationPresenter needs a cancelRequestPermission API
     6        https://bugs.webkit.org/show_bug.cgi?id=41783
     7
     8        Updated the NotificationPresenter API.
     9
     10        * src/NotificationPresenterImpl.cpp:
     11        (WebKit::NotificationPresenterImpl::checkPermission):
     12        (WebKit::NotificationPresenterImpl::requestPermission):
     13        * src/NotificationPresenterImpl.h:
     14        (WebKit::NotificationPresenterImpl::cancelRequestsForPermission):
     15
    1162010-07-08  Pavel Feldman  <pfeldman@chromium.org>
    217
  • trunk/WebKit/chromium/src/NotificationPresenterImpl.cpp

    r61316 r62939  
    3636#include "KURL.h"
    3737#include "Notification.h"
     38#include "ScriptExecutionContext.h"
    3839#include "SecurityOrigin.h"
    3940
     
    9293}
    9394
    94 NotificationPresenter::Permission NotificationPresenterImpl::checkPermission(const KURL& sourceURL)
     95NotificationPresenter::Permission NotificationPresenterImpl::checkPermission(ScriptExecutionContext* context)
    9596{
    96     int result = m_presenter->checkPermission(sourceURL);
     97    int result = m_presenter->checkPermission(context->url());
    9798    return static_cast<NotificationPresenter::Permission>(result);
    9899}
    99100
    100 void NotificationPresenterImpl::requestPermission(SecurityOrigin* origin, PassRefPtr<VoidCallback> callback)
     101void NotificationPresenterImpl::requestPermission(ScriptExecutionContext* context, PassRefPtr<VoidCallback> callback)
    101102{
    102     m_presenter->requestPermission(WebSecurityOrigin(origin), new VoidCallbackClient(callback));
     103    m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new VoidCallbackClient(callback));
    103104}
    104105
  • trunk/WebKit/chromium/src/NotificationPresenterImpl.h

    r56756 r62939  
    5555    virtual void cancel(WebCore::Notification* object);
    5656    virtual void notificationObjectDestroyed(WebCore::Notification* object);
    57     virtual WebCore::NotificationPresenter::Permission checkPermission(const WebCore::KURL& sourceURL);
    58     virtual void requestPermission(WebCore::SecurityOrigin* origin, WTF::PassRefPtr<WebCore::VoidCallback> callback);
     57    virtual WebCore::NotificationPresenter::Permission checkPermission(WebCore::ScriptExecutionContext*);
     58    virtual void requestPermission(WebCore::ScriptExecutionContext* , WTF::PassRefPtr<WebCore::VoidCallback> callback);
     59    virtual void cancelRequestsForPermission(WebCore::ScriptExecutionContext*) {}
    5960
    6061private:
  • trunk/WebKit/qt/ChangeLog

    r62913 r62939  
     12010-07-09  Yael Aharon  <yael.aharon@nokia.com>
     2
     3        Reviewed by Laszlo Gombos.
     4
     5        NotificationPresenter needs a cancelRequestPermission API
     6        https://bugs.webkit.org/show_bug.cgi?id=41783
     7
     8        Updated NotificationPresenter API to use ScriptExecutionContext instead of origin
     9        and added a new NotificationPresenter::cancelRequestsForPermission API.
     10        The new API will be implemented in a followup patch.
     11
     12        * WebCoreSupport/NotificationPresenterClientQt.cpp:
     13        (WebCore::NotificationPresenterClientQt::requestPermission):
     14        (WebCore::NotificationPresenterClientQt::checkPermission):
     15        (WebCore::NotificationPresenterClientQt::cancelRequestsForPermission):
     16        * WebCoreSupport/NotificationPresenterClientQt.h:
     17
    1182010-07-09  Kent Hansen  <kent.hansen@nokia.com>
    219
  • trunk/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp

    r61543 r62939  
    3838#include "KURL.h"
    3939#include "QtPlatformPlugin.h"
     40#include "ScriptExecutionContext.h"
    4041#include "SecurityOrigin.h"
    4142
     
    253254}
    254255
    255 void NotificationPresenterClientQt::requestPermission(SecurityOrigin* origin, PassRefPtr<VoidCallback> callback)
     256void NotificationPresenterClientQt::requestPermission(ScriptExecutionContext* context, PassRefPtr<VoidCallback> callback)
    256257
    257258    if (dumpNotification)
    258         printf("DESKTOP NOTIFICATION PERMISSION REQUESTED: %s\n", QString(origin->toString()).toUtf8().constData());
    259 
    260     QString originString = origin->toString();
     259        printf("DESKTOP NOTIFICATION PERMISSION REQUESTED: %s\n", QString(context->securityOrigin()->toString()).toUtf8().constData());
     260
     261    QString originString = context->securityOrigin()->toString();
    261262    QHash<QString, QList<RefPtr<VoidCallback> > >::iterator iter = m_pendingPermissionRequests.find(originString);
    262263    if (iter != m_pendingPermissionRequests.end())
     
    272273}
    273274
    274 NotificationPresenter::Permission NotificationPresenterClientQt::checkPermission(const KURL& url)
     275NotificationPresenter::Permission NotificationPresenterClientQt::checkPermission(ScriptExecutionContext* context)
    275276{
    276277    NotificationPermission permission = NotificationNotAllowed;
    277     QString origin = url.string();
     278    QString origin = context->url().string();
    278279    if (checkPermissionFunction)
    279280        checkPermissionFunction(m_receiver, origin, permission);
     
    290291}
    291292
     293void NotificationPresenterClientQt::cancelRequestsForPermission(ScriptExecutionContext*)
     294{
     295    // FIXME: This will be implemented for https://bugs.webkit.org/show_bug.cgi?id=41413
     296    // to avoid adding and removing new private API
     297}
     298
    292299void NotificationPresenterClientQt::allowNotificationForOrigin(const QString& origin)
    293300{
  • trunk/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h

    r61197 r62939  
    4646
    4747class Document;
    48 class KURL;
     48class ScriptExecutionContext;
    4949
    5050class NotificationWrapper : public QObject, public QWebNotificationData {
     
    8585    virtual void cancel(Notification*);
    8686    virtual void notificationObjectDestroyed(Notification*);
    87     virtual void requestPermission(SecurityOrigin*, PassRefPtr<VoidCallback>);
    88     virtual NotificationPresenter::Permission checkPermission(const KURL&);
     87    virtual void requestPermission(ScriptExecutionContext*, PassRefPtr<VoidCallback>);
     88    virtual NotificationPresenter::Permission checkPermission(ScriptExecutionContext*);
     89    virtual void cancelRequestsForPermission(ScriptExecutionContext*);
    8990
    9091    void cancel(NotificationWrapper*);
Note: See TracChangeset for help on using the changeset viewer.