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

Added Paths

Diff

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


--- trunk/Source/WebKit/ChangeLog	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/ChangeLog	2021-12-01 09:07:47 UTC (rev 286355)
@@ -1,3 +1,81 @@
+2021-12-01  Brady Eidson  <beid...@apple.com>
+
+        Add WKWebsiteDataStore configuration option to enable Mock app bundle testing.
+        https://bugs.webkit.org/show_bug.cgi?id=233679
+
+        Reviewed by Tim Horton.
+
+        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.
+
 2021-12-01  Lauro Moura  <lmo...@igalia.com>
 
         [GTK][GTK4][WebDriver] Flaky crashes exiting many prompty-related webdriver tests

Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (286354 => 286355)


--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -127,6 +127,9 @@
     virtual bool hasAppBoundSession() const { return false; }
     virtual void clearAppBoundSession() { }
 #endif
+
+    virtual bool webPushDaemonUsesMockBundlesForTesting() const { return false; }
+
     void storePrivateClickMeasurement(WebCore::PrivateClickMeasurement&&);
     void handlePrivateClickMeasurementConversion(WebCore::PrivateClickMeasurement::AttributionTriggerData&&, const URL& requestURL, const WebCore::ResourceRequest& redirectRequest, String&& attributedBundleIdentifier);
     void dumpPrivateClickMeasurement(CompletionHandler<void(String)>&&);

Modified: trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp (286354 => 286355)


--- trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp	2021-12-01 09:07:47 UTC (rev 286355)
@@ -74,6 +74,7 @@
 
     encoder << deviceManagementRestrictionsEnabled;
     encoder << allLoadsBlockedByDeviceManagementRestrictionsForTesting;
+    encoder << webPushDaemonConnectionConfiguration;
     encoder << dataConnectionServiceType;
     encoder << fastServerTrustEvaluationEnabled;
     encoder << networkCacheSpeculativeValidationEnabled;
@@ -233,6 +234,11 @@
     if (!allLoadsBlockedByDeviceManagementRestrictionsForTesting)
         return std::nullopt;
 
+    std::optional<WebPushD::WebPushDaemonConnectionConfiguration> webPushDaemonConnectionConfiguration;
+    decoder >> webPushDaemonConnectionConfiguration;
+    if (!webPushDaemonConnectionConfiguration)
+        return std::nullopt;
+
     std::optional<String> dataConnectionServiceType;
     decoder >> dataConnectionServiceType;
     if (!dataConnectionServiceType)
@@ -356,6 +362,7 @@
 #endif
         , WTFMove(*deviceManagementRestrictionsEnabled)
         , WTFMove(*allLoadsBlockedByDeviceManagementRestrictionsForTesting)
+        , WTFMove(*webPushDaemonConnectionConfiguration)
         , WTFMove(*networkCacheDirectory)
         , WTFMove(*networkCacheDirectoryExtensionHandle)
         , WTFMove(*dataConnectionServiceType)

Modified: trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (286354 => 286355)


--- trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -26,6 +26,7 @@
 #pragma once
 
 #include "ResourceLoadStatisticsParameters.h"
+#include "WebPushDaemonConnectionConfiguration.h"
 #include <WebCore/NetworkStorageSession.h>
 #include <pal/SessionID.h>
 #include <wtf/Seconds.h>
@@ -86,6 +87,7 @@
 #endif
     bool deviceManagementRestrictionsEnabled { false };
     bool allLoadsBlockedByDeviceManagementRestrictionsForTesting { false };
+    WebPushD::WebPushDaemonConnectionConfiguration webPushDaemonConnectionConfiguration;
 
     String networkCacheDirectory;
     SandboxExtension::Handle networkCacheDirectoryExtensionHandle;

Modified: trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp (286354 => 286355)


--- trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp	2021-12-01 09:07:47 UTC (rev 286355)
@@ -31,6 +31,7 @@
 #include "DaemonDecoder.h"
 #include "DaemonEncoder.h"
 #include "NetworkSession.h"
+#include "WebPushDaemonConnectionConfiguration.h"
 #include <WebCore/SecurityOriginData.h>
 
 namespace WebKit {
@@ -43,23 +44,26 @@
         m_connection = makeUnique<WebPushD::Connection>(webPushMachServiceName.utf8(), *this);
 }
 
-void NetworkNotificationManager::maybeSendHostAppAuditToken() const
+void NetworkNotificationManager::maybeSendConnectionConfiguration() const
 {
-    if (m_sentHostAppAuditToken)
+    if (m_sentConnectionConfiguration)
         return;
-    m_sentHostAppAuditToken = true;
+    m_sentConnectionConfiguration = true;
 
+    WebPushD::WebPushDaemonConnectionConfiguration configuration;
+    configuration.useMockBundlesForTesting = m_networkSession.webPushDaemonUsesMockBundlesForTesting();
+
 #if PLATFORM(COCOA)
-        auto token = m_networkSession.networkProcess().parentProcessConnection()->getAuditToken();
-        if (!token)
-            return;
-
+    auto token = m_networkSession.networkProcess().parentProcessConnection()->getAuditToken();
+    if (token) {
         Vector<uint8_t> auditTokenData;
         auditTokenData.resize(sizeof(*token));
         memcpy(auditTokenData.data(), &(*token), sizeof(*token));
+        configuration.hostAppAuditTokenData = WTFMove(auditTokenData);
+    }
+#endif
 
-        sendMessage<WebPushD::MessageType::SetHostAppAuditToken>(auditTokenData);
-#endif
+    sendMessage<WebPushD::MessageType::UpdateConnectionConfiguration>(configuration);
 }
 
 void NetworkNotificationManager::requestSystemNotificationPermission(const String& originString, CompletionHandler<void(bool)>&& completionHandler)
@@ -123,7 +127,7 @@
 {
     RELEASE_ASSERT(m_connection);
 
-    maybeSendHostAppAuditToken();
+    maybeSendConnectionConfiguration();
 
     Daemon::Encoder encoder;
     encoder.encode(std::forward<Args>(args)...);
@@ -187,7 +191,7 @@
 {
     RELEASE_ASSERT(m_connection);
 
-    maybeSendHostAppAuditToken();
+    maybeSendConnectionConfiguration();
 
     Daemon::Encoder encoder;
     encoder.encode(std::forward<Args>(args)...);

Modified: trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h (286354 => 286355)


--- trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -62,11 +62,11 @@
     void clearNotifications(const Vector<uint64_t>& notificationIDs) final;
     void didDestroyNotification(uint64_t notificationID) final;
 
-    void maybeSendHostAppAuditToken() const;
+    void maybeSendConnectionConfiguration() const;
 
     NetworkSession& m_networkSession;
     std::unique_ptr<WebPushD::Connection> m_connection;
-    mutable bool m_sentHostAppAuditToken { false };
+    mutable bool m_sentConnectionConfiguration { false };
 
     template<WebPushD::MessageType messageType, typename... Args>
     void sendMessage(Args&&...) const;

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (286354 => 286355)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -121,6 +121,8 @@
     bool fastServerTrustEvaluationEnabled() const { return m_fastServerTrustEvaluationEnabled; }
     bool deviceManagementRestrictionsEnabled() const { return m_deviceManagementRestrictionsEnabled; }
     bool allLoadsBlockedByDeviceManagementRestrictionsForTesting() const { return m_allLoadsBlockedByDeviceManagementRestrictionsForTesting; }
+    bool webPushDaemonUsesMockBundlesForTesting() const final { return m_webPushDaemonUsesMockBundlesForTesting; }
+
     DMFWebsitePolicyMonitor *deviceManagementPolicyMonitor();
 
     CFDictionaryRef proxyConfiguration() const { return m_proxyConfiguration.get(); }
@@ -180,6 +182,7 @@
     RetainPtr<DMFWebsitePolicyMonitor> m_deviceManagementPolicyMonitor;
     bool m_deviceManagementRestrictionsEnabled { false };
     bool m_allLoadsBlockedByDeviceManagementRestrictionsForTesting { false };
+    bool m_webPushDaemonUsesMockBundlesForTesting { false };
     bool m_shouldLogCookieInformation { false };
     bool m_fastServerTrustEvaluationEnabled { false };
     String m_dataConnectionServiceType;

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (286354 => 286355)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-12-01 09:07:47 UTC (rev 286355)
@@ -1347,6 +1347,7 @@
 
     m_deviceManagementRestrictionsEnabled = parameters.deviceManagementRestrictionsEnabled;
     m_allLoadsBlockedByDeviceManagementRestrictionsForTesting = parameters.allLoadsBlockedByDeviceManagementRestrictionsForTesting;
+    m_webPushDaemonUsesMockBundlesForTesting = parameters.webPushDaemonConnectionConfiguration.useMockBundlesForTesting;
 
 #if ENABLE(APP_BOUND_DOMAINS)
     if (m_resourceLoadStatistics && !parameters.resourceLoadStatisticsParameters.appBoundDomains.isEmpty())

Copied: trunk/Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.h (from rev 286354, trunk/Source/WebKit/Shared/WebPushDaemonConstants.h) (0 => 286355)


--- trunk/Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.h	                        (rev 0)
+++ trunk/Source/WebKit/Shared/WebPushDaemonConnectionConfiguration.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -0,0 +1,66 @@
+/*
+ * 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. AND ITS CONTRIBUTORS ``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 ITS 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 SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <optional>
+#include <wtf/Vector.h>
+
+namespace WebKit::WebPushD {
+
+struct WebPushDaemonConnectionConfiguration {
+    template<class Encoder> void encode(Encoder&) const;
+    template<class Decoder> static std::optional<WebPushDaemonConnectionConfiguration> decode(Decoder&);
+
+    bool useMockBundlesForTesting { false };
+    std::optional<Vector<uint8_t>> hostAppAuditTokenData;
+};
+
+template<class Encoder>
+void WebPushDaemonConnectionConfiguration::encode(Encoder& encoder) const
+{
+    encoder << useMockBundlesForTesting << hostAppAuditTokenData;
+}
+
+template<class Decoder>
+std::optional<WebPushDaemonConnectionConfiguration> WebPushDaemonConnectionConfiguration::decode(Decoder& decoder)
+{
+    std::optional<bool> useMockBundlesForTesting;
+    decoder >> useMockBundlesForTesting;
+    if (!useMockBundlesForTesting)
+        return std::nullopt;
+
+    std::optional<std::optional<Vector<uint8_t>>> hostAppAuditTokenData;
+    decoder >> hostAppAuditTokenData;
+    if (!hostAppAuditTokenData)
+        return std::nullopt;
+
+    return { {
+        WTFMove(*useMockBundlesForTesting),
+        WTFMove(*hostAppAuditTokenData)
+    } };
+}
+
+} // namespace WebKit::WebPushD

Modified: trunk/Source/WebKit/Shared/WebPushDaemonConstants.h (286354 => 286355)


--- trunk/Source/WebKit/Shared/WebPushDaemonConstants.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/Shared/WebPushDaemonConstants.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -40,8 +40,8 @@
     RequestSystemNotificationPermission,
     DeletePushAndNotificationRegistration,
     GetOriginsWithPushAndNotificationPermissions,
-    SetHostAppAuditToken,
     SetDebugModeIsEnabled,
+    UpdateConnectionConfiguration,
 };
 
 inline bool messageTypeSendsReply(MessageType messageType)
@@ -52,8 +52,8 @@
     case MessageType::DeletePushAndNotificationRegistration:
     case MessageType::RequestSystemNotificationPermission:
         return true;
-    case MessageType::SetHostAppAuditToken:
     case MessageType::SetDebugModeIsEnabled:
+    case MessageType::UpdateConnectionConfiguration:
         return false;
     }
     ASSERT_NOT_REACHED();

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h (286354 => 286355)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -86,6 +86,7 @@
 
 // Testing only.
 @property (nonatomic) BOOL allLoadsBlockedByDeviceManagementRestrictionsForTesting WK_API_AVAILABLE(macos(10.15), ios(13.0));
+@property (nonatomic) BOOL webPushDaemonUsesMockBundlesForTesting WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
 
 @end
 

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm (286354 => 286355)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm	2021-12-01 09:07:47 UTC (rev 286355)
@@ -561,6 +561,16 @@
     _configuration->setAllLoadsBlockedByDeviceManagementRestrictionsForTesting(blocked);
 }
 
+- (BOOL)webPushDaemonUsesMockBundlesForTesting
+{
+    return _configuration->webPushDaemonUsesMockBundlesForTesting();
+}
+
+- (void)setWebPushDaemonUsesMockBundlesForTesting:(BOOL)usesMockBundles
+{
+    _configuration->setWebPushDaemonUsesMockBundlesForTesting(usesMockBundles);
+}
+
 - (API::Object&)_apiObject
 {
     return *_configuration;

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (286354 => 286355)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2021-12-01 09:07:47 UTC (rev 286355)
@@ -1858,6 +1858,7 @@
     networkSessionParameters.allowsCellularAccess = configuration().allowsCellularAccess() ? AllowsCellularAccess::Yes : AllowsCellularAccess::No;
     networkSessionParameters.deviceManagementRestrictionsEnabled = m_configuration->deviceManagementRestrictionsEnabled();
     networkSessionParameters.allLoadsBlockedByDeviceManagementRestrictionsForTesting = m_configuration->allLoadsBlockedByDeviceManagementRestrictionsForTesting();
+    networkSessionParameters.webPushDaemonConnectionConfiguration = m_configuration->webPushDaemonConnectionConfiguration();
     networkSessionParameters.networkCacheDirectory = WTFMove(networkCacheDirectory);
     networkSessionParameters.networkCacheDirectoryExtensionHandle = WTFMove(networkCacheDirectoryExtensionHandle);
     networkSessionParameters.hstsStorageDirectory = WTFMove(hstsStorageDirectory);

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp (286354 => 286355)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp	2021-12-01 09:07:47 UTC (rev 286355)
@@ -26,6 +26,7 @@
 #include "config.h"
 #include "WebsiteDataStoreConfiguration.h"
 
+#include "WebPushDaemonConnectionConfiguration.h"
 #include "WebsiteDataStore.h"
 
 namespace WebKit {
@@ -90,6 +91,7 @@
     copy->m_httpsProxy = this->m_httpsProxy;
     copy->m_deviceManagementRestrictionsEnabled = this->m_deviceManagementRestrictionsEnabled;
     copy->m_allLoadsBlockedByDeviceManagementRestrictionsForTesting = this->m_allLoadsBlockedByDeviceManagementRestrictionsForTesting;
+    copy->m_webPushDaemonUsesMockBundlesForTesting = this->m_webPushDaemonUsesMockBundlesForTesting;
     copy->m_boundInterfaceIdentifier = this->m_boundInterfaceIdentifier;
     copy->m_allowsCellularAccess = this->m_allowsCellularAccess;
     copy->m_legacyTLSEnabled = this->m_legacyTLSEnabled;
@@ -117,4 +119,9 @@
     return copy;
 }
 
+WebPushD::WebPushDaemonConnectionConfiguration WebsiteDataStoreConfiguration::webPushDaemonConnectionConfiguration() const
+{
+    return { m_webPushDaemonUsesMockBundlesForTesting, { } };
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h (286354 => 286355)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -32,6 +32,10 @@
 
 namespace WebKit {
 
+namespace WebPushD {
+struct WebPushDaemonConnectionConfiguration;
+}
+
 enum class IsPersistent : bool { No, Yes };
 enum class WillCopyPathsFromExistingConfiguration : bool { No, Yes };
 
@@ -156,6 +160,10 @@
     bool allLoadsBlockedByDeviceManagementRestrictionsForTesting() const { return m_allLoadsBlockedByDeviceManagementRestrictionsForTesting; }
     void setAllLoadsBlockedByDeviceManagementRestrictionsForTesting(bool blocked) { m_allLoadsBlockedByDeviceManagementRestrictionsForTesting = blocked; }
 
+    bool webPushDaemonUsesMockBundlesForTesting() const { return m_webPushDaemonUsesMockBundlesForTesting; }
+    void setWebPushDaemonUsesMockBundlesForTesting(bool usesMockBundles) { m_webPushDaemonUsesMockBundlesForTesting = usesMockBundles; }
+    WebPushD::WebPushDaemonConnectionConfiguration webPushDaemonConnectionConfiguration() const;
+
     const String& dataConnectionServiceType() const { return m_dataConnectionServiceType; }
     void setDataConnectionServiceType(String&& type) { m_dataConnectionServiceType = WTFMove(type); }
     
@@ -228,6 +236,7 @@
     URL m_httpsProxy;
     bool m_deviceManagementRestrictionsEnabled { false };
     bool m_allLoadsBlockedByDeviceManagementRestrictionsForTesting { false };
+    bool m_webPushDaemonUsesMockBundlesForTesting { false };
     bool m_allowsCellularAccess { true };
     bool m_legacyTLSEnabled { true };
     bool m_fastServerTrustEvaluationEnabled { false };

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (286354 => 286355)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-12-01 09:07:47 UTC (rev 286355)
@@ -1020,6 +1020,8 @@
 		517A52D91F43A9DA00DCDC0A /* WebSWServerConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 517A52D61F43A9B600DCDC0A /* WebSWServerConnectionMessages.h */; };
 		517A530F1F47A86200DCDC0A /* WebSWClientConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517A530E1F47A84300DCDC0A /* WebSWClientConnectionMessageReceiver.cpp */; };
 		517A53101F47A86200DCDC0A /* WebSWClientConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 517A530D1F47A84300DCDC0A /* WebSWClientConnectionMessages.h */; };
+		517B5F2E2757382A002DC22D /* WebPushDaemonConnectionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 517B5F2D2757382A002DC22D /* WebPushDaemonConnectionConfiguration.h */; };
+		517B5F2F2757382B002DC22D /* WebPushDaemonConnectionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 517B5F2D2757382A002DC22D /* WebPushDaemonConnectionConfiguration.h */; };
 		517CF0E3163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517CF0E1163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp */; };
 		517CF0E3163A486C00C2950F /* CacheStorageEngineConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517CF0E1163A486C00C2950F /* CacheStorageEngineConnectionMessageReceiver.cpp */; };
 		517CF0E4163A486C00C2950E /* NetworkProcessConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 517CF0E2163A486C00C2950E /* NetworkProcessConnectionMessages.h */; };
@@ -4374,6 +4376,7 @@
 		517A530C1F479E9700DCDC0A /* WebSWClientConnection.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebSWClientConnection.messages.in; sourceTree = "<group>"; };
 		517A530D1F47A84300DCDC0A /* WebSWClientConnectionMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebSWClientConnectionMessages.h; path = DerivedSources/WebKit2/WebSWClientConnectionMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
 		517A530E1F47A84300DCDC0A /* WebSWClientConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebSWClientConnectionMessageReceiver.cpp; path = DerivedSources/WebKit2/WebSWClientConnectionMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
+		517B5F2D2757382A002DC22D /* WebPushDaemonConnectionConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPushDaemonConnectionConfiguration.h; sourceTree = "<group>"; };
 		517CF0E1163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessConnectionMessageReceiver.cpp; path = DerivedSources/WebKit2/NetworkProcessConnectionMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
 		517CF0E1163A486C00C2950F /* CacheStorageEngineConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CacheStorageEngineConnectionMessageReceiver.cpp; path = DerivedSources/WebKit2/CacheStorageEngineConnectionMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
 		517CF0E2163A486C00C2950E /* NetworkProcessConnectionMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessConnectionMessages.h; path = DerivedSources/WebKit2/NetworkProcessConnectionMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -7187,6 +7190,7 @@
 				BC306823125A6B9400E71278 /* WebProcessCreationParameters.cpp */,
 				BC306822125A6B9400E71278 /* WebProcessCreationParameters.h */,
 				467E43E72243FF6D00B13924 /* WebProcessDataStoreParameters.h */,
+				517B5F2D2757382A002DC22D /* WebPushDaemonConnectionConfiguration.h */,
 				512CD6992721F04900F7F8EC /* WebPushDaemonConstants.h */,
 				5C8DD37F1FE4519200F2A556 /* WebsiteAutoplayPolicy.h */,
 				5C8DD3811FE455CA00F2A556 /* WebsiteAutoplayQuirk.h */,
@@ -12451,6 +12455,7 @@
 				5160E95E274C2A0300567388 /* MockAppBundleRegistry.h in Headers */,
 				5160E959274C0D8900567388 /* PushAppBundle.h in Headers */,
 				51F7BB7B2744C50700C45A72 /* PushClientConnection.h in Headers */,
+				517B5F2F2757382B002DC22D /* WebPushDaemonConnectionConfiguration.h in Headers */,
 				512CD69F2723393A00F7F8EC /* WebPushDaemon.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -13550,6 +13555,7 @@
 				5C795D70229F373F003FF1C4 /* WKContextMenuElementInfo.h in Headers */,
 				5C795D71229F3757003FF1C4 /* WKContextMenuElementInfoPrivate.h in Headers */,
 				51A555F6128C6C47009ABCEC /* WKContextMenuItem.h in Headers */,
+				517B5F2E2757382A002DC22D /* WebPushDaemonConnectionConfiguration.h in Headers */,
 				51A55601128C6D92009ABCEC /* WKContextMenuItemTypes.h in Headers */,
 				A1EA02381DABFF7E0096021F /* WKContextMenuListener.h in Headers */,
 				BCC938E11180DE440085E5FE /* WKContextPrivate.h in Headers */,

Modified: trunk/Source/WebKit/webpushd/AppBundleRequest.mm (286354 => 286355)


--- trunk/Source/WebKit/webpushd/AppBundleRequest.mm	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/webpushd/AppBundleRequest.mm	2021-12-01 09:07:47 UTC (rev 286355)
@@ -33,7 +33,7 @@
 namespace WebPushD {
 
 AppBundleRequest::AppBundleRequest(ClientConnection& connection, const String& originString)
-    : m_connection(&connection)
+    : m_connection(connection)
     , m_originString(originString)
 {
 }
@@ -49,7 +49,11 @@
 
     m_transaction = adoptOSObject(os_transaction_create(transactionDescription()));
 
-    m_appBundle = MockAppBundleForTesting::create(m_originString, m_connection->hostAppCodeSigningIdentifier(), *this);
+    if (m_connection->useMockBundlesForTesting())
+        m_appBundle = MockAppBundleForTesting::create(m_originString, m_connection->hostAppCodeSigningIdentifier(), *this);
+    else
+        RELEASE_ASSERT_NOT_REACHED();
+
     startInternal();
 }
 

Modified: trunk/Source/WebKit/webpushd/PushClientConnection.h (286354 => 286355)


--- trunk/Source/WebKit/webpushd/PushClientConnection.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/webpushd/PushClientConnection.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -34,8 +34,15 @@
 #include <wtf/spi/darwin/XPCSPI.h>
 #include <wtf/text/WTFString.h>
 
+namespace WebKit {
 namespace WebPushD {
+struct WebPushDaemonConnectionConfiguration;
+}
+}
+using WebKit::WebPushD::WebPushDaemonConnectionConfiguration;
 
+namespace WebPushD {
+
 class AppBundleRequest;
 
 class ClientConnection : public RefCounted<ClientConnection>, public CanMakeWeakPtr<ClientConnection> {
@@ -43,8 +50,9 @@
 public:
     static Ref<ClientConnection> create(xpc_connection_t);
 
+    void updateConnectionConfiguration(const WebPushDaemonConnectionConfiguration&);
+
     bool hasHostAppAuditToken() const { return !!m_hostAppAuditToken; }
-    void setHostAppAuditTokenData(const Vector<uint8_t>&);
 
     const String& hostAppCodeSigningIdentifier();
     bool hostAppHasPushEntitlement();
@@ -52,6 +60,8 @@
     bool debugModeIsEnabled() const { return m_debugModeEnabled; }
     void setDebugModeIsEnabled(bool);
 
+    bool useMockBundlesForTesting() const { return m_useMockBundlesForTesting; }
+
     void enqueueAppBundleRequest(std::unique_ptr<AppBundleRequest>&&);
     void didCompleteAppBundleRequest(AppBundleRequest&);
 
@@ -61,7 +71,8 @@
     ClientConnection(xpc_connection_t);
 
     void maybeStartNextAppBundleRequest();
-    
+    void setHostAppAuditTokenData(const Vector<uint8_t>&);
+
     OSObjectPtr<xpc_connection_t> m_xpcConnection;
 
     std::optional<audit_token_t> m_hostAppAuditToken;
@@ -72,6 +83,7 @@
     std::unique_ptr<AppBundleRequest> m_currentBundleRequest;
 
     bool m_debugModeEnabled { false };
+    bool m_useMockBundlesForTesting { false };
 };
 
 } // namespace WebPushD

Modified: trunk/Source/WebKit/webpushd/PushClientConnection.mm (286354 => 286355)


--- trunk/Source/WebKit/webpushd/PushClientConnection.mm	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/webpushd/PushClientConnection.mm	2021-12-01 09:07:47 UTC (rev 286355)
@@ -29,6 +29,7 @@
 #import "AppBundleRequest.h"
 #import "CodeSigning.h"
 #import "WebPushDaemon.h"
+#import "WebPushDaemonConnectionConfiguration.h"
 #import <_javascript_Core/ConsoleTypes.h>
 #import <wtf/Vector.h>
 #import <wtf/cocoa/Entitlements.h>
@@ -45,10 +46,16 @@
 {
 }
 
+void ClientConnection::updateConnectionConfiguration(const WebPushDaemonConnectionConfiguration& configuration)
+{
+    if (configuration.hostAppAuditTokenData)
+        setHostAppAuditTokenData(*configuration.hostAppAuditTokenData);
+
+    m_useMockBundlesForTesting = configuration.useMockBundlesForTesting;
+}
+
 void ClientConnection::setHostAppAuditTokenData(const Vector<uint8_t>& tokenData)
 {
-    RELEASE_ASSERT(!hasHostAppAuditToken());
-
     audit_token_t token;
     if (tokenData.size() != sizeof(token)) {
         ASSERT_WITH_MESSAGE(false, "Attempt to set an audit token from incorrect number of bytes");
@@ -56,6 +63,14 @@
     }
 
     memcpy(&token, tokenData.data(), tokenData.size());
+
+    if (hasHostAppAuditToken()) {
+        // Verify the token being set is equivalent to the last one set
+        audit_token_t& existingAuditToken = *m_hostAppAuditToken;
+        RELEASE_ASSERT(!memcmp(&existingAuditToken, &token, sizeof(token)));
+        return;
+    }
+
     m_hostAppAuditToken = WTFMove(token);
 }
 

Modified: trunk/Source/WebKit/webpushd/WebPushDaemon.h (286354 => 286355)


--- trunk/Source/WebKit/webpushd/WebPushDaemon.h	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/webpushd/WebPushDaemon.h	2021-12-01 09:07:47 UTC (rev 286355)
@@ -26,6 +26,7 @@
 #pragma once
 
 #include "PushClientConnection.h"
+#include "WebPushDaemonConnectionConfiguration.h"
 #include "WebPushDaemonConstants.h"
 #include <wtf/Forward.h>
 #include <wtf/HashMap.h>
@@ -39,6 +40,8 @@
 enum class MessageLevel : uint8_t;
 }
 
+using WebKit::WebPushD::WebPushDaemonConnectionConfiguration;
+
 namespace WebPushD {
 
 using EncodedMessage = Vector<uint8_t>;
@@ -57,8 +60,8 @@
     void requestSystemNotificationPermission(ClientConnection*, const String&, CompletionHandler<void(bool)>&& replySender);
     void getOriginsWithPushAndNotificationPermissions(ClientConnection*, CompletionHandler<void(const Vector<String>&)>&& replySender);
     void deletePushAndNotificationRegistration(ClientConnection*, const String& originString, CompletionHandler<void(const String&)>&& replySender);
-    void setHostAppAuditToken(ClientConnection*, const Vector<uint8_t>&);
     void setDebugModeIsEnabled(ClientConnection*, bool);
+    void updateConnectionConfiguration(ClientConnection*, const WebPushDaemonConnectionConfiguration&);
 
     void broadcastDebugMessage(JSC::MessageLevel, const String&);
 

Modified: trunk/Source/WebKit/webpushd/WebPushDaemon.mm (286354 => 286355)


--- trunk/Source/WebKit/webpushd/WebPushDaemon.mm	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Source/WebKit/webpushd/WebPushDaemon.mm	2021-12-01 09:07:47 UTC (rev 286355)
@@ -32,7 +32,6 @@
 #import "DaemonUtilities.h"
 #import "HandleMessage.h"
 #import "MockAppBundleRegistry.h"
-#import "WebPushDaemonConstants.h"
 
 #import <wtf/CompletionHandler.h>
 #import <wtf/NeverDestroyed.h>
@@ -70,14 +69,14 @@
 REPLY(bool)
 END
 
-FUNCTION(setHostAppAuditToken)
-ARGUMENTS(Vector<uint8_t>)
-END
-
 FUNCTION(setDebugModeIsEnabled)
 ARGUMENTS(bool)
 END
 
+FUNCTION(updateConnectionConfiguration)
+ARGUMENTS(WebPushDaemonConnectionConfiguration)
+END
+
 #undef FUNCTION
 #undef ARGUMENTS
 #undef REPLY
@@ -225,12 +224,12 @@
     case MessageType::RequestSystemNotificationPermission:
         handleWebPushDMessageWithReply<MessageInfo::requestSystemNotificationPermission>(clientConnection, encodedMessage, WTFMove(replySender));
         break;
-    case MessageType::SetHostAppAuditToken:
-        handleWebPushDMessage<MessageInfo::setHostAppAuditToken>(clientConnection, encodedMessage);
-        break;
     case MessageType::SetDebugModeIsEnabled:
         handleWebPushDMessage<MessageInfo::setDebugModeIsEnabled>(clientConnection, encodedMessage);
         break;
+    case MessageType::UpdateConnectionConfiguration:
+        handleWebPushDMessage<MessageInfo::updateConnectionConfiguration>(clientConnection, encodedMessage);
+        break;
     }
 }
 
@@ -266,8 +265,13 @@
         return;
     }
 
+    if (connection->useMockBundlesForTesting()) {
+        replySender(MockAppBundleRegistry::singleton().getOriginsWithRegistrations(connection->hostAppCodeSigningIdentifier()));
+        return;
+    }
+
     // FIXME: This will need platform-specific implementations for real world bundles once implemented.
-    replySender(MockAppBundleRegistry::singleton().getOriginsWithRegistrations(connection->hostAppCodeSigningIdentifier()));
+    replySender({ });
 }
 
 void Daemon::deletePushAndNotificationRegistration(ClientConnection* connection, const String& originString, CompletionHandler<void(const String&)>&& replySender)
@@ -280,14 +284,14 @@
     connection->enqueueAppBundleRequest(makeUnique<AppBundleDeletionRequest>(*connection, originString, WTFMove(replySender)));
 }
 
-void Daemon::setHostAppAuditToken(ClientConnection* clientConnection, const Vector<uint8_t>& tokenData)
+void Daemon::setDebugModeIsEnabled(ClientConnection* clientConnection, bool enabled)
 {
-    clientConnection->setHostAppAuditTokenData(tokenData);
+    clientConnection->setDebugModeIsEnabled(enabled);
 }
 
-void Daemon::setDebugModeIsEnabled(ClientConnection* clientConnection, bool enabled)
+void Daemon::updateConnectionConfiguration(ClientConnection* clientConnection, const WebPushDaemonConnectionConfiguration& configuration)
 {
-    clientConnection->setDebugModeIsEnabled(enabled);
+    clientConnection->updateConnectionConfiguration(configuration);
 }
 
 ClientConnection* Daemon::toClientConnection(xpc_connection_t connection)

Modified: trunk/Tools/ChangeLog (286354 => 286355)


--- trunk/Tools/ChangeLog	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Tools/ChangeLog	2021-12-01 09:07:47 UTC (rev 286355)
@@ -1,3 +1,12 @@
+2021-12-01  Brady Eidson  <beid...@apple.com>
+
+        Add WKWebsiteDataStore configuration option to enable Mock app bundle testing.
+        https://bugs.webkit.org/show_bug.cgi?id=233679
+
+        Reviewed by Tim Horton.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
+
 2021-11-30  Devin Rousso  <drou...@apple.com>
 
         [css-values-4] Dynamic `dv*` viewport units should not respect the page scale

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm (286354 => 286355)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm	2021-12-01 08:21:48 UTC (rev 286354)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm	2021-12-01 09:07:47 UTC (rev 286355)
@@ -265,6 +265,7 @@
 
     auto dataStoreConfiguration = adoptNS([_WKWebsiteDataStoreConfiguration new]);
     dataStoreConfiguration.get().webPushMachServiceName = @"org.webkit.webpushtestdaemon.service";
+    dataStoreConfiguration.get().webPushDaemonUsesMockBundlesForTesting = YES;
     auto dataStore = adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration:dataStoreConfiguration.get()]);
 
     auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to