Changeset 102352 in webkit
- Timestamp:
- Dec 8, 2011 11:06:59 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 26 edited
- 7 copied
- 7 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r102346 r102352 1 2011-12-06 Jon Lee <jonlee@apple.com> 2 3 [WK2] Add permissions support (73960) 4 https://bugs.webkit.org/show_bug.cgi?id=73960 5 <rdar://problem/10357008> 6 7 Reviewed by Darin Adler. 8 9 * DerivedSources.make: Moved notification files to its own directory. Need to add that path. 10 * WebKit2.xcodeproj/project.pbxproj: New header and impl files. 11 * Target.pri: Ditto. 12 * GNUmakefile.am: Ditto. 13 * win/WebKit2.vcproj: Ditto. 14 * win/WebKit2Common.vsprops: Add path to Notifications directory. 15 16 Implement permission functions, which go through permission request manager. 17 18 * WebProcess/WebCoreSupport/WebNotificationClient.cpp: 19 (WebKit::WebNotificationClient::requestPermission): 20 (WebKit::WebNotificationClient::cancelRequestsForPermission): 21 (WebKit::WebNotificationClient::checkPermission): 22 23 New NotificationPermissionRequestManager to make and cancel permission requests, and to retrieve current 24 policy. 25 26 * WebProcess/Notifications/NotificationPermissionRequestManager.cpp: Added. 27 (WebKit::generateRequestID): 28 (WebKit::NotificationPermissionRequestManager::create): 29 (WebKit::NotificationPermissionRequestManager::NotificationPermissionRequestManager): 30 (WebKit::NotificationPermissionRequestManager::startRequest): Keep track of the provided callback once 31 policy decision is made. 32 (WebKit::NotificationPermissionRequestManager::cancelRequest): 33 (WebKit::NotificationPermissionRequestManager::permissionLevel): Retrieve level through a synchronous 34 message to the proxy. 35 (WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision): Invoke the callback. 36 * WebProcess/Notifications/NotificationPermissionRequestManager.h: Added. 37 (WebKit::isRequestIDValid): Make sure any provided request IDs are valid. 38 39 Added new NotificationPermissionRequest class. 40 41 * UIProcess/Notifications/NotificationPermissionRequest.cpp: Added. 42 (WebKit::NotificationPermissionRequest::create): 43 (WebKit::NotificationPermissionRequest::NotificationPermissionRequest): 44 (WebKit::NotificationPermissionRequest::allow): Notify manager of decision. 45 (WebKit::NotificationPermissionRequest::deny): Ditto. 46 (WebKit::NotificationPermissionRequest::invalidate): Disassociate with manager. 47 (WebKit::NotificationPermissionRequest::type): 48 * UIProcess/Notifications/NotificationPermissionRequest.h: Added. 49 50 WKAPI support for NotificationPermissionRequest: 51 52 * Shared/API/c/WKBase.h: 53 * Shared/APIObject.h: 54 * UIProcess/API/C/WKAPICast.h: 55 * UIProcess/API/C/WKNotificationPermissionRequest.cpp: Added. 56 (WKNotificationPermissionRequestGetTypeID): 57 (WKNotificationPermissionRequestAllow): 58 (WKNotificationPermissionRequestDeny): 59 * UIProcess/API/C/WKNotificationPermissionRequest.h: Added. 60 61 Other additions to WK API: 62 63 * UIProcess/API/C/WKNotificationProvider.h: Added new callback for WKNotificationProviders, to return policy 64 for a given security origin. 65 * UIProcess/API/C/WKPage.h: Added new callback to WKPageUIClient to ask user to decide on policy. 66 67 New NotificationPermissionRequestManagerProxy to create requests. 68 69 * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp: Added. 70 (WebKit::NotificationPermissionRequestManagerProxy::NotificationPermissionRequestManagerProxy): 71 (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests): 72 (WebKit::NotificationPermissionRequestManagerProxy::createRequest): 73 (WebKit::NotificationPermissionRequestManagerProxy::didReceiveNotificationPermissionDecision): 74 * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.h: Added. 75 76 Added new message to notification manager: NotificationPermissionLevel, to retrieve policy. The current 77 JS API retrieves the permission synchronously, so the message needs to be sent synchronously also. 78 79 * UIProcess/Notifications/WebNotificationManagerProxy.messages.in: Moved from Source/WebKit2/UIProcess/WebNotificationManagerProxy.messages.in. 80 * UIProcess/Notifications/WebNotificationProvider.cpp: Moved from Source/WebKit2/UIProcess/WebNotificationProvider.cpp. 81 (WebKit::WebNotificationProvider::policyForNotificationPermissionAtOrigin): Added. 82 * UIProcess/Notifications/WebNotificationProvider.h: Moved from Source/WebKit2/UIProcess/WebNotificationProvider.h. 83 * UIProcess/WebProcessProxy.cpp: 84 (WebKit::WebProcessProxy::didReceiveSyncMessage): Boilerplate to forward messages to notification manager. 85 86 * UIProcess/Notifications/WebNotificationManagerProxy.cpp: Moved from Source/WebKit2/UIProcess/WebNotificationManagerProxy.cpp. 87 (WebKit::WebNotificationManagerProxy::create): 88 (WebKit::WebNotificationManagerProxy::WebNotificationManagerProxy): 89 (WebKit::WebNotificationManagerProxy::invalidate): 90 (WebKit::WebNotificationManagerProxy::initializeProvider): 91 (WebKit::WebNotificationManagerProxy::didReceiveMessage): 92 (WebKit::WebNotificationManagerProxy::didReceiveSyncMessage): 93 (WebKit::WebNotificationManagerProxy::show): 94 (WebKit::WebNotificationManagerProxy::cancel): 95 (WebKit::WebNotificationManagerProxy::didDestroyNotification): 96 (WebKit::WebNotificationManagerProxy::notificationPermissionLevel): Retrieve the policy from the provider. 97 (WebKit::WebNotificationManagerProxy::providerDidShowNotification): 98 (WebKit::WebNotificationManagerProxy::providerDidClickNotification): 99 (WebKit::WebNotificationManagerProxy::providerDidCloseNotifications): 100 * UIProcess/Notifications/WebNotificationManagerProxy.h: Moved from Source/WebKit2/UIProcess/WebNotificationManagerProxy.h. 101 (WebKit::WebNotificationManagerProxy::clearContext): 102 (WebKit::WebNotificationManagerProxy::type): 103 104 Added NotificationPermissionRequestManagerProxy to WebPageProxy, to allow a request for permission to 105 go through to the UI client. Added new message to WebPageProxy, RequestNotificationPermission. 106 107 * UIProcess/WebPageProxy.cpp: 108 (WebKit::WebPageProxy::WebPageProxy): 109 (WebKit::WebPageProxy::close): Invalidate pending requests. 110 (WebKit::WebPageProxy::processDidCrash): Ditto. 111 (WebKit::WebPageProxy::requestNotificationPermission): Forward request to UI client. 112 * UIProcess/WebPageProxy.h: 113 * UIProcess/WebPageProxy.messages.in: 114 115 * UIProcess/WebUIClient.cpp: 116 (WebKit::WebUIClient::decidePolicyForNotificationPermissionRequest): 117 * UIProcess/WebUIClient.h: 118 119 Added new message DidReceiveNotificationPermissionDecision. The WebPage forwards the message to the 120 permission request manager. 121 122 * WebProcess/WebPage/WebPage.messages.in: Added new message DidReceiveNotificationPermissionDecision 123 * WebProcess/WebPage/WebPage.cpp: 124 (WebKit::WebPage::notificationPermissionRequestManager): Create manager on request. 125 (WebKit::WebPage::didReceiveNotificationPermissionDecision): 126 * WebProcess/WebPage/WebPage.h: 127 128 Moving files to Notifications/ subdirectory. 129 130 * UIProcess/Notifications/WebNotification.cpp: Moved from Source/WebKit2/UIProcess/WebNotification.cpp. 131 * UIProcess/Notifications/WebNotification.h: Moved from Source/WebKit2/UIProcess/WebNotification.h. 132 1 133 2011-12-08 Nayan Kumar K <nayankk@motorola.com> 2 134 -
trunk/Source/WebKit2/DerivedSources.make
r101750 r102352 41 41 $(WebKit2)/UIProcess \ 42 42 $(WebKit2)/UIProcess/Downloads \ 43 $(WebKit2)/UIProcess/Notifications \ 43 44 $(WebKit2)/UIProcess/Plugins \ 44 45 # -
trunk/Source/WebKit2/GNUmakefile.am
r102346 r102352 58 58 $(WebKit2)/UIProcess/API/C/WKKeyValueStorageManager.h \ 59 59 $(WebKit2)/UIProcess/API/C/WKMediaCacheManager.h \ 60 $(WebKit2)/UIProcess/API/C/WKNativeEvent.h \ 61 $(WebKit2)/UIProcess/API/C/WKNavigationData.h \ 60 62 $(WebKit2)/UIProcess/API/C/WKNotification.h \ 61 63 $(WebKit2)/UIProcess/API/C/WKNotificationManager.h \ 64 $(WebKit2)/UIProcess/API/C/WKNotificationPermissionRequest.h \ 62 65 $(WebKit2)/UIProcess/API/C/WKNotificationProvider.h \ 63 $(WebKit2)/UIProcess/API/C/WKNativeEvent.h \64 $(WebKit2)/UIProcess/API/C/WKNavigationData.h \65 66 $(WebKit2)/UIProcess/API/C/WKOpenPanelParameters.h \ 66 67 $(WebKit2)/UIProcess/API/C/WKOpenPanelResultListener.h \ … … 486 487 Source/WebKit2/UIProcess/API/C/WKNotificationManager.cpp \ 487 488 Source/WebKit2/UIProcess/API/C/WKNotificationManager.h \ 489 Source/WebKit2/UIProcess/API/C/WKNotificationPermissionRequest.cpp \ 490 Source/WebKit2/UIProcess/API/C/WKNotificationPermissionRequest.h \ 488 491 Source/WebKit2/UIProcess/API/C/WKNotificationProvider.h \ 489 492 Source/WebKit2/UIProcess/API/C/WKOpenPanelParameters.cpp \ … … 582 585 Source/WebKit2/UIProcess/Launcher/ThreadLauncher.cpp \ 583 586 Source/WebKit2/UIProcess/Launcher/ThreadLauncher.h \ 587 Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequest.cpp \ 588 Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequest.h \ 589 Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp \ 590 Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.h \ 591 Source/WebKit2/UIProcess/Notifications/WebNotification.cpp \ 592 Source/WebKit2/UIProcess/Notifications/WebNotification.h \ 593 Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp \ 594 Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h \ 595 Source/WebKit2/UIProcess/Notifications/WebNotificationProvider.cpp \ 596 Source/WebKit2/UIProcess/Notifications/WebNotificationProvider.h \ 584 597 Source/WebKit2/UIProcess/PageClient.h \ 585 598 Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp \ … … 660 673 Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp \ 661 674 Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h \ 662 Source/WebKit2/UIProcess/WebNotification.cpp \663 Source/WebKit2/UIProcess/WebNotification.h \664 Source/WebKit2/UIProcess/WebNotificationManagerProxy.cpp \665 Source/WebKit2/UIProcess/WebNotificationManagerProxy.h \666 Source/WebKit2/UIProcess/WebNotificationProvider.cpp \667 Source/WebKit2/UIProcess/WebNotificationProvider.h \668 675 Source/WebKit2/UIProcess/WebLoaderClient.cpp \ 669 676 Source/WebKit2/UIProcess/WebLoaderClient.h \ … … 796 803 Source/WebKit2/WebProcess/MediaCache/WebMediaCacheManager.cpp \ 797 804 Source/WebKit2/WebProcess/MediaCache/WebMediaCacheManager.h \ 805 Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp \ 806 Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h \ 798 807 Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp \ 799 808 Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h \ … … 934 943 -I$(srcdir)/Source/WebKit2/UIProcess/Launcher \ 935 944 -I$(srcdir)/Source/WebKit2/UIProcess/Launcher/gtk \ 945 -I$(srcdir)/Source/WebKit2/UIProcess/Notifications \ 936 946 -I$(srcdir)/Source/WebKit2/UIProcess/Plugins \ 937 947 -I$(srcdir)/Source/WebKit2/UIProcess/Plugins/gtk \ … … 1060 1070 $(WebKit2)/UIProcess/Downloads \ 1061 1071 $(WebKit2)/UIProcess/Geolocation \ 1072 $(WebKit2)/UIProcess/Notifications \ 1062 1073 $(WebKit2)/UIProcess/Plugins \ 1063 1074 $(WebKit2)/UIProcess/ResourceCache \ … … 1454 1465 $(shell ls $(WebKit2)/UIProcess/*.in) \ 1455 1466 $(shell ls $(WebKit2)/UIProcess/Downloads/*.in) \ 1467 $(shell ls $(WebKit2)/UIProcess/Notifications/*.in) \ 1456 1468 $(shell ls $(WebKit2)/UIProcess/Plugins/*.in) \ 1457 1469 $(shell ls $(WebKit2)/WebProcess/*.in) \ … … 1464 1476 $(shell ls $(WebKit2)/WebProcess/KeyValueStorage/*.in) \ 1465 1477 $(shell ls $(WebKit2)/WebProcess/MediaCache/*.in) \ 1478 $(shell ls $(WebKit2)/WebProcess/Notifications/*.in) \ 1466 1479 $(shell ls $(WebKit2)/WebProcess/Plugins/*.in) \ 1467 1480 $(shell ls $(WebKit2)/WebProcess/ResourceCache/*.in) \ -
trunk/Source/WebKit2/Shared/API/c/WKBase.h
r101307 r102352 98 98 typedef const struct OpaqueWKNotification* WKNotificationRef; 99 99 typedef const struct OpaqueWKNotificationManager* WKNotificationManagerRef; 100 typedef const struct OpaqueWKNotificationPermissionRequest* WKNotificationPermissionRequestRef; 100 101 typedef const struct OpaqueWKNotificationProvider* WKNotificationProviderRef; 101 102 typedef const struct OpaqueWKOpenPanelParameters* WKOpenPanelParametersRef; -
trunk/Source/WebKit2/Shared/APIObject.h
r102346 r102352 92 92 TypeNotification, 93 93 TypeNotificationManager, 94 TypeNotificationPermissionRequest, 94 95 TypeOpenPanelParameters, 95 96 TypeOpenPanelResultListener, -
trunk/Source/WebKit2/Target.pri
r102346 r102352 158 158 UIProcess/API/C/WKNotification.h \ 159 159 UIProcess/API/C/WKNotificationManager.h \ 160 UIProcess/API/C/WKNotificationPermissionRequest.h \ 160 161 UIProcess/API/C/WKNotificationProvider.h \ 161 162 UIProcess/API/C/WKPage.h \ … … 195 196 UIProcess/Launcher/ProcessLauncher.h \ 196 197 UIProcess/Launcher/ThreadLauncher.h \ 198 UIProcess/Notifications/NotificationPermissionRequest.h \ 199 UIProcess/Notifications/NotificationPermissionRequestManagerProxy.h \ 200 UIProcess/Notifications/WebNotification.h \ 201 UIProcess/Notifications/WebNotificationManagerProxy.h \ 202 UIProcess/Notifications/WebNotificationProvider.h \ 197 203 UIProcess/PageClient.h \ 198 204 UIProcess/Plugins/PluginInfoStore.h \ … … 233 239 UIProcess/WebMediaCacheManagerProxy.h \ 234 240 UIProcess/WebNavigationData.h \ 235 UIProcess/WebNotification.h \236 UIProcess/WebNotificationManagerProxy.h \237 UIProcess/WebNotificationProvider.h \238 241 UIProcess/WebOpenPanelResultListenerProxy.h \ 239 242 UIProcess/WebPageContextMenuClient.h \ … … 305 308 WebProcess/KeyValueStorage/WebKeyValueStorageManager.h \ 306 309 WebProcess/MediaCache/WebMediaCacheManager.h \ 310 WebProcess/Notifications/NotificationPermissionRequestManager.h \ 307 311 WebProcess/Notifications/WebNotificationManager.h \ 308 312 WebProcess/ResourceCache/WebResourceCacheManager.h \ … … 478 482 UIProcess/API/C/WKNotification.cpp \ 479 483 UIProcess/API/C/WKNotificationManager.cpp \ 484 UIProcess/API/C/WKNotificationPermissionRequest.cpp \ 480 485 UIProcess/API/C/WKOpenPanelParameters.cpp \ 481 486 UIProcess/API/C/WKOpenPanelResultListener.cpp \ … … 511 516 UIProcess/Launcher/qt/ProcessLauncherQt.cpp \ 512 517 UIProcess/Launcher/qt/ThreadLauncherQt.cpp \ 518 UIProcess/Notifications/NotificationPermissionRequest.cpp \ 519 UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp \ 520 UIProcess/Notifications/WebNotification.cpp \ 521 UIProcess/Notifications/WebNotificationManagerProxy.cpp \ 522 UIProcess/Notifications/WebNotificationProvider.cpp \ 513 523 UIProcess/Plugins/PluginInfoStore.cpp \ 514 524 UIProcess/Plugins/PluginProcessProxy.cpp \ … … 549 559 UIProcess/WebMediaCacheManagerProxy.cpp \ 550 560 UIProcess/WebNavigationData.cpp \ 551 UIProcess/WebNotification.cpp \552 UIProcess/WebNotificationManagerProxy.cpp \553 UIProcess/WebNotificationProvider.cpp \554 561 UIProcess/WebOpenPanelResultListenerProxy.cpp \ 555 562 UIProcess/WebPageContextMenuClient.cpp \ … … 637 644 WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp \ 638 645 WebProcess/MediaCache/WebMediaCacheManager.cpp \ 646 WebProcess/Notifications/NotificationPermissionRequestManager.cpp \ 639 647 WebProcess/Notifications/WebNotificationManager.cpp \ 640 648 WebProcess/ResourceCache/WebResourceCacheManager.cpp \ -
trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h
r101307 r102352 53 53 class DownloadProxy; 54 54 class GeolocationPermissionRequestProxy; 55 class NotificationPermissionRequest; 55 56 class WebApplicationCacheManagerProxy; 56 57 class WebBackForwardList; … … 109 110 WK_ADD_API_MAPPING(WKNavigationDataRef, WebNavigationData) 110 111 WK_ADD_API_MAPPING(WKNotificationManagerRef, WebNotificationManagerProxy) 112 WK_ADD_API_MAPPING(WKNotificationPermissionRequestRef, NotificationPermissionRequest) 111 113 WK_ADD_API_MAPPING(WKNotificationProviderRef, WebNotificationProvider) 112 114 WK_ADD_API_MAPPING(WKNotificationRef, WebNotification) -
trunk/Source/WebKit2/UIProcess/API/C/WKNotificationPermissionRequest.cpp
r102351 r102352 24 24 */ 25 25 26 #i fndef WebNotificationProvider_h27 # define WebNotificationProvider_h26 #include "config.h" 27 #include "WKNotificationPermissionRequest.h" 28 28 29 #include "APIClient.h" 30 #include "WKNotificationProvider.h" 31 #include <wtf/Forward.h> 29 #include "NotificationPermissionRequest.h" 30 #include "WKAPICast.h" 32 31 33 namespace WebKit { 32 using namespace WebKit; 34 33 35 class WebNotification; 36 class WebNotificationManagerProxy; 37 38 class WebNotificationProvider : public APIClient<WKNotificationProvider, kWKNotificationProviderCurrentVersion> { 39 public: 40 void show(WebNotification*); 41 void cancel(WebNotification*); 42 void didDestroyNotification(WebNotification*); 34 WKTypeID WKNotificationPermissionRequestGetTypeID() 35 { 36 return toAPI(NotificationPermissionRequest::APIType); 37 } 43 38 44 void addNotificationManager(WebNotificationManagerProxy*); 45 void removeNotificationManager(WebNotificationManagerProxy*); 46 }; 39 void WKNotificationPermissionRequestAllow(WKNotificationPermissionRequestRef notificationPermissionRequest) 40 { 41 return toImpl(notificationPermissionRequest)->allow(); 42 } 47 43 48 } // namespace WebKit 49 50 #endif // WebNotificationProvider_h 44 void WKNotificationPermissionRequestDeny(WKNotificationPermissionRequestRef notificationPermissionRequest) 45 { 46 return toImpl(notificationPermissionRequest)->deny(); 47 } -
trunk/Source/WebKit2/UIProcess/API/C/WKNotificationPermissionRequest.h
r102351 r102352 24 24 */ 25 25 26 #ifndef W ebNotificationProvider_h27 #define W ebNotificationProvider_h26 #ifndef WKNotificationPermissionRequest_h 27 #define WKNotificationPermissionRequest_h 28 28 29 #include "APIClient.h" 30 #include "WKNotificationProvider.h" 31 #include <wtf/Forward.h> 29 #include <WebKit2/WKBase.h> 32 30 33 namespace WebKit { 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 34 35 class WebNotification; 36 class WebNotificationManagerProxy; 37 38 class WebNotificationProvider : public APIClient<WKNotificationProvider, kWKNotificationProviderCurrentVersion> { 39 public: 40 void show(WebNotification*); 41 void cancel(WebNotification*); 42 void didDestroyNotification(WebNotification*); 35 WK_EXPORT WKTypeID WKNotificationPermissionRequestGetTypeID(); 43 36 44 void addNotificationManager(WebNotificationManagerProxy*); 45 void removeNotificationManager(WebNotificationManagerProxy*); 46 }; 37 WK_EXPORT void WKNotificationPermissionRequestAllow(WKNotificationPermissionRequestRef notificationPermissionRequest); 38 WK_EXPORT void WKNotificationPermissionRequestDeny(WKNotificationPermissionRequestRef notificationPermissionRequest); 47 39 48 } // namespace WebKit 40 #ifdef __cplusplus 41 } 42 #endif 49 43 50 #endif // W ebNotificationProvider_h44 #endif // WKNotificationPermissionRequest_h -
trunk/Source/WebKit2/UIProcess/API/C/WKNotificationProvider.h
r101750 r102352 36 36 typedef void (*WKNotificationProviderCancelCallback)(WKNotificationRef notification, const void* clientInfo); 37 37 typedef void (*WKNotificationProviderDidDestroyNotificationCallback)(WKNotificationRef notification, const void* clientInfo); 38 typedef int (*WKNotificationProviderPolicyForNotificationPermissionAtOriginCallback)(WKSecurityOriginRef origin, const void *clientInfo); 38 39 typedef void (*WKNotificationProviderAddNotificationManagerCallback)(WKNotificationManagerRef manager, const void* clientInfo); 39 40 typedef void (*WKNotificationProviderRemoveNotificationManagerCallback)(WKNotificationManagerRef manager, const void* clientInfo); 40 41 41 42 struct WKNotificationProvider { 42 int version; 43 const void* clientInfo; 44 WKNotificationProviderShowCallback show; 45 WKNotificationProviderCancelCallback cancel; 46 WKNotificationProviderDidDestroyNotificationCallback didDestroyNotification; 47 WKNotificationProviderAddNotificationManagerCallback addNotificationManager; 48 WKNotificationProviderRemoveNotificationManagerCallback removeNotificationManager; 43 int version; 44 const void* clientInfo; 45 WKNotificationProviderShowCallback show; 46 WKNotificationProviderCancelCallback cancel; 47 WKNotificationProviderDidDestroyNotificationCallback didDestroyNotification; 48 WKNotificationProviderPolicyForNotificationPermissionAtOriginCallback policyForNotificationPermissionAtOrigin; 49 WKNotificationProviderAddNotificationManagerCallback addNotificationManager; 50 WKNotificationProviderRemoveNotificationManagerCallback removeNotificationManager; 49 51 }; 50 52 typedef struct WKNotificationProvider WKNotificationProvider; -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.h
r99102 r102352 198 198 typedef void (*WKPageSaveDataToFileInDownloadsFolderCallback)(WKPageRef page, WKStringRef suggestedFilename, WKStringRef mimeType, WKURLRef originatingURL, WKDataRef data, const void* clientInfo); 199 199 typedef bool (*WKPageShouldInterruptJavaScriptCallback)(WKPageRef page, const void *clientInfo); 200 typedef void (*WKPageDecidePolicyForNotificationPermissionRequestCallback)(WKPageRef page, WKSecurityOriginRef origin, WKNotificationPermissionRequestRef permissionRequest, const void *clientInfo); 200 201 201 202 // Deprecated … … 251 252 WKPageCreateNewPageCallback createNewPage; 252 253 WKPageMouseDidMoveOverElementCallback mouseDidMoveOverElement; 254 WKPageDecidePolicyForNotificationPermissionRequestCallback decidePolicyForNotificationPermissionRequest; 253 255 }; 254 256 typedef struct WKPageUIClient WKPageUIClient; -
trunk/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequest.cpp
r102351 r102352 25 25 26 26 #include "config.h" 27 #include " WebNotification.h"27 #include "NotificationPermissionRequest.h" 28 28 29 #include "ArgumentCoders.h" 30 #include "ArgumentDecoder.h" 31 #include "ArgumentEncoder.h" 32 #include "Arguments.h" 29 #include "NotificationPermissionRequestManagerProxy.h" 33 30 34 31 namespace WebKit { 35 36 WebNotification::WebNotification()32 33 PassRefPtr<NotificationPermissionRequest> NotificationPermissionRequest::create(WebKit::NotificationPermissionRequestManagerProxy *manager, uint64_t notificationID) 37 34 { 35 return adoptRef(new NotificationPermissionRequest(manager, notificationID)); 38 36 } 39 37 40 WebNotification::WebNotification(const String& title, const String& body, uint64_t notificationID) 41 : m_title(title) 42 , m_body(body) 38 NotificationPermissionRequest::NotificationPermissionRequest(NotificationPermissionRequestManagerProxy* manager, uint64_t notificationID) 39 : m_manager(manager) 43 40 , m_notificationID(notificationID) 44 41 { 45 42 } 46 43 47 WebNotification::~WebNotification()44 void NotificationPermissionRequest::allow() 48 45 { 46 if (!m_manager) 47 return; 48 49 m_manager->didReceiveNotificationPermissionDecision(m_notificationID, true); 50 m_manager = 0; 49 51 } 50 52 51 void WebNotification::encode(CoreIPC::ArgumentEncoder* encoder) const53 void NotificationPermissionRequest::deny() 52 54 { 53 encoder->encode(CoreIPC::In(m_title, m_body, m_notificationID)); 55 if (!m_manager) 56 return; 57 58 m_manager->didReceiveNotificationPermissionDecision(m_notificationID, false); 59 m_manager = 0; 54 60 } 55 61 56 bool WebNotification::decode(CoreIPC::ArgumentDecoder* decoder, WebNotification& notification)62 void NotificationPermissionRequest::invalidate() 57 63 { 58 return decoder->decode(CoreIPC::Out(notification.m_title, notification.m_body, notification.m_notificationID));64 m_manager = 0; 59 65 } 60 66 -
trunk/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequest.h
r102351 r102352 24 24 */ 25 25 26 #ifndef WebNotificationProvider_h27 #define WebNotificationProvider_h26 #ifndef NotificationPermissionRequest_h 27 #define NotificationPermissionRequest_h 28 28 29 #include "APIClient.h" 30 #include "WKNotificationProvider.h" 31 #include <wtf/Forward.h> 29 #include "APIObject.h" 30 #include <wtf/PassRefPtr.h> 32 31 33 32 namespace WebKit { 34 33 35 class WebNotification; 36 class WebNotificationManagerProxy; 34 class NotificationPermissionRequestManagerProxy; 35 36 class NotificationPermissionRequest : public APIObject { 37 public: 38 static const Type APIType = TypeNotificationPermissionRequest; 37 39 38 class WebNotificationProvider : public APIClient<WKNotificationProvider, kWKNotificationProviderCurrentVersion> { 39 public: 40 void show(WebNotification*); 41 void cancel(WebNotification*); 42 void didDestroyNotification(WebNotification*); 43 44 void addNotificationManager(WebNotificationManagerProxy*); 45 void removeNotificationManager(WebNotificationManagerProxy*); 40 static PassRefPtr<NotificationPermissionRequest> create(NotificationPermissionRequestManagerProxy*, uint64_t notificationID); 41 42 void allow(); 43 void deny(); 44 45 void invalidate(); 46 47 private: 48 NotificationPermissionRequest(NotificationPermissionRequestManagerProxy*, uint64_t notificationID); 49 50 virtual Type type() const { return APIType; } 51 52 NotificationPermissionRequestManagerProxy* m_manager; 53 uint64_t m_notificationID; 46 54 }; 47 55 48 56 } // namespace WebKit 49 57 50 #endif // WebNotificationProvider_h58 #endif // NotificationPermissionRequestProxy_h -
trunk/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp
r102351 r102352 25 25 26 26 #include "config.h" 27 #include " WebNotificationProvider.h"27 #include "NotificationPermissionRequestManagerProxy.h" 28 28 29 #include "WKAPICast.h" 30 #include "WebNotification.h" 31 #include "WebNotificationManagerProxy.h" 29 #include "NotificationPermissionRequest.h" 30 #include "WebPageMessages.h" 31 #include "WebPageProxy.h" 32 #include "WebProcessProxy.h" 32 33 33 34 namespace WebKit { 34 35 35 void WebNotificationProvider::show(WebNotification* notification) 36 NotificationPermissionRequestManagerProxy::NotificationPermissionRequestManagerProxy(WebPageProxy* page) 37 : m_page(page) 36 38 { 37 if (!m_client.show) 39 } 40 41 void NotificationPermissionRequestManagerProxy::invalidateRequests() 42 { 43 PendingRequestMap::const_iterator it = m_pendingRequests.begin(); 44 PendingRequestMap::const_iterator end = m_pendingRequests.end(); 45 for (; it != end; ++it) 46 it->second->invalidate(); 47 48 m_pendingRequests.clear(); 49 } 50 51 PassRefPtr<NotificationPermissionRequest> NotificationPermissionRequestManagerProxy::createRequest(uint64_t notificationID) 52 { 53 RefPtr<NotificationPermissionRequest> request = NotificationPermissionRequest::create(this, notificationID); 54 m_pendingRequests.add(notificationID, request.get()); 55 return request.release(); 56 } 57 58 void NotificationPermissionRequestManagerProxy::didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allow) 59 { 60 if (!m_page->isValid()) 38 61 return; 39 62 40 m_client.show(toAPI(notification), m_client.clientInfo); 41 } 42 43 void WebNotificationProvider::cancel(WebNotification* notification) 44 { 45 if (!m_client.cancel) 63 RefPtr<NotificationPermissionRequest> request = m_pendingRequests.take(notificationID); 64 if (!request) 46 65 return; 47 66 48 m_client.cancel(toAPI(notification), m_client.clientInfo); 49 } 50 51 void WebNotificationProvider::didDestroyNotification(WebNotification* notification) 52 { 53 if (!m_client.didDestroyNotification) 54 return; 55 56 m_client.didDestroyNotification(toAPI(notification), m_client.clientInfo); 57 } 58 59 void WebNotificationProvider::addNotificationManager(WebNotificationManagerProxy* manager) 60 { 61 if (!m_client.addNotificationManager) 62 return; 63 64 m_client.addNotificationManager(toAPI(manager), m_client.clientInfo); 65 } 66 67 void WebNotificationProvider::removeNotificationManager(WebNotificationManagerProxy* manager) 68 { 69 if (!m_client.removeNotificationManager) 70 return; 71 72 m_client.removeNotificationManager(toAPI(manager), m_client.clientInfo); 67 m_page->process()->send(Messages::WebPage::DidReceiveNotificationPermissionDecision(notificationID, allow), m_page->pageID()); 73 68 } 74 69 -
trunk/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.h
r102351 r102352 24 24 */ 25 25 26 #ifndef WebNotificationProvider_h27 #define WebNotificationProvider_h26 #ifndef NotificationPermissionRequestManagerProxy_h 27 #define NotificationPermissionRequestManagerProxy_h 28 28 29 #include " APIClient.h"30 #include "WKNotificationProvider.h"31 #include <wtf/ Forward.h>29 #include "NotificationPermissionRequest.h" 30 #include <wtf/HashMap.h> 31 #include <wtf/RefPtr.h> 32 32 33 33 namespace WebKit { 34 34 35 class WebNotification; 36 class WebNotificationManagerProxy; 35 class GeolocationPermissionRequestProxy; 36 class WebPageProxy; 37 38 class NotificationPermissionRequestManagerProxy { 39 public: 40 explicit NotificationPermissionRequestManagerProxy(WebPageProxy*); 37 41 38 class WebNotificationProvider : public APIClient<WKNotificationProvider, kWKNotificationProviderCurrentVersion> { 39 public: 40 void show(WebNotification*); 41 void cancel(WebNotification*); 42 void didDestroyNotification(WebNotification*); 43 44 void addNotificationManager(WebNotificationManagerProxy*); 45 void removeNotificationManager(WebNotificationManagerProxy*); 42 void invalidateRequests(); 43 44 // Create a request to be presented to the user. 45 PassRefPtr<NotificationPermissionRequest> createRequest(uint64_t notificationID); 46 47 // Called by NotificationPermissionRequest when a decision is made by the user. 48 void didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allow); 49 50 private: 51 typedef HashMap<uint64_t, RefPtr<NotificationPermissionRequest> > PendingRequestMap; 52 PendingRequestMap m_pendingRequests; 53 WebPageProxy* m_page; 46 54 }; 47 55 48 56 } // namespace WebKit 49 57 50 #endif // WebNotificationProvider_h 58 59 #endif // NotificationPermissionRequestManagerProxy_h -
trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.cpp
r102351 r102352 34 34 namespace WebKit { 35 35 36 WebNotification::WebNotification()37 {38 }39 40 36 WebNotification::WebNotification(const String& title, const String& body, uint64_t notificationID) 41 37 : m_title(title) 42 38 , m_body(body) 43 39 , m_notificationID(notificationID) 44 {45 }46 47 WebNotification::~WebNotification()48 40 { 49 41 } -
trunk/Source/WebKit2/UIProcess/Notifications/WebNotification.h
r102351 r102352 44 44 static const Type APIType = TypeNotification; 45 45 46 WebNotification();47 46 static PassRefPtr<WebNotification> create(const String& title, const String& body, uint64_t notificationID) 48 47 { 49 48 return adoptRef(new WebNotification(title, body, notificationID)); 50 49 } 51 virtual ~WebNotification();52 50 53 51 const String& title() const { return m_title; } -
trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
r102351 r102352 31 31 #include "WebNotification.h" 32 32 #include "WebNotificationManagerMessages.h" 33 #include "WebSecurityOrigin.h" 33 34 #include <WebCore/NotificationContents.h> 34 35 … … 48 49 } 49 50 50 WebNotificationManagerProxy::~WebNotificationManagerProxy()51 {52 }53 54 51 void WebNotificationManagerProxy::invalidate() 55 52 { … … 65 62 { 66 63 didReceiveWebNotificationManagerProxyMessage(connection, messageID, arguments); 64 } 65 66 void WebNotificationManagerProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, OwnPtr<CoreIPC::ArgumentEncoder>& reply) 67 { 68 didReceiveSyncWebNotificationManagerProxyMessage(connection, messageID, arguments, reply); 67 69 } 68 70 … … 104 106 } 105 107 108 void WebNotificationManagerProxy::notificationPermissionLevel(const String& originIdentifier, uint64_t& permissionLevel) 109 { 110 RefPtr<WebSecurityOrigin> origin = WebSecurityOrigin::create(originIdentifier); 111 permissionLevel = m_provider.policyForNotificationPermissionAtOrigin(origin.get()); 112 } 113 106 114 void WebNotificationManagerProxy::providerDidShowNotification(uint64_t notificationID) 107 115 { -
trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h
r102351 r102352 31 31 #include "WebNotificationProvider.h" 32 32 #include <wtf/HashMap.h> 33 #include <wtf/OwnPtr.h> 33 34 #include <wtf/PassRefPtr.h> 34 35 35 36 namespace CoreIPC { 36 37 class ArgumentDecoder; 38 class ArgumentEncoder; 37 39 class Connection; 38 40 } … … 48 50 49 51 static PassRefPtr<WebNotificationManagerProxy> create(WebContext*); 50 virtual ~WebNotificationManagerProxy();51 52 52 53 void invalidate(); … … 60 61 61 62 void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*); 63 void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&); 62 64 63 65 private: … … 67 69 68 70 void didReceiveWebNotificationManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*); 71 void didReceiveSyncWebNotificationManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&); 69 72 70 73 // Message handlers … … 72 75 void cancel(uint64_t notificationID); 73 76 void didDestroyNotification(uint64_t notificationID); 74 77 void notificationPermissionLevel(const WTF::String& originIdentifier, uint64_t& permissionLevel); 78 75 79 typedef HashMap<uint64_t, RefPtr<WebNotification> > WebNotificationMap; 76 80 -
trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.messages.in
r102351 r102352 25 25 Cancel(uint64_t notificationID); 26 26 DidDestroyNotification(uint64_t notificationID); 27 28 NotificationPermissionLevel(WTF::String originIdentifier) -> (uint64_t policy) 27 29 } -
trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationProvider.cpp
r102351 r102352 30 30 #include "WebNotification.h" 31 31 #include "WebNotificationManagerProxy.h" 32 #include "WebSecurityOrigin.h" 32 33 33 34 namespace WebKit { … … 57 58 } 58 59 60 int WebNotificationProvider::policyForNotificationPermissionAtOrigin(WebSecurityOrigin* origin) 61 { 62 if (!m_client.policyForNotificationPermissionAtOrigin) 63 return INT_MIN; 64 65 return m_client.policyForNotificationPermissionAtOrigin(toAPI(origin), m_client.clientInfo); 66 } 67 59 68 void WebNotificationProvider::addNotificationManager(WebNotificationManagerProxy* manager) 60 69 { -
trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationProvider.h
r102351 r102352 35 35 class WebNotification; 36 36 class WebNotificationManagerProxy; 37 class WebSecurityOrigin; 37 38 38 39 class WebNotificationProvider : public APIClient<WKNotificationProvider, kWKNotificationProviderCurrentVersion> { … … 41 42 void cancel(WebNotification*); 42 43 void didDestroyNotification(WebNotification*); 44 int policyForNotificationPermissionAtOrigin(WebSecurityOrigin*); 43 45 44 46 void addNotificationManager(WebNotificationManagerProxy*); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r102136 r102352 38 38 #include "NativeWebMouseEvent.h" 39 39 #include "NativeWebWheelEvent.h" 40 #include "NotificationPermissionRequest.h" 41 #include "NotificationPermissionRequestManager.h" 40 42 #include "PageClient.h" 41 43 #include "PrintInfo.h" … … 147 149 , m_userAgent(standardUserAgent()) 148 150 , m_geolocationPermissionRequestManager(this) 151 , m_notificationPermissionRequestManager(this) 149 152 , m_estimatedProgress(0) 150 153 , m_isInWindow(m_pageClient->isViewInWindow()) … … 365 368 366 369 m_geolocationPermissionRequestManager.invalidateRequests(); 370 m_notificationPermissionRequestManager.invalidateRequests(); 367 371 368 372 m_toolTip = String(); … … 3134 3138 3135 3139 m_geolocationPermissionRequestManager.invalidateRequests(); 3140 m_notificationPermissionRequestManager.invalidateRequests(); 3136 3141 3137 3142 m_toolTip = String(); … … 3296 3301 } 3297 3302 3303 void WebPageProxy::requestNotificationPermission(uint64_t requestID, const String& originIdentifier) 3304 { 3305 if (!isRequestIDValid(requestID)) 3306 return; 3307 3308 RefPtr<WebSecurityOrigin> origin = WebSecurityOrigin::create(originIdentifier); 3309 RefPtr<NotificationPermissionRequest> request = m_notificationPermissionRequestManager.createRequest(requestID); 3310 3311 if (!m_uiClient.decidePolicyForNotificationPermissionRequest(this, origin.get(), request.get())) 3312 request->deny(); 3313 } 3314 3298 3315 float WebPageProxy::headerHeight(WebFrameProxy* frame) 3299 3316 { -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r102136 r102352 37 37 #include "NativeWebTouchEvent.h" 38 38 #endif 39 #include "NotificationPermissionRequestManagerProxy.h" 39 40 #include "PlatformProcessIdentifier.h" 40 41 #include "SandboxExtension.h" … … 686 687 void reattachToWebProcessWithItem(WebBackForwardListItem*); 687 688 689 void requestNotificationPermission(uint64_t notificationID, const String& originIdentifier); 690 688 691 #if USE(TILED_BACKING_STORE) 689 692 void pageDidRequestScroll(const WebCore::IntPoint&); … … 870 873 RefPtr<WebOpenPanelResultListenerProxy> m_openPanelResultListener; 871 874 GeolocationPermissionRequestManagerProxy m_geolocationPermissionRequestManager; 875 NotificationPermissionRequestManagerProxy m_notificationPermissionRequestManager; 872 876 873 877 double m_estimatedProgress; -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r102136 r102352 195 195 # Geolocation messages 196 196 RequestGeolocationPermissionForFrame(uint64_t geolocationID, uint64_t frameID, WTF::String originIdentifier) 197 198 # Notification messages 199 RequestNotificationPermission(uint64_t requestID, WTF::String originIdentifier) 197 200 198 201 # Spelling and grammar messages -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp
r102014 r102352 35 35 #include "WebContext.h" 36 36 #include "WebNavigationDataStore.h" 37 #include "WebNotificationManagerProxy.h" 37 38 #include "WebPageProxy.h" 38 39 #include "WebProcessMessages.h" … … 333 334 } 334 335 336 if (messageID.is<CoreIPC::MessageClassWebNotificationManagerProxy>()) { 337 m_context->notificationManagerProxy()->didReceiveSyncMessage(connection, messageID, arguments, reply); 338 return; 339 } 340 335 341 uint64_t pageID = arguments->destinationID(); 336 342 if (!pageID) -
trunk/Source/WebKit2/UIProcess/WebUIClient.cpp
r97337 r102352 30 30 #include "NativeWebKeyboardEvent.h" 31 31 #include "NativeWebWheelEvent.h" 32 #include "NotificationPermissionRequest.h" 32 33 #include "WKAPICast.h" 33 34 #include "WebNumber.h" … … 332 333 } 333 334 335 bool WebUIClient::decidePolicyForNotificationPermissionRequest(WebPageProxy* page, WebSecurityOrigin* origin, NotificationPermissionRequest* permissionRequest) 336 { 337 if (!m_client.decidePolicyForNotificationPermissionRequest) 338 return false; 339 340 m_client.decidePolicyForNotificationPermissionRequest(toAPI(page), toAPI(origin), toAPI(permissionRequest), m_client.clientInfo); 341 return true; 342 } 343 334 344 float WebUIClient::headerHeight(WebPageProxy* page, WebFrameProxy* frame) 335 345 { -
trunk/Source/WebKit2/UIProcess/WebUIClient.h
r97337 r102352 48 48 class NativeWebKeyboardEvent; 49 49 class NativeWebWheelEvent; 50 class NotificationPermissionRequest; 50 51 class WebData; 51 52 class WebFrameProxy; … … 100 101 bool runOpenPanel(WebPageProxy*, WebFrameProxy*, WebOpenPanelParameters*, WebOpenPanelResultListenerProxy*); 101 102 bool decidePolicyForGeolocationPermissionRequest(WebPageProxy*, WebFrameProxy*, WebSecurityOrigin*, GeolocationPermissionRequestProxy*); 103 bool decidePolicyForNotificationPermissionRequest(WebPageProxy*, WebSecurityOrigin*, NotificationPermissionRequest*); 102 104 103 105 // Printing. -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r102346 r102352 247 247 29CD55AA128E294F00133C85 /* WKAccessibilityWebPageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 29CD55A8128E294F00133C85 /* WKAccessibilityWebPageObject.h */; }; 248 248 29CD55AB128E294F00133C85 /* WKAccessibilityWebPageObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29CD55A9128E294F00133C85 /* WKAccessibilityWebPageObject.mm */; }; 249 3109996F146C741D0029DEB9 /* WebNotificationManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 3109996A146C73920029DEB9 /* WebNotificationManagerProxy.h */; };250 31099970146C74200029DEB9 /* WebNotificationManagerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3109996B146C73B10029DEB9 /* WebNotificationManagerProxy.cpp */; };251 249 31099973146C75A20029DEB9 /* WebNotificationClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31099971146C759B0029DEB9 /* WebNotificationClient.cpp */; }; 252 3109997A146C8B140029DEB9 /* WebNotificationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31099978146C8B140029DEB9 /* WebNotificationManager.cpp */; };253 3109997B146C8B140029DEB9 /* WebNotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 31099979146C8B140029DEB9 /* WebNotificationManager.h */; };254 250 310999C7146C9E3D0029DEB9 /* WebNotificationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 31099968146C71F50029DEB9 /* WebNotificationClient.h */; }; 255 312C0C47146DDBBD0016C911 /* WebNotificationProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 312C0C46146DDBBC0016C911 /* WebNotificationProvider.cpp */; };256 251 312C0C4A146DDC8A0016C911 /* WKNotificationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 312C0C49146DDC8A0016C911 /* WKNotificationProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; 252 3131261E148FF82C00BA2A39 /* NotificationPermissionRequestManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31312619148FF82B00BA2A39 /* NotificationPermissionRequestManager.cpp */; }; 253 3131261F148FF82C00BA2A39 /* NotificationPermissionRequestManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3131261A148FF82B00BA2A39 /* NotificationPermissionRequestManager.h */; }; 254 31312620148FF82C00BA2A39 /* WebNotificationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3131261B148FF82B00BA2A39 /* WebNotificationManager.cpp */; }; 255 31312621148FF82C00BA2A39 /* WebNotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3131261C148FF82B00BA2A39 /* WebNotificationManager.h */; }; 257 256 318BE1671473433700A8FBB2 /* WebNotificationManagerProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 318BE1651473433700A8FBB2 /* WebNotificationManagerProxyMessageReceiver.cpp */; }; 258 257 318BE1681473433700A8FBB2 /* WebNotificationManagerProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 318BE1661473433700A8FBB2 /* WebNotificationManagerProxyMessages.h */; }; … … 261 260 318BE17714743E6000A8FBB2 /* WKNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 318BE17614743E6000A8FBB2 /* WKNotification.cpp */; }; 262 261 318BE17914743E6F00A8FBB2 /* WKNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 318BE17814743E6A00A8FBB2 /* WKNotification.h */; settings = {ATTRIBUTES = (Private, ); }; }; 262 31A2EC48148997C200810D71 /* WebNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A2EC41148997BE00810D71 /* WebNotification.cpp */; }; 263 31A2EC49148997C200810D71 /* WebNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A2EC42148997BE00810D71 /* WebNotification.h */; }; 264 31A2EC4A148997C200810D71 /* WebNotificationManagerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A2EC43148997BE00810D71 /* WebNotificationManagerProxy.cpp */; }; 265 31A2EC4B148997C200810D71 /* WebNotificationManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A2EC44148997BF00810D71 /* WebNotificationManagerProxy.h */; }; 266 31A2EC4D148997C200810D71 /* WebNotificationProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A2EC46148997C000810D71 /* WebNotificationProvider.cpp */; }; 267 31A2EC4E148997C200810D71 /* WebNotificationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A2EC47148997C100810D71 /* WebNotificationProvider.h */; }; 268 31A2EC501489980500810D71 /* NotificationPermissionRequestManagerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A2EC4F1489980500810D71 /* NotificationPermissionRequestManagerProxy.cpp */; }; 269 31A2EC521489981900810D71 /* NotificationPermissionRequestManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A2EC511489981500810D71 /* NotificationPermissionRequestManagerProxy.h */; }; 270 31A2EC551489982E00810D71 /* NotificationPermissionRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A2EC541489982E00810D71 /* NotificationPermissionRequest.cpp */; }; 271 31A2EC5614899C0900810D71 /* NotificationPermissionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A2EC531489982500810D71 /* NotificationPermissionRequest.h */; }; 272 31A2EC74148D59CA00810D71 /* WKNotificationPermissionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A2EC72148D59BB00810D71 /* WKNotificationPermissionRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; 273 31A2EC77148D662E00810D71 /* WKNotificationPermissionRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A2EC75148D65BB00810D71 /* WKNotificationPermissionRequest.cpp */; }; 263 274 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31BA9248148830810062EDB5 /* WebNotificationManagerMessageReceiver.cpp */; }; 264 275 31BA924E148831260062EDB5 /* WebNotificationManagerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 31BA9249148830810062EDB5 /* WebNotificationManagerMessages.h */; }; 265 31C11AB3148452E90049A4CC /* WebNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31C11AB1148452E90049A4CC /* WebNotification.cpp */; };266 31C11AB4148452E90049A4CC /* WebNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C11AB2148452E90049A4CC /* WebNotification.h */; };267 276 31EA25D2134F78C0005B1452 /* NativeWebMouseEventMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 31EA25D0134F78B2005B1452 /* NativeWebMouseEventMac.mm */; }; 268 277 330934471315B9220097A7BC /* WebCookieManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 330934431315B9220097A7BC /* WebCookieManagerMessageReceiver.cpp */; }; … … 1228 1237 29CD55A9128E294F00133C85 /* WKAccessibilityWebPageObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKAccessibilityWebPageObject.mm; sourceTree = "<group>"; }; 1229 1238 31099968146C71F50029DEB9 /* WebNotificationClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebNotificationClient.h; sourceTree = "<group>"; }; 1230 3109996A146C73920029DEB9 /* WebNotificationManagerProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebNotificationManagerProxy.h; sourceTree = "<group>"; };1231 3109996B146C73B10029DEB9 /* WebNotificationManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationManagerProxy.cpp; sourceTree = "<group>"; };1232 3109996D146C73C40029DEB9 /* WebNotificationManagerProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebNotificationManagerProxy.messages.in; sourceTree = "<group>"; };1233 1239 31099971146C759B0029DEB9 /* WebNotificationClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationClient.cpp; sourceTree = "<group>"; }; 1234 31099978146C8B140029DEB9 /* WebNotificationManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebNotificationManager.cpp; path = Notifications/WebNotificationManager.cpp; sourceTree = "<group>"; };1235 31099979146C8B140029DEB9 /* WebNotificationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebNotificationManager.h; path = Notifications/WebNotificationManager.h; sourceTree = "<group>"; };1236 312C0C46146DDBBC0016C911 /* WebNotificationProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationProvider.cpp; sourceTree = "<group>"; };1237 312C0C48146DDBD30016C911 /* WebNotificationProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebNotificationProvider.h; sourceTree = "<group>"; };1238 1240 312C0C49146DDC8A0016C911 /* WKNotificationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNotificationProvider.h; sourceTree = "<group>"; }; 1241 31312619148FF82B00BA2A39 /* NotificationPermissionRequestManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NotificationPermissionRequestManager.cpp; sourceTree = "<group>"; }; 1242 3131261A148FF82B00BA2A39 /* NotificationPermissionRequestManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NotificationPermissionRequestManager.h; sourceTree = "<group>"; }; 1243 3131261B148FF82B00BA2A39 /* WebNotificationManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationManager.cpp; sourceTree = "<group>"; }; 1244 3131261C148FF82B00BA2A39 /* WebNotificationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNotificationManager.h; sourceTree = "<group>"; }; 1245 3131261D148FF82C00BA2A39 /* WebNotificationManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebNotificationManager.messages.in; sourceTree = "<group>"; }; 1239 1246 318BE1651473433700A8FBB2 /* WebNotificationManagerProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationManagerProxyMessageReceiver.cpp; sourceTree = "<group>"; }; 1240 1247 318BE1661473433700A8FBB2 /* WebNotificationManagerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNotificationManagerProxyMessages.h; sourceTree = "<group>"; }; … … 1243 1250 318BE17614743E6000A8FBB2 /* WKNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKNotification.cpp; sourceTree = "<group>"; }; 1244 1251 318BE17814743E6A00A8FBB2 /* WKNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKNotification.h; sourceTree = "<group>"; }; 1252 31A2EC41148997BE00810D71 /* WebNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotification.cpp; sourceTree = "<group>"; }; 1253 31A2EC42148997BE00810D71 /* WebNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNotification.h; sourceTree = "<group>"; }; 1254 31A2EC43148997BE00810D71 /* WebNotificationManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationManagerProxy.cpp; sourceTree = "<group>"; }; 1255 31A2EC44148997BF00810D71 /* WebNotificationManagerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNotificationManagerProxy.h; sourceTree = "<group>"; }; 1256 31A2EC45148997BF00810D71 /* WebNotificationManagerProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebNotificationManagerProxy.messages.in; sourceTree = "<group>"; }; 1257 31A2EC46148997C000810D71 /* WebNotificationProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationProvider.cpp; sourceTree = "<group>"; }; 1258 31A2EC47148997C100810D71 /* WebNotificationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNotificationProvider.h; sourceTree = "<group>"; }; 1259 31A2EC4F1489980500810D71 /* NotificationPermissionRequestManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NotificationPermissionRequestManagerProxy.cpp; sourceTree = "<group>"; }; 1260 31A2EC511489981500810D71 /* NotificationPermissionRequestManagerProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationPermissionRequestManagerProxy.h; sourceTree = "<group>"; }; 1261 31A2EC531489982500810D71 /* NotificationPermissionRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationPermissionRequest.h; sourceTree = "<group>"; }; 1262 31A2EC541489982E00810D71 /* NotificationPermissionRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NotificationPermissionRequest.cpp; sourceTree = "<group>"; }; 1263 31A2EC72148D59BB00810D71 /* WKNotificationPermissionRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKNotificationPermissionRequest.h; sourceTree = "<group>"; }; 1264 31A2EC75148D65BB00810D71 /* WKNotificationPermissionRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKNotificationPermissionRequest.cpp; sourceTree = "<group>"; }; 1245 1265 31BA9248148830810062EDB5 /* WebNotificationManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationManagerMessageReceiver.cpp; sourceTree = "<group>"; }; 1246 1266 31BA9249148830810062EDB5 /* WebNotificationManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNotificationManagerMessages.h; sourceTree = "<group>"; }; 1247 31C11AB1148452E90049A4CC /* WebNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotification.cpp; sourceTree = "<group>"; };1248 31C11AB2148452E90049A4CC /* WebNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNotification.h; sourceTree = "<group>"; };1249 1267 31EA25D0134F78B2005B1452 /* NativeWebMouseEventMac.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = NativeWebMouseEventMac.mm; sourceTree = "<group>"; }; 1250 1268 31EA25D3134F78D6005B1452 /* NativeWebMouseEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeWebMouseEvent.h; sourceTree = "<group>"; }; … … 2487 2505 isa = PBXGroup; 2488 2506 children = ( 2489 31099978146C8B140029DEB9 /* WebNotificationManager.cpp */, 2490 31099979146C8B140029DEB9 /* WebNotificationManager.h */, 2507 31312619148FF82B00BA2A39 /* NotificationPermissionRequestManager.cpp */, 2508 3131261A148FF82B00BA2A39 /* NotificationPermissionRequestManager.h */, 2509 3131261B148FF82B00BA2A39 /* WebNotificationManager.cpp */, 2510 3131261C148FF82B00BA2A39 /* WebNotificationManager.h */, 2511 3131261D148FF82C00BA2A39 /* WebNotificationManager.messages.in */, 2491 2512 ); 2492 2513 name = "Notifications (User)"; 2514 path = Notifications; 2515 sourceTree = "<group>"; 2516 }; 2517 31A2EC401489973700810D71 /* Notifications */ = { 2518 isa = PBXGroup; 2519 children = ( 2520 31A2EC4F1489980500810D71 /* NotificationPermissionRequestManagerProxy.cpp */, 2521 31A2EC511489981500810D71 /* NotificationPermissionRequestManagerProxy.h */, 2522 31A2EC541489982E00810D71 /* NotificationPermissionRequest.cpp */, 2523 31A2EC531489982500810D71 /* NotificationPermissionRequest.h */, 2524 31A2EC41148997BE00810D71 /* WebNotification.cpp */, 2525 31A2EC42148997BE00810D71 /* WebNotification.h */, 2526 31A2EC43148997BE00810D71 /* WebNotificationManagerProxy.cpp */, 2527 31A2EC44148997BF00810D71 /* WebNotificationManagerProxy.h */, 2528 31A2EC45148997BF00810D71 /* WebNotificationManagerProxy.messages.in */, 2529 31A2EC46148997C000810D71 /* WebNotificationProvider.cpp */, 2530 31A2EC47148997C100810D71 /* WebNotificationProvider.h */, 2531 ); 2532 path = Notifications; 2493 2533 sourceTree = "<group>"; 2494 2534 }; … … 2765 2805 BC111B18112F5FB400337BAB /* Launcher */, 2766 2806 BCCF085C113F3B7500C650C5 /* mac */, 2807 31A2EC401489973700810D71 /* Notifications */, 2767 2808 1AEFCC0511D01F34008219D3 /* Plugins */, 2768 2809 1A64256712DE42EC00CAAE2C /* BackingStore.cpp */, … … 2856 2897 BCF69FA11176D01400471A52 /* WebNavigationData.cpp */, 2857 2898 BCF69FA01176D01400471A52 /* WebNavigationData.h */, 2858 31C11AB1148452E90049A4CC /* WebNotification.cpp */,2859 31C11AB2148452E90049A4CC /* WebNotification.h */,2860 3109996B146C73B10029DEB9 /* WebNotificationManagerProxy.cpp */,2861 3109996A146C73920029DEB9 /* WebNotificationManagerProxy.h */,2862 3109996D146C73C40029DEB9 /* WebNotificationManagerProxy.messages.in */,2863 312C0C46146DDBBC0016C911 /* WebNotificationProvider.cpp */,2864 312C0C48146DDBD30016C911 /* WebNotificationProvider.h */,2865 2899 BC1DFEA312B31F87005DF730 /* WebOpenPanelResultListenerProxy.cpp */, 2866 2900 BC1DFEA212B31F87005DF730 /* WebOpenPanelResultListenerProxy.h */, … … 2983 3017 33367638130C99DC006C9DE2 /* WKResourceCacheManager.cpp */, 2984 3018 33367639130C99DC006C9DE2 /* WKResourceCacheManager.h */, 3019 31A2EC72148D59BB00810D71 /* WKNotificationPermissionRequest.h */, 3020 31A2EC75148D65BB00810D71 /* WKNotificationPermissionRequest.cpp */, 2985 3021 ); 2986 3022 path = C; … … 4062 4098 3788A05C14743C90006319E5 /* WKBrowsingContextControllerPrivate.h in Headers */, 4063 4099 BCE9C0B71484714700E33D61 /* WebConnectionMessageKinds.h in Headers */, 4064 3109996F146C741D0029DEB9 /* WebNotificationManagerProxy.h in Headers */,4065 3109997B146C8B140029DEB9 /* WebNotificationManager.h in Headers */,4066 4100 310999C7146C9E3D0029DEB9 /* WebNotificationClient.h in Headers */, 4067 4101 312C0C4A146DDC8A0016C911 /* WKNotificationProvider.h in Headers */, … … 4069 4103 318BE17114743DB100A8FBB2 /* WKNotificationManager.h in Headers */, 4070 4104 318BE17914743E6F00A8FBB2 /* WKNotification.h in Headers */, 4071 31C11AB4148452E90049A4CC /* WebNotification.h in Headers */,4072 4105 31BA924E148831260062EDB5 /* WebNotificationManagerMessages.h in Headers */, 4106 31A2EC49148997C200810D71 /* WebNotification.h in Headers */, 4107 31A2EC4B148997C200810D71 /* WebNotificationManagerProxy.h in Headers */, 4108 31A2EC4E148997C200810D71 /* WebNotificationProvider.h in Headers */, 4109 31A2EC521489981900810D71 /* NotificationPermissionRequestManagerProxy.h in Headers */, 4110 31A2EC5614899C0900810D71 /* NotificationPermissionRequest.h in Headers */, 4111 31A2EC74148D59CA00810D71 /* WKNotificationPermissionRequest.h in Headers */, 4112 3131261F148FF82C00BA2A39 /* NotificationPermissionRequestManager.h in Headers */, 4113 31312621148FF82C00BA2A39 /* WebNotificationManager.h in Headers */, 4073 4114 ); 4074 4115 runOnlyForDeploymentPostprocessing = 0; … … 4773 4814 BC4A62A714744EC7006C681A /* WebConnectionToWebProcess.cpp in Sources */, 4774 4815 BC09B8F8147460F7005F5625 /* WebContextConnectionClient.cpp in Sources */, 4775 31099970146C74200029DEB9 /* WebNotificationManagerProxy.cpp in Sources */,4776 4816 31099973146C75A20029DEB9 /* WebNotificationClient.cpp in Sources */, 4777 3109997A146C8B140029DEB9 /* WebNotificationManager.cpp in Sources */,4778 312C0C47146DDBBD0016C911 /* WebNotificationProvider.cpp in Sources */,4779 4817 318BE1671473433700A8FBB2 /* WebNotificationManagerProxyMessageReceiver.cpp in Sources */, 4780 4818 318BE17514743DD700A8FBB2 /* WKNotificationManager.cpp in Sources */, 4781 4819 318BE17714743E6000A8FBB2 /* WKNotification.cpp in Sources */, 4782 31C11AB3148452E90049A4CC /* WebNotification.cpp in Sources */,4783 4820 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */, 4784 4821 BCD3675C148C26C000447E87 /* WebConnectionToUIProcess.cpp in Sources */, 4785 4822 8CFECE941490F140002AAA32 /* EditorState.cpp in Sources */, 4786 4823 B63403F914910D57001070B5 /* APIObject.cpp in Sources */, 4824 31A2EC48148997C200810D71 /* WebNotification.cpp in Sources */, 4825 31A2EC4A148997C200810D71 /* WebNotificationManagerProxy.cpp in Sources */, 4826 31A2EC4D148997C200810D71 /* WebNotificationProvider.cpp in Sources */, 4827 31A2EC501489980500810D71 /* NotificationPermissionRequestManagerProxy.cpp in Sources */, 4828 31A2EC551489982E00810D71 /* NotificationPermissionRequest.cpp in Sources */, 4829 31A2EC77148D662E00810D71 /* WKNotificationPermissionRequest.cpp in Sources */, 4830 3131261E148FF82C00BA2A39 /* NotificationPermissionRequestManager.cpp in Sources */, 4831 31312620148FF82C00BA2A39 /* WebNotificationManager.cpp in Sources */, 4787 4832 ); 4788 4833 runOnlyForDeploymentPostprocessing = 0; -
trunk/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h
r102351 r102352 24 24 */ 25 25 26 #ifndef WebNotification_h27 #define WebNotification_h26 #ifndef NotificationPermissionRequestManager_h 27 #define NotificationPermissionRequestManager_h 28 28 29 #include "APIObject.h" 30 #include <wtf/PassRefPtr.h> 31 #include <wtf/text/WTFString.h> 29 #include <WebCore/NotificationPresenter.h> 30 #include <WebCore/VoidCallback.h> 31 #include <wtf/HashMap.h> 32 #include <wtf/RefCounted.h> 33 #include <wtf/RefPtr.h> 32 34 33 namespace CoreIPC { 34 35 class ArgumentDecoder; 36 class ArgumentEncoder; 37 38 } // namespace CoreIPC 35 namespace WebCore { 36 class Notification; 37 class SecurityOrigin; 38 } 39 39 40 40 namespace WebKit { 41 42 class WebPage; 43 44 /// FIXME: Need to keep a queue of pending notifications which permission is still being requested. 45 class NotificationPermissionRequestManager : public RefCounted<NotificationPermissionRequestManager> { 46 public: 47 static PassRefPtr<NotificationPermissionRequestManager> create(WebPage*); 41 48 42 class WebNotification : public APIObject { 43 public: 44 static const Type APIType = TypeNotification; 49 void startRequest(WebCore::SecurityOrigin*, PassRefPtr<WebCore::VoidCallback>); 50 void cancelRequest(WebCore::SecurityOrigin*); 45 51 46 WebNotification(); 47 static PassRefPtr<WebNotification> create(const String& title, const String& body, uint64_t notificationID) 48 { 49 return adoptRef(new WebNotification(title, body, notificationID)); 50 } 51 virtual ~WebNotification(); 52 // Synchronous call to retrieve permission level for given security origin 53 WebCore::NotificationPresenter::Permission permissionLevel(WebCore::SecurityOrigin*); 52 54 53 const String& title() const { return m_title; }55 void didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed); 54 56 55 const String& body() const { return m_body; } 57 private: 58 NotificationPermissionRequestManager(WebPage*); 56 59 57 uint64_t notificationID() const { return m_notificationID; } 60 HashMap<uint64_t, RefPtr<WebCore::VoidCallback> > m_idToCallbackMap; 61 HashMap<RefPtr<WebCore::SecurityOrigin>, uint64_t> m_originToIDMap; 62 HashMap<uint64_t, RefPtr<WebCore::SecurityOrigin> > m_idToOriginMap; 58 63 59 void encode(CoreIPC::ArgumentEncoder*) const; 60 static bool decode(CoreIPC::ArgumentDecoder*, WebNotification&); 61 62 private: 63 WebNotification(const String& title, const String& body, uint64_t notificationID); 64 65 virtual Type type() const { return APIType; } 66 67 String m_title; 68 String m_body; 69 uint64_t m_notificationID; 64 WebPage* m_page; 70 65 }; 71 66 72 inline bool is NotificationIDValid(uint64_t id)67 inline bool isRequestIDValid(uint64_t id) 73 68 { 74 69 // This check makes sure that the ID is not equal to values needed by … … 79 74 } // namespace WebKit 80 75 81 #endif // WebNotification_h76 #endif // NotificationPermissionRequestManager_h -
trunk/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h
r101750 r102352 39 39 40 40 namespace WebCore { 41 class Notification; 41 class Notification; 42 42 } 43 43 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebNotificationClient.cpp
r101750 r102352 29 29 #if ENABLE(NOTIFICATIONS) 30 30 31 #include "NotificationPermissionRequestManager.h" 31 32 #include "WebNotificationManager.h" 33 #include "WebPage.h" 32 34 #include "WebProcess.h" 33 35 #include <WebCore/NotImplemented.h> 36 #include <WebCore/ScriptExecutionContext.h> 34 37 35 38 using namespace WebCore; … … 75 78 } 76 79 77 void WebNotificationClient::requestPermission(ScriptExecutionContext* , PassRefPtr<VoidCallback>)80 void WebNotificationClient::requestPermission(ScriptExecutionContext* context, PassRefPtr<VoidCallback> callback) 78 81 { 79 notImplemented();82 m_page->notificationPermissionRequestManager()->startRequest(context->securityOrigin(), callback); 80 83 } 81 84 82 void WebNotificationClient::cancelRequestsForPermission(ScriptExecutionContext* )85 void WebNotificationClient::cancelRequestsForPermission(ScriptExecutionContext* context) 83 86 { 84 notImplemented();87 m_page->notificationPermissionRequestManager()->cancelRequest(context->securityOrigin()); 85 88 } 86 89 87 NotificationPresenter::Permission WebNotificationClient::checkPermission(ScriptExecutionContext* )90 NotificationPresenter::Permission WebNotificationClient::checkPermission(ScriptExecutionContext* context) 88 91 { 89 notImplemented(); 90 return NotificationPresenter::PermissionDenied; 92 if (!context || !context->isDocument()) 93 return NotificationPresenter::PermissionDenied; 94 return m_page->notificationPermissionRequestManager()->permissionLevel(context->securityOrigin()); 91 95 } 92 96 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r102341 r102352 36 36 #include "MessageID.h" 37 37 #include "NetscapePlugin.h" 38 #include "NotificationPermissionRequestManager.h" 38 39 #include "PageOverlay.h" 39 40 #include "PluginProxy.h" … … 1878 1879 #endif 1879 1880 1881 NotificationPermissionRequestManager* WebPage::notificationPermissionRequestManager() 1882 { 1883 if (m_notificationPermissionRequestManager) 1884 return m_notificationPermissionRequestManager.get(); 1885 1886 m_notificationPermissionRequestManager = NotificationPermissionRequestManager::create(this); 1887 return m_notificationPermissionRequestManager.get(); 1888 } 1889 1880 1890 #if !PLATFORM(GTK) && !PLATFORM(MAC) 1881 1891 bool WebPage::handleEditingKeyboardEvent(KeyboardEvent* evt) … … 2154 2164 } 2155 2165 2166 void WebPage::didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed) 2167 { 2168 notificationPermissionRequestManager()->didReceiveNotificationPermissionDecision(notificationID, allowed); 2169 } 2170 2156 2171 void WebPage::advanceToNextMisspelling(bool startBeforeSelection) 2157 2172 { -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h
r101678 r102352 103 103 class DrawingArea; 104 104 class InjectedBundleBackForwardList; 105 class NotificationPermissionRequestManager; 105 106 class PageOverlay; 106 107 class PluginView; … … 310 311 FindController& findController() { return m_findController; } 311 312 GeolocationPermissionRequestManager& geolocationPermissionRequestManager() { return m_geolocationPermissionRequestManager; } 313 NotificationPermissionRequestManager* notificationPermissionRequestManager(); 312 314 313 315 void pageDidScroll(); … … 588 590 589 591 void didReceiveGeolocationPermissionDecision(uint64_t geolocationID, bool allowed); 592 void didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed); 590 593 591 594 void advanceToNextMisspelling(bool startBeforeSelection); … … 694 697 RefPtr<WebOpenPanelResultListener> m_activeOpenPanelResultListener; 695 698 GeolocationPermissionRequestManager m_geolocationPermissionRequestManager; 699 RefPtr<NotificationPermissionRequestManager> m_notificationPermissionRequestManager; 696 700 697 701 OwnPtr<WebCore::PrintContext> m_printContext; -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
r101678 r102352 173 173 # Geolocation 174 174 DidReceiveGeolocationPermissionDecision(uint64_t geolocationID, bool allowed) 175 176 # Notification 177 DidReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed) 175 178 176 179 SetWindowResizerSize(WebCore::IntSize intersectsView) -
trunk/Source/WebKit2/win/WebKit2.vcproj
r102346 r102352 1564 1564 > 1565 1565 <File 1566 RelativePath="..\WebProcess\WebConnectionToUIProcess.cpp" 1567 > 1568 </File> 1569 <File 1570 RelativePath="..\WebProcess\WebConnectionToUIProcess.h" 1571 > 1572 </File> 1573 <File 1566 1574 RelativePath="..\WebProcess\WebKitMain.cpp" 1567 >1568 </File>1569 <File1570 RelativePath="..\WebProcess\WebConnectionToUIProcess.cpp"1571 >1572 </File>1573 <File1574 RelativePath="..\WebProcess\WebConnectionToUIProcess.h"1575 1575 > 1576 1576 </File> … … 2715 2715 > 2716 2716 <File 2717 RelativePath="..\WebProcess\Notifications\NotificationPermissionRequestManager.cpp" 2718 > 2719 </File> 2720 <File 2721 RelativePath="..\WebProcess\Notifications\NotificationPermissionRequestManager.h" 2722 > 2723 </File> 2724 <File 2717 2725 RelativePath="..\WebProcess\Notifications\WebNotificationManager.cpp" 2718 2726 > … … 3089 3097 <File 3090 3098 RelativePath="..\UIProcess\WebNavigationData.h" 3091 >3092 </File>3093 <File3094 RelativePath="..\UIProcess\WebNotification.cpp"3095 >3096 </File>3097 <File3098 RelativePath="..\UIProcess\WebNotification.h"3099 >3100 </File>3101 <File3102 RelativePath="..\UIProcess\WebNotificationManagerProxy.cpp"3103 >3104 </File>3105 <File3106 RelativePath="..\UIProcess\WebNotificationManagerProxy.h"3107 >3108 </File>3109 <File3110 RelativePath="..\UIProcess\WebNotificationManagerProxy.messages.in"3111 >3112 </File>3113 <File3114 RelativePath="..\UIProcess\WebNotificationProvider.cpp"3115 >3116 </File>3117 <File3118 RelativePath="..\UIProcess\WebNotificationProvider.h"3119 3099 > 3120 3100 </File> … … 3819 3799 </Filter> 3820 3800 </Filter> 3801 <Filter 3802 Name="Notifications (User)" 3803 > 3804 <File 3805 RelativePath="..\UIProcess\Notifications\NotificationPermissionRequest.cpp" 3806 > 3807 </File> 3808 <File 3809 RelativePath="..\UIProcess\Notifications\NotificationPermissionRequest.h" 3810 > 3811 </File> 3812 <File 3813 RelativePath="..\UIProcess\Notifications\NotificationPermissionRequestManagerProxy.cpp" 3814 > 3815 </File> 3816 <File 3817 RelativePath="..\UIProcess\Notifications\NotificationPermissionRequestManagerProxy.h" 3818 > 3819 </File> 3820 <File 3821 RelativePath="..\UIProcess\Notifications\WebNotification.cpp" 3822 > 3823 </File> 3824 <File 3825 RelativePath="..\UIProcess\Notifications\WebNotification.h" 3826 > 3827 </File> 3828 <File 3829 RelativePath="..\UIProcess\Notifications\WebNotificationManagerProxy.cpp" 3830 > 3831 </File> 3832 <File 3833 RelativePath="..\UIProcess\Notifications\WebNotificationManagerProxy.h" 3834 > 3835 </File> 3836 <File 3837 RelativePath="..\UIProcess\Notifications\WebNotificationManagerProxy.messages.in" 3838 > 3839 </File> 3840 <File 3841 RelativePath="..\UIProcess\Notifications\WebNotificationProvider.cpp" 3842 > 3843 </File> 3844 <File 3845 RelativePath="..\UIProcess\Notifications\WebNotificationProvider.h" 3846 > 3847 </File> 3848 </Filter> 3821 3849 </Filter> 3822 3850 <Filter -
trunk/Source/WebKit2/win/WebKit2Common.vsprops
r101750 r102352 7 7 <Tool 8 8 Name="VCCLCompilerTool" 9 AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)\..";"$(ProjectDir)\..\Platform";"$(ProjectDir)\..\Platform\cg";"$(ProjectDir)\..\Platform\CoreIPC";"$(ProjectDir)\..\PluginProcess";"$(ProjectDir)\..\Shared";"$(ProjectDir)\..\Shared\win";"$(ProjectDir)\..\Shared\cf";"$(ProjectDir)\..\Shared\API\c";"$(ProjectDir)\..\Shared\API\c\cf";"$(ProjectDir)\..\Shared\API\c\win";"$(ProjectDir)\..\Shared\CoreIPCSupport";"$(ProjectDir)\..\Shared\Plugins";"$(ProjectDir)\..\Shared\Plugins\Netscape";"$(ProjectDir)\..\UIProcess";"$(ProjectDir)\..\UIProcess\API\C";"$(ProjectDir)\..\UIProcess\API\C\win";"$(ProjectDir)\..\UIProcess\API\cpp";"$(ProjectDir)\..\UIProcess\API\win";"$(ProjectDir)\..\UIProcess\Authentication";"$(ProjectDir)\..\UIProcess\Downloads";"$(ProjectDir)\..\UIProcess\Launcher";"$(ProjectDir)\..\UIProcess\ Plugins";"$(ProjectDir)\..\UIProcess\win";"$(ProjectDir)\..\WebProcess";"$(ProjectDir)\..\WebProcess\WebCoreSupport";"$(ProjectDir)\..\WebProcess\WebCoreSupport\win";"$(ProjectDir)\..\WebProcess\WebPage";"$(ProjectDir)\..\WebProcess\WebPage\win";"$(ProjectDir)\..\WebProcess\IconDatabase";"$(ProjectDir)\..\WebProcess\InjectedBundle";"$(ProjectDir)\..\WebProcess\InjectedBundle\API\c";"$(ProjectDir)\..\WebProcess\InjectedBundle\DOM";"$(ProjectDir)\..\WebProcess\InjectedBundle\win";"$(ProjectDir)\..\WebProcess\Plugins";"$(ProjectDir)\..\WebProcess\Plugins\Netscape";"$(ProjectDir)\..\WebProcess\win";"$(ProjectDir)\..\WebProcess\ApplicationCache";"$(ProjectDir)\..\WebProcess\Authentication";"$(ProjectDir)\..\WebProcess\Cookies";"$(ProjectDir)\..\WebProcess\Cookies\cf";"$(ProjectDir)\..\WebProcess\Downloads";"$(ProjectDir)\..\WebProcess\Downloads\cf";"$(ProjectDir)\..\WebProcess\FullScreen";"$(ProjectDir)\..\WebProcess\Geolocation";"$(ProjectDir)\..\WebProcess\KeyValueStorage";"$(ProjectDir)\..\WebProcess\MediaCache";"$(ProjectDir)\..\WebProcess\Notifications";"$(ProjectDir)\..\WebProcess\ResourceCache";"$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitLibrariesDir)\Include\pthreads";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders""9 AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)\..";"$(ProjectDir)\..\Platform";"$(ProjectDir)\..\Platform\cg";"$(ProjectDir)\..\Platform\CoreIPC";"$(ProjectDir)\..\PluginProcess";"$(ProjectDir)\..\Shared";"$(ProjectDir)\..\Shared\win";"$(ProjectDir)\..\Shared\cf";"$(ProjectDir)\..\Shared\API\c";"$(ProjectDir)\..\Shared\API\c\cf";"$(ProjectDir)\..\Shared\API\c\win";"$(ProjectDir)\..\Shared\CoreIPCSupport";"$(ProjectDir)\..\Shared\Plugins";"$(ProjectDir)\..\Shared\Plugins\Netscape";"$(ProjectDir)\..\UIProcess";"$(ProjectDir)\..\UIProcess\API\C";"$(ProjectDir)\..\UIProcess\API\C\win";"$(ProjectDir)\..\UIProcess\API\cpp";"$(ProjectDir)\..\UIProcess\API\win";"$(ProjectDir)\..\UIProcess\Authentication";"$(ProjectDir)\..\UIProcess\Downloads";"$(ProjectDir)\..\UIProcess\Launcher";"$(ProjectDir)\..\UIProcess\Notifications";"$(ProjectDir)\..\UIProcess\Plugins";"$(ProjectDir)\..\UIProcess\win";"$(ProjectDir)\..\WebProcess";"$(ProjectDir)\..\WebProcess\WebCoreSupport";"$(ProjectDir)\..\WebProcess\WebCoreSupport\win";"$(ProjectDir)\..\WebProcess\WebPage";"$(ProjectDir)\..\WebProcess\WebPage\win";"$(ProjectDir)\..\WebProcess\IconDatabase";"$(ProjectDir)\..\WebProcess\InjectedBundle";"$(ProjectDir)\..\WebProcess\InjectedBundle\API\c";"$(ProjectDir)\..\WebProcess\InjectedBundle\DOM";"$(ProjectDir)\..\WebProcess\InjectedBundle\win";"$(ProjectDir)\..\WebProcess\Plugins";"$(ProjectDir)\..\WebProcess\Plugins\Netscape";"$(ProjectDir)\..\WebProcess\win";"$(ProjectDir)\..\WebProcess\ApplicationCache";"$(ProjectDir)\..\WebProcess\Authentication";"$(ProjectDir)\..\WebProcess\Cookies";"$(ProjectDir)\..\WebProcess\Cookies\cf";"$(ProjectDir)\..\WebProcess\Downloads";"$(ProjectDir)\..\WebProcess\Downloads\cf";"$(ProjectDir)\..\WebProcess\FullScreen";"$(ProjectDir)\..\WebProcess\Geolocation";"$(ProjectDir)\..\WebProcess\KeyValueStorage";"$(ProjectDir)\..\WebProcess\MediaCache";"$(ProjectDir)\..\WebProcess\Notifications";"$(ProjectDir)\..\WebProcess\ResourceCache";"$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitLibrariesDir)\Include\pthreads";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders"" 10 10 PreprocessorDefinitions="_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;BUILDING_WEBKIT" 11 11 UsePrecompiledHeader="2" -
trunk/Tools/ChangeLog
r102348 r102352 1 2011-12-06 Jon Lee <jonlee@apple.com> 2 3 [WK2] Add permissions support (73960) 4 https://bugs.webkit.org/show_bug.cgi?id=73960 5 <rdar://problem/10357008> 6 7 Reviewed by Darin Adler. 8 9 Add null function item to comply with added callback to WKPageUIClient. 10 11 * MiniBrowser/mac/BrowserWindowController.m: 12 (-[BrowserWindowController awakeFromNib]): 13 * WebKitTestRunner/TestController.cpp: 14 (WTR::TestController::createOtherPage): 15 (WTR::TestController::initialize): 16 1 17 2011-12-08 Alexander Færøy <alexander.faeroy@nokia.com> 2 18 -
trunk/Tools/MiniBrowser/mac/BrowserWindowController.m
r99610 r102352 668 668 createNewPage, 669 669 mouseDidMoveOverElement, 670 0, // decidePolicyForNotificationPermissionRequest 670 671 }; 671 672 WKPageSetPageUIClient(_webView.pageRef, &uiClient); -
trunk/Tools/WebKitTestRunner/TestController.cpp
r99839 r102352 205 205 createOtherPage, 206 206 0, // mouseDidMoveOverElement 207 0, // decidePolicyForNotificationPermissionRequest 207 208 }; 208 209 WKPageSetPageUIClient(newPage, &otherPageUIClient); … … 357 358 createOtherPage, 358 359 0, // mouseDidMoveOverElement 360 0, // decidePolicyForNotificationPermissionRequest 359 361 }; 360 362 WKPageSetPageUIClient(m_mainWebView->page(), &pageUIClient);
Note: See TracChangeset
for help on using the changeset viewer.