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

Reply via email to