Diff
Modified: trunk/Source/WebKit2/ChangeLog (102959 => 102960)
--- trunk/Source/WebKit2/ChangeLog 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/ChangeLog 2011-12-15 18:44:43 UTC (rev 102960)
@@ -1,3 +1,35 @@
+2011-12-15 Jon Lee <[email protected]>
+
+ [WK2] Extend WebNotification to include its origin
+ https://bugs.webkit.org/show_bug.cgi?id=74615
+ <rdar://problem/10587164>
+
+ Reviewed by Sam Weinig.
+
+ * Shared/API/c/WKSecurityOrigin.h: Expose API that converts the security origin to database
+ identifier.
+ * Shared/API/c/WKSecurityOrigin.cpp:
+ (WKSecurityOriginCopyDatabaseIdentifier):
+
+ * UIProcess/Notifications/WebNotification.h: Extend WebNotification to include the origin.
+ (WebKit::WebNotification::create):
+ (WebKit::WebNotification::origin):
+ * UIProcess/Notifications/WebNotification.cpp: Remove unneeded encode() and decode() functions.
+ (WebKit::WebNotification::WebNotification):
+
+ * UIProcess/API/C/WKNotification.h: Expose WebNotification's origin().
+ * UIProcess/API/C/WKNotification.cpp:
+ (WKNotificationGetSecurityOrigin):
+
+ * UIProcess/Notifications/WebNotificationManagerProxy.messages.in: Update show() to include the
+ origin of the notification.
+ * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
+ (WebKit::WebNotificationManagerProxy::show):
+ * UIProcess/Notifications/WebNotificationManagerProxy.h:
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::show): Pass the notification's exec context's origin as
+ identifier.
+
2011-12-15 Rafael Brandao <[email protected]>
[Qt][WK2] Add test for download policy on navigation request
Modified: trunk/Source/WebKit2/Shared/API/c/WKSecurityOrigin.cpp (102959 => 102960)
--- trunk/Source/WebKit2/Shared/API/c/WKSecurityOrigin.cpp 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/Shared/API/c/WKSecurityOrigin.cpp 2011-12-15 18:44:43 UTC (rev 102960)
@@ -48,6 +48,11 @@
return toAPI(securityOrigin.release().leakRef());
}
+WKStringRef WKSecurityOriginCopyDatabaseIdentifier(WKSecurityOriginRef securityOrigin)
+{
+ return toCopiedAPI(toImpl(securityOrigin)->databaseIdentifier());
+}
+
WKStringRef WKSecurityOriginCopyProtocol(WKSecurityOriginRef securityOrigin)
{
return toCopiedAPI(toImpl(securityOrigin)->protocol());
Modified: trunk/Source/WebKit2/Shared/API/c/WKSecurityOrigin.h (102959 => 102960)
--- trunk/Source/WebKit2/Shared/API/c/WKSecurityOrigin.h 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/Shared/API/c/WKSecurityOrigin.h 2011-12-15 18:44:43 UTC (rev 102960)
@@ -37,6 +37,7 @@
WK_EXPORT WKSecurityOriginRef WKSecurityOriginCreateFromIdentifier(WKStringRef identifier);
WK_EXPORT WKSecurityOriginRef WKSecurityOriginCreate(WKStringRef protocol, WKStringRef host, int port);
+WK_EXPORT WKStringRef WKSecurityOriginCopyDatabaseIdentifier(WKSecurityOriginRef securityOrigin);
WK_EXPORT WKStringRef WKSecurityOriginCopyProtocol(WKSecurityOriginRef securityOrigin);
WK_EXPORT WKStringRef WKSecurityOriginCopyHost(WKSecurityOriginRef securityOrigin);
WK_EXPORT unsigned short WKSecurityOriginGetPort(WKSecurityOriginRef securityOrigin);
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKNotification.cpp (102959 => 102960)
--- trunk/Source/WebKit2/UIProcess/API/C/WKNotification.cpp 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKNotification.cpp 2011-12-15 18:44:43 UTC (rev 102960)
@@ -28,6 +28,7 @@
#include "WKAPICast.h"
#include "WebNotification.h"
+#include "WebSecurityOrigin.h"
using namespace WebKit;
@@ -46,6 +47,11 @@
return toCopiedAPI(toImpl(notification)->body());
}
+WKSecurityOriginRef WKNotificationGetSecurityOrigin(WKNotificationRef notification)
+{
+ return toAPI(toImpl(notification)->origin());
+}
+
uint64_t WKNotificationGetID(WKNotificationRef notification)
{
return toImpl(notification)->notificationID();
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKNotification.h (102959 => 102960)
--- trunk/Source/WebKit2/UIProcess/API/C/WKNotification.h 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKNotification.h 2011-12-15 18:44:43 UTC (rev 102960)
@@ -36,6 +36,7 @@
WK_EXPORT WKStringRef WKNotificationCopyTitle(WKNotificationRef notification);
WK_EXPORT WKStringRef WKNotificationCopyBody(WKNotificationRef notification);
+WK_EXPORT WKSecurityOriginRef WKNotificationGetSecurityOrigin(WKNotificationRef notification);
WK_EXPORT uint64_t WKNotificationGetID(WKNotificationRef notification);
#ifdef __cplusplus
Modified: trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.cpp (102959 => 102960)
--- trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.cpp 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.cpp 2011-12-15 18:44:43 UTC (rev 102960)
@@ -33,21 +33,12 @@
namespace WebKit {
-WebNotification::WebNotification(const String& title, const String& body, uint64_t notificationID)
+WebNotification::WebNotification(const String& title, const String& body, const String& originIdentifier, uint64_t notificationID)
: m_title(title)
, m_body(body)
+ , m_origin(WebSecurityOrigin::create(originIdentifier))
, m_notificationID(notificationID)
{
}
-void WebNotification::encode(CoreIPC::ArgumentEncoder* encoder) const
-{
- encoder->encode(CoreIPC::In(m_title, m_body, m_notificationID));
-}
-
-bool WebNotification::decode(CoreIPC::ArgumentDecoder* decoder, WebNotification& notification)
-{
- return decoder->decode(CoreIPC::Out(notification.m_title, notification.m_body, notification.m_notificationID));
-}
-
} // namespace WebKit
Modified: trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.h (102959 => 102960)
--- trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.h 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.h 2011-12-15 18:44:43 UTC (rev 102960)
@@ -27,7 +27,9 @@
#define WebNotification_h
#include "APIObject.h"
+#include "WebSecurityOrigin.h"
#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
namespace CoreIPC {
@@ -38,32 +40,30 @@
} // namespace CoreIPC
namespace WebKit {
-
+
class WebNotification : public APIObject {
public:
static const Type APIType = TypeNotification;
- static PassRefPtr<WebNotification> create(const String& title, const String& body, uint64_t notificationID)
+ static PassRefPtr<WebNotification> create(const String& title, const String& body, const String& originIdentifier, uint64_t notificationID)
{
- return adoptRef(new WebNotification(title, body, notificationID));
+ return adoptRef(new WebNotification(title, body, originIdentifier, notificationID));
}
const String& title() const { return m_title; }
-
const String& body() const { return m_body; }
+ WebSecurityOrigin* origin() const { return m_origin.get(); }
uint64_t notificationID() const { return m_notificationID; }
- void encode(CoreIPC::ArgumentEncoder*) const;
- static bool decode(CoreIPC::ArgumentDecoder*, WebNotification&);
-
private:
- WebNotification(const String& title, const String& body, uint64_t notificationID);
+ WebNotification(const String& title, const String& body, const String& originIdentifier, uint64_t notificationID);
virtual Type type() const { return APIType; }
String m_title;
String m_body;
+ RefPtr<WebSecurityOrigin> m_origin;
uint64_t m_notificationID;
};
Modified: trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp (102959 => 102960)
--- trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp 2011-12-15 18:44:43 UTC (rev 102960)
@@ -68,14 +68,14 @@
didReceiveSyncWebNotificationManagerProxyMessage(connection, messageID, arguments, reply);
}
-void WebNotificationManagerProxy::show(const String& title, const String& body, uint64_t notificationID)
+void WebNotificationManagerProxy::show(const String& title, const String& body, const String& originIdentifier, uint64_t notificationID)
{
if (!isNotificationIDValid(notificationID))
return;
m_provider.addNotificationManager(this);
- RefPtr<WebNotification> notification = WebNotification::create(title, body, notificationID);
+ RefPtr<WebNotification> notification = WebNotification::create(title, body, originIdentifier, notificationID);
m_notifications.set(notificationID, notification);
m_provider.show(notification.get());
}
Modified: trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h (102959 => 102960)
--- trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h 2011-12-15 18:44:43 UTC (rev 102960)
@@ -71,7 +71,7 @@
void didReceiveSyncWebNotificationManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
// Message handlers
- void show(const WTF::String& title, const WTF::String& body, uint64_t notificationID);
+ void show(const WTF::String& title, const WTF::String& body, const WTF::String& originIdentifier, uint64_t notificationID);
void cancel(uint64_t notificationID);
void didDestroyNotification(uint64_t notificationID);
void notificationPermissionLevel(const WTF::String& originIdentifier, uint64_t& permissionLevel);
Modified: trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.messages.in (102959 => 102960)
--- trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.messages.in 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.messages.in 2011-12-15 18:44:43 UTC (rev 102960)
@@ -21,7 +21,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
messages -> WebNotificationManagerProxy {
- Show(WTF::String title, WTF::String body, uint64_t notificationID);
+ Show(WTF::String title, WTF::String body, WTF::String originIdentifier, uint64_t notificationID);
Cancel(uint64_t notificationID);
DidDestroyNotification(uint64_t notificationID);
Modified: trunk/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp (102959 => 102960)
--- trunk/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp 2011-12-15 18:39:51 UTC (rev 102959)
+++ trunk/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp 2011-12-15 18:44:43 UTC (rev 102960)
@@ -33,6 +33,8 @@
#include "WebNotification.h"
#include "WebNotificationManagerProxyMessages.h"
#include <WebCore/Notification.h>
+#include <WebCore/ScriptExecutionContext.h>
+#include <WebCore/SecurityOrigin.h>
#endif
using namespace WebCore;
@@ -71,7 +73,7 @@
m_notificationMap.set(notification, notificationID);
m_notificationIDMap.set(notificationID, notification);
- m_process->connection()->send(Messages::WebNotificationManagerProxy::Show(notification->contents().title, notification->contents().body, notificationID), page->pageID());
+ m_process->connection()->send(Messages::WebNotificationManagerProxy::Show(notification->contents().title, notification->contents().body, notification->scriptExecutionContext()->securityOrigin()->databaseIdentifier(), notificationID), page->pageID());
#endif
return true;
}