[webkit-changes] [WebKit/WebKit] 809586: Crash in gamepads in WKWebView apps that also list...

2022-11-02 Thread beidson
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 809586a6b81ed6b9f46cda1c990392e90182266a
  
https://github.com/WebKit/WebKit/commit/809586a6b81ed6b9f46cda1c990392e90182266a
  Author: Brady Eidson 
  Date:   2022-11-02 (Wed, 02 Nov 2022)

  Changed paths:
M Source/WebKit/UIProcess/Gamepad/UIGamepadProvider.cpp

  Log Message:
  ---
  Crash in gamepads in WKWebView apps that also listen to the GameController 
framework themselves
https://bugs.webkit.org/show_bug.cgi?id=247368 and rdar://100036005

Reviewed by Geoff Garen.

No test possible for now.

* Source/WebKit/UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::platformGamepadInputActivity): Handle a mismatch 
between platform gamepads
  and established gamepads. This can happen when there's "invisible" gamepads 
still, and the current
  input event will not reveal them to WebContent. And it's fine: Things get 
resolved when an input
  even *does* reveal the gamepads to the web page.

Canonical link: https://commits.webkit.org/256255@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [295650] trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp

2022-06-17 Thread beidson
Title: [295650] trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp








Revision 295650
Author beid...@apple.com
Date 2022-06-17 16:56:37 -0700 (Fri, 17 Jun 2022)


Log Message
pas_panic_on_out_of_memory_error decoding large session state data blobs
https://bugs.webkit.org/show_bug.cgi?id=241486 and 

Reviewed by Tim Horton.

* Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::encodeLegacySessionState): Try malloc, and gracefully handle failure.
  This will result in some users losing session state blobs in large single tab use cases,
  but is better than crashing the UI process.
  Better handling these cases will be subject of followup work.

Canonical link: https://commits.webkit.org/251654@main

Modified Paths

trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp




Diff

Modified: trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp (295649 => 295650)

--- trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp	2022-06-17 23:56:33 UTC (rev 295649)
+++ trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp	2022-06-17 23:56:37 UTC (rev 295650)
@@ -515,7 +515,9 @@
 CFIndex length = CFDataGetLength(data.get());
 
 size_t bufferSize = length + sizeof(uint32_t);
-auto buffer = MallocPtr::malloc(bufferSize);
+auto buffer = MallocPtr::tryMalloc(bufferSize);
+if (!buffer)
+return nullptr;
 
 // Put the session state version number at the start of the buffer
 buffer.get()[0] = (sessionStateDataVersion & 0xff00) >> 24;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [293296] trunk

2022-04-23 Thread beidson
Title: [293296] trunk








Revision 293296
Author beid...@apple.com
Date 2022-04-23 15:26:57 -0700 (Sat, 23 Apr 2022)


Log Message
Add WKNotification and WKWebsiteDataStore SPI for handling click/close of persistent notifications
https://bugs.webkit.org/show_bug.cgi

Reviewed by Chris Dumez.

Source/WebCore:

Covered by existing tests with WKTR changes.

In Cocoa, expose the dictionary representation of a notification as an NSDictionary,
as it is meant to be used as an NSUserNotification userInfo value.

* Modules/notifications/NotificationData.h:
* Modules/notifications/NotificationDataCocoa.mm: Added.
(WebCore::NotificationData::fromDictionary):
(WebCore::NotificationData::dictionaryRepresentation const):

* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::processNotificationEvent):
* workers/service/server/SWServer.h:

Source/WebKit:

For notifications that are persistent, add WKWebsiteDataStore SPI to handle click/close operations,
as the WKNotificationManager's runtime record of such notifications might be gone.

WebKitTestRunner exercises this new SPI in existing tests.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::processNotificationEvent):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:

* SourcesCocoa.txt:

* UIProcess/API/C/WKNotification.cpp:
(WKNotificationGetIsPersistent):
* UIProcess/API/C/WKNotification.h:

* UIProcess/API/C/mac/WKNotificationPrivateMac.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.
* UIProcess/API/C/mac/WKNotificationPrivateMac.mm: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.
(WKNotificationCopyDictionaryRepresentation):

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _processPersistentNotificationClick:completionHandler:]):
(-[WKWebsiteDataStore _processPersistentNotificationClose:completionHandler:]):
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

* UIProcess/API/Cocoa/_WKDownload.mm:
* UIProcess/API/Cocoa/_WKDownloadInternal.h:

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::processNotificationEvent):
* UIProcess/Network/NetworkProcessProxy.h:

* UIProcess/Notifications/WebNotification.cpp:
* UIProcess/Notifications/WebNotification.h:
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::dispatchDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):

* WebKit.xcodeproj/project.pbxproj:

Tools:

Teach WKTR to use the new SPI by keeping a set of notifications that are persistent.

* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:

* WebKitTestRunner/WebNotificationProvider.cpp:
(WTR::WebNotificationProvider::showWebNotification):
(WTR::WebNotificationProvider::closeWebNotification):
(WTR::WebNotificationProvider::reset):
* WebKitTestRunner/WebNotificationProvider.h:

* WebKitTestRunner/cocoa/WebNotificationProviderCocoa.mm:
(WTR::WebNotificationProvider::simulateWebNotificationClickForServiceWorkerNotifications):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/notifications/NotificationData.h
trunk/Source/WebCore/SourcesCocoa.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/workers/service/server/SWServer.cpp
trunk/Source/WebCore/workers/service/server/SWServer.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/Shared/ModelIdentifier.h
trunk/Source/WebKit/SourcesCocoa.txt
trunk/Source/WebKit/UIProcess/API/C/WKNotification.cpp
trunk/Source/WebKit/UIProcess/API/C/WKNotification.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h
trunk/Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm
trunk/Source/WebKit/UIProcess/ModelElementController.h
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
trunk/Source/WebKit/UIProcess/Notifications/WebNotification.cpp
trunk/Source/WebKit/UIProcess/Notifications/WebNotification.h
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
trunk/Tools/WebKitTestRunner/WebNotificationProvider.cpp
trunk/Tools/WebKitTestRunner/WebNotificationProvider.h


Added Paths

trunk/Source/WebCore/Modules/notifications/NotificationDataCocoa.mm
trunk/Source/WebKit/UIProcess/API/C/mac/WKNotificationPrivateMac.h
trunk/Source/WebKit/UIProcess/API/C/mac/WKNotificationPrivateMac.mm

[webkit-changes] [291979] trunk

2022-03-28 Thread beidson
Title: [291979] trunk








Revision 291979
Author beid...@apple.com
Date 2022-03-28 11:14:19 -0700 (Mon, 28 Mar 2022)


Log Message
Support ServiceWorkerClients.openWindow.
 and https://bugs.webkit.org/show_bug.cgi?id=238400

Reviewed by Youenn Fablet.
Source/WebCore:

Test: http/tests/workers/service/openwindow-from-notification-click.html

* dom/Document.cpp:
(WebCore::Document::pageID const):

* page/ClientOrigin.h:
(WebCore::ClientOrigin::loggingString const):

* workers/service/ServiceWorkerClientData.cpp:
(WebCore::ServiceWorkerClientData::isolatedCopy const):
(WebCore::ServiceWorkerClientData::isolatedCopy):
(WebCore::ServiceWorkerClientData::from):

* workers/service/ServiceWorkerClientData.h:
(WebCore::ServiceWorkerClientData::encode const):
(WebCore::ServiceWorkerClientData::decode):

* workers/service/ServiceWorkerClients.cpp:
(WebCore::matchWindowWithPageIdentifier):
(WebCore::ServiceWorkerClients::openWindow):

* workers/service/context/SWContextManager.h:
* workers/service/server/SWServerToContextConnection.h:
* workers/service/server/SWServerWorker.h:

Source/WebKit:

This API asks the browser to asynchronously open a new tab to a URL then resolve
a promise with the new WindowClient representing that tab.

>From a WebCore/WebKit standpoint, implementing this was mostly straightforward.
1 - A plumbing exercise (thread hopping and IPC'ing the message and its reply around)
2 - Implmenting a new delegate method for the hosting app to create the requested WKWebView

The delegate method was interesting. Normally this is the type of thing that'd go to the
WKUIDelegate but that requires there to be a WKWebView, and service workers can be running
without any web views.

Fortunately we already had a WKWebsiteDataStore delegate SPI, and service workers *do* always
have an associated website data store they're running under.

Once the app gives the new web view back to WebKit, we record its PageIdentifier in the reply.

Once the reply makes its way all the way back to the ServiceWorker process and on the
ServiceWorker thread, we do a client match and cross check with that PageIdentifier to make
sure we're resolving the promise with the correct WindowClient.

If there's no matched clients, then the view is either already gone or it has navigated away
to a non-applicable URL.

Same if there are matched clients, but they don't match the specified PageIdentifier.

A straight forward layouttest completes the task.

* NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::controlClient):

* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::openWindow):
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore set_delegate:]):
* UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::openWindowFromServiceWorker):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::callLoadCompletionHandlersIfNecessary):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::callServiceWorkerLaunchCompletionHandlerIfNecessary): Deleted.
* UIProcess/WebPageProxy.h:

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::openWindowFromServiceWorker):
* UIProcess/WebsiteData/WebsiteDataStore.h:

* UIProcess/WebsiteData/WebsiteDataStoreClient.h:
(WebKit::WebsiteDataStoreClient::openWindowFromServiceWorker):

* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::didShowNotification):
(WebKit::WebNotificationManager::didClickNotification):

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::openWindow):
* WebProcess/Storage/WebSWContextManagerConnection.h:

Source/WTF:

* wtf/HashTable.h:
(WTF::KeyTraits>::inlineLookup): Relax this value size requirement for now.
The required refactoring is best left as a seperate task with a seperate patch.

Tools:

Implement the new delegate to create the new view.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::createOtherPage):
(WTR::TestController::createOtherPlatformWebView):
* WebKitTestRunner/TestController.h:

* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateOtherPage):
* WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm:
(-[TestWebsiteDataStoreDelegate websiteDataStore:openWindow:fromServiceWorkerOrigin:completionHandler:]):

LayoutTests:

WKTR knows how to openWindow() now.

So test:
- The success case
- Failure due to a disallowed URL
- 

[webkit-changes] [290818] trunk/Source/WebKit

2022-03-03 Thread beidson
Title: [290818] trunk/Source/WebKit








Revision 290818
Author beid...@apple.com
Date 2022-03-03 22:58:01 -0800 (Thu, 03 Mar 2022)


Log Message
Add a new "Daemon -> Client" message type to webpushd
https://bugs.webkit.org/show_bug.cgi?id=237391

Reviewed by Alex Christensen.

Future work will need more messages like this.
So let's add the mechanism in a small standalone patch that uses it for debug messages.

No behavior change for now.

* NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:
(WebKit::WebPushD::handleWebPushDaemonMessage):
(WebKit::WebPushD::Connection::connectionReceivedEvent):
(WebKit::WebPushD::Connection::connectionReceivedEvent const): Deleted.

* NetworkProcess/Notifications/WebPushDaemonConnection.cpp:
(WebKit::WebPushD::Connection::debugMessage):
* NetworkProcess/Notifications/WebPushDaemonConnection.h:

* NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:
* NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementConnectionCocoa.mm:
(WebKit::PCM::Connection::connectionReceivedEvent):
(WebKit::PCM::Connection::connectionReceivedEvent const): Deleted.

* Platform/IPC/DaemonConnection.h:

* Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::daemonMessageTypeSendsReply):

* webpushd/ICAppBundle.mm:
(WebPushD::broadcastDebugMessage):

* webpushd/PushClientConnection.h:
* webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::broadcastDebugMessage):
(WebPushD::ClientConnection::sendDebugMessage):
(WebPushD::ClientConnection::sendDaemonMessage const):

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::broadcastDebugMessage):
(WebPushD::Daemon::broadcastAllConnectionIdentities):
(WebPushD::Daemon::connectionAdded):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm
trunk/Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementConnectionCocoa.mm
trunk/Source/WebKit/Platform/IPC/DaemonConnection.h
trunk/Source/WebKit/Shared/WebPushDaemonConstants.h
trunk/Source/WebKit/webpushd/ICAppBundle.mm
trunk/Source/WebKit/webpushd/PushClientConnection.h
trunk/Source/WebKit/webpushd/PushClientConnection.mm
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (290817 => 290818)

--- trunk/Source/WebKit/ChangeLog	2022-03-04 06:38:04 UTC (rev 290817)
+++ trunk/Source/WebKit/ChangeLog	2022-03-04 06:58:01 UTC (rev 290818)
@@ -1,3 +1,49 @@
+2022-03-03  Brady Eidson  
+
+Add a new "Daemon -> Client" message type to webpushd
+https://bugs.webkit.org/show_bug.cgi?id=237391
+
+Reviewed by Alex Christensen.
+
+Future work will need more messages like this.
+So let's add the mechanism in a small standalone patch that uses it for debug messages.
+
+No behavior change for now.
+
+* NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:
+(WebKit::WebPushD::handleWebPushDaemonMessage):
+(WebKit::WebPushD::Connection::connectionReceivedEvent):
+(WebKit::WebPushD::Connection::connectionReceivedEvent const): Deleted.
+
+* NetworkProcess/Notifications/WebPushDaemonConnection.cpp:
+(WebKit::WebPushD::Connection::debugMessage):
+* NetworkProcess/Notifications/WebPushDaemonConnection.h:
+
+* NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:
+* NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementConnectionCocoa.mm:
+(WebKit::PCM::Connection::connectionReceivedEvent):
+(WebKit::PCM::Connection::connectionReceivedEvent const): Deleted.
+
+* Platform/IPC/DaemonConnection.h:
+
+* Shared/WebPushDaemonConstants.h:
+(WebKit::WebPushD::daemonMessageTypeSendsReply):
+
+* webpushd/ICAppBundle.mm:
+(WebPushD::broadcastDebugMessage):
+
+* webpushd/PushClientConnection.h:
+* webpushd/PushClientConnection.mm:
+(WebPushD::ClientConnection::broadcastDebugMessage):
+(WebPushD::ClientConnection::sendDebugMessage):
+(WebPushD::ClientConnection::sendDaemonMessage const):
+
+* webpushd/WebPushDaemon.h:
+* webpushd/WebPushDaemon.mm:
+(WebPushD::Daemon::broadcastDebugMessage):
+(WebPushD::Daemon::broadcastAllConnectionIdentities):
+(WebPushD::Daemon::connectionAdded):
+
 2022-03-03  Ross Kirsling  
 
 REGRESSION(r290815): Fix even more incorrect #if ENABLE(SERVICE_WORKER) usage in NetworkProcess


Modified: trunk/Source/WebKit/NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm (290817 => 

[webkit-changes] [290146] trunk

2022-02-18 Thread beidson
Title: [290146] trunk








Revision 290146
Author beid...@apple.com
Date 2022-02-18 11:01:21 -0800 (Fri, 18 Feb 2022)


Log Message
Add an InstallCoordination webpushd backend
https://bugs.webkit.org/show_bug.cgi?id=233714

Reviewed by Alex Christensen.

Source/WebCore/PAL:

Expose "toHexString" so we can SHA256 an arbitrary string to a hex representation.

* pal/crypto/CryptoDigest.h:
* pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp:
(PAL::CryptoDigest::toHexString):

Source/WebKit:

Covered by API tests.

This patch lets the iOS build create a placeholder app bundle to represent a registration using InstallCoordination.

* Configurations/webpushd.xcconfig:
* WebKit.xcodeproj/project.pbxproj:

* webpushd/AppBundleRequest.mm:
(WebPushD::AppBundleRequest::start): Use the ICAppBundle implementation when appropriate.

* webpushd/ICAppBundle.h: Copied from Source/WebKit/webpushd/PushAppBundle.h.
(WebPushD::ICAppBundle::create):

* webpushd/ICAppBundle.mm: Added.
(-[WebAppInstallCoordinatorObserver initWithICAppBundle:]):
(-[WebAppInstallCoordinatorObserver coordinatorDidCompleteSuccessfully:forApplicationRecord:]):
(-[WebAppInstallCoordinatorObserver coordinator:canceledWithReason:client:]):
(WebPushD::broadcastDebugMessage):
(WebPushD::ICAppBundle::ICAppBundle):
(WebPushD::encodeOriginStringForBundleIdentifier):
(WebPushD::originStringFromEncodedBundleIdentifier):
(WebPushD::bundlePrefixForHostAppIdentifier):
(WebPushD::bundleNameForOriginStringAndHostAppIdentifier):
(WebPushD::ICAppBundle::getOriginsWithRegistrations):
(WebPushD::ICAppBundle::getBundleIdentifier):
(WebPushD::ICAppBundle::checkForExistingBundle):
(WebPushD::ICAppBundle::deleteExistingBundle):
(WebPushD::ICAppBundle::didDeleteExistingBundleWithError):
(WebPushD::ICAppBundle::stop):
(WebPushD::ICAppBundle::createBundle):
(WebPushD::ICAppBundle::bundleCreationSucceeded):
(WebPushD::ICAppBundle::bundleCreationFailed):

* webpushd/InstallCoordinationSPI.h: Added.
* webpushd/LaunchServicesSPI.h: Copied from Source/WebKit/webpushd/PushAppBundle.h.
* webpushd/PushAppBundle.h:

* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions): Use the ICAppBundle implementation when appropriate.

Source/WTF:

* wtf/PlatformEnableCocoa.h:

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

WebKitLibraries:

* WebKitPrivateFrameworkStubs/iOS/15/InstallCoordination.framework/InstallCoordination.tbd: Added.

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/PlatformEnableCocoa.h
trunk/Source/WebCore/PAL/ChangeLog
trunk/Source/WebCore/PAL/pal/crypto/CryptoDigest.h
trunk/Source/WebCore/PAL/pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Configurations/WebKit.xcconfig
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/AppBundleRequest.mm
trunk/Source/WebKit/webpushd/PushAppBundle.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
trunk/WebKitLibraries/ChangeLog


Added Paths

trunk/Source/WebKit/webpushd/ICAppBundle.h
trunk/Source/WebKit/webpushd/ICAppBundle.mm
trunk/Source/WebKit/webpushd/InstallCoordinationSPI.h
trunk/Source/WebKit/webpushd/LaunchServicesSPI.h
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/InstallCoordination.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/InstallCoordination.framework/InstallCoordination.tbd




Diff

Modified: trunk/Source/WTF/ChangeLog (290145 => 290146)

--- trunk/Source/WTF/ChangeLog	2022-02-18 18:59:32 UTC (rev 290145)
+++ trunk/Source/WTF/ChangeLog	2022-02-18 19:01:21 UTC (rev 290146)
@@ -1,3 +1,12 @@
+2022-02-18  Brady Eidson  
+
+Add an InstallCoordination webpushd backend
+https://bugs.webkit.org/show_bug.cgi?id=233714
+
+Reviewed by Alex Christensen.
+
+* wtf/PlatformEnableCocoa.h:
+
 2022-02-17  Matt Woodrow  
 
 Enable subgrid by default.


Modified: trunk/Source/WTF/wtf/PlatformEnableCocoa.h (290145 => 290146)

--- trunk/Source/WTF/wtf/PlatformEnableCocoa.h	2022-02-18 18:59:32 UTC (rev 290145)
+++ trunk/Source/WTF/wtf/PlatformEnableCocoa.h	2022-02-18 19:01:21 UTC (rev 290146)
@@ -143,6 +143,10 @@
 #define ENABLE_BUILT_IN_NOTIFICATIONS 1
 #endif
 
+#if !defined(ENABLE_INSTALL_COORDINATION_BUNDLES) && PLATFORM(IOS)
+#define ENABLE_INSTALL_COORDINATION_BUNDLES 1
+#endif
+
 #if !defined(ENABLE_CACHE_PARTITIONING)
 #define ENABLE_CACHE_PARTITIONING 1
 #endif


Modified: trunk/Source/WebCore/PAL/ChangeLog (290145 => 290146)

--- trunk/Source/WebCore/PAL/ChangeLog	2022-02-18 18:59:32 UTC (rev 290145)
+++ trunk/Source/WebCore/PAL/ChangeLog	2022-02-18 19:01:21 UTC (rev 290146)
@@ -1,3 +1,16 @@
+2022-02-18  Brady Eidson  
+
+Add an InstallCoordination webpushd backend
+

[webkit-changes] [289866] trunk

2022-02-15 Thread beidson
Title: [289866] trunk








Revision 289866
Author beid...@apple.com
Date 2022-02-15 17:25:22 -0800 (Tue, 15 Feb 2022)


Log Message
Implement ServiceWorkerRegistration.getNotifications().
https://bugs.webkit.org/show_bug.cgi?id=236545

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/workers/service/getnotifications.html

Until we figure out just how "persistent" we want persistent notifications from service workers to be,
this is an impementation of getNotifications() that works for the current running of the user agent.

* Modules/notifications/Notification.cpp:
(WebCore::Notification::Notification):
(WebCore::Notification::~Notification):
(WebCore::Notification::copyForGetNotifications const):
(WebCore::Notification::contextDestroyed):
(WebCore::Notification::close):
* Modules/notifications/Notification.h:

* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::getNotifications):
(WebCore::ServiceWorkerRegistration::addNotificationToList):
(WebCore::ServiceWorkerRegistration::removeNotificationFromList):
(WebCore::ServiceWorkerRegistration::filteredNotificationList):
* workers/service/ServiceWorkerRegistration.h:

LayoutTests:

* http/tests/workers/service/getnotifications-expected.txt: Added.
* http/tests/workers/service/getnotifications.html: Added.
* http/tests/workers/service/resources/shownotification-worker.js:
(async tryShow):
(async getNotes):
(async event):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/workers/service/resources/shownotification-worker.js
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/notifications/Notification.cpp
trunk/Source/WebCore/Modules/notifications/Notification.h
trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.cpp
trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.h


Added Paths

trunk/LayoutTests/http/tests/workers/service/getnotifications-expected.txt
trunk/LayoutTests/http/tests/workers/service/getnotifications.html




Diff

Modified: trunk/LayoutTests/ChangeLog (289865 => 289866)

--- trunk/LayoutTests/ChangeLog	2022-02-16 00:51:49 UTC (rev 289865)
+++ trunk/LayoutTests/ChangeLog	2022-02-16 01:25:22 UTC (rev 289866)
@@ -1,3 +1,17 @@
+2022-02-15  Brady Eidson  
+
+Implement ServiceWorkerRegistration.getNotifications().
+https://bugs.webkit.org/show_bug.cgi?id=236545
+
+Reviewed by Alex Christensen.
+
+* http/tests/workers/service/getnotifications-expected.txt: Added.
+* http/tests/workers/service/getnotifications.html: Added.
+* http/tests/workers/service/resources/shownotification-worker.js:
+(async tryShow):
+(async getNotes):
+(async event):
+
 2022-02-15  Fujii Hironori  
 
 fast/filter-image/filter-image-svg.html is failing to load the image due to a wrong path


Added: trunk/LayoutTests/http/tests/workers/service/getnotifications-expected.txt (0 => 289866)

--- trunk/LayoutTests/http/tests/workers/service/getnotifications-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/workers/service/getnotifications-expected.txt	2022-02-16 01:25:22 UTC (rev 289866)
@@ -0,0 +1,43 @@
+This tests that persistent notifications created by a service worker are visible to getNotifications()
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Notification.permission is "granted"
+Got notifications
+There are 0 notifications
+
+Notification was shown
+Notification was shown
+Notification was shown
+Got notifications
+There are 3 notifications
+Title: Hello
+Body: Body1
+Tag: tag-a
+Title: There
+Body: Body2
+Tag: tag-b
+Title: Buddy
+Body: Body3
+Tag: tag-b
+
+Got notifications
+There are 1 notifications
+Title: Hello
+Body: Body1
+Tag: tag-a
+
+Got notifications
+There are 2 notifications
+Title: There
+Body: Body2
+Tag: tag-b
+Title: Buddy
+Body: Body3
+Tag: tag-b
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/http/tests/workers/service/getnotifications.html (0 => 289866)

--- trunk/LayoutTests/http/tests/workers/service/getnotifications.html	(rev 0)
+++ trunk/LayoutTests/http/tests/workers/service/getnotifications.html	2022-02-16 01:25:22 UTC (rev 289866)
@@ -0,0 +1,91 @@
+
+
+
+function failTheTest(msg)
+{
+testFailed(msg);
+if (testRunner)
+testRunner.notifyDone();
+}
+
+if (window.testRunner) {
+testRunner.waitUntilDone();
+testRunner.grantWebNotificationPermission(testURL);
+}
+
+description("This tests that persistent notifications created by a service worker are visible to getNotifications()");
+
+shouldBeEqualToString("Notification.permission", "granted");
+
+async function registerServiceWorker() {
+var registration = await navigator.serviceWorker.register('resources/shownotification-worker.js');
+
+if (!registration)
+return testFailed("No registration");
+
+if (registration.active) {
+

[webkit-changes] [289153] trunk/Source

2022-02-05 Thread beidson
Title: [289153] trunk/Source








Revision 289153
Author beid...@apple.com
Date 2022-02-05 00:10:36 -0800 (Sat, 05 Feb 2022)


Log Message
Notification refactoring
https://bugs.webkit.org/show_bug.cgi?id=236169

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No behavior change)

Some "no behavior change" refactors broken out from an upcoming larger patch, including:
- Make Notification objects reliant on ScriptExecutionContext instead of Document
- Give them a direct path to a NotificationClient instead of having to go through a Page's NotificationController
- Give ScriptExecutionContext's a sessionID() accessor for future use
- Some Notification object threading hardening

* Modules/notifications/Notification.cpp:
(WebCore::Notification::create):
(WebCore::Notification::Notification):
(WebCore::Notification::show):
(WebCore::Notification::close):
(WebCore::Notification::clientFromContext):
(WebCore::Notification::stop):
(WebCore::Notification::dispatchErrorEvent):
(WebCore::Notification::permission):
(WebCore::Notification::requestPermission):
(WebCore::Notification::data const):
(WebCore::Notification::document const): Deleted.
* Modules/notifications/Notification.h:

* Modules/notifications/NotificationClient.h:

* Modules/notifications/NotificationData.h:
(WebCore::NotificationData::encode const):
(WebCore::NotificationData::decode):

* dom/Document.cpp:
(WebCore::Document::notificationClient):
(WebCore::Document::sessionID const):
* dom/Document.h:

* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::isServiceWorkerGlobalScope const):
(WebCore::ScriptExecutionContext::notificationClient):
(WebCore::ScriptExecutionContext::sessionID const):

* workers/WorkerThread.h:

* workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):
* workers/service/ServiceWorkerGlobalScope.h:

* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::generateWorkerParameters):
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::m_notificationClient):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):
* workers/service/context/ServiceWorkerThread.h:

* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
* workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/notifications/Notification.cpp
trunk/Source/WebCore/Modules/notifications/Notification.h
trunk/Source/WebCore/Modules/notifications/NotificationClient.h
trunk/Source/WebCore/Modules/notifications/NotificationData.h
trunk/Source/WebCore/dom/Document.cpp
trunk/Source/WebCore/dom/Document.h
trunk/Source/WebCore/dom/ScriptExecutionContext.h
trunk/Source/WebCore/workers/WorkerThread.cpp
trunk/Source/WebCore/workers/WorkerThread.h
trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp
trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.h
trunk/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp
trunk/Source/WebCore/workers/service/context/ServiceWorkerThread.h
trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp
trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (289152 => 289153)

--- trunk/Source/WebCore/ChangeLog	2022-02-05 07:26:52 UTC (rev 289152)
+++ trunk/Source/WebCore/ChangeLog	2022-02-05 08:10:36 UTC (rev 289153)
@@ -1,3 +1,66 @@
+2022-02-05  Brady Eidson  
+
+Notification refactoring
+https://bugs.webkit.org/show_bug.cgi?id=236169
+
+Reviewed by Alex Christensen.
+
+No new tests (No behavior change)
+
+Some "no behavior change" refactors broken out from an upcoming larger patch, including:
+- Make Notification objects reliant on ScriptExecutionContext instead of Document
+- Give them a direct path to a NotificationClient instead of having to go through a Page's NotificationController
+- Give ScriptExecutionContext's a sessionID() accessor for future use
+- Some Notification object threading hardening
+
+* Modules/notifications/Notification.cpp:
+(WebCore::Notification::create):
+(WebCore::Notification::Notification):
+(WebCore::Notification::show):
+(WebCore::Notification::close):
+(WebCore::Notification::clientFromContext):
+(WebCore::Notification::stop):
+(WebCore::Notification::dispatchErrorEvent):
+(WebCore::Notification::permission):
+(WebCore::Notification::requestPermission):
+(WebCore::Notification::data const):
+

[webkit-changes] [288078] trunk

2022-01-16 Thread beidson
Title: [288078] trunk








Revision 288078
Author beid...@apple.com
Date 2022-01-16 19:35:16 -0800 (Sun, 16 Jan 2022)


Log Message
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open
  UniqueIDBDatabases, only add them to the results list if their origins match.

* page/ClientOrigin.h:
(WebCore::ClientOrigin::operator!= const):

LayoutTests:

* http/tests/security/getdatabases-crossorigin-expected.txt: Added.
* http/tests/security/getdatabases-crossorigin.html: Added.
* http/tests/security/resources/getdatabases-otherframe.html: Added.
* http/tests/security/resources/getdatabases-otherwindow.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
trunk/Source/WebCore/page/ClientOrigin.h


Added Paths

trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt
trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html
trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html
trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html




Diff

Modified: trunk/LayoutTests/ChangeLog (288077 => 288078)

--- trunk/LayoutTests/ChangeLog	2022-01-17 01:04:56 UTC (rev 288077)
+++ trunk/LayoutTests/ChangeLog	2022-01-17 03:35:16 UTC (rev 288078)
@@ -1,3 +1,15 @@
+2022-01-16  Brady Eidson  
+
+database names leak cross-origin within the same browser session
+https://bugs.webkit.org/show_bug.cgi?id=233548
+
+Reviewed by Geoff Garen.
+
+* http/tests/security/getdatabases-crossorigin-expected.txt: Added.
+* http/tests/security/getdatabases-crossorigin.html: Added.
+* http/tests/security/resources/getdatabases-otherframe.html: Added.
+* http/tests/security/resources/getdatabases-otherwindow.html: Added.
+
 2022-01-16  Fujii Hironori  
 
 [WinCairo] Unreviewed test gardening


Added: trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt (0 => 288078)

--- trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt	2022-01-17 03:35:16 UTC (rev 288078)
@@ -0,0 +1,4 @@
+CONSOLE MESSAGE: Message received from other context
+CONSOLE MESSAGE: Message received from other context
+CONSOLE MESSAGE: PASS
+


Added: trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html (0 => 288078)

--- trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html	(rev 0)
+++ trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html	2022-01-17 03:35:16 UTC (rev 288078)
@@ -0,0 +1,43 @@
+
+
+
+
+
+if (window.location.hostname == "localhost")
+console.log("FAIL: Must be run as 127.0.0.1, not localhost");
+
+if (window.testRunner) {
+testRunner.dumpAsText();
+testRunner.waitUntilDone();
+}
+
+var messagesReceived = 0;
+
+window._onmessage_ = function(event) {
+console.log("Message received from other context")
+
+if (++messagesReceived < 2)
+return;
+
+indexedDB.databases().then((result) => {
+databases = result;
+if (databases.length != 0)
+console.log("FAIL: There are " + databases.length + " database(s) when there should be 0");
+else
+console.log("PASS");
+if (testRunner)
+testRunner.notifyDone();
+});
+};
+
+function openOtherWindow()
+{
+window.open("http://localhost:8000/security/resources/getdatabases-otherwindow.html")
+}
+
+
+
+
+
+
\ No newline at end of file


Added: trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html (0 => 288078)

--- trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html	(rev 0)
+++ trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html	2022-01-17 03:35:16 UTC (rev 288078)
@@ -0,0 +1,9 @@
+
+
+indexedDB.deleteDatabase('getdatabase-otherframe')._onsuccess_ = () => {
+indexedDB.open('getdatabase-otherframe')._onsuccess_ = () => {
+window.parent.postMessage("Hi there!", "*");
+}
+}
+
+


Added: trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html (0 => 288078)

--- trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html	(rev 0)
+++ trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html	2022-01-17 03:35:16 UTC (rev 288078)
@@ -0,0 +1,9 @@
+
+
+indexedDB.deleteDatabase('getdatabase-otherwindow')._onsuccess_ = () => {
+indexedDB.open('getdatabase-otherwindow')._onsuccess_ = () => {
+  

[webkit-changes] [287412] trunk

2021-12-23 Thread beidson
Title: [287412] trunk








Revision 287412
Author beid...@apple.com
Date 2021-12-23 13:50:28 -0800 (Thu, 23 Dec 2021)


Log Message
Add WTF::UUID class which is natively a 128-bit integer
https://bugs.webkit.org/show_bug.cgi?id=234571

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Refactor, covered by existing tests)

* Modules/notifications/NotificationData.h:
(WebCore::NotificationData::decode):

Source/WebKit:

Notifications - which are UUID identified - are now addressed by a UUID object instead of a v4 UUID string.

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::cancelNotification):
(WebKit::NetworkNotificationManager::clearNotifications):
(WebKit::NetworkNotificationManager::didDestroyNotification):
* NetworkProcess/Notifications/NetworkNotificationManager.h:

* Scripts/webkit/messages.py:
(forward_declarations_and_headers_for_replies):
(headers_for_type):

* Shared/Notifications/NotificationManagerMessageHandler.h:
* Shared/Notifications/NotificationManagerMessageHandler.messages.in:

* UIProcess/API/C/WKNotification.cpp:
(WKNotificationCopyCoreIDForTesting):
* UIProcess/API/C/WKNotification.h:

* UIProcess/API/C/WKNotificationManager.cpp:
(WKNotificationManagerProviderDidClickNotification_b):
* UIProcess/API/C/WKNotificationManager.h:

* UIProcess/Notifications/WebNotification.h:
(WebKit::WebNotification::coreNotificationID const):

* UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:
(WebKit::WebNotificationManagerMessageHandler::cancelNotification):
(WebKit::WebNotificationManagerMessageHandler::clearNotifications):
(WebKit::WebNotificationManagerMessageHandler::didDestroyNotification):
* UIProcess/Notifications/WebNotificationManagerMessageHandler.h:

* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::cancel):
(WebKit::WebNotificationManagerProxy::didDestroyNotification):
(WebKit::pageIDsMatch):
(WebKit::pageAndNotificationIDsMatch):
(WebKit::WebNotificationManagerProxy::clearNotifications):
(WebKit::WebNotificationManagerProxy::providerDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):
* UIProcess/Notifications/WebNotificationManagerProxy.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::cancelNotification):
(WebKit::WebPageProxy::clearNotifications):
(WebKit::WebPageProxy::didDestroyNotification):
* UIProcess/WebPageProxy.h:

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleCopyWebNotificationID):
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::webNotificationID):
* WebProcess/InjectedBundle/InjectedBundle.h:

* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::didShowNotification):
(WebKit::WebNotificationManager::didClickNotification):
(WebKit::WebNotificationManager::didCloseNotifications):
* WebProcess/Notifications/WebNotificationManager.h:
* WebProcess/Notifications/WebNotificationManager.messages.in:

Source/WTF:

This patch adds a new WTF::UUID class.

For now, it is simply a wrapper around a 128-bit integer, and creating a new one primes that integer with
cryptographically random data.

It can be encoded/decoded as well as used as a HashKey.

And it will be a great utility to use as a unique object identifier for objects that logically exist
in multiple processes.

On that note, it also changes "UUIDIdentifier" to use this new UUID class instead of a v4 UUID string.

* wtf/Identified.h:
(WTF::UUIDIdentified::UUIDIdentified):

* wtf/UUID.cpp:
(WTF::UUID::UUID):
(WTF::UUID::toVector const):
(WTF::UUID::hash const):

* wtf/UUID.h:
(WTF::UUID::create):
(WTF::UUID::UUID):
(WTF::UUID::operator== const):
(WTF::UUID::data const):
(WTF::UUID::isHashTableDeletedValue const):
(WTF::UUIDHash::hash):
(WTF::UUIDHash::equal):
(WTF::HashTraits::emptyValue):
(WTF::HashTraits::constructDeletedValue):
(WTF::HashTraits::isDeletedValue):
(WTF::UUID::encode const):
(WTF::UUID::decode):

Tools:

Notifications - which are UUID identified - are now addressed by a UUID object instead of a v4 UUID string.

The way our C-API vends that UUID object is through a data object, so change WKTR to account for that.

* WebKitTestRunner/DataFunctions.h: Copied from Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h.
(WTR::dataValue):
(WTR::dataToUUID):
(WTR::uuidToData):

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::postSimulateWebNotificationClick):
(WTR::postPageMessage):
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::simulateWebNotificationClick):
* WebKitTestRunner/TestController.h:

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:

* WebKitTestRunner/WebNotificationProvider.cpp:

[webkit-changes] [287339] trunk

2021-12-21 Thread beidson
Title: [287339] trunk








Revision 287339
Author beid...@apple.com
Date 2021-12-21 18:31:40 -0800 (Tue, 21 Dec 2021)


Log Message
Make Notification identifiers be a UUID string instead of a uint64_t
https://bugs.webkit.org/show_bug.cgi?id=234534

Reviewed by Alex Christensen.
Source/WebCore:

No new tests (Refactor, covered by existing tests)

Before this patch, Notifications were tagged with an in-WebContent-process-unique identifier
and also tagged with a UIProcess-unique identifier.

There were maps between these two identifiers in WebKit, and both of them were exposed via API/SPI
(e.g. through the injected bundle), necessitating maps between them in WKTR as well.

This simplifies things by making a UUID identifier in the WebContent process that can be treated
as the One True Identifier within WebKit.

There's existing SPI clients that rely on the UIProcess-unique uin64_t identifier, so we sadly
couldn't get rid of that entirely. But this patch still puts us in a much better place.

* Modules/notifications/Notification.cpp:
(WebCore::Notification::show):
(WebCore::Notification::close):
(WebCore::Notification::stop):
(WebCore::Notification::data const):
(WebCore::Notification::dataWithoutNotificationID const): Deleted.
* Modules/notifications/Notification.h:

* Modules/notifications/NotificationClient.h:
(WebCore::NotificationClient::clearNotifications): Deleted.
* Modules/notifications/NotificationData.h:
(WebCore::NotificationData::decode):

Source/WebKit:

This is mostly changing a whole bunch of uint64_ts to Strings, but also gets rid of lots of weird
and fragile maps.

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::cancelNotification):
(WebKit::NetworkNotificationManager::clearNotifications):
(WebKit::NetworkNotificationManager::didDestroyNotification):
* NetworkProcess/Notifications/NetworkNotificationManager.h:
* Shared/Notifications/NotificationManagerMessageHandler.h:
* Shared/Notifications/NotificationManagerMessageHandler.messages.in:

* UIProcess/API/C/WKNotification.cpp:
(WKNotificationCopyCoreIDForTesting):
* UIProcess/API/C/WKNotification.h:

* UIProcess/API/C/WKNotificationManager.cpp:
(WKNotificationManagerProviderDidClickNotification_b):
(WKNotificationManagerProviderDidRemoveNotificationPolicies):
(WKNotificationManagerGetLocalIDForTesting): Deleted.
* UIProcess/API/C/WKNotificationManager.h:

* UIProcess/Notifications/WebNotification.cpp:
(WebKit::WebNotification::WebNotification):
* UIProcess/Notifications/WebNotification.h:
(WebKit::WebNotification::create):
(WebKit::WebNotification::notificationID const):
(WebKit::WebNotification::coreNotificationID const):
(WebKit::WebNotification::pageIdentifier const):

* UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:
(WebKit::WebNotificationManagerMessageHandler::cancelNotification):
(WebKit::WebNotificationManagerMessageHandler::clearNotifications):
(WebKit::WebNotificationManagerMessageHandler::didDestroyNotification):
* UIProcess/Notifications/WebNotificationManagerMessageHandler.h:

* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::show):
(WebKit::WebNotificationManagerProxy::cancel):
(WebKit::WebNotificationManagerProxy::didDestroyNotification):
(WebKit::pageIDsMatch):
(WebKit::pageAndNotificationIDsMatch):
(WebKit::WebNotificationManagerProxy::clearNotifications):
(WebKit::WebNotificationManagerProxy::providerDidShowNotification):
(WebKit::WebNotificationManagerProxy::providerDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):
(WebKit::generateGlobalNotificationID): Deleted.
(WebKit::WebNotificationManagerProxy::notificationLocalIDForTesting): Deleted.
* UIProcess/Notifications/WebNotificationManagerProxy.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::cancelNotification):
(WebKit::WebPageProxy::clearNotifications):
(WebKit::WebPageProxy::didDestroyNotification):
* UIProcess/WebPageProxy.h:

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleCopyWebNotificationID):
(WKBundleGetWebNotificationID): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::webNotificationID):
* WebProcess/InjectedBundle/InjectedBundle.h:

* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::cancel):
(WebKit::WebNotificationManager::didDestroyNotification):
(WebKit::WebNotificationManager::didShowNotification):
(WebKit::WebNotificationManager::didClickNotification):
(WebKit::WebNotificationManager::didCloseNotifications):
(WebKit::generateNotificationID): Deleted.
(WebKit::WebNotificationManager::notificationIDForTesting): Deleted.
(WebKit::WebNotificationManager::clearNotifications): Deleted.
(WebKit::WebNotificationManager::removeNotificationFromContextMap): Deleted.
* WebProcess/Notifications/WebNotificationManager.h:
* 

[webkit-changes] [287253] trunk/Source

2021-12-19 Thread beidson
Title: [287253] trunk/Source








Revision 287253
Author beid...@apple.com
Date 2021-12-19 21:03:26 -0800 (Sun, 19 Dec 2021)


Log Message
Stub out NotificationEvent and related
https://bugs.webkit.org/show_bug.cgi?id=234420

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Disabled for now, no behavior change)

This patch adds stubs for NotificationEvent and the related classes/functions that use it.

Enabling just the stubs throws LayoutTests into a chaotic state that is not useful to manage with
test expectations files. So this also puts the related changes behind a disabled-by-default runtime switch.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

* Modules/notifications/Notification.h:
* Modules/notifications/Notification.idl:

* Modules/notifications/NotificationDirection.idl: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl.

* Modules/notifications/NotificationEvent.cpp: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl.
(WebCore::NotificationEvent::~NotificationEvent):
* Modules/notifications/NotificationEvent.h: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl.
* Modules/notifications/NotificationEvent.idl: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl.

* Modules/notifications/NotificationOptions.h: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl.
* Modules/notifications/NotificationOptions.idl: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl.

* bindings/js/WebCoreBuiltinNames.h:

* dom/EventNames.h:
* dom/EventNames.in:

* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setNotificationEventEnabled):
(WebCore::RuntimeEnabledFeatures::notificationEventEnabled const):

* workers/service/ServiceWorkerGlobalScope.idl:

* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::showNotification):
(WebCore::ServiceWorkerRegistration::getNotifications):
* workers/service/ServiceWorkerRegistration.h:
* workers/service/ServiceWorkerRegistration.idl:

Source/WTF:

* Scripts/Preferences/WebPreferencesInternal.yaml:

* wtf/PlatformEnable.h:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml
trunk/Source/WTF/wtf/PlatformEnable.h
trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources-input.xcfilelist
trunk/Source/WebCore/DerivedSources-output.xcfilelist
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/Modules/notifications/Notification.h
trunk/Source/WebCore/Modules/notifications/Notification.idl
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h
trunk/Source/WebCore/dom/EventNames.h
trunk/Source/WebCore/dom/EventNames.in
trunk/Source/WebCore/page/RuntimeEnabledFeatures.h
trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl
trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.cpp
trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.h
trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.idl


Added Paths

trunk/Source/WebCore/Modules/notifications/NotificationDirection.idl
trunk/Source/WebCore/Modules/notifications/NotificationEvent.cpp
trunk/Source/WebCore/Modules/notifications/NotificationEvent.h
trunk/Source/WebCore/Modules/notifications/NotificationEvent.idl
trunk/Source/WebCore/Modules/notifications/NotificationOptions.h
trunk/Source/WebCore/Modules/notifications/NotificationOptions.idl




Diff

Modified: trunk/Source/WTF/ChangeLog (287252 => 287253)

--- trunk/Source/WTF/ChangeLog	2021-12-20 03:37:38 UTC (rev 287252)
+++ trunk/Source/WTF/ChangeLog	2021-12-20 05:03:26 UTC (rev 287253)
@@ -1,3 +1,14 @@
+2021-12-19  Brady Eidson  
+
+Stub out NotificationEvent and related
+https://bugs.webkit.org/show_bug.cgi?id=234420
+
+Reviewed by Alex Christensen.
+
+* Scripts/Preferences/WebPreferencesInternal.yaml:
+
+* wtf/PlatformEnable.h:
+
 2021-12-18  Darin Adler  
 
 Hash tables, read/write, and heap memory are used unnecessarily, which may hurt performance


Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml (287252 => 287253)

--- trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml	2021-12-20 03:37:38 UTC (rev 287252)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml	2021-12-20 05:03:26 UTC (rev 287253)
@@ -596,6 +596,18 @@
 WebKitLegacy:
   default: false
 
+NotificationEventEnabled:
+  type: bool
+  humanReadableName: "NotificationEvent support"
+  humanReadableDescription: "NotificationEvent and ServiceWorkerRegistration.showNotification() support"
+  webcoreBinding: RuntimeEnabledFeatures
+  condition: ENABLE(NOTIFICATION_EVENT)
+ 

[webkit-changes] [287125] trunk/Source/WebKit

2021-12-15 Thread beidson
Title: [287125] trunk/Source/WebKit








Revision 287125
Author beid...@apple.com
Date 2021-12-15 20:33:12 -0800 (Wed, 15 Dec 2021)


Log Message
Some webpushtool improvements.
https://bugs.webkit.org/show_bug.cgi?id=234372

Reviewed by Alex Christensen.

- Make the list of current connections be reliably ordered
- If the invocation is solely about injecting a push message, exit afterwards
- Some other tiny niceties

* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::broadcastAllConnectionIdentities):
(WebPushD::Daemon::injectPushMessageForTesting):

* webpushd/webpushtool/WebPushToolConnection.h:
* webpushd/webpushtool/WebPushToolConnection.mm:
(WebPushTool::Connection::create):
(WebPushTool::Connection::Connection):
(WebPushTool::Connection::connectToService):
(WebPushTool::Connection::startAction):
(WebPushTool::Connection::sendPushMessage):

* webpushd/webpushtool/WebPushToolMain.mm:
(main):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (287124 => 287125)

--- trunk/Source/WebKit/ChangeLog	2021-12-16 03:46:06 UTC (rev 287124)
+++ trunk/Source/WebKit/ChangeLog	2021-12-16 04:33:12 UTC (rev 287125)
@@ -1,5 +1,31 @@
 2021-12-15  Brady Eidson  
 
+Some webpushtool improvements.
+https://bugs.webkit.org/show_bug.cgi?id=234372
+
+Reviewed by Alex Christensen.
+
+- Make the list of current connections be reliably ordered
+- If the invocation is solely about injecting a push message, exit afterwards
+- Some other tiny niceties
+
+* webpushd/WebPushDaemon.mm:
+(WebPushD::Daemon::broadcastAllConnectionIdentities):
+(WebPushD::Daemon::injectPushMessageForTesting):
+
+* webpushd/webpushtool/WebPushToolConnection.h:
+* webpushd/webpushtool/WebPushToolConnection.mm:
+(WebPushTool::Connection::create):
+(WebPushTool::Connection::Connection):
+(WebPushTool::Connection::connectToService):
+(WebPushTool::Connection::startAction):
+(WebPushTool::Connection::sendPushMessage):
+
+* webpushd/webpushtool/WebPushToolMain.mm:
+(main):
+
+2021-12-15  Brady Eidson  
+
 Add a "NotificationData" object to encompass local Notification-related parameters, instead of passing tons of them around everywhere.
 https://bugs.webkit.org/show_bug.cgi?id=234370
 


Modified: trunk/Source/WebKit/webpushd/WebPushDaemon.mm (287124 => 287125)

--- trunk/Source/WebKit/webpushd/WebPushDaemon.mm	2021-12-16 03:46:06 UTC (rev 287124)
+++ trunk/Source/WebKit/webpushd/WebPushDaemon.mm	2021-12-16 04:33:12 UTC (rev 287125)
@@ -188,8 +188,14 @@
 void Daemon::broadcastAllConnectionIdentities()
 {
 broadcastDebugMessage((JSC::MessageLevel)4, "===\nCurrent connections:");
-for (auto& iterator : m_connectionMap)
-iterator.value->broadcastDebugMessage("");
+
+auto connections = copyToVector(m_connectionMap.values());
+std::sort(connections.begin(), connections.end(), [] (const Ref& a, const Ref& b) {
+return a->identifier() < b->identifier();
+});
+
+for (auto& iterator : connections)
+iterator->broadcastDebugMessage("");
 broadcastDebugMessage((JSC::MessageLevel)4, "===");
 }
 
@@ -350,7 +356,7 @@
 return;
 }
 
-connection->broadcastDebugMessage(makeString("Injected a test push messasge for ", message.targetAppCodeSigningIdentifier, " at ", message.registrationURL.string()));
+connection->broadcastDebugMessage(makeString("Injected a test push message for ", message.targetAppCodeSigningIdentifier, " at ", message.registrationURL.string()));
 connection->broadcastDebugMessage(message.message);
 
 auto addResult = m_testingPushMessages.ensure(message.targetAppCodeSigningIdentifier, [] {


Modified: trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h (287124 => 287125)

--- trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h	2021-12-16 03:46:06 UTC (rev 287124)
+++ trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h	2021-12-16 04:33:12 UTC (rev 287125)
@@ -58,8 +58,8 @@
 class Connection : public CanMakeWeakPtr {
 WTF_MAKE_FAST_ALLOCATED;
 public:
-static std::unique_ptr create(Action, PreferTestService, Reconnect);
-Connection(Action, PreferTestService, Reconnect);
+static std::unique_ptr create(std::optional, PreferTestService, Reconnect);
+Connection(std::optional, PreferTestService, Reconnect);
 
 void connectToService(WaitForServiceToExist);
 
@@ -75,7 +75,7 @@
 
 void sendAuditToken();
 
-Action m_action;
+std::optional m_action;
 bool m_reconnect { false };
 RetainPtr m_connection;
 const char* m_serviceName;


Modified: 

[webkit-changes] [287124] trunk/Source

2021-12-15 Thread beidson
Title: [287124] trunk/Source








Revision 287124
Author beid...@apple.com
Date 2021-12-15 19:46:06 -0800 (Wed, 15 Dec 2021)


Log Message
Add a "NotificationData" object to encompass local Notification-related parameters, instead of passing tons of them around everywhere.
https://bugs.webkit.org/show_bug.cgi?id=234370

Reviewed by Tim Horton.

Source/WebCore:

No behavior change.

* Modules/notifications/Notification.cpp:
(WebCore::Notification::dataWithoutNotificationID const):
* Modules/notifications/Notification.h:

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::showNotification):
* NetworkProcess/Notifications/NetworkNotificationManager.h:

* Shared/Notifications/NotificationManagerMessageHandler.h:
* Shared/Notifications/NotificationManagerMessageHandler.messages.in:

* UIProcess/Notifications/WebNotification.cpp:
(WebKit::WebNotification::WebNotification):
* UIProcess/Notifications/WebNotification.h:
(WebKit::WebNotification::create):

* UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:
(WebKit::WebNotificationManagerMessageHandler::showNotification):
* UIProcess/Notifications/WebNotificationManagerMessageHandler.h:

* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::show):
* UIProcess/Notifications/WebNotificationManagerProxy.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showNotification):
* UIProcess/WebPageProxy.h:

* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::show):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Headers.cmake
trunk/Source/WebCore/Modules/notifications/Notification.cpp
trunk/Source/WebCore/Modules/notifications/Notification.h
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
trunk/Source/WebKit/Shared/Notifications/NotificationManagerMessageHandler.h
trunk/Source/WebKit/Shared/Notifications/NotificationManagerMessageHandler.messages.in
trunk/Source/WebKit/UIProcess/Notifications/WebNotification.cpp
trunk/Source/WebKit/UIProcess/Notifications/WebNotification.h
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp


Added Paths

trunk/Source/WebCore/Modules/notifications/NotificationData.cpp
trunk/Source/WebCore/Modules/notifications/NotificationData.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (287123 => 287124)

--- trunk/Source/WebCore/ChangeLog	2021-12-16 03:33:41 UTC (rev 287123)
+++ trunk/Source/WebCore/ChangeLog	2021-12-16 03:46:06 UTC (rev 287124)
@@ -1,3 +1,19 @@
+2021-12-15  Brady Eidson  
+
+Add a "NotificationData" object to encompass local Notification-related parameters, instead of passing tons of them around everywhere.
+https://bugs.webkit.org/show_bug.cgi?id=234370
+
+Reviewed by Tim Horton.
+
+No behavior change.
+
+* Modules/notifications/Notification.cpp:
+(WebCore::Notification::dataWithoutNotificationID const):
+* Modules/notifications/Notification.h:
+
+* Sources.txt:
+* WebCore.xcodeproj/project.pbxproj:
+
 2021-12-15  Alex Christensen  
 
 Remove unreachable code in Plugin and PluginController


Modified: trunk/Source/WebCore/Headers.cmake (287123 => 287124)

--- trunk/Source/WebCore/Headers.cmake	2021-12-16 03:33:41 UTC (rev 287123)
+++ trunk/Source/WebCore/Headers.cmake	2021-12-16 03:46:06 UTC (rev 287124)
@@ -280,6 +280,7 @@
 Modules/notifications/Notification.h
 Modules/notifications/NotificationClient.h
 Modules/notifications/NotificationController.h
+Modules/notifications/NotificationData.h
 Modules/notifications/NotificationDirection.h
 Modules/notifications/NotificationPermission.h
 Modules/notifications/NotificationPermissionCallback.h


Modified: trunk/Source/WebCore/Modules/notifications/Notification.cpp (287123 => 287124)

--- trunk/Source/WebCore/Modules/notifications/Notification.cpp	2021-12-16 03:33:41 UTC (rev 287123)
+++ trunk/Source/WebCore/Modules/notifications/Notification.cpp	2021-12-16 03:46:06 UTC (rev 287124)
@@ -41,6 +41,7 @@
 #include "JSDOMPromiseDeferred.h"
 #include "NotificationClient.h"
 #include "NotificationController.h"
+#include "NotificationData.h"
 #include "NotificationPermissionCallback.h"
 #include 

[webkit-changes] [287009] trunk

2021-12-13 Thread beidson
Title: [287009] trunk








Revision 287009
Author beid...@apple.com
Date 2021-12-13 20:23:27 -0800 (Mon, 13 Dec 2021)


Log Message
Teach webpushtool to register and "host" the daemon.
https://bugs.webkit.org/show_bug.cgi?id=234265

Reviewed by Tim Horton.

Source/_javascript_Core:

* inspector/ConsoleMessage.h: Remove `using JSC::MessageType` because it makes it hard for others
  to also have a `MessageType` type.
* inspector/JSGlobalObjectConsoleClient.h:
* runtime/ConsoleTypes.h:

Source/WebCore:

* page/PageConsoleClient.h:

Source/WebKit:

Covered by API tests verifying hosting mode operation.

As various engineers work on various parts of the project, it's become apparent that it's super useful
to have a tool handle the "setting up" of the daemon itself, to avoid launchctl, etc.

Implement that, as well as a few other niceties found while testing.

* Configurations/webpushtool.xcconfig:
* Resources/webpushtool.entitlements:

* Shared/Daemon/DaemonUtilities.mm:
(WebKit::startListeningForMachServiceConnections):

* webpushd/AppBundleRequest.mm:
(WebPushD::AppBundleRequest::start):

* webpushd/PushClientConnection.h:
* webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::setHostAppAuditTokenData):
(WebPushD::ClientConnection::broadcastDebugMessage):

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::broadcastAllConnectionIdentities):

* webpushd/webpushtool/WebPushToolConnection.h:
* webpushd/webpushtool/WebPushToolConnection.mm:
(WebPushTool::Connection::connectToService):
(WebPushTool::Connection::connectionDropped):

* webpushd/webpushtool/WebPushToolMain.mm:
(printUsageAndTerminate):
(registerDaemonWithLaunchD):
(main):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::shouldSetupWebPushD): Add a command line argument to skip the "install the daemon" step,
  so an engineer can handle that part themselves.
(TestWebKitAPI::setUpTestWebPushD):
(TestWebKitAPI::cleanUpTestWebPushD):

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/inspector/ConsoleMessage.h
trunk/Source/_javascript_Core/inspector/JSGlobalObjectConsoleClient.h
trunk/Source/_javascript_Core/runtime/ConsoleTypes.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/PageConsoleClient.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Configurations/webpushtool.xcconfig
trunk/Source/WebKit/Resources/webpushtool.entitlements
trunk/Source/WebKit/Shared/Daemon/DaemonUtilities.mm
trunk/Source/WebKit/webpushd/AppBundleRequest.mm
trunk/Source/WebKit/webpushd/PushClientConnection.h
trunk/Source/WebKit/webpushd/PushClientConnection.mm
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm




Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (287008 => 287009)

--- trunk/Source/_javascript_Core/ChangeLog	2021-12-14 03:28:24 UTC (rev 287008)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-12-14 04:23:27 UTC (rev 287009)
@@ -1,3 +1,15 @@
+2021-12-13  Brady Eidson  
+
+Teach webpushtool to register and "host" the daemon.
+https://bugs.webkit.org/show_bug.cgi?id=234265
+
+Reviewed by Tim Horton.
+
+* inspector/ConsoleMessage.h: Remove `using JSC::MessageType` because it makes it hard for others
+  to also have a `MessageType` type.
+* inspector/JSGlobalObjectConsoleClient.h:
+* runtime/ConsoleTypes.h:
+
 2021-12-13  Saam Barati  
 
 Roll back r286345, r286387, r286471, r286667, r286849


Modified: trunk/Source/_javascript_Core/inspector/ConsoleMessage.h (287008 => 287009)

--- trunk/Source/_javascript_Core/inspector/ConsoleMessage.h	2021-12-14 03:28:24 UTC (rev 287008)
+++ trunk/Source/_javascript_Core/inspector/ConsoleMessage.h	2021-12-14 04:23:27 UTC (rev 287009)
@@ -43,6 +43,8 @@
 class JSGlobalObject;
 }
 
+using JSC::MessageType;
+
 namespace Inspector {
 
 class ConsoleFrontendDispatcher;


Modified: trunk/Source/_javascript_Core/inspector/JSGlobalObjectConsoleClient.h (287008 => 287009)

--- trunk/Source/_javascript_Core/inspector/JSGlobalObjectConsoleClient.h	2021-12-14 03:28:24 UTC (rev 287008)
+++ trunk/Source/_javascript_Core/inspector/JSGlobalObjectConsoleClient.h	2021-12-14 04:23:27 UTC (rev 287009)
@@ -29,6 +29,8 @@
 #include 
 #include 
 
+using JSC::MessageType;
+
 namespace Inspector {
 
 class InspectorConsoleAgent;


Modified: trunk/Source/_javascript_Core/runtime/ConsoleTypes.h (287008 => 287009)

--- trunk/Source/_javascript_Core/runtime/ConsoleTypes.h	2021-12-14 03:28:24 UTC (rev 287008)
+++ trunk/Source/_javascript_Core/runtime/ConsoleTypes.h	2021-12-14 04:23:27 UTC (rev 287009)
@@ -115,5 +115,4 @@
 } // namespace WTF
 
 using JSC::MessageSource;

[webkit-changes] [286878] trunk/Source

2021-12-10 Thread beidson
Title: [286878] trunk/Source








Revision 286878
Author beid...@apple.com
Date 2021-12-10 14:19:03 -0800 (Fri, 10 Dec 2021)


Log Message
Teach webpushd to launch an app in response to an injected message.
https://bugs.webkit.org/show_bug.cgi?id=234122

Reviewed by Alex Christensen.

Source/WebCore/PAL:

* pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To by covered by future API test.

When a message comes in, webpushd knows which code signing identifier it was targetted for.
It launches that app in a special mode so the app can then "take it from there"

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::injectPushMessageForTesting):
(WebPushD::Daemon::notifyClientPushMessageIsAvailable):

Modified Paths

trunk/Source/WebCore/PAL/ChangeLog
trunk/Source/WebCore/PAL/pal/spi/cocoa/LaunchServicesSPI.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm




Diff

Modified: trunk/Source/WebCore/PAL/ChangeLog (286877 => 286878)

--- trunk/Source/WebCore/PAL/ChangeLog	2021-12-10 22:17:27 UTC (rev 286877)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-12-10 22:19:03 UTC (rev 286878)
@@ -1,3 +1,12 @@
+2021-12-10  Brady Eidson  
+
+Teach webpushd to launch an app in response to an injected message.
+https://bugs.webkit.org/show_bug.cgi?id=234122
+
+Reviewed by Alex Christensen.
+
+* pal/spi/cocoa/LaunchServicesSPI.h:
+
 2021-12-10  Antoine Quint  
 
 Expose the maximum device frame rate to the Web Animations model


Modified: trunk/Source/WebCore/PAL/pal/spi/cocoa/LaunchServicesSPI.h (286877 => 286878)

--- trunk/Source/WebCore/PAL/pal/spi/cocoa/LaunchServicesSPI.h	2021-12-10 22:17:27 UTC (rev 286877)
+++ trunk/Source/WebCore/PAL/pal/spi/cocoa/LaunchServicesSPI.h	2021-12-10 22:19:03 UTC (rev 286878)
@@ -50,6 +50,9 @@
 WTF_EXTERN_C_END
 #endif // PLATFORM(MACCATALYST)
 #else // USE(APPLE_INTERNAL_SDK)
+
+const uint8_t kLSOpenRunningInstanceBehaviorUseRunningProcess = 1;
+
 @interface LSResourceProxy : NSObject 
 @property (nonatomic, copy, readonly) NSString *localizedName;
 @end
@@ -130,6 +133,11 @@
 WTF_EXTERN_C_BEGIN
 
 extern const CFStringRef _kLSDisplayNameKey;
+extern const CFStringRef _kLSOpenOptionActivateKey;
+extern const CFStringRef _kLSOpenOptionAddToRecentsKey;
+extern const CFStringRef _kLSOpenOptionBackgroundLaunchKey;
+extern const CFStringRef _kLSOpenOptionHideKey;
+extern const CFStringRef _kLSOpenOptionPreferRunningInstanceKey;
 extern const CFStringRef _kLSPersistenceSuppressRelaunchAtLoginKey;
 
 LSASNRef _LSGetCurrentApplicationASN();
@@ -139,6 +147,9 @@
 
 OSStatus _RegisterApplication(CFDictionaryRef, ProcessSerialNumber*);
 
+typedef void (^ _LSOpenCompletionHandler)(LSASNRef, Boolean, CFErrorRef);
+void _LSOpenURLsUsingBundleIdentifierWithCompletionHandler(CFArrayRef, CFStringRef, CFDictionaryRef, _LSOpenCompletionHandler);
+
 WTF_EXTERN_C_END
 
 #endif // PLATFORM(MAC)


Modified: trunk/Source/WebKit/ChangeLog (286877 => 286878)

--- trunk/Source/WebKit/ChangeLog	2021-12-10 22:17:27 UTC (rev 286877)
+++ trunk/Source/WebKit/ChangeLog	2021-12-10 22:19:03 UTC (rev 286878)
@@ -1,3 +1,20 @@
+2021-12-10  Brady Eidson  
+
+Teach webpushd to launch an app in response to an injected message.
+https://bugs.webkit.org/show_bug.cgi?id=234122
+
+Reviewed by Alex Christensen.
+
+To by covered by future API test.
+
+When a message comes in, webpushd knows which code signing identifier it was targetted for.
+It launches that app in a special mode so the app can then "take it from there"
+
+* webpushd/WebPushDaemon.h:
+* webpushd/WebPushDaemon.mm:
+(WebPushD::Daemon::injectPushMessageForTesting):
+(WebPushD::Daemon::notifyClientPushMessageIsAvailable):
+
 2021-12-10  Antoine Quint  
 
 Expose the maximum device frame rate to the Web Animations model


Modified: trunk/Source/WebKit/webpushd/WebPushDaemon.h (286877 => 286878)

--- trunk/Source/WebKit/webpushd/WebPushDaemon.h	2021-12-10 22:17:27 UTC (rev 286877)
+++ trunk/Source/WebKit/webpushd/WebPushDaemon.h	2021-12-10 22:19:03 UTC (rev 286878)
@@ -79,6 +79,8 @@
 
 bool canRegisterForNotifications(ClientConnection&);
 
+void notifyClientPushMessageIsAvailable(const String& clientCodeSigningIdentifier);
+
 ClientConnection* toClientConnection(xpc_connection_t);
 HashMap> m_connectionMap;
 


Modified: trunk/Source/WebKit/webpushd/WebPushDaemon.mm (286877 => 286878)

--- trunk/Source/WebKit/webpushd/WebPushDaemon.mm	2021-12-10 22:17:27 UTC (rev 286877)
+++ trunk/Source/WebKit/webpushd/WebPushDaemon.mm	2021-12-10 22:19:03 UTC (rev 286878)
@@ -33,6 +33,7 @@
 #import "HandleMessage.h"
 #import "MockAppBundleRegistry.h"
 
+#import 
 #import 
 #import 
 #import 
@@ -349,9 +350,32 @@
 });
 addResult.iterator->value.append(message);
 
+

[webkit-changes] [286788] trunk

2021-12-09 Thread beidson
Title: [286788] trunk








Revision 286788
Author beid...@apple.com
Date 2021-12-09 10:58:34 -0800 (Thu, 09 Dec 2021)


Log Message
Add ability to inject messages into webpushd
https://bugs.webkit.org/show_bug.cgi?id=233988

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API tests.

This patch:
 - Adds WKWebsiteDataStore SPI to fetch pending push messages for the embedding application
 - Gives webpushd code to inject a push message for a given bundle identifier
 - Gives webpushtool the ability to send one of these fake messages
 - Gives webpushtool the ability to reconnect to the next daemon instance after the current connection is dropped
 - Tests the injection and fetching of push messages via TestWebKitAPI

* Configurations/webpushtool.xcconfig:
* WebKit.xcodeproj/project.pbxproj:
* Resources/webpushtool.entitlements:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getPendingPushMessages):
(WebKit::NetworkProcess::processPushMessage):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::getPendingPushMessages):
(WebKit::ReplyCaller::callReply):
* NetworkProcess/Notifications/NetworkNotificationManager.h:

* Shared/Cocoa/WebPushMessageCocoa.mm: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::fromDictionary):
(WebKit::WebPushMessage::toDictionary const):

* Shared/PushMessageForTesting.h: Copied from Source/WebKit/Shared/WebPushDaemonConstants.h.
(WebKit::WebPushD::PushMessageForTesting::encode const):
(WebKit::WebPushD::PushMessageForTesting::decode):

* Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):

* Shared/WebPushMessage.h: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::encode const):
(WebKit::WebPushMessage::decode):

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _getPendingPushMessages:]):
(-[WKWebsiteDataStore _processPushMessage:completionHandler:]):
(-[WKWebsiteDataStore _processPushMessage:registration:completionHandler:]): Deleted.
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getPendingPushMessages):
(WebKit::NetworkProcessProxy::processPushMessage):
* UIProcess/Network/NetworkProcessProxy.h:

* webpushd/PushClientConnection.h:
* webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::hostAppHasPushEntitlement):
(WebPushD::ClientConnection::hostAppHasPushInjectEntitlement):
(WebPushD::ClientConnection::hostHasEntitlement):
(WebPushD::ClientConnection::broadcastDebugMessage):

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::MessageInfo::injectPushMessageForTesting::encodeReply):
(WebPushD::MessageInfo::getPendingPushMessages::encodeReply):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::injectPushMessageForTesting):
(WebPushD::Daemon::getPendingPushMessages):

* webpushd/webpushtool/WebPushToolConnection.h:
(WebPushTool::Connection::setPushMessage):

* webpushd/webpushtool/WebPushToolConnection.mm:
(WebPushTool::Connection::startAction):
(WebPushTool::Connection::sendPushMessage):

* webpushd/webpushtool/WebPushToolMain.mm:
(printUsageAndTerminate):
(pushMessageFromArguments):
(main):

Tools:

* TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:

* TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
(messageDictionary):

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::createMessageDictionary):
(TestWebKitAPI::sendMessageToDaemon):
(TestWebKitAPI::sendMessageToDaemonWaitingForReply):
(TestWebKitAPI::sendConfigurationWithAuditToken):
(TestWebKitAPI::createAndConfigureConnectionToService):
(TestWebKitAPI::encodeString):
(TestWebKitAPI::TEST):
(TestWebKitAPI::function):
* TestWebKitAPI/cocoa/TestWKWebView.h:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Configurations/webpushtool.xcconfig
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
trunk/Source/WebKit/Resources/webpushtool.entitlements
trunk/Source/WebKit/Shared/WebPushDaemonConstants.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/PushClientConnection.h

[webkit-changes] [286764] trunk

2021-12-08 Thread beidson
Title: [286764] trunk








Revision 286764
Author beid...@apple.com
Date 2021-12-08 22:37:26 -0800 (Wed, 08 Dec 2021)


Log Message
Add ability to inject messages into webpushd
https://bugs.webkit.org/show_bug.cgi?id=233988

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API tests.

This patch:
 - Adds WKWebsiteDataStore SPI to fetch pending push messages for the embedding application
 - Gives webpushd code to inject a push message for a given bundle identifier
 - Gives webpushtool the ability to send one of these fake messages
 - Gives webpushtool the ability to reconnect to the next daemon instance after the current connection is dropped
 - Tests the injection and fetching of push messages via TestWebKitAPI

* Configurations/webpushtool.xcconfig:
* WebKit.xcodeproj/project.pbxproj:
* Resources/webpushtool.entitlements:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getPendingPushMessages):
(WebKit::NetworkProcess::processPushMessage):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::getPendingPushMessages):
(WebKit::ReplyCaller::callReply):
* NetworkProcess/Notifications/NetworkNotificationManager.h:

* Shared/Cocoa/WebPushMessageCocoa.mm: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::fromDictionary):
(WebKit::WebPushMessage::toDictionary const):

* Shared/PushMessageForTesting.h: Copied from Source/WebKit/Shared/WebPushDaemonConstants.h.
(WebKit::WebPushD::PushMessageForTesting::encode const):
(WebKit::WebPushD::PushMessageForTesting::decode):

* Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):

* Shared/WebPushMessage.h: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::encode const):
(WebKit::WebPushMessage::decode):

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _getPendingPushMessages:]):
(-[WKWebsiteDataStore _processPushMessage:completionHandler:]):
(-[WKWebsiteDataStore _processPushMessage:registration:completionHandler:]): Deleted.
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getPendingPushMessages):
(WebKit::NetworkProcessProxy::processPushMessage):
* UIProcess/Network/NetworkProcessProxy.h:

Tools:

* TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:

* TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
(messageDictionary):

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::createMessageDictionary):
(TestWebKitAPI::sendMessageToDaemon):
(TestWebKitAPI::sendMessageToDaemonWaitingForReply):
(TestWebKitAPI::sendConfigurationWithAuditToken):
(TestWebKitAPI::createAndConfigureConnectionToService):
(TestWebKitAPI::encodeString):
(TestWebKitAPI::TEST):
(TestWebKitAPI::function):
* TestWebKitAPI/cocoa/TestWKWebView.h:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Configurations/webpushtool.xcconfig
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
trunk/Source/WebKit/Resources/webpushtool.entitlements
trunk/Source/WebKit/Shared/WebPushDaemonConstants.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/PushClientConnection.h
trunk/Source/WebKit/webpushd/PushClientConnection.mm
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
trunk/Tools/TestWebKitAPI/cocoa/TestWKWebView.h


Added Paths

trunk/Source/WebKit/Shared/Cocoa/WebPushMessageCocoa.mm
trunk/Source/WebKit/Shared/PushMessageForTesting.h
trunk/Source/WebKit/Shared/WebPushMessage.h




Diff

Modified: trunk/Source/WebKit/ChangeLog (286763 => 286764)


[webkit-changes] [286579] trunk

2021-12-06 Thread beidson
Title: [286579] trunk








Revision 286579
Author beid...@apple.com
Date 2021-12-06 16:38:11 -0800 (Mon, 06 Dec 2021)


Log Message
webpushd/webpushtool debugging additions
https://bugs.webkit.org/show_bug.cgi?id=233864

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API tests.

This patch:
- Teaches webpushtool the ability to wait for a reconnect after losing its connection
- Starts actually broadcasting meaningful debug messages from webpushd

* webpushd/AppBundleRequest.mm:
(WebPushD::AppBundleRequest::start):
(WebPushD::AppBundlePermissionsRequest::didCheckForExistingBundle):
(WebPushD::AppBundlePermissionsRequest::didCreateAppBundle):
(WebPushD::AppBundleDeletionRequest::didDeleteExistingBundleWithError):

* webpushd/PushClientConnection.h:
* webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::setDebugModeIsEnabled):
(WebPushD::ClientConnection::broadcastDebugMessage):
(WebPushD::ClientConnection::connectionClosed):

* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::connectionAdded):

* webpushd/webpushtool/WebPushToolConnection.h:
* webpushd/webpushtool/WebPushToolConnection.mm:
(WebPushTool::Connection::create):
(WebPushTool::Connection::Connection):
(WebPushTool::Connection::connectToService):
(WebPushTool::Connection::connectionDropped):

* webpushd/webpushtool/WebPushToolMain.mm:
(printUsageAndTerminate):
(main):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::TEST): Adapt to debug message changes.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/webpushd/AppBundleRequest.mm
trunk/Source/WebKit/webpushd/PushClientConnection.h
trunk/Source/WebKit/webpushd/PushClientConnection.mm
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (286578 => 286579)

--- trunk/Source/WebKit/ChangeLog	2021-12-07 00:36:58 UTC (rev 286578)
+++ trunk/Source/WebKit/ChangeLog	2021-12-07 00:38:11 UTC (rev 286579)
@@ -1,3 +1,42 @@
+2021-12-06  Brady Eidson  
+
+webpushd/webpushtool debugging additions
+https://bugs.webkit.org/show_bug.cgi?id=233864
+
+Reviewed by Alex Christensen.
+
+Covered by API tests.
+
+This patch:
+- Teaches webpushtool the ability to wait for a reconnect after losing its connection
+- Starts actually broadcasting meaningful debug messages from webpushd
+
+* webpushd/AppBundleRequest.mm:
+(WebPushD::AppBundleRequest::start):
+(WebPushD::AppBundlePermissionsRequest::didCheckForExistingBundle):
+(WebPushD::AppBundlePermissionsRequest::didCreateAppBundle):
+(WebPushD::AppBundleDeletionRequest::didDeleteExistingBundleWithError):
+
+* webpushd/PushClientConnection.h:
+* webpushd/PushClientConnection.mm:
+(WebPushD::ClientConnection::setDebugModeIsEnabled):
+(WebPushD::ClientConnection::broadcastDebugMessage):
+(WebPushD::ClientConnection::connectionClosed):
+
+* webpushd/WebPushDaemon.mm:
+(WebPushD::Daemon::connectionAdded):
+
+* webpushd/webpushtool/WebPushToolConnection.h:
+* webpushd/webpushtool/WebPushToolConnection.mm:
+(WebPushTool::Connection::create):
+(WebPushTool::Connection::Connection):
+(WebPushTool::Connection::connectToService):
+(WebPushTool::Connection::connectionDropped):
+
+* webpushd/webpushtool/WebPushToolMain.mm:
+(printUsageAndTerminate):
+(main):
+
 2021-12-06  Chris Dumez  
 
 Regression(r286505) imported/w3c/web-platform-tests/html/cross-origin-opener-policy/_javascript_-url.https.html is a flaky crash


Modified: trunk/Source/WebKit/webpushd/AppBundleRequest.mm (286578 => 286579)

--- trunk/Source/WebKit/webpushd/AppBundleRequest.mm	2021-12-07 00:36:58 UTC (rev 286578)
+++ trunk/Source/WebKit/webpushd/AppBundleRequest.mm	2021-12-07 00:38:11 UTC (rev 286579)
@@ -47,6 +47,8 @@
 {
 ASSERT(m_connection);
 
+m_connection->broadcastDebugMessage(makeString("Starting ", transactionDescription(), " request for origin ", m_originString));
+
 m_transaction = adoptOSObject(os_transaction_create(transactionDescription()));
 
 if (m_connection->useMockBundlesForTesting())
@@ -91,6 +93,8 @@
 {
 ASSERT_UNUSED(bundle,  == m_appBundle.get());
 
+m_connection->broadcastDebugMessage(makeString("Origin ", m_originString, " app bundle request: didCheckForExistingBundle - ", exists == PushAppBundleExists::Yes ? "Exists" : "Does not exist"));
+
 if (exists == PushAppBundleExists::Yes)
 return callCompletionHandlerAndCleanup(true);
 
@@ -101,6 +105,8 @@
 {
 ASSERT_UNUSED(bundle,  == m_appBundle.get());
 
+

[webkit-changes] [286564] trunk/Source/WebKit

2021-12-06 Thread beidson
Title: [286564] trunk/Source/WebKit








Revision 286564
Author beid...@apple.com
Date 2021-12-06 13:06:11 -0800 (Mon, 06 Dec 2021)


Log Message
Put webpushd code in WebKit.framework.
https://bugs.webkit.org/show_bug.cgi?id=233886

Reviewed by Alex Christensen.

This fixes some build/mastering/linking issues.

* Configurations/webpushd.xcconfig:
* Shared/API/Cocoa/WKMain.h:
* Shared/API/Cocoa/WKMain.mm:
(WKWebPushDaemonMain):
* WebKit.xcodeproj/project.pbxproj:
* webpushd/WebPushDaemonMain.h: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
* webpushd/WebPushDaemonMain.mm:
(WebKit::WebPushDaemonMain):
(main): Deleted.
* webpushd/webpushd.cpp: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
(main):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Configurations/webpushd.xcconfig
trunk/Source/WebKit/Shared/API/Cocoa/WKMain.h
trunk/Source/WebKit/Shared/API/Cocoa/WKMain.mm
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/WebPushDaemonMain.mm


Added Paths

trunk/Source/WebKit/webpushd/WebPushDaemonMain.h
trunk/Source/WebKit/webpushd/webpushd.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (286563 => 286564)

--- trunk/Source/WebKit/ChangeLog	2021-12-06 21:03:27 UTC (rev 286563)
+++ trunk/Source/WebKit/ChangeLog	2021-12-06 21:06:11 UTC (rev 286564)
@@ -1,3 +1,24 @@
+2021-12-06  Brady Eidson  
+
+Put webpushd code in WebKit.framework.
+https://bugs.webkit.org/show_bug.cgi?id=233886
+
+Reviewed by Alex Christensen.
+
+This fixes some build/mastering/linking issues.
+
+* Configurations/webpushd.xcconfig:
+* Shared/API/Cocoa/WKMain.h:
+* Shared/API/Cocoa/WKMain.mm:
+(WKWebPushDaemonMain):
+* WebKit.xcodeproj/project.pbxproj:
+* webpushd/WebPushDaemonMain.h: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
+* webpushd/WebPushDaemonMain.mm:
+(WebKit::WebPushDaemonMain):
+(main): Deleted.
+* webpushd/webpushd.cpp: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
+(main):
+
 2021-12-06  Brent Fulgham  
 
 REGRESSION (r286527): Three API tests crashing under WebKit::ProcessLauncher::launchProcess()


Modified: trunk/Source/WebKit/Configurations/webpushd.xcconfig (286563 => 286564)

--- trunk/Source/WebKit/Configurations/webpushd.xcconfig	2021-12-06 21:03:27 UTC (rev 286563)
+++ trunk/Source/WebKit/Configurations/webpushd.xcconfig	2021-12-06 21:06:11 UTC (rev 286564)
@@ -25,7 +25,7 @@
 
 PRODUCT_NAME = webpushd;
 
-OTHER_LDFLAGS = -l WTF -framework Foundation -framework CoreFoundation;
+OTHER_LDFLAGS = -framework WebKit;
 LIBRARY_SEARCH_PATHS = $(BUILT_PRODUCTS_DIR);
 
 WK_PROCESSED_XCENT_FILE=$(TEMP_FILE_DIR)/$(FULL_PRODUCT_NAME).entitlements


Modified: trunk/Source/WebKit/Shared/API/Cocoa/WKMain.h (286563 => 286564)

--- trunk/Source/WebKit/Shared/API/Cocoa/WKMain.h	2021-12-06 21:03:27 UTC (rev 286563)
+++ trunk/Source/WebKit/Shared/API/Cocoa/WKMain.h	2021-12-06 21:06:11 UTC (rev 286564)
@@ -34,6 +34,7 @@
 
 WK_EXPORT int WKXPCServiceMain(int argc, const char** argv) WK_API_AVAILABLE(macos(10.15), ios(13.0));
 WK_EXPORT int WKAdAttributionDaemonMain(int argc, const char** argv) WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+WK_EXPORT int WKWebPushDaemonMain(int argc, const char** argv) WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
 
 #ifdef __cplusplus
 }


Modified: trunk/Source/WebKit/Shared/API/Cocoa/WKMain.mm (286563 => 286564)

--- trunk/Source/WebKit/Shared/API/Cocoa/WKMain.mm	2021-12-06 21:03:27 UTC (rev 286563)
+++ trunk/Source/WebKit/Shared/API/Cocoa/WKMain.mm	2021-12-06 21:06:11 UTC (rev 286564)
@@ -27,6 +27,7 @@
 #import "WKMain.h"
 
 #import "PCMDaemonEntryPoint.h"
+#import "WebPushDaemonMain.h"
 #import "XPCServiceEntryPoint.h"
 
 int WKXPCServiceMain(int argc, const char** argv)
@@ -38,3 +39,8 @@
 {
 return WebKit::PCMDaemonMain(argc, argv);
 }
+
+int WKWebPushDaemonMain(int argc, const char** argv)
+{
+return WebKit::WebPushDaemonMain(argc, argv);
+}


Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (286563 => 286564)

--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-12-06 21:03:27 UTC (rev 286563)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-12-06 21:06:11 UTC (rev 286564)
@@ -967,8 +967,6 @@
 		5129EB1223D0DE7B00AF1CD7 /* ContentWorldShared.h in Headers */ = {isa = PBXBuildFile; fileRef = 5129EB1123D0DE7800AF1CD7 /* ContentWorldShared.h */; };
 		512CD6982721EFC800F7F8EC /* WebPushDaemonConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 512CD6972721EFC300F7F8EC /* WebPushDaemonConnection.h */; };
 		512CD69A2721F0A900F7F8EC /* WebPushDaemonConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 512CD6992721F04900F7F8EC /* WebPushDaemonConstants.h */; };
-		512CD69F2723393A00F7F8EC /* WebPushDaemon.h in Headers */ = {isa = PBXBuildFile; fileRef = 512CD69D2723393A00F7F8EC /* WebPushDaemon.h */; };
-		

[webkit-changes] [286533] trunk/Source/WebKit

2021-12-04 Thread beidson
Title: [286533] trunk/Source/WebKit








Revision 286533
Author beid...@apple.com
Date 2021-12-04 08:08:56 -0800 (Sat, 04 Dec 2021)


Log Message
Add command line `webpushtool` for daemon development and debugging.
https://bugs.webkit.org/show_bug.cgi?id=233845

Reviewed by Tim Horton.

No behavior change.

This utility will eventually be quite fleshed out.

For now, it can act as a terminal that prints debug messages from webpushd.

* Configurations/webpushtool.xcconfig: Added.
* Resources/webpushtool.entitlements: Added.
* WebKit.xcodeproj/project.pbxproj:
* WebKit.xcodeproj/xcshareddata/xcschemes/webpushtool.xcscheme: Added.

* webpushd/webpushtool/WebPushToolConnection.h: Added.
* webpushd/webpushtool/WebPushToolConnection.mm: Added.
(WebPushTool::Connection::create):
(WebPushTool::maybeConnectToService):
(WebPushTool::Connection::Connection):
(WebPushTool::Connection::connectToService):
(WebPushTool::Connection::startAction):
(WebPushTool::Connection::startDebugStreamAction):
(WebPushTool::Connection::sendAuditToken):
(WebPushTool::Connection::connectionDropped):
(WebPushTool::Connection::messageReceived):
* webpushd/webpushtool/WebPushToolMain.mm: Added.
(printUsageAndTerminate):
(main):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj


Added Paths

trunk/Source/WebKit/Configurations/webpushtool.xcconfig
trunk/Source/WebKit/Resources/webpushtool.entitlements
trunk/Source/WebKit/WebKit.xcodeproj/xcshareddata/xcschemes/webpushtool.xcscheme
trunk/Source/WebKit/webpushd/webpushtool/
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm
trunk/Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (286532 => 286533)

--- trunk/Source/WebKit/ChangeLog	2021-12-04 15:28:47 UTC (rev 286532)
+++ trunk/Source/WebKit/ChangeLog	2021-12-04 16:08:56 UTC (rev 286533)
@@ -1,3 +1,36 @@
+2021-12-04  Brady Eidson  
+
+Add command line `webpushtool` for daemon development and debugging.
+https://bugs.webkit.org/show_bug.cgi?id=233845
+
+Reviewed by Tim Horton.
+
+No behavior change.
+
+This utility will eventually be quite fleshed out.
+
+For now, it can act as a terminal that prints debug messages from webpushd.
+
+* Configurations/webpushtool.xcconfig: Added.
+* Resources/webpushtool.entitlements: Added.
+* WebKit.xcodeproj/project.pbxproj:
+* WebKit.xcodeproj/xcshareddata/xcschemes/webpushtool.xcscheme: Added.
+
+* webpushd/webpushtool/WebPushToolConnection.h: Added.
+* webpushd/webpushtool/WebPushToolConnection.mm: Added.
+(WebPushTool::Connection::create):
+(WebPushTool::maybeConnectToService):
+(WebPushTool::Connection::Connection):
+(WebPushTool::Connection::connectToService):
+(WebPushTool::Connection::startAction):
+(WebPushTool::Connection::startDebugStreamAction):
+(WebPushTool::Connection::sendAuditToken):
+(WebPushTool::Connection::connectionDropped):
+(WebPushTool::Connection::messageReceived):
+* webpushd/webpushtool/WebPushToolMain.mm: Added.
+(printUsageAndTerminate):
+(main):
+
 2021-12-04  Brent Fulgham  
 
 [Cocoa] Launch Captive Portal WebContent process when requested


Added: trunk/Source/WebKit/Configurations/webpushtool.xcconfig (0 => 286533)

--- trunk/Source/WebKit/Configurations/webpushtool.xcconfig	(rev 0)
+++ trunk/Source/WebKit/Configurations/webpushtool.xcconfig	2021-12-04 16:08:56 UTC (rev 286533)
@@ -0,0 +1,35 @@
+// Copyright (C) 2021 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//notice, this list of conditions and the following disclaimer in the
+//documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS 

[webkit-changes] [286440] trunk/Tools

2021-12-02 Thread beidson
Title: [286440] trunk/Tools








Revision 286440
Author beid...@apple.com
Date 2021-12-02 11:39:41 -0800 (Thu, 02 Dec 2021)


Log Message
REGRESSION: r286075 [ Big Sur x86] 2 TestWebKitAPI.WebPushD (API-Tests) are constant failures
https://bugs.webkit.org/show_bug.cgi?id=233726

Unreviewed gardening.

- Disabling these tests on all Mac platforms until we can figure out the code signing/etc situation
- Fix the truly broken "basic" test everywhere by adapting to messaging changes


* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm




Diff

Modified: trunk/Tools/ChangeLog (286439 => 286440)

--- trunk/Tools/ChangeLog	2021-12-02 19:35:49 UTC (rev 286439)
+++ trunk/Tools/ChangeLog	2021-12-02 19:39:41 UTC (rev 286440)
@@ -1,3 +1,16 @@
+2021-12-02  Brady Eidson  
+
+REGRESSION: r286075 [ Big Sur x86] 2 TestWebKitAPI.WebPushD (API-Tests) are constant failures
+https://bugs.webkit.org/show_bug.cgi?id=233726
+
+Unreviewed gardening.
+
+- Disabling these tests on all Mac platforms until we can figure out the code signing/etc situation
+- Fix the truly broken "basic" test everywhere by adapting to messaging changes
+
+* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
+(TestWebKitAPI::TEST):
+
 2021-12-02  Carlos Garcia Campos  
 
 Unreviewed. [GTK] Use nullptr instead of 0 in JSStringCreateWithCharacters()


Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm (286439 => 286440)

--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm	2021-12-02 19:35:49 UTC (rev 286439)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm	2021-12-02 19:39:41 UTC (rev 286440)
@@ -161,8 +161,8 @@
 EXPECT_NULL(error);
 }
 
-// FIXME: Re-enable this test for Monterey+ once webkit.org/232857 is resolved.
-#if PLATFORM(MAC) && (__MAC_OS_X_VERSION_MIN_REQUIRED < 11 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 12)
+// FIXME: Re-enable this test on Mac once webkit.org/232857 is resolved.
+#if PLATFORM(MAC)
 TEST(WebPushD, DISABLED_BasicCommunication)
 #else
 TEST(WebPushD, BasicCommunication)
@@ -199,15 +199,16 @@
 return;
 }
 
-// Send audit token
+// Send configuration with audit token
 {
-std::array encodedMessage;
+std::array encodedMessage;
 encodedMessage.fill(0);
-encodedMessage[0] = 32;
-memcpy([8], , sizeof(token));
+encodedMessage[1] = 1;
+encodedMessage[2] = 32;
+memcpy([10], , sizeof(token));
 auto dictionary = adoptNS(xpc_dictionary_create(nullptr, nullptr, 0));
 xpc_dictionary_set_uint64(dictionary.get(), "protocol version", 1);
-xpc_dictionary_set_uint64(dictionary.get(), "message type", 5);
+xpc_dictionary_set_uint64(dictionary.get(), "message type", 6);
 xpc_dictionary_set_data(dictionary.get(), "encoded message", encodedMessage.data(), encodedMessage.size());
 xpc_connection_send_message(connection.get(), dictionary.get());
 }
@@ -217,7 +218,7 @@
 auto dictionary = adoptNS(xpc_dictionary_create(nullptr, nullptr, 0));
 std::array encodedMessage { 1 };
 xpc_dictionary_set_uint64(dictionary.get(), "protocol version", 1);
-xpc_dictionary_set_uint64(dictionary.get(), "message type", 6);
+xpc_dictionary_set_uint64(dictionary.get(), "message type", 5);
 xpc_dictionary_set_data(dictionary.get(), "encoded message", encodedMessage.data(), encodedMessage.size());
 
 xpc_connection_send_message(connection.get(), dictionary.get());
@@ -258,8 +259,8 @@
 
 )WEBPUSHRESOURCE";
 
-// FIXME: Re-enable this test for Monterey+ once webkit.org/232857 is resolved.
-#if PLATFORM(MAC) && (__MAC_OS_X_VERSION_MIN_REQUIRED < 11 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 12)
+// FIXME: Re-enable this test on Mac once webkit.org/232857 is resolved.
+#if PLATFORM(MAC)
 TEST(WebPushD, DISABLED_PermissionManagement)
 #else
 TEST(WebPushD, PermissionManagement)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [286420] trunk/Source

2021-12-02 Thread beidson
Title: [286420] trunk/Source








Revision 286420
Author beid...@apple.com
Date 2021-12-02 01:02:26 -0800 (Thu, 02 Dec 2021)


Log Message
AVDelegatingPlaybackCoordinator error compiling on macOS 11
https://bugs.webkit.org/show_bug.cgi?id=232454

Reviewed by Tim Horton.

Source/WebCore/PAL:

* pal/cocoa/AVFoundationSoftLink.h: Don't softlink on platforms that don't have it
  (No other source changes were necessary)

Source/WTF:

* wtf/PlatformHave.h:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/PlatformHave.h
trunk/Source/WebCore/PAL/ChangeLog
trunk/Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h




Diff

Modified: trunk/Source/WTF/ChangeLog (286419 => 286420)

--- trunk/Source/WTF/ChangeLog	2021-12-02 08:57:49 UTC (rev 286419)
+++ trunk/Source/WTF/ChangeLog	2021-12-02 09:02:26 UTC (rev 286420)
@@ -1,3 +1,12 @@
+2021-12-02  Brady Eidson  
+
+AVDelegatingPlaybackCoordinator error compiling on macOS 11
+https://bugs.webkit.org/show_bug.cgi?id=232454
+
+Reviewed by Tim Horton.
+
+* wtf/PlatformHave.h:
+
 2021-12-02  Youenn Fablet  
 
 Add support for NavigationPreloadManager


Modified: trunk/Source/WTF/wtf/PlatformHave.h (286419 => 286420)

--- trunk/Source/WTF/wtf/PlatformHave.h	2021-12-02 08:57:49 UTC (rev 286419)
+++ trunk/Source/WTF/wtf/PlatformHave.h	2021-12-02 09:02:26 UTC (rev 286420)
@@ -1095,3 +1095,10 @@
 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 13)
 #define HAVE_UNIFIED_SPEECHSYNTHESIS_FIX_FOR_81465164 1
 #endif
+
+#if PLATFORM(COCOA)
+#define HAVE_AV_DELEGATING_PLAYBACK_COORDINATOR 1
+#endif
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED <= 12
+#undef HAVE_AV_DELEGATING_PLAYBACK_COORDINATOR
+#endif


Modified: trunk/Source/WebCore/PAL/ChangeLog (286419 => 286420)

--- trunk/Source/WebCore/PAL/ChangeLog	2021-12-02 08:57:49 UTC (rev 286419)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-12-02 09:02:26 UTC (rev 286420)
@@ -1,3 +1,13 @@
+2021-12-02  Brady Eidson  
+
+AVDelegatingPlaybackCoordinator error compiling on macOS 11
+https://bugs.webkit.org/show_bug.cgi?id=232454
+
+Reviewed by Tim Horton.
+
+* pal/cocoa/AVFoundationSoftLink.h: Don't softlink on platforms that don't have it
+  (No other source changes were necessary)
+
 2021-12-01  Myles C. Maxfield  
 
 [WebGPU] Add missing files to CMake


Modified: trunk/Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h (286419 => 286420)

--- trunk/Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h	2021-12-02 08:57:49 UTC (rev 286419)
+++ trunk/Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h	2021-12-02 09:02:26 UTC (rev 286420)
@@ -48,7 +48,6 @@
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVContentKeyReportGroup)
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVContentKeyResponse)
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVContentKeySession)
-SOFT_LINK_CLASS_FOR_HEADER(PAL, AVDelegatingPlaybackCoordinator)
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVMediaSelectionGroup)
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVMediaSelectionOption)
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVMetadataItem)
@@ -69,6 +68,10 @@
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVStreamDataParser)
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVURLAsset)
 
+#if HAVE(AV_DELEGATING_PLAYBACK_COORDINATOR)
+SOFT_LINK_CLASS_FOR_HEADER(PAL, AVDelegatingPlaybackCoordinator)
+#endif
+
 #if HAVE(AVSTREAMSESSION) && ENABLE(LEGACY_ENCRYPTED_MEDIA)
 SOFT_LINK_CLASS_FOR_HEADER(PAL, AVStreamSession)
 #endif






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [286355] trunk

2021-12-01 Thread beidson
Title: [286355] trunk








Revision 286355
Author beid...@apple.com
Date 2021-12-01 01:07:47 -0800 (Wed, 01 Dec 2021)


Log Message
Add WKWebsiteDataStore configuration option to enable Mock app bundle testing.
https://bugs.webkit.org/show_bug.cgi?id=233679

Reviewed by Tim Horton.

Source/WebKit:

Covered by API tests.

We're about to land actual implementations of app permissions bundles.
But the mock bundles still have a place for testing.
We need a way to switch between Mock and Native.

This patch takes the opportunity to plumb out a WebPushDaemonConnectionConfiguration object
that can easily be augmented in future patches to add new options without messing with messaging directly.

* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::webpushdUsesMockBundlesForTesting const):

* NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* NetworkProcess/NetworkSessionCreationParameters.h:

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::maybeSendConnectionConfiguration const):
(WebKit::NetworkNotificationManager::sendMessage const):
(WebKit::NetworkNotificationManager::sendMessageWithReply const):
(WebKit::NetworkNotificationManager::maybeSendHostAppAuditToken const): Deleted.
* NetworkProcess/Notifications/NetworkNotificationManager.h:

* NetworkProcess/cocoa/NetworkSessionCocoa.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

* Shared/WebPushDaemonConnectionConfiguration.h: Copied from Source/WebKit/Shared/WebPushDaemonConstants.h.
(WebKit::WebPushD::WebPushDaemonConnectionConfiguration::encode const):
(WebKit::WebPushD::WebPushDaemonConnectionConfiguration::decode):

* Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):

* UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration webpushdUsesMockBundlesForTesting]):
(-[_WKWebsiteDataStoreConfiguration setWebpushdUsesMockBundlesForTesting:]):

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):

* UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
(WebKit::WebsiteDataStoreConfiguration::webPushDaemonConnectionConfiguration const):
* UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::webpushdUsesMockBundlesForTesting const):
(WebKit::WebsiteDataStoreConfiguration::setWebpushdUsesMockBundlesForTesting):

* WebKit.xcodeproj/project.pbxproj:

* webpushd/AppBundleRequest.mm:
(WebPushD::AppBundleRequest::AppBundleRequest):
(WebPushD::AppBundleRequest::start):

* webpushd/PushClientConnection.h:
(WebPushD::ClientConnection::hasHostAppAuditToken const):
(WebPushD::ClientConnection::useMockBundlesForTesting const):
* webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::updateConnectionConfiguration):
(WebPushD::ClientConnection::setHostAppAuditTokenData):

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::setDebugModeIsEnabled):
(WebPushD::Daemon::updateConnectionConfiguration):
(WebPushD::Daemon::setHostAppAuditToken): Deleted.

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
trunk/Source/WebKit/Shared/WebPushDaemonConstants.h
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/AppBundleRequest.mm
trunk/Source/WebKit/webpushd/PushClientConnection.h
trunk/Source/WebKit/webpushd/PushClientConnection.mm
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm


Added Paths

trunk/Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.h




Diff

Modified: trunk/Source/WebKit/ChangeLog (286354 => 286355)

--- 

[webkit-changes] [286273] trunk

2021-11-29 Thread beidson
Title: [286273] trunk








Revision 286273
Author beid...@apple.com
Date 2021-11-29 16:20:57 -0800 (Mon, 29 Nov 2021)


Log Message
Make webpushd "fake registration for testing" much more complicated by adding a "mock app bundle" install
https://bugs.webkit.org/show_bug.cgi?id=233454

Reviewed by Alex Christensen.

Covered by API tests.

Before this patch, webpushd remembered "registrations" using a simple in-memory HashMap.

In the near future, registrations will actually be represented with a placeholder app bundle on disk.

The process of installing placeholders (and checking for existing ones) is complicated and asynchronous.

This patch shifts the in-memory testing implementation from a simple HashMap to a "complicated and asynchronous"
registration mechanism that simulates how app-bundle installs will work.

Once the "real" mechanisms are in place there will be much more in-depth testing that we can do.
For now, this is a "no behavior change" patch.

* NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:
(WebKit::WebPushD::Connection::connectionReceivedEvent const):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

* WebKit.xcodeproj/project.pbxproj:

"PushAppBundle" is an abstract base class for representing a placeholder application bundle for a registration.
Eventually there will be a native one for each platform that actually does system operations.
For now, the concrete implementation is the in-memory "Mock" app bundle.

* webpushd/PushAppBundle.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
* webpushd/PushAppBundle.mm: Copied from Source/WebKit/webpushd/PushClientConnection.h.
(WebPushD::PushAppBundleClient::~PushAppBundleClient):
(WebPushD::PushAppBundle::PushAppBundle):
(WebPushD::PushAppBundle::~PushAppBundle):
(WebPushD::PushAppBundle::detachFromClient):

An "AppBundleRequest" is a queable operation meant to do something with an "App bundle".
For now the operations are "create" and "delete"

* webpushd/AppBundleRequest.h: Added.
(WebPushD::AppBundleRequestImpl::AppBundleRequestImpl):
(WebPushD::AppBundleRequestImpl::~AppBundleRequestImpl):
(WebPushD::AppBundleRequestImpl::callCompletionHandlerAndCleanup):
(WebPushD::AppBundlePermissionsRequest::AppBundlePermissionsRequest):
(WebPushD::AppBundleDeletionRequest::AppBundleDeletionRequest):
* webpushd/AppBundleRequest.mm: Added.
(WebPushD::AppBundleRequest::AppBundleRequest):
(WebPushD::AppBundleRequest::~AppBundleRequest):
(WebPushD::AppBundleRequest::start):
(WebPushD::AppBundleRequest::cancel):
(WebPushD::AppBundleRequest::cleanupAfterCompletionHandler):
(WebPushD::AppBundlePermissionsRequest::startInternal):
(WebPushD::AppBundlePermissionsRequest::didCheckForExistingBundle):
(WebPushD::AppBundlePermissionsRequest::didCreateAppBundle):
(WebPushD::AppBundleDeletionRequest::startInternal):
(WebPushD::AppBundleDeletionRequest::didDeleteExistingBundleWithError):

* webpushd/MockAppBundleForTesting.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
(WebPushD::MockAppBundleForTesting::create):
* webpushd/MockAppBundleForTesting.mm: Added.
(WebPushD::MockAppBundleForTesting::MockAppBundleForTesting):
(WebPushD::MockAppBundleForTesting::~MockAppBundleForTesting):
(WebPushD::MockAppBundleForTesting::checkForExistingBundle):
(WebPushD::MockAppBundleForTesting::deleteExistingBundle):
(WebPushD::MockAppBundleForTesting::createBundle):
(WebPushD::MockAppBundleForTesting::stop):

* webpushd/MockAppBundleRegistry.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
* webpushd/MockAppBundleRegistry.mm: Added.
(WebPushD::MockAppBundleRegistry::singleton):
(WebPushD::MockAppBundleRegistry::getOriginsWithRegistrations):
(WebPushD::MockAppBundleRegistry::doesBundleExist):
(WebPushD::MockAppBundleRegistry::createBundle):
(WebPushD::MockAppBundleRegistry::deleteBundle):

* webpushd/PushClientConnection.h:
* webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::create):
(WebPushD::ClientConnection::enqueueAppBundleRequest):
(WebPushD::ClientConnection::maybeStartNextAppBundleRequest):
(WebPushD::ClientConnection::didCompleteAppBundleRequest):
(WebPushD::ClientConnection::connectionClosed):

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::connectionAdded):
(WebPushD::Daemon::connectionRemoved):
(WebPushD::Daemon::requestSystemNotificationPermission):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::deletePushAndNotificationRegistration):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/PushClientConnection.h
trunk/Source/WebKit/webpushd/PushClientConnection.mm
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm


Added 

[webkit-changes] [286075] trunk

2021-11-19 Thread beidson
Title: [286075] trunk








Revision 286075
Author beid...@apple.com
Date 2021-11-19 13:43:17 -0800 (Fri, 19 Nov 2021)


Log Message
More webpushd architecture work
https://bugs.webkit.org/show_bug.cgi?id=233295

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API tests.

This patch:
- Adds entitlement checks for connections to webpushd
- Adds a "ClientConnection" object to the daemon to manage per-connection state
- Adds a debug enabled setting
- Adds the ability for the connecting app (com.apple.WebKit.Networking) to pass the host app's audit_token
- Tests some of the above
- Adds the beginnings of other future infrastructure

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::NetworkNotificationManager):

* Resources/ios/XPCService-embedded-simulator.entitlements:
* Scripts/process-entitlements.sh:

* Shared/Cocoa/CodeSigning.h:
* Shared/Cocoa/CodeSigning.mm:
(WebKit::codeSigningIdentifierAndPlatformBinaryStatus):
(WebKit::codeSigningIdentifier):

* Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):

* WebKit.xcodeproj/project.pbxproj:

* webpushd/PushClientConnection.h: Copied from Source/WebKit/Shared/Cocoa/CodeSigning.h.
(WebPushD::ClientConnection::hasAuditToken const):
(WebPushD::ClientConnection::debugModeIsEnabled const):
* webpushd/PushClientConnection.mm: Added.
(WebPushD::ClientConnection::ClientConnection):
(WebPushD::ClientConnection::setAuditTokenData):
(WebPushD::ClientConnection::hostCodeSigningIdentifier):
(WebPushD::ClientConnection::hostHasPushEntitlement):
(WebPushD::ClientConnection::setDebugModeIsEnabled):

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::handleWebPushDMessageWithReply):
(WebPushD::handleWebPushDMessage):
(WebPushD::Daemon::broadcastDebugMessage):
(WebPushD::Daemon::connectionEventHandler):
(WebPushD::Daemon::connectionAdded):
(WebPushD::Daemon::connectionRemoved):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::echoTwice):
(WebPushD::Daemon::canRegisterForNotifications):
(WebPushD::Daemon::requestSystemNotificationPermission):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::deletePushAndNotificationRegistration):
(WebPushD::Daemon::setHostAppAuditToken):
(WebPushD::Daemon::setDebugModeIsEnabled):
(WebPushD::Daemon::toClientConnection):
* webpushd/WebPushDaemonMain.mm:
(main):

Tools:

* TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
trunk/Source/WebKit/Resources/ios/XPCService-embedded-simulator.entitlements
trunk/Source/WebKit/Scripts/process-entitlements.sh
trunk/Source/WebKit/Shared/Cocoa/CodeSigning.h
trunk/Source/WebKit/Shared/Cocoa/CodeSigning.mm
trunk/Source/WebKit/Shared/WebPushDaemonConstants.h
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Source/WebKit/webpushd/WebPushDaemonMain.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm


Added Paths

trunk/Source/WebKit/webpushd/PushClientConnection.h
trunk/Source/WebKit/webpushd/PushClientConnection.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (286074 => 286075)

--- trunk/Source/WebKit/ChangeLog	2021-11-19 21:35:00 UTC (rev 286074)
+++ trunk/Source/WebKit/ChangeLog	2021-11-19 21:43:17 UTC (rev 286075)
@@ -1,3 +1,66 @@
+2021-11-19  Brady Eidson  
+
+More webpushd architecture work
+https://bugs.webkit.org/show_bug.cgi?id=233295
+
+Reviewed by Alex Christensen.
+
+Covered by API tests.
+
+This patch:
+- Adds entitlement checks for connections to webpushd
+- Adds a "ClientConnection" object to the daemon to manage per-connection state
+- Adds a debug enabled setting
+- Adds the ability for the connecting app (com.apple.WebKit.Networking) to pass the host app's audit_token
+- Tests some of the above
+- Adds the beginnings of other future infrastructure
+
+* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
+(WebKit::NetworkNotificationManager::NetworkNotificationManager):
+
+* Resources/ios/XPCService-embedded-simulator.entitlements:
+* Scripts/process-entitlements.sh:
+
+* Shared/Cocoa/CodeSigning.h:
+* 

[webkit-changes] [285870] trunk/Tools

2021-11-16 Thread beidson
Title: [285870] trunk/Tools








Revision 285870
Author beid...@apple.com
Date 2021-11-16 09:39:10 -0800 (Tue, 16 Nov 2021)


Log Message
Enable webpushd tests in the iOS simulator.
https://bugs.webkit.org/show_bug.cgi?id=233149

Reviewed by Alex Christensen.

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::testWebPushDaemonPList): Add a key to allow an OSLaunchdJob executable to break out of the simulator runtime root.

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm




Diff

Modified: trunk/Tools/ChangeLog (285869 => 285870)

--- trunk/Tools/ChangeLog	2021-11-16 17:11:53 UTC (rev 285869)
+++ trunk/Tools/ChangeLog	2021-11-16 17:39:10 UTC (rev 285870)
@@ -1,3 +1,13 @@
+2021-11-16  Brady Eidson  
+
+Enable webpushd tests in the iOS simulator.
+https://bugs.webkit.org/show_bug.cgi?id=233149
+
+Reviewed by Alex Christensen.
+
+* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
+(TestWebKitAPI::testWebPushDaemonPList): Add a key to allow an OSLaunchdJob executable to break out of the simulator runtime root.
+
 2021-11-16  Tyler Wilcock  
 
 AX: Stop returning AccessibilityUIElements backed by a null pointer


Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm (285869 => 285870)

--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm	2021-11-16 17:11:53 UTC (rev 285869)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm	2021-11-16 17:39:10 UTC (rev 285870)
@@ -32,8 +32,7 @@
 #import 
 #import 
 
-// FIXME: These tests are still currently disabled on iOS while tooling issues with `run-api-tests` are resolved.
-#if PLATFORM(MAC)
+#if PLATFORM(MAC) || PLATFORM(IOS)
 
 static bool alertReceived = false;
 @interface NotificationPermissionDelegate : NSObject
@@ -65,15 +64,18 @@
 
 static RetainPtr testWebPushDaemonPList(NSURL *storageLocation)
 {
+auto currentDirectory = currentExecutableDirectory();
+
 auto plist = adoptNS(xpc_dictionary_create(nullptr, nullptr, 0));
 xpc_dictionary_set_string(plist.get(), "_ManagedBy", "TestWebKitAPI");
 xpc_dictionary_set_string(plist.get(), "Label", "org.webkit.webpushtestdaemon");
 xpc_dictionary_set_bool(plist.get(), "LaunchOnlyOnce", true);
+xpc_dictionary_set_bool(plist.get(), "RootedSimulatorPath", true);
 xpc_dictionary_set_string(plist.get(), "StandardErrorPath", [storageLocation URLByAppendingPathComponent:@"daemon_stderr"].path.fileSystemRepresentation);
 
 {
 auto environmentVariables = adoptNS(xpc_dictionary_create(nullptr, nullptr, 0));
-xpc_dictionary_set_string(environmentVariables.get(), "DYLD_FRAMEWORK_PATH", currentExecutableDirectory().get().fileSystemRepresentation);
+xpc_dictionary_set_string(environmentVariables.get(), "DYLD_FRAMEWORK_PATH", currentDirectory.get().fileSystemRepresentation);
 xpc_dictionary_set_value(plist.get(), "EnvironmentVariables", environmentVariables.get());
 }
 {
@@ -87,10 +89,7 @@
 #if PLATFORM(MAC)
 xpc_array_set_string(programArguments.get(), XPC_ARRAY_APPEND, executableLocation.get().fileSystemRepresentation);
 #else
-// FIXME: These tests are still currently disabled on iOS while tooling issues with `run-api-tests` are resolved.
-// Once enabled, this patch must point to the webpushd executable at a path that exists within
-// the simulator runtime root.
-xpc_array_set_string(programArguments.get(), XPC_ARRAY_APPEND, "/usr/local/bin/webkit-testing/webpushd");
+xpc_array_set_string(programArguments.get(), XPC_ARRAY_APPEND, [currentDirectory URLByAppendingPathComponent:@"webpushd"].path.fileSystemRepresentation);
 #endif
 xpc_array_set_string(programArguments.get(), XPC_ARRAY_APPEND, "--machServiceName");
 xpc_array_set_string(programArguments.get(), XPC_ARRAY_APPEND, "org.webkit.webpushtestdaemon.service");
@@ -144,9 +143,15 @@
 {
 killFirstInstanceOfDaemon(@"webpushd");
 
-EXPECT_TRUE([[NSFileManager defaultManager] fileExistsAtPath:tempDir.path]);
+if (![[NSFileManager defaultManager] fileExistsAtPath:tempDir.path])
+return;
+
 NSError *error = nil;
 [[NSFileManager defaultManager] removeItemAtURL:tempDir error:];
+
+if (error)
+NSLog(@"Error removing tempDir URL: %@", error);
+
 EXPECT_NULL(error);
 }
 
@@ -263,4 +268,4 @@
 
 } // namespace TestWebKitAPI
 
-#endif // PLATFORM(MAC)
+#endif // PLATFORM(MAC) || PLATFORM(IOS)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [285799] trunk

2021-11-14 Thread beidson
Title: [285799] trunk








Revision 285799
Author beid...@apple.com
Date 2021-11-14 23:17:34 -0800 (Sun, 14 Nov 2021)


Log Message
Get daemon API ready to work in the iOS simulator (starting with WebPushD)
https://bugs.webkit.org/show_bug.cgi?id=232982

Reviewed by Geoff Garen.

Source/WebKit:

Move all the "enable Notifications" SPI from Mac-only to cross platform:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setNotificationsEnabled:]):
(-[WKPreferences _notificationsEnabled]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest):

* WebKit.xcodeproj/project.pbxproj: Add a build phase script to install the daemon executables
  inside a Daemons directory within the built WebKit.framework for engineering builds.
* webpushd/WebPushDaemon.mm:

Tools:

To get this working we needed to:
- Have the Daemons installed in a simulator-runtime-root-visible path
- Point the OSLaunchDJob plist to the simulator-relative path, not Mac-relative
- Solve the "How do I kill existing instances to run a clean test?" problem within the simulator.

This patch does those things.

* TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::testWebPushDaemonPList):
(TestWebKitAPI::setUpTestWebPushD):
(TestWebKitAPI::cleanUpTestWebPushD):

* TestWebKitAPI/cocoa/DaemonTestUtilities.h:
* TestWebKitAPI/cocoa/DaemonTestUtilities.mm:
(TestWebKitAPI::registerPlistWithLaunchD):
(TestWebKitAPI::pidOfFirstDaemonInstance):
(TestWebKitAPI::killFirstInstanceOfDaemon):

WebKitLibraries:

* WebKitPrivateFrameworkStubs/iOS/15/AppServerSupport.framework/AppServerSupport.tbd: Added.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
trunk/Tools/TestWebKitAPI/cocoa/DaemonTestUtilities.h
trunk/Tools/TestWebKitAPI/cocoa/DaemonTestUtilities.mm
trunk/WebKitLibraries/ChangeLog


Added Paths

trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/AppServerSupport.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/AppServerSupport.framework/AppServerSupport.tbd




Diff

Modified: trunk/Source/WebKit/ChangeLog (285798 => 285799)

--- trunk/Source/WebKit/ChangeLog	2021-11-15 04:22:34 UTC (rev 285798)
+++ trunk/Source/WebKit/ChangeLog	2021-11-15 07:17:34 UTC (rev 285799)
@@ -1,3 +1,25 @@
+2021-11-14  Brady Eidson  
+
+Get daemon API ready to work in the iOS simulator (starting with WebPushD)
+https://bugs.webkit.org/show_bug.cgi?id=232982
+
+Reviewed by Geoff Garen.
+
+Move all the "enable Notifications" SPI from Mac-only to cross platform:
+* UIProcess/API/Cocoa/WKPreferences.mm:
+(-[WKPreferences _setNotificationsEnabled:]):
+(-[WKPreferences _notificationsEnabled]):
+* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
+* UIProcess/Cocoa/UIDelegate.h:
+* UIProcess/Cocoa/UIDelegate.mm:
+(WebKit::UIDelegate::setDelegate):
+(WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest):
+
+* WebKit.xcodeproj/project.pbxproj: Add a build phase script to install the daemon executables
+  inside a Daemons directory within the built WebKit.framework for engineering builds.
+* webpushd/WebPushDaemon.mm:
+
 2021-11-14  Fujii Hironori  
 
 [GraphicsLayerWC] Incorrect compositing debug border color


Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (285798 => 285799)

--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm	2021-11-15 04:22:34 UTC (rev 285798)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm	2021-11-15 07:17:34 UTC (rev 285799)
@@ -1163,16 +1163,6 @@
 return _preferences->standardFontFamily();
 }
 
-- (void)_setNotificationsEnabled:(BOOL)enabled
-{
-_preferences->setNotificationsEnabled(enabled);
-}
-
-- (BOOL)_notificationsEnabled
-{
-return _preferences->notificationsEnabled();
-}
-
 - (void)_setBackspaceKeyNavigationEnabled:(BOOL)enabled
 {
 _preferences->setBackspaceKeyNavigationEnabled(enabled);
@@ -1564,6 +1554,16 @@
 _preferences->setAccessHandleEnabled(accessHandleEnabled);
 }
 
+- 

[webkit-changes] [285207] trunk/Tools

2021-11-03 Thread beidson
Title: [285207] trunk/Tools








Revision 285207
Author beid...@apple.com
Date 2021-11-03 09:14:05 -0700 (Wed, 03 Nov 2021)


Log Message
Fix iOS API tests after r285199
https://bugs.webkit.org/show_bug.cgi?id=232649

Unreviewed.


* TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm: Definitely not ready for these tests to start running.

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm




Diff

Modified: trunk/Tools/ChangeLog (285206 => 285207)

--- trunk/Tools/ChangeLog	2021-11-03 16:05:14 UTC (rev 285206)
+++ trunk/Tools/ChangeLog	2021-11-03 16:14:05 UTC (rev 285207)
@@ -1,3 +1,12 @@
+2021-11-03  Brady Eidson  
+
+Fix iOS API tests after r285199 
+https://bugs.webkit.org/show_bug.cgi?id=232649
+
+Unreviewed.
+
+* TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm: Definitely not ready for these tests to start running.
+
 2021-11-02  Tim Horton  
 
 UnicodeDecodeError in write_reftest copying a non-UTF8 expected result file


Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm (285206 => 285207)

--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm	2021-11-03 16:05:14 UTC (rev 285206)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm	2021-11-03 16:14:05 UTC (rev 285207)
@@ -25,7 +25,7 @@
 
 #import "config.h"
 
-#if ENABLE(NOTIFICATIONS)
+#if ENABLE(NOTIFICATIONS) && !PLATFORM(IOS)
 #import "PlatformUtilities.h"
 #import "TestWKWebView.h"
 #import 
@@ -170,4 +170,4 @@
 
 } // namespace TestWebKitAPI
 
-#endif // ENABLE(NOTIFICATIONS)
+#endif // ENABLE(NOTIFICATIONS) && !PLATFORM(IOS)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [285199] trunk/Source

2021-11-03 Thread beidson
Title: [285199] trunk/Source








Revision 285199
Author beid...@apple.com
Date 2021-11-02 23:53:13 -0700 (Tue, 02 Nov 2021)


Log Message
Notifications on iOS enabled at compile-time, disabled at runtime
https://bugs.webkit.org/show_bug.cgi?id=232649

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Changing compiled behavior but definitely not runtime behavior)

* Modules/notifications/Notification.idl:
* Modules/notifications/NotificationPermission.idl:
* Modules/notifications/NotificationPermissionCallback.idl:
* bindings/js/WebCoreBuiltinNames.h:

Source/WTF:

* wtf/PlatformEnableCocoa.h:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/PlatformEnableCocoa.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/notifications/Notification.idl
trunk/Source/WebCore/Modules/notifications/NotificationPermission.idl
trunk/Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl
trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h




Diff

Modified: trunk/Source/WTF/ChangeLog (285198 => 285199)

--- trunk/Source/WTF/ChangeLog	2021-11-03 03:37:50 UTC (rev 285198)
+++ trunk/Source/WTF/ChangeLog	2021-11-03 06:53:13 UTC (rev 285199)
@@ -1,3 +1,12 @@
+2021-11-02  Brady Eidson  
+
+Notifications on iOS enabled at compile-time, disabled at runtime
+https://bugs.webkit.org/show_bug.cgi?id=232649
+
+Reviewed by Tim Horton.
+
+* wtf/PlatformEnableCocoa.h:
+
 2021-11-02  David Kilzer  
 
 [WTF] Minor clean-up for format-related functions


Modified: trunk/Source/WTF/wtf/PlatformEnableCocoa.h (285198 => 285199)

--- trunk/Source/WTF/wtf/PlatformEnableCocoa.h	2021-11-03 03:37:50 UTC (rev 285198)
+++ trunk/Source/WTF/wtf/PlatformEnableCocoa.h	2021-11-03 06:53:13 UTC (rev 285199)
@@ -430,7 +430,7 @@
 #define ENABLE_NON_VISIBLE_WEBPROCESS_MEMORY_CLEANUP_TIMER 1
 #endif
 
-#if !defined(ENABLE_NOTIFICATIONS) && PLATFORM(MAC)
+#if !defined(ENABLE_NOTIFICATIONS) && (PLATFORM(MAC) || PLATFORM(IOS))
 #define ENABLE_NOTIFICATIONS 1
 #endif
 


Modified: trunk/Source/WebCore/ChangeLog (285198 => 285199)

--- trunk/Source/WebCore/ChangeLog	2021-11-03 03:37:50 UTC (rev 285198)
+++ trunk/Source/WebCore/ChangeLog	2021-11-03 06:53:13 UTC (rev 285199)
@@ -1,3 +1,17 @@
+2021-11-02  Brady Eidson  
+
+Notifications on iOS enabled at compile-time, disabled at runtime
+https://bugs.webkit.org/show_bug.cgi?id=232649
+
+Reviewed by Tim Horton.
+
+No new tests (Changing compiled behavior but definitely not runtime behavior)
+
+* Modules/notifications/Notification.idl:
+* Modules/notifications/NotificationPermission.idl:
+* Modules/notifications/NotificationPermissionCallback.idl:
+* bindings/js/WebCoreBuiltinNames.h:
+
 2021-11-02  Caitln Potter  
 
 [WebIDL] Support [Exposed=*] extended attribute


Modified: trunk/Source/WebCore/Modules/notifications/Notification.idl (285198 => 285199)

--- trunk/Source/WebCore/Modules/notifications/Notification.idl	2021-11-03 03:37:50 UTC (rev 285198)
+++ trunk/Source/WebCore/Modules/notifications/Notification.idl	2021-11-03 06:53:13 UTC (rev 285199)
@@ -34,8 +34,9 @@
 [
 Conditional=NOTIFICATIONS,
 ActiveDOMObject,
+EnabledBySetting=NotificationsEnabled,
 ExportMacro=WEBCORE_EXPORT,
-Exposed=Window
+Exposed=Window,
 ] interface Notification : EventTarget {
 [CallWith=Document] constructor(DOMString title, optional NotificationOptions options);
 


Modified: trunk/Source/WebCore/Modules/notifications/NotificationPermission.idl (285198 => 285199)

--- trunk/Source/WebCore/Modules/notifications/NotificationPermission.idl	2021-11-03 03:37:50 UTC (rev 285198)
+++ trunk/Source/WebCore/Modules/notifications/NotificationPermission.idl	2021-11-03 06:53:13 UTC (rev 285199)
@@ -25,6 +25,7 @@
 
 [
 Conditional=NOTIFICATIONS,
+EnabledBySetting=NotificationsEnabled,
 ] enum NotificationPermission {
 "default",
 "denied",


Modified: trunk/Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl (285198 => 285199)

--- trunk/Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl	2021-11-03 03:37:50 UTC (rev 285198)
+++ trunk/Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl	2021-11-03 06:53:13 UTC (rev 285199)
@@ -25,4 +25,5 @@
 
 [
 Conditional=NOTIFICATIONS,
+EnabledBySetting=NotificationsEnabled,
 ] callback NotificationPermissionCallback = undefined (NotificationPermission permission);


Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (285198 => 285199)

--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2021-11-03 03:37:50 UTC (rev 285198)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2021-11-03 06:53:13 UTC (rev 285199)
@@ -183,6 +183,7 @@
 macro(NavigatorMediaDevices) \
 macro(NavigatorPermissions) \
 macro(NavigatorUserMedia) \
+macro(Notification) \
 macro(OfflineAudioContext) \
 

[webkit-changes] [285148] trunk/Source/WebKitLegacy/mac

2021-11-01 Thread beidson
Title: [285148] trunk/Source/WebKitLegacy/mac








Revision 285148
Author beid...@apple.com
Date 2021-11-01 18:06:14 -0700 (Mon, 01 Nov 2021)


Log Message
Make WebChromeClient's m_webView pointer weak.
https://bugs.webkit.org/show_bug.cgi?id=232588

Reviewed by David Kilzer.

* WebCoreSupport/WebChromeClient.h:

Modified Paths

trunk/Source/WebKitLegacy/mac/ChangeLog
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h




Diff

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (285147 => 285148)

--- trunk/Source/WebKitLegacy/mac/ChangeLog	2021-11-01 23:56:26 UTC (rev 285147)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2021-11-02 01:06:14 UTC (rev 285148)
@@ -1,3 +1,12 @@
+2021-11-01  Brady Eidson  
+
+Make WebChromeClient's m_webView pointer weak.
+https://bugs.webkit.org/show_bug.cgi?id=232588
+
+Reviewed by David Kilzer.
+
+* WebCoreSupport/WebChromeClient.h:
+
 2021-10-29  Alex Christensen  
 
 Fix internal macOS build after r285047


Modified: trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h (285147 => 285148)

--- trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h	2021-11-01 23:56:26 UTC (rev 285147)
+++ trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h	2021-11-02 01:06:14 UTC (rev 285148)
@@ -259,5 +259,5 @@
 bool m_mockVideoPresentationModeEnabled { false };
 #endif
 
-WebView *m_webView;
+__weak WebView *m_webView;
 };






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [285121] trunk

2021-11-01 Thread beidson
Title: [285121] trunk








Revision 285121
Author beid...@apple.com
Date 2021-11-01 12:31:45 -0700 (Mon, 01 Nov 2021)


Log Message
webpushd: Add mock in-memory registration, and the WKWebsiteDataStore SPI to manage them
https://bugs.webkit.org/show_bug.cgi?id=232539

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API test.

The old SPI to ask the client if notifications should be allowed will remain.

Assuming the client okays notifications, in the case of built-in notifications, the *actual*
registration interaction with the system will take place as an additional step in webpushd

This patch:
- Adds in-memory notification registration for webpushd
- Adds SPI to WKWebsiteDataStore to manage registrations
- Tests the SPI

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deletePushAndNotificationRegistration):
(WebKit::NetworkProcess::getOriginsWithPushAndNotificationPermissions):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:

* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::notificationManager):

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::requestSystemNotificationPermission):
(WebKit::NetworkNotificationManager::deletePushAndNotificationRegistration):
(WebKit::NetworkNotificationManager::getOriginsWithPushAndNotificationPermissions):
(WebKit::ReplyCaller::callReply):
(WebKit::ReplyCaller::callReply):
* NetworkProcess/Notifications/NetworkNotificationManager.h:

* Shared/API/APISecurityOrigin.h:
(API::SecurityOrigin::create):

* Shared/Notifications/NotificationManagerMessageHandler.h:
* Shared/Notifications/NotificationManagerMessageHandler.messages.in:

* Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _deletePushAndNotificationRegistration:completionHandler:]):
(-[WKWebsiteDataStore _getOriginsWithPushAndNotificationPermissions:]):
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::deletePushAndNotificationRegistration):
(WebKit::NetworkProcessProxy::getOriginsWithPushAndNotificationPermissions):
* UIProcess/Network/NetworkProcessProxy.h:

* UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:
(WebKit::WebNotificationManagerMessageHandler::requestSystemNotificationPermission):
* UIProcess/Notifications/WebNotificationManagerMessageHandler.h:

* WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::startRequest):

* webpushd/WebPushDaemon.h:
* webpushd/WebPushDaemon.mm:
(WebPushD::MessageInfo::getOriginsWithPushAndNotificationPermissions::encodeReply):
(WebPushD::MessageInfo::deletePushAndNotificationRegistration::encodeReply):
(WebPushD::MessageInfo::requestSystemNotificationPermission::encodeReply):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::requestSystemNotificationPermission):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::deletePushAndNotificationRegistration):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(-[NotificationPermissionDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]):
(-[NotificationPermissionDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::then):

Modified Paths

trunk/LayoutTests/http/tests/notifications/request.html
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
trunk/Source/WebKit/Shared/API/APISecurityOrigin.h
trunk/Source/WebKit/Shared/Notifications/NotificationManagerMessageHandler.h
trunk/Source/WebKit/Shared/Notifications/NotificationManagerMessageHandler.messages.in
trunk/Source/WebKit/Shared/WebPushDaemonConstants.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h
trunk/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm




Diff

Modified: trunk/LayoutTests/http/tests/notifications/request.html (285120 => 285121)

--- 

[webkit-changes] [284887] trunk

2021-10-26 Thread beidson
Title: [284887] trunk








Revision 284887
Author beid...@apple.com
Date 2021-10-26 12:34:30 -0700 (Tue, 26 Oct 2021)


Log Message
Add helper classes and messaging infrastructure to launch webpushd and round trip a message to it
https://bugs.webkit.org/show_bug.cgi?id=232262

Reviewed by Alex Christensen.

Source/WebKit:

No new tests (No behavior change yet)

This patch:
- Adds classes representing the WebPushDaemon and connections to it
- Adds classes/constants/macros related to messaging that daemon
- Adds SPI for configuring a connect to that daemon
- Gets MiniBrowser closer to supporting built-in notifications
- Has way more commented out code than usual for a patch, but that enables a great stopping-point milestone

* NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm: Added.
(WebKit::WebPushD::addVersionAndEncodedMessageToDictionary):
(WebKit::WebPushD::Connection::newConnectionWasInitialized const):
(WebKit::WebPushD::Connection::connectionReceivedEvent const):
(WebKit::WebPushD::Connection::dictionaryFromMessage const):

* NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::NetworkNotificationManager):
(WebKit::NetworkNotificationManager::showNotification):
(WebKit::NetworkNotificationManager::cancelNotification):
(WebKit::NetworkNotificationManager::clearNotifications):
(WebKit::NetworkNotificationManager::didDestroyNotification):
(WebKit::NetworkNotificationManager::sendMessage const):
(WebKit::ReplyCaller<>::callReply):
(WebKit::ReplyCaller::callReply):
(WebKit::NetworkNotificationManager::sendMessageWithReply const):
* NetworkProcess/Notifications/NetworkNotificationManager.h:
(WebKit::NetworkNotificationManager::networkSession const):

* NetworkProcess/Notifications/WebPushDaemonConnection.cpp: Copied from Source/WebKit/Platform/IPC/DaemonConnection.cpp.
(WebKit::WebPushD::Connection::Connection):
(WebKit::WebPushD::Connection::networkSession const):
* NetworkProcess/Notifications/WebPushDaemonConnection.h: Copied from Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h.

* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

* Platform/IPC/DaemonConnection.cpp:
* Platform/IPC/DaemonConnection.h:
(WebKit::Daemon::ConnectionToMachService::machServiceName const):
* Platform/IPC/cocoa/DaemonConnectionCocoa.mm:

* Platform/Logging.h:

* Shared/WebPushDaemonConstants.h: Copied from Source/WebKit/Platform/IPC/DaemonConnection.cpp.
(WebKit::WebPushD::messageTypeSendsReply):

* UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):

* webpushd/WebPushDaemon.h: Copied from Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h.
* webpushd/WebPushDaemon.mm: Copied from Source/WebKit/webpushd/WebPushDaemonMain.mm.
(WebPushD::MessageInfo::echoTwice::encodeReply):
(WebPushD::handleWebPushDMessageWithReply):
(WebPushD::Daemon::singleton):
(WebPushD::Daemon::connectionEventHandler):
(WebPushD::Daemon::connectionAdded):
(WebPushD::Daemon::connectionRemoved):
(WebPushD::CompletionHandler

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
trunk/Source/WebKit/NetworkProcess/WebSocketTask.h
trunk/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in
trunk/Source/WebKit/Platform/IPC/DaemonConnection.cpp
trunk/Source/WebKit/Platform/IPC/DaemonConnection.h
trunk/Source/WebKit/Platform/IPC/cocoa/DaemonConnectionCocoa.mm
trunk/Source/WebKit/Platform/Logging.h
trunk/Source/WebKit/Sources.txt
trunk/Source/WebKit/SourcesCocoa.txt
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/webpushd/WebPushDaemonMain.mm
trunk/Tools/ChangeLog
trunk/Tools/MiniBrowser/mac/AppDelegate.m
trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m


Added Paths

trunk/Source/WebKit/NetworkProcess/Notifications/Cocoa/
trunk/Source/WebKit/NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm
trunk/Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.h
trunk/Source/WebKit/Shared/WebPushDaemonConstants.h
trunk/Source/WebKit/webpushd/WebPushDaemon.h
trunk/Source/WebKit/webpushd/WebPushDaemon.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (284886 => 284887)

--- trunk/Source/WebKit/ChangeLog	2021-10-26 18:57:31 UTC (rev 284886)
+++ trunk/Source/WebKit/ChangeLog	2021-10-26 19:34:30 UTC (rev 284887)
@@ -1,3 +1,82 @@
+2021-10-26  Brady Eidson  
+
+Add helper classes and messaging infrastructure to launch webpushd and round trip a message to it
+https://bugs.webkit.org/show_bug.cgi?id=232262
+
+Reviewed by Alex Christensen.
+
+No new tests (No behavior change yet)
+
+This 

[webkit-changes] [284591] trunk

2021-10-21 Thread beidson
Title: [284591] trunk








Revision 284591
Author beid...@apple.com
Date 2021-10-20 23:51:48 -0700 (Wed, 20 Oct 2021)


Log Message
WebKit Managed Notifications: Skeleton NotificationProvider
https://bugs.webkit.org/show_bug.cgi?id=231786

Reviewed by Alex Christensen.

Source/WebCore:

* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setBuiltInNotificationsEnabled):
(WebCore::RuntimeEnabledFeatures::builtInNotificationsEnabled const):

Source/WebKit:

Currently, notification messages route from WebContent to the UI process.

When "WebKit-managed built-in notifications" are enabled, notification requests will route from
WebContent to Networking instead.

>From there they will head off to webpushd to be handled.

This patch just sets up the switch where messages can optionally head off to the Networking
process instead of the UIProcess.

(It also lays the SPI groundwork for the webpushd mach service name)

* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):
* NetworkProcess/NetworkSession.h:

* NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* NetworkProcess/NetworkSessionCreationParameters.h:

* NetworkProcess/Notifications/NetworkNotificationManager.cpp: Added.
(WebKit::NetworkNotificationManager::NetworkNotificationManager):
(WebKit::NetworkNotificationManager::showNotification):
(WebKit::NetworkNotificationManager::cancelNotification):
(WebKit::NetworkNotificationManager::clearNotifications):
(WebKit::NetworkNotificationManager::didDestroyNotification):
* NetworkProcess/Notifications/NetworkNotificationManager.h: Added.

* NetworkProcess/WebStorage/LocalStorageDatabase.cpp: Unified build fixup.

* Sources.txt:

* UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration webPushMachServiceName]):
(-[_WKWebsiteDataStoreConfiguration setWebPushMachServiceName:]):

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
* UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::setWebPushMachServiceName):
(WebKit::WebsiteDataStoreConfiguration::webPushMachServiceName const):

* WebKit.xcodeproj/project.pbxproj:

* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::sendNotificationMessage):
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::cancel):
(WebKit::WebNotificationManager::clearNotifications):
(WebKit::WebNotificationManager::didDestroyNotification):

Source/WTF:

* Scripts/Preferences/WebPreferencesExperimental.yaml:
* wtf/PlatformEnableCocoa.h:

Tools:

* WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults): Disable BuiltInNotificationsEnabled for now.

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
trunk/Source/WTF/wtf/PlatformEnableCocoa.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/RuntimeEnabledFeatures.h
trunk/Source/WebKit/CMakeLists.txt
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp
trunk/Source/WebKit/Sources.txt
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/TestOptions.cpp


Added Paths

trunk/Source/WebKit/NetworkProcess/Notifications/
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h




Diff

Modified: trunk/Source/WTF/ChangeLog (284590 => 284591)

--- trunk/Source/WTF/ChangeLog	2021-10-21 06:27:53 UTC (rev 284590)
+++ trunk/Source/WTF/ChangeLog	2021-10-21 06:51:48 UTC (rev 284591)
@@ -1,3 +1,13 @@
+2021-10-20  Brady Eidson  
+
+WebKit Managed Notifications: Skeleton NotificationProvider
+https://bugs.webkit.org/show_bug.cgi?id=231786
+
+Reviewed by Alex Christensen.
+
+* Scripts/Preferences/WebPreferencesExperimental.yaml:
+* wtf/PlatformEnableCocoa.h:
+
 2021-10-20  Alex Christensen  
 
 URLParser should reject hosts with C0 control characters or U+007F


Modified: 

[webkit-changes] [284564] trunk/Source/WebKit

2021-10-20 Thread beidson
Title: [284564] trunk/Source/WebKit








Revision 284564
Author beid...@apple.com
Date 2021-10-20 13:32:37 -0700 (Wed, 20 Oct 2021)


Log Message
Factor out some Notifications-specific messages from WebPageProxy messages
https://bugs.webkit.org/show_bug.cgi?id=232021

Reviewed by Alex Christensen.

In a future patch, there will be a runtime switch where WebContent sometimes sends these Notification
related messages to an objecting in Networking, and othertimes sends them to a WebPageProxy in the UIProcess.

To accomodate this switch, let's split them out into their own Notifications specific object and messages.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Sources.txt:
* WebKit.xcodeproj/project.pbxproj:

* Shared/Notifications/NotificationManagerMessageHandler.h: Added.
* Shared/Notifications/NotificationManagerMessageHandler.messages.in: Added.

* UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp: Added.
(WebKit::WebNotificationManagerMessageHandler::WebNotificationManagerMessageHandler):
(WebKit::WebNotificationManagerMessageHandler::showNotification):
(WebKit::WebNotificationManagerMessageHandler::cancelNotification):
(WebKit::WebNotificationManagerMessageHandler::clearNotifications):
(WebKit::WebNotificationManagerMessageHandler::didDestroyNotification):
* UIProcess/Notifications/WebNotificationManagerMessageHandler.h: Added.

* UIProcess/WebPageProxy.cpp:
(WebKit::m_notificationManagerMessageHandler):
(WebKit::WebPageProxy::addAllMessageReceivers):
(WebKit::WebPageProxy::removeAllMessageReceivers):
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::swapToProvisionalPage):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::m_limitsNavigationsToAppBoundDomains): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:

* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::cancel):
(WebKit::WebNotificationManager::clearNotifications):
(WebKit::WebNotificationManager::didDestroyNotification):

Modified Paths

trunk/Source/WebKit/CMakeLists.txt
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/DerivedSources-input.xcfilelist
trunk/Source/WebKit/DerivedSources-output.xcfilelist
trunk/Source/WebKit/DerivedSources.make
trunk/Source/WebKit/Sources.txt
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp


Added Paths

trunk/Source/WebKit/Shared/Notifications/
trunk/Source/WebKit/Shared/Notifications/NotificationManagerMessageHandler.h
trunk/Source/WebKit/Shared/Notifications/NotificationManagerMessageHandler.messages.in
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h




Diff

Modified: trunk/Source/WebKit/CMakeLists.txt (284563 => 284564)

--- trunk/Source/WebKit/CMakeLists.txt	2021-10-20 19:55:36 UTC (rev 284563)
+++ trunk/Source/WebKit/CMakeLists.txt	2021-10-20 20:32:37 UTC (rev 284564)
@@ -44,6 +44,7 @@
 "${WEBKIT_DIR}/Shared/Databases/IndexedDB"
 "${WEBKIT_DIR}/Shared/FileAPI"
 "${WEBKIT_DIR}/Shared/Gamepad"
+"${WEBKIT_DIR}/Shared/Notifications"
 "${WEBKIT_DIR}/Shared/Plugins"
 "${WEBKIT_DIR}/Shared/Plugins/Netscape"
 "${WEBKIT_DIR}/Shared/Plugins/Netscape/x11"
@@ -192,6 +193,8 @@
 
 Shared/Authentication/AuthenticationManager
 
+Shared/Notifications/NotificationManagerMessageHandler
+
 Shared/Plugins/NPObjectMessageReceiver
 
 UIProcess/DrawingAreaProxy


Modified: trunk/Source/WebKit/ChangeLog (284563 => 284564)

--- trunk/Source/WebKit/ChangeLog	2021-10-20 19:55:36 UTC (rev 284563)
+++ trunk/Source/WebKit/ChangeLog	2021-10-20 20:32:37 UTC (rev 284564)
@@ -1,3 +1,51 @@
+2021-10-20  Brady Eidson  
+
+Factor out some Notifications-specific messages from WebPageProxy messages
+https://bugs.webkit.org/show_bug.cgi?id=232021
+
+Reviewed by Alex Christensen.
+
+In a future patch, there will be a runtime switch where WebContent sometimes sends these Notification
+related messages to an objecting in Networking, and othertimes sends them to a WebPageProxy in the UIProcess.
+
+To accomodate this switch, let's split them out into their own Notifications specific object and messages.
+
+* CMakeLists.txt:
+* DerivedSources-input.xcfilelist:
+* DerivedSources-output.xcfilelist:
+* DerivedSources.make:
+* Sources.txt:
+* WebKit.xcodeproj/project.pbxproj:
+
+* Shared/Notifications/NotificationManagerMessageHandler.h: Added.
+* Shared/Notifications/NotificationManagerMessageHandler.messages.in: Added.

[webkit-changes] [284240] trunk/Source

2021-10-15 Thread beidson
Title: [284240] trunk/Source








Revision 284240
Author beid...@apple.com
Date 2021-10-15 02:26:08 -0700 (Fri, 15 Oct 2021)


Log Message
WebKit Managed Notifications: Skeleton NotificationProvider.
 and https://bugs.webkit.org/show_bug.cgi?id=231786

Reviewed by Alex Christensen.

Source/WebKit:

No new tests (No behavior change yet)

Currently WebNotificationManagerProxy manages dispatching out stuff to the NotificationProvider SPI
that - for example - Safari on Mac implements.

The interface between the ManagerProxy and the Provider is already the perfect way to add an alternative behavior.

This introduces the skeleton class of an alternative NotificationProvider that will eventually implement
WebKit-managed notifications.

While under development it will have a global runtime switch so we can A/B test between the client-managed and
WebKit-managed notifications. That switch would eventually be replaced by full compile-time behavior which would
be decided by a shipping vendor.

Note: This patch enables the new flag BUILT_IN_NOTIFICATIONS to get the new mechanisms building, but that flag by
itself doesn't expose Notifications interfaces in WebCore.
That will still require enabling NOTIFICATIONS separately.

* SourcesCocoa.txt:
* UIProcess/API/APINotificationProvider.h:
(API::NotificationProvider::isClientReplaceable const): A temporary mechanism to prevent API clients from overriding
  the built-in NotificationProvider if the feature is enabled. Useful right now because existing Safari does that with existing SPI.

* UIProcess/API/APIUIClient.h:
(API::UIClient::decidePolicyForNotificationPermissionRequest):

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest):

* UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.h: Copied from Source/WebKit/UIProcess/API/APINotificationProvider.h.
* UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm: Added.
(WebKit::WebNotificationProviderCocoa::createIfEnabled):
(WebKit::WebNotificationProviderCocoa::WebNotificationProviderCocoa):
(WebKit::WebNotificationProviderCocoa::show):
(WebKit::WebNotificationProviderCocoa::cancel):
(WebKit::WebNotificationProviderCocoa::didDestroyNotification):
(WebKit::WebNotificationProviderCocoa::clearNotifications):
(WebKit::WebNotificationProviderCocoa::addNotificationManager):
(WebKit::WebNotificationProviderCocoa::removeNotificationManager):
(WebKit::WebNotificationProviderCocoa::notificationPermissions):

* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::WebNotificationManagerProxy):
(WebKit::WebNotificationManagerProxy::setProvider):

Fix changes to the Unified Build:
* UIProcess/ios/WKHoverPlatter.h:
* UIProcess/ios/WKHoverPlatter.mm:
* WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebNotificationClient.mm:
(-[WebNotificationPolicyListener NO_RETURN_DUE_TO_ASSERT]):
(-[WebNotificationPolicyListener denyOnlyThisRequest]): Deleted.

Source/WTF:

* Scripts/Preferences/WebPreferencesDebug.yaml:
* wtf/PlatformEnableCocoa.h:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/Scripts/Preferences/WebPreferencesDebug.yaml
trunk/Source/WTF/wtf/PlatformEnableCocoa.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/SourcesCocoa.txt
trunk/Source/WebKit/UIProcess/API/APINotificationProvider.h
trunk/Source/WebKit/UIProcess/API/APIUIClient.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp
trunk/Source/WebKit/UIProcess/ios/WKHoverPlatter.h
trunk/Source/WebKit/UIProcess/ios/WKHoverPlatter.mm
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
trunk/Source/WebKitLegacy/mac/ChangeLog
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebNotificationClient.mm


Added Paths

trunk/Source/WebKit/UIProcess/Notifications/Cocoa/
trunk/Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.h
trunk/Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm




Diff

Modified: trunk/Source/WTF/ChangeLog (284239 => 284240)

--- trunk/Source/WTF/ChangeLog	2021-10-15 09:03:25 UTC (rev 284239)
+++ trunk/Source/WTF/ChangeLog	2021-10-15 09:26:08 UTC (rev 284240)
@@ -1,3 +1,13 @@
+2021-10-15  Brady Eidson  
+
+WebKit Managed Notifications: Skeleton NotificationProvider.
+ and https://bugs.webkit.org/show_bug.cgi?id=231786
+
+Reviewed by Alex Christensen.
+
+* Scripts/Preferences/WebPreferencesDebug.yaml:
+* wtf/PlatformEnableCocoa.h:
+
 2021-10-15  Robin Morisset  
 
 Revert r284230, my last fixes to the watch build make it break tests


Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesDebug.yaml (284239 => 284240)


[webkit-changes] [282881] trunk

2021-09-22 Thread beidson
Title: [282881] trunk








Revision 282881
Author beid...@apple.com
Date 2021-09-22 10:58:45 -0700 (Wed, 22 Sep 2021)


Log Message
Disable FTP.
 and https://bugs.webkit.org/show_bug.cgi?id=230477

Reviewed by Geoff Garen.

Source/WebKit:

Covered by new API tests.

* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::start):
(WebKit::NetworkLoad::willPerformHTTPRedirection):

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::ftpEnabled const):

* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Source/WTF:

* Scripts/Preferences/WebPreferencesExperimental.yaml:

* wtf/URL.cpp:
(WTF::URL::protocolIsInFTPFamily const):
(WTF::protocolIsInFTPFamily):
* wtf/URL.h:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

* TestWebKitAPI/Tests/WebKitCocoa/BundlePageConsoleMessage.mm: Added.
(willAddMessageToConsoleCallback):
(-[BundlePageConsoleMessage webProcessPlugIn:didCreateBrowserContextController:]):

* TestWebKitAPI/Tests/WebKitCocoa/FTP.mm: Added.
(TestWebKitAPI::didReceivePageMessageFromInjectedBundle):
(TestWebKitAPI::setInjectedBundleClient):
(TestWebKitAPI::TEST):

* TestWebKitAPI/PlatformUtilities.h:
* TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
(TestWebKitAPI::Util::toNS):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
trunk/Source/WTF/wtf/URL.cpp
trunk/Source/WTF/wtf/URL.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/PlatformUtilities.h
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
trunk/Tools/TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm


Added Paths

trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundlePageConsoleMessage.mm
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/FTP.mm




Diff

Modified: trunk/Source/WTF/ChangeLog (282880 => 282881)

--- trunk/Source/WTF/ChangeLog	2021-09-22 17:19:36 UTC (rev 282880)
+++ trunk/Source/WTF/ChangeLog	2021-09-22 17:58:45 UTC (rev 282881)
@@ -1,3 +1,17 @@
+2021-09-22  Brady Eidson  
+
+Disable FTP.
+ and https://bugs.webkit.org/show_bug.cgi?id=230477
+
+Reviewed by Geoff Garen.
+
+* Scripts/Preferences/WebPreferencesExperimental.yaml:
+
+* wtf/URL.cpp:
+(WTF::URL::protocolIsInFTPFamily const):
+(WTF::protocolIsInFTPFamily):
+* wtf/URL.h:
+
 2021-09-22  Simon Fraser  
 
 Remove ENABLE(SMOOTH_SCROLLING)


Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (282880 => 282881)

--- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml	2021-09-22 17:19:36 UTC (rev 282880)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml	2021-09-22 17:58:45 UTC (rev 282881)
@@ -421,6 +421,18 @@
 WebCore:
   default: false
 
+FTPEnabled:
+  type: bool
+  humanReadableName: "FTP support enabled"
+  humanReadableDescription: "FTP support enabled"
+  defaultValue:
+WebCore:
+  default: false
+WebKit:
+  default: false
+WebKitLegacy:
+  default: false
+  
 # FIXME: This seems to be accidentally enabled for WebKit1 right now due to the old code using the
 # wrong preference key in some places. We should identify whether it really makes sense to keep this
 # enabled.


Modified: trunk/Source/WTF/wtf/URL.cpp (282880 => 282881)

--- trunk/Source/WTF/wtf/URL.cpp	2021-09-22 17:19:36 UTC (rev 282880)
+++ trunk/Source/WTF/wtf/URL.cpp	2021-09-22 17:58:45 UTC (rev 282881)
@@ -329,6 +329,11 @@
 return WTF::protocolIsJavaScript(string());
 }
 
+bool URL::protocolIsInFTPFamily() const
+{
+return WTF::protocolIsInFTPFamily(string());
+}
+
 bool URL::protocolIs(const char* protocol) const
 {
 assertProtocolIsGood(protocol);
@@ -856,6 +861,17 @@
 return protocolIsInternal(string, "_javascript_");
 }
 
+bool protocolIsInFTPFamily(StringView url)
+{
+auto length = url.length();
+// Do the comparison without making a new string object.
+return length >= 4
+&& isASCIIAlphaCaselessEqual(url[0], 'f')
+&& isASCIIAlphaCaselessEqual(url[1], 't')
+&& isASCIIAlphaCaselessEqual(url[2], 'p')
+&& (url[3] == ':' || (isASCIIAlphaCaselessEqual(url[3], 's') && length >= 5 && url[4] == 

[webkit-changes] [280202] trunk/Source/WebKit

2021-07-22 Thread beidson
Title: [280202] trunk/Source/WebKit








Revision 280202
Author beid...@apple.com
Date 2021-07-22 15:45:52 -0700 (Thu, 22 Jul 2021)


Log Message
Revert part of r279089 that was done a little bit too early.
 and https://bugs.webkit.org/show_bug.cgi?id=228174

Reviewed by Chris Dumez.

* Configurations/WebKit.xcconfig:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Configurations/WebKit.xcconfig




Diff

Modified: trunk/Source/WebKit/ChangeLog (280201 => 280202)

--- trunk/Source/WebKit/ChangeLog	2021-07-22 22:40:20 UTC (rev 280201)
+++ trunk/Source/WebKit/ChangeLog	2021-07-22 22:45:52 UTC (rev 280202)
@@ -1,3 +1,12 @@
+2021-07-22  Brady Eidson  
+
+Revert part of r279089 that was done a little bit too early.
+ and https://bugs.webkit.org/show_bug.cgi?id=228174
+
+Reviewed by Chris Dumez.
+
+* Configurations/WebKit.xcconfig:
+
 2021-07-22  Tim Horton  
 
 REGRESSION (r279992): Crashes under RemoteLayerBackingStore::applyBackingStoreToLayer() in macCatalyst


Modified: trunk/Source/WebKit/Configurations/WebKit.xcconfig (280201 => 280202)

--- trunk/Source/WebKit/Configurations/WebKit.xcconfig	2021-07-22 22:40:20 UTC (rev 280201)
+++ trunk/Source/WebKit/Configurations/WebKit.xcconfig	2021-07-22 22:45:52 UTC (rev 280202)
@@ -178,10 +178,10 @@
 INSTALLHDRS_SCRIPT_PHASE = YES;
 APPLY_RULES_IN_COPY_HEADERS = $(WK_USE_NEW_BUILD_SYSTEM);
 
-WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED[sdk=macosx*] = $(WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED$(WK_MACOS_1300));
-WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED_MACOS_BEFORE_1300 = YES;
-WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED[sdk=iphone*] = $(WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED$(WK_IOS_16));
-WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED_IOS_BEFORE_16 = YES;
+WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED[sdk=macosx*] = $(WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED$(WK_MACOS_1200));
+WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED_MACOS_BEFORE_1200 = YES;
+WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED[sdk=iphone*] = $(WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED$(WK_IOS_15));
+WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED_IOS_BEFORE_15 = YES;
 
 WK_RELOCATABLE_FRAMEWORK_LDFLAGS = $(WK_RELOCATABLE_FRAMEWORK_LDFLAGS_$(WK_RELOCATABLE_FRAMEWORKS)_$(WK_PLATFORM_NAME));
 WK_RELOCATABLE_FRAMEWORK_LDFLAGS_YES_macosx = -Wl,-not_for_dyld_shared_cache;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [280005] trunk/Source/WebCore

2021-07-16 Thread beidson
Title: [280005] trunk/Source/WebCore








Revision 280005
Author beid...@apple.com
Date 2021-07-16 15:59:36 -0700 (Fri, 16 Jul 2021)


Log Message
FetchBodySource/FetchBodyOwner cleanup
 and https://bugs.webkit.org/show_bug.cgi?id=228035

Reviewed by Geoffrey Garen.

FetchBodyOwner should have a WeakPtr factory, and FetchBodySource should use it.

* Modules/fetch/FetchBodyOwner.h:
* Modules/fetch/FetchBodySource.cpp:
(WebCore::FetchBodySource::FetchBodySource):
(WebCore::FetchBodySource::doCancel):
(WebCore::FetchBodySource::close):
* Modules/fetch/FetchBodySource.h:
* Modules/fetch/FetchResponse.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h
trunk/Source/WebCore/Modules/fetch/FetchBodySource.cpp
trunk/Source/WebCore/Modules/fetch/FetchBodySource.h
trunk/Source/WebCore/Modules/fetch/FetchResponse.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (280004 => 280005)

--- trunk/Source/WebCore/ChangeLog	2021-07-16 22:18:46 UTC (rev 280004)
+++ trunk/Source/WebCore/ChangeLog	2021-07-16 22:59:36 UTC (rev 280005)
@@ -1,3 +1,20 @@
+2021-07-16  Brady Eidson  
+
+FetchBodySource/FetchBodyOwner cleanup
+ and https://bugs.webkit.org/show_bug.cgi?id=228035
+
+Reviewed by Geoffrey Garen.
+
+FetchBodyOwner should have a WeakPtr factory, and FetchBodySource should use it.
+
+* Modules/fetch/FetchBodyOwner.h:
+* Modules/fetch/FetchBodySource.cpp:
+(WebCore::FetchBodySource::FetchBodySource):
+(WebCore::FetchBodySource::doCancel):
+(WebCore::FetchBodySource::close):
+* Modules/fetch/FetchBodySource.h:
+* Modules/fetch/FetchResponse.h:
+
 2021-07-16  Alan Bujtas  
 
 [RenderTreeBuilder] Update the fragmented status of the renderer when it becomes in-flow


Modified: trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h (280004 => 280005)

--- trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h	2021-07-16 22:18:46 UTC (rev 280004)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h	2021-07-16 22:59:36 UTC (rev 280005)
@@ -40,7 +40,7 @@
 
 namespace WebCore {
 
-class FetchBodyOwner : public RefCounted, public ActiveDOMObject {
+class FetchBodyOwner : public RefCounted, public ActiveDOMObject, public CanMakeWeakPtr {
 public:
 FetchBodyOwner(ScriptExecutionContext&, std::optional&&, Ref&&);
 ~FetchBodyOwner();


Modified: trunk/Source/WebCore/Modules/fetch/FetchBodySource.cpp (280004 => 280005)

--- trunk/Source/WebCore/Modules/fetch/FetchBodySource.cpp	2021-07-16 22:18:46 UTC (rev 280004)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodySource.cpp	2021-07-16 22:59:36 UTC (rev 280005)
@@ -32,7 +32,7 @@
 namespace WebCore {
 
 FetchBodySource::FetchBodySource(FetchBodyOwner& bodyOwner)
-: m_bodyOwner()
+: m_bodyOwner(makeWeakPtr(bodyOwner))
 {
 }
 
@@ -68,7 +68,6 @@
 void FetchBodySource::doCancel()
 {
 m_isCancelling = true;
-ASSERT(m_bodyOwner || m_isClosed);
 if (!m_bodyOwner)
 return;
 
@@ -79,6 +78,7 @@
 void FetchBodySource::close()
 {
 #if ASSERT_ENABLED
+ASSERT(!m_isClosed);
 m_isClosed = true;
 #endif
 


Modified: trunk/Source/WebCore/Modules/fetch/FetchBodySource.h (280004 => 280005)

--- trunk/Source/WebCore/Modules/fetch/FetchBodySource.h	2021-07-16 22:18:46 UTC (rev 280004)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodySource.h	2021-07-16 22:59:36 UTC (rev 280005)
@@ -57,7 +57,8 @@
 void setActive() final;
 void setInactive() final;
 
-FetchBodyOwner* m_bodyOwner;
+WeakPtr m_bodyOwner;
+
 bool m_isCancelling { false };
 #if ASSERT_ENABLED
 bool m_isClosed { false };


Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.h (280004 => 280005)

--- trunk/Source/WebCore/Modules/fetch/FetchResponse.h	2021-07-16 22:18:46 UTC (rev 280004)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.h	2021-07-16 22:59:36 UTC (rev 280005)
@@ -47,7 +47,7 @@
 class FetchRequest;
 class ReadableStreamSource;
 
-class FetchResponse final : public FetchBodyOwner, public CanMakeWeakPtr {
+class FetchResponse final : public FetchBodyOwner {
 public:
 using Type = ResourceResponse::Type;
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [279960] trunk/Source/WebCore

2021-07-15 Thread beidson
Title: [279960] trunk/Source/WebCore








Revision 279960
Author beid...@apple.com
Date 2021-07-15 13:40:06 -0700 (Thu, 15 Jul 2021)


Log Message
Use WeakPtr with UniqueIDBDatabaseConnection
 and https://bugs.webkit.org/show_bug.cgi?id=227969

Reviewed by Geoff Garen.

No new tests possible.

Noticed this raw ptr which was raw to break a ref cycle.
WeakPtr works better.

* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abortWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didActivateInBackingStore):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection): Deleted.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (279959 => 279960)

--- trunk/Source/WebCore/ChangeLog	2021-07-15 20:39:47 UTC (rev 279959)
+++ trunk/Source/WebCore/ChangeLog	2021-07-15 20:40:06 UTC (rev 279960)
@@ -1,3 +1,42 @@
+2021-07-15  Brady Eidson  
+
+Use WeakPtr with UniqueIDBDatabaseConnection
+ and https://bugs.webkit.org/show_bug.cgi?id=227969
+
+Reviewed by Geoff Garen.
+
+No new tests possible.
+
+Noticed this raw ptr which was raw to break a ref cycle.
+WeakPtr works better.
+
+* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
+* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abortWithoutCallback):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didActivateInBackingStore):
+* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
+(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection): Deleted.
+
 

[webkit-changes] [279956] trunk/Source/WebCore

2021-07-15 Thread beidson
Title: [279956] trunk/Source/WebCore








Revision 279956
Author beid...@apple.com
Date 2021-07-15 13:12:14 -0700 (Thu, 15 Jul 2021)


Log Message
MemoryIDBBackingStore cleanup.
 and https://bugs.webkit.org/show_bug.cgi?id=227993

Reviewed by Geoffrey Garen.

* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore):
* Modules/indexeddb/server/MemoryIDBBackingStore.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp
trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (279955 => 279956)

--- trunk/Source/WebCore/ChangeLog	2021-07-15 18:29:47 UTC (rev 279955)
+++ trunk/Source/WebCore/ChangeLog	2021-07-15 20:12:14 UTC (rev 279956)
@@ -1,3 +1,14 @@
+2021-07-15  Brady Eidson  
+
+MemoryIDBBackingStore cleanup.
+ and https://bugs.webkit.org/show_bug.cgi?id=227993
+
+Reviewed by Geoffrey Garen.
+
+* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
+(WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore):
+* Modules/indexeddb/server/MemoryIDBBackingStore.h:
+
 2021-07-15  Tim Nguyen  
 
  element: do not perform close() method steps when removing open attribute.


Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp (279955 => 279956)

--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp	2021-07-15 18:29:47 UTC (rev 279955)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp	2021-07-15 20:12:14 UTC (rev 279956)
@@ -585,8 +585,8 @@
 
 void MemoryIDBBackingStore::registerObjectStore(Ref&& objectStore)
 {
-ASSERT(!m_objectStoresByIdentifier.contains(objectStore->info().identifier()));
-ASSERT(!m_objectStoresByName.contains(objectStore->info().name()));
+RELEASE_ASSERT(!m_objectStoresByIdentifier.contains(objectStore->info().identifier()));
+RELEASE_ASSERT(!m_objectStoresByName.contains(objectStore->info().name()));
 
 auto identifier = objectStore->info().identifier();
 m_objectStoresByName.set(objectStore->info().name(), ());


Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h (279955 => 279956)

--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h	2021-07-15 18:29:47 UTC (rev 279955)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h	2021-07-15 20:12:14 UTC (rev 279956)
@@ -97,7 +97,7 @@
 HashMap> m_transactions;
 
 HashMap> m_objectStoresByIdentifier;
-HashMap m_objectStoresByName;
+HashMap> m_objectStoresByName;
 };
 
 } // namespace IDBServer






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [279509] trunk/Source/WebKit

2021-07-02 Thread beidson
Title: [279509] trunk/Source/WebKit








Revision 279509
Author beid...@apple.com
Date 2021-07-02 10:57:12 -0700 (Fri, 02 Jul 2021)


Log Message
WebPageProxy::setAppHighlightsVisibility might send message from a background thread, ASSERTing
 and https://bugs.webkit.org/show_bug.cgi?id=227607

Reviewed by Chris Dumez.

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::setAppHighlightsVisibility):
(WebKit::WebPageProxy::setUpHighlightsObserver): The callback we get here is often on a background thread.
  So bounce it to main.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (279508 => 279509)

--- trunk/Source/WebKit/ChangeLog	2021-07-02 17:55:45 UTC (rev 279508)
+++ trunk/Source/WebKit/ChangeLog	2021-07-02 17:57:12 UTC (rev 279509)
@@ -1,3 +1,15 @@
+2021-07-02  Brady Eidson  
+
+WebPageProxy::setAppHighlightsVisibility might send message from a background thread, ASSERTing
+ and https://bugs.webkit.org/show_bug.cgi?id=227607
+
+Reviewed by Chris Dumez.
+
+* UIProcess/Cocoa/WebPageProxyCocoa.mm:
+(WebKit::WebPageProxy::setAppHighlightsVisibility):
+(WebKit::WebPageProxy::setUpHighlightsObserver): The callback we get here is often on a background thread.
+  So bounce it to main.
+
 2021-07-02  Philippe Normand  
 
 [GTK] Add new revision variable in pkgconfig file


Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (279508 => 279509)

--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2021-07-02 17:55:45 UTC (rev 279508)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2021-07-02 17:57:12 UTC (rev 279509)
@@ -587,6 +587,8 @@
 
 void WebPageProxy::setAppHighlightsVisibility(WebCore::HighlightVisibility appHighlightsVisibility)
 {
+RELEASE_ASSERT(isMainRunLoop());
+
 if (!hasRunningProcess())
 return;
 
@@ -604,9 +606,16 @@
 {
 if (m_appHighlightsObserver)
 return;
+
+auto weakThis = makeWeakPtr(*this);
 auto updateAppHighlightsVisibility = ^(BOOL isVisible) {
-setAppHighlightsVisibility(isVisible ? WebCore::HighlightVisibility::Visible : WebCore::HighlightVisibility::Hidden);
+ensureOnMainRunLoop([weakThis, isVisible] {
+if (!weakThis)
+return;
+weakThis->setAppHighlightsVisibility(isVisible ? WebCore::HighlightVisibility::Visible : WebCore::HighlightVisibility::Hidden);
+});
 };
+
 m_appHighlightsObserver = adoptNS([allocSYNotesActivationObserverInstance() initWithHandler:updateAppHighlightsVisibility]);
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [279480] trunk/Source/WebCore

2021-07-01 Thread beidson
Title: [279480] trunk/Source/WebCore








Revision 279480
Author beid...@apple.com
Date 2021-07-01 13:22:16 -0700 (Thu, 01 Jul 2021)


Log Message
HIDGamepadProvider adds an extra 50ms to all inputs
 and https://bugs.webkit.org/show_bug.cgi?id=217742

Reviewed by Alex Christensen.

No new tests.
Tried to write an API test to drive inputs in the delay range, but that was way too fragile
on a local developer machine, much less a bot that's under load.

These input delays were an early best-effort to get input to line up with RaF, which the spec
mentions as a goal.

Not sure how 50 slipped in for HID, vs the 16 on GCF.

Whether or not lining up perfectly with RaF is actually a useful goal, in the meantime driving
input as quickly as possible seems much more desirable.

We still want to coalesce multiple close together inputs into 1 logical event to smooth out jitter
with certain devices, and reduce IPC and DOM object churn during rapid input (or with buggy devices).

In testing with what I have on my desk, using a true 0-delay timer for that was not desirable.

But 1ms seems peachy keen.

* platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
* platform/gamepad/mac/HIDGamepadProvider.mm:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm
trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (279479 => 279480)

--- trunk/Source/WebCore/ChangeLog	2021-07-01 20:22:09 UTC (rev 279479)
+++ trunk/Source/WebCore/ChangeLog	2021-07-01 20:22:16 UTC (rev 279480)
@@ -1,3 +1,32 @@
+2021-07-01  Brady Eidson  
+
+HIDGamepadProvider adds an extra 50ms to all inputs
+ and https://bugs.webkit.org/show_bug.cgi?id=217742
+
+Reviewed by Alex Christensen.
+
+No new tests.
+Tried to write an API test to drive inputs in the delay range, but that was way too fragile
+on a local developer machine, much less a bot that's under load.
+
+These input delays were an early best-effort to get input to line up with RaF, which the spec
+mentions as a goal.
+
+Not sure how 50 slipped in for HID, vs the 16 on GCF.
+
+Whether or not lining up perfectly with RaF is actually a useful goal, in the meantime driving
+input as quickly as possible seems much more desirable.
+
+We still want to coalesce multiple close together inputs into 1 logical event to smooth out jitter
+with certain devices, and reduce IPC and DOM object churn during rapid input (or with buggy devices).
+
+In testing with what I have on my desk, using a true 0-delay timer for that was not desirable.
+
+But 1ms seems peachy keen.
+
+* platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
+* platform/gamepad/mac/HIDGamepadProvider.mm:
+
 2021-07-01  Dean Jackson  
 
 Add a layoutTrait for an additional controls scale factor


Modified: trunk/Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm (279479 => 279480)

--- trunk/Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm	2021-07-01 20:22:09 UTC (rev 279479)
+++ trunk/Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm	2021-07-01 20:22:16 UTC (rev 279480)
@@ -68,7 +68,7 @@
 
 #endif // !HAVE(GCCONTROLLER_HID_DEVICE_CHECK)
 
-static const Seconds inputNotificationDelay { 16_ms };
+static const Seconds inputNotificationDelay { 1_ms };
 
 GameControllerGamepadProvider& GameControllerGamepadProvider::singleton()
 {


Modified: trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.mm (279479 => 279480)

--- trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.mm	2021-07-01 20:22:09 UTC (rev 279479)
+++ trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.mm	2021-07-01 20:22:16 UTC (rev 279480)
@@ -43,7 +43,7 @@
 namespace WebCore {
 
 static const Seconds connectionDelayInterval { 500_ms };
-static const Seconds hidInputNotificationDelay { 50_ms };
+static const Seconds hidInputNotificationDelay { 1_ms };
 
 static RetainPtr deviceMatchingDictionary(uint32_t usagePage, uint32_t usage)
 {






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [278498] trunk

2021-06-04 Thread beidson
Title: [278498] trunk








Revision 278498
Author beid...@apple.com
Date 2021-06-04 14:21:48 -0700 (Fri, 04 Jun 2021)


Log Message
Enforce a quota in window.sessionStorage
rdar://78507096 and https://bugs.webkit.org/show_bug.cgi?id=226337

Reviewed by Chris Dumez.

Source/WebCore:

Covered by change to existing test.

* page/Page.cpp:
(WebCore::Page::sessionStorage): Make sure the quota for session storage is not "noQuota"

* page/Settings.yaml: Default to 5mb instead of noQuota to match other browsers.

LayoutTests:

* platform/ios-wk1/TestExpectations:
* platform/ios/ios/storage/domstorage/5mb-quota.html: Removed.
* storage/domstorage/quota-expected.txt:
* storage/domstorage/quota.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios-wk1/TestExpectations
trunk/LayoutTests/storage/domstorage/quota-expected.txt
trunk/LayoutTests/storage/domstorage/quota.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Page.cpp
trunk/Source/WebCore/page/Settings.yaml


Removed Paths

trunk/LayoutTests/platform/ios/ios/storage/domstorage/5mb-quota.html




Diff

Modified: trunk/LayoutTests/ChangeLog (278497 => 278498)

--- trunk/LayoutTests/ChangeLog	2021-06-04 21:04:14 UTC (rev 278497)
+++ trunk/LayoutTests/ChangeLog	2021-06-04 21:21:48 UTC (rev 278498)
@@ -1,3 +1,15 @@
+2021-06-04  Brady Eidson  
+
+Enforce a quota in window.sessionStorage
+rdar://78507096 and https://bugs.webkit.org/show_bug.cgi?id=226337
+
+Reviewed by Chris Dumez.
+
+* platform/ios-wk1/TestExpectations:
+* platform/ios/ios/storage/domstorage/5mb-quota.html: Removed.
+* storage/domstorage/quota-expected.txt:
+* storage/domstorage/quota.html:
+
 2021-06-04  Antti Koivisto  
 
 REGRESSION (maybe r276882): custom properties not available on host on initial paint


Deleted: trunk/LayoutTests/platform/ios/ios/storage/domstorage/5mb-quota.html (278497 => 278498)

--- trunk/LayoutTests/platform/ios/ios/storage/domstorage/5mb-quota.html	2021-06-04 21:04:14 UTC (rev 278497)
+++ trunk/LayoutTests/platform/ios/ios/storage/domstorage/5mb-quota.html	2021-06-04 21:21:48 UTC (rev 278498)
@@ -1,66 +0,0 @@
-
-
-
-
-

-
-