Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c9c593aab62e8afdbbc714677a087029754184ed
https://github.com/WebKit/WebKit/commit/c9c593aab62e8afdbbc714677a087029754184ed
Author: Ben Nham <[email protected]>
Date: 2024-08-08 (Thu, 08 Aug 2024)
Changed paths:
M
Source/WebKit/NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm
M Source/WebKit/Platform/spi/ios/RunningBoardServicesSPI.h
M
Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.webpushd.sb.in
M Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.h
M Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.serialization.in
M Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
M Source/WebKit/webpushd/PushClientConnection.h
M Source/WebKit/webpushd/PushClientConnection.messages.in
M Source/WebKit/webpushd/PushClientConnection.mm
M Source/WebKit/webpushd/WebPushDaemon.h
M Source/WebKit/webpushd/WebPushDaemon.mm
M Source/WebKit/webpushd/WebPushDaemonMain.mm
M Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
Log Message:
-----------
Read host app info from extension process directly in webpushd
https://bugs.webkit.org/show_bug.cgi?id=277755
rdar://131367853
Reviewed by Brady Eidson.
Currently webpushd depends on the remote process (which is NetworkProcess) to
provide the audit
token of the host app as part of a connection setup IPC message. When
ExtensionKit is enabled,
instead of having to trust the remote process for that info, we can just read
the audit token of the
host app directly from within webpushd.
The main refactoring here is making it so that `PushClientConnection`
represents a connection to a
valid peer (i.e. one associated with a host app with the appropriate
entitlements and with a
non-empty code signing identifier). As part of this, I renamed the
UpdateConnectionConfiguration
message to InitializeConnection, and enforce that it is the first message sent
on the
connection. Previously, `PushClientConnection` could be in an invalid state
while awaiting the
UpdateConnectionConfiguration message, and we also had code that dealt with
UpdateConnectionConfiguration being sent multiple times. I deleted all of that
code since you now
can't have a connection that is in an invalid state.
I also deleted the webPushDaemonUsesMockBundlesForTesting member variable since
it was unused.
*
Source/WebKit/NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:
(WebKit::WebPushD::Connection::newConnectionWasInitialized const):
* Source/WebKit/Platform/spi/ios/RunningBoardServicesSPI.h:
* Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.h:
(): Deleted.
* Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.serialization.in:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration webPushDaemonUsesMockBundlesForTesting]):
Deleted.
(-[_WKWebsiteDataStoreConfiguration
setWebPushDaemonUsesMockBundlesForTesting:]): Deleted.
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
(WebKit::WebsiteDataStoreConfiguration::webPushDaemonConnectionConfiguration
const):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::webPushDaemonUsesMockBundlesForTesting
const): Deleted.
(WebKit::WebsiteDataStoreConfiguration::setWebPushDaemonUsesMockBundlesForTesting):
Deleted.
* Source/WebKit/webpushd/PushClientConnection.h:
(WebPushD::PushClientConnection::hostAppCodeSigningIdentifier const):
(WebPushD::PushClientConnection::hostAppHasPushInjectEntitlement const):
(WebPushD::PushClientConnection::hasHostAppAuditToken const): Deleted.
(WebPushD::PushClientConnection::useMockBundlesForTesting const): Deleted.
* Source/WebKit/webpushd/PushClientConnection.messages.in:
* Source/WebKit/webpushd/PushClientConnection.mm:
(WebPushD::hostAppHasEntitlement):
(WebPushD::bundleIdentifierFromAuditToken):
(WebPushD::PushClientConnection::create):
(WebPushD::PushClientConnection::PushClientConnection):
(WebPushD::PushClientConnection::initializeConnection):
(WebPushD::PushClientConnection::getPushTopicsForTesting):
(WebPushD::PushClientConnection::subscriptionSetIdentifier const):
(WebPushD::PushClientConnection::connectionClosed):
(WebPushD::PushClientConnection::updateConnectionConfiguration): Deleted.
(WebPushD::PushClientConnection::setHostAppAuditTokenData): Deleted.
(WebPushD::PushClientConnection::subscriptionSetIdentifier): Deleted.
(WebPushD::PushClientConnection::hostAppCodeSigningIdentifier): Deleted.
(WebPushD::PushClientConnection::bundleIdentifierFromAuditToken): Deleted.
(WebPushD::PushClientConnection::hostAppHasPushEntitlement): Deleted.
(WebPushD::PushClientConnection::hostAppHasPushInjectEntitlement): Deleted.
(WebPushD::PushClientConnection::hostHasEntitlement): Deleted.
* Source/WebKit/webpushd/WebPushDaemon.h:
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::WebPushDaemon::connectionEventHandler):
(WebPushD::WebPushDaemon::connectionAdded):
(WebPushD::WebPushDaemon::connectionRemoved):
(WebPushD::WebPushDaemon::getPendingPushMessage):
(WebPushD::WebPushDaemon::getPendingPushMessages):
* Source/WebKit/webpushd/WebPushDaemonMain.mm:
* Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm:
(WebPushTool::Connection::sendAuditToken):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::createAndConfigureConnectionToService):
(TestWebKitAPI::TEST(WebPushD, BasicCommunication)):
(TestWebKitAPI::(WebPushD, DeclarativeParsing)):
(TestWebKitAPI::(WebPushD, DeclarativeWebPushHandling)):
Canonical link: https://commits.webkit.org/282035@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes