Title: [140928] trunk
- Revision
- 140928
- Author
- [email protected]
- Date
- 2013-01-27 13:04:20 -0800 (Sun, 27 Jan 2013)
Log Message
[chromium] add missing plumbing for Notification.requestPermission
https://bugs.webkit.org/show_bug.cgi?id=108012
Reviewed by Adam Barth.
Source/WebKit/chromium:
* src/NotificationPresenterImpl.cpp:
(WebKit):
(WebKit::VoidCallbackClient::VoidCallbackClient):
(NotificationPermissionCallbackClient):
(WebKit::NotificationPermissionCallbackClient::NotificationPermissionCallbackClient):
(WebKit::NotificationPermissionCallbackClient::permissionRequestComplete):
(WebKit::NotificationPermissionCallbackClient::~NotificationPermissionCallbackClient):
(WebKit::NotificationPresenterImpl::requestPermission):
* src/NotificationPresenterImpl.h:
(NotificationPresenterImpl):
LayoutTests:
* fast/notifications/notifications-constructor-request-permission-expected.txt: Added.
* fast/notifications/notifications-constructor-request-permission.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (140927 => 140928)
--- trunk/LayoutTests/ChangeLog 2013-01-27 10:58:30 UTC (rev 140927)
+++ trunk/LayoutTests/ChangeLog 2013-01-27 21:04:20 UTC (rev 140928)
@@ -1,5 +1,15 @@
2013-01-27 Jochen Eisinger <[email protected]>
+ [chromium] add missing plumbing for Notification.requestPermission
+ https://bugs.webkit.org/show_bug.cgi?id=108012
+
+ Reviewed by Adam Barth.
+
+ * fast/notifications/notifications-constructor-request-permission-expected.txt: Added.
+ * fast/notifications/notifications-constructor-request-permission.html: Added.
+
+2013-01-27 Jochen Eisinger <[email protected]>
+
Check notification permissions in the show() method
https://bugs.webkit.org/show_bug.cgi?id=108009
Added: trunk/LayoutTests/fast/notifications/notifications-constructor-request-permission-expected.txt (0 => 140928)
--- trunk/LayoutTests/fast/notifications/notifications-constructor-request-permission-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/notifications/notifications-constructor-request-permission-expected.txt 2013-01-27 21:04:20 UTC (rev 140928)
@@ -0,0 +1,5 @@
+DESKTOP NOTIFICATION PERMISSION REQUESTED: file://
+Requesting notification permission...
+
+PASS: Permission callback invoked.
+
Added: trunk/LayoutTests/fast/notifications/notifications-constructor-request-permission.html (0 => 140928)
--- trunk/LayoutTests/fast/notifications/notifications-constructor-request-permission.html (rev 0)
+++ trunk/LayoutTests/fast/notifications/notifications-constructor-request-permission.html 2013-01-27 21:04:20 UTC (rev 140928)
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script type="text/_javascript_">
+ function log(message)
+ {
+ document.getElementById("result").innerHTML += message + "<br>";
+ }
+
+ function runTests()
+ {
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ }
+
+ if (!window.Notification) {
+ log("FAIL: No Notification interface!");
+ }
+
+ var N = window.Notification.requestPermission(
+ function() { log("PASS: Permission callback invoked."); }
+ );
+ }
+ </script>
+</head>
+<body>
+ <p>Requesting notification permission...</p>
+
+<div id="result"></div>
+<script type="text/_javascript_">
+runTests();
+</script>
+
+
+</body>
+</html>
Modified: trunk/Source/WebKit/chromium/ChangeLog (140927 => 140928)
--- trunk/Source/WebKit/chromium/ChangeLog 2013-01-27 10:58:30 UTC (rev 140927)
+++ trunk/Source/WebKit/chromium/ChangeLog 2013-01-27 21:04:20 UTC (rev 140928)
@@ -1,3 +1,21 @@
+2013-01-27 Jochen Eisinger <[email protected]>
+
+ [chromium] add missing plumbing for Notification.requestPermission
+ https://bugs.webkit.org/show_bug.cgi?id=108012
+
+ Reviewed by Adam Barth.
+
+ * src/NotificationPresenterImpl.cpp:
+ (WebKit):
+ (WebKit::VoidCallbackClient::VoidCallbackClient):
+ (NotificationPermissionCallbackClient):
+ (WebKit::NotificationPermissionCallbackClient::NotificationPermissionCallbackClient):
+ (WebKit::NotificationPermissionCallbackClient::permissionRequestComplete):
+ (WebKit::NotificationPermissionCallbackClient::~NotificationPermissionCallbackClient):
+ (WebKit::NotificationPresenterImpl::requestPermission):
+ * src/NotificationPresenterImpl.h:
+ (NotificationPresenterImpl):
+
2013-01-26 James Simonsen <[email protected]>
[chromium] Export ResourceRequest's priority through WebURLRequest
Modified: trunk/Source/WebKit/chromium/src/NotificationPresenterImpl.cpp (140927 => 140928)
--- trunk/Source/WebKit/chromium/src/NotificationPresenterImpl.cpp 2013-01-27 10:58:30 UTC (rev 140927)
+++ trunk/Source/WebKit/chromium/src/NotificationPresenterImpl.cpp 2013-01-27 21:04:20 UTC (rev 140928)
@@ -49,9 +49,10 @@
namespace WebKit {
+#if ENABLE(LEGACY_NOTIFICATIONS)
class VoidCallbackClient : public WebNotificationPermissionCallback {
public:
- VoidCallbackClient(PassRefPtr<VoidCallback> callback)
+ explicit VoidCallbackClient(PassRefPtr<VoidCallback> callback)
: m_callback(callback)
{
}
@@ -68,7 +69,34 @@
RefPtr<VoidCallback> m_callback;
};
+#endif // ENABLE(LEGACY_NOTIFICATIONS)
+#if ENABLE(NOTIFICATIONS)
+class NotificationPermissionCallbackClient : public WebNotificationPermissionCallback {
+public:
+ NotificationPermissionCallbackClient(WebNotificationPresenter* presenter, PassRefPtr<SecurityOrigin> securityOrigin, PassRefPtr<NotificationPermissionCallback> callback)
+ : m_presenter(presenter)
+ , m_securityOrigin(securityOrigin)
+ , m_callback(callback)
+ {
+ }
+
+ virtual void permissionRequestComplete()
+ {
+ if (m_callback)
+ m_callback->handleEvent(Notification::permissionString(static_cast<NotificationClient::Permission>(m_presenter->checkPermission(WebSecurityOrigin(m_securityOrigin)))));
+ delete this;
+ }
+
+private:
+ virtual ~NotificationPermissionCallbackClient() { }
+
+ WebNotificationPresenter* m_presenter;
+ RefPtr<SecurityOrigin> m_securityOrigin;
+ RefPtr<NotificationPermissionCallback> m_callback;
+};
+#endif // ENABLE(NOTIFICATIONS)
+
void NotificationPresenterImpl::initialize(WebNotificationPresenter* presenter)
{
m_presenter = presenter;
@@ -104,11 +132,20 @@
return static_cast<NotificationClient::Permission>(result);
}
+#if ENABLE(LEGACY_NOTIFICATIONS)
void NotificationPresenterImpl::requestPermission(ScriptExecutionContext* context, PassRefPtr<VoidCallback> callback)
{
m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new VoidCallbackClient(callback));
}
+#endif // ENABLE(LEGACY_NOTIFICATIONS)
+#if ENABLE(NOTIFICATIONS)
+void NotificationPresenterImpl::requestPermission(ScriptExecutionContext* context, WTF::PassRefPtr<NotificationPermissionCallback> callback)
+{
+ m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new NotificationPermissionCallbackClient(m_presenter, context->securityOrigin(), callback));
+}
+#endif // ENABLE(NOTIFICATIONS)
+
} // namespace WebKit
#endif // ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
Modified: trunk/Source/WebKit/chromium/src/NotificationPresenterImpl.h (140927 => 140928)
--- trunk/Source/WebKit/chromium/src/NotificationPresenterImpl.h 2013-01-27 10:58:30 UTC (rev 140927)
+++ trunk/Source/WebKit/chromium/src/NotificationPresenterImpl.h 2013-01-27 21:04:20 UTC (rev 140928)
@@ -60,7 +60,7 @@
virtual void requestPermission(WebCore::ScriptExecutionContext*, WTF::PassRefPtr<WebCore::VoidCallback> callback);
#endif
#if ENABLE(NOTIFICATIONS)
- virtual void requestPermission(WebCore::ScriptExecutionContext*, WTF::PassRefPtr<WebCore::NotificationPermissionCallback> callback) { }
+ virtual void requestPermission(WebCore::ScriptExecutionContext*, WTF::PassRefPtr<WebCore::NotificationPermissionCallback>);
#endif
virtual void cancelRequestsForPermission(WebCore::ScriptExecutionContext*) {}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes