Title: [279912] trunk/Source
Revision
279912
Author
[email protected]
Date
2021-07-14 11:06:28 -0700 (Wed, 14 Jul 2021)

Log Message

[iOS] Dynamically set capture attribution
https://bugs.webkit.org/show_bug.cgi?id=227871
rdar://70241665

Reviewed by Jer Noble.

Source/WebCore:

No new tests, tested manually.

* en.lproj/Localizable.strings:

Source/WebCore/PAL:

* PAL.xcodeproj/project.pbxproj:
* pal/ios/SystemStatusSoftLink.h: Added.
* pal/ios/SystemStatusSoftLink.mm: Added.

Source/WebKit:

* GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess): Initialize m_captureOrigin.
(WebKit::GPUConnectionToWebProcess::updateCaptureOrigin): Update.
(WebKit::GPUConnectionToWebProcess::setCaptureAttributionString const): Non-Cocoa stub.
* GPUProcess/GPUConnectionToWebProcess.h:

* GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::updateCaptureOrigin): Call same method in WebProcessConnection,
if it exists.
* GPUProcess/GPUProcess.h:
* GPUProcess/GPUProcess.messages.in:

* GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm: Added.
(WebKit::GPUConnectionToWebProcess::setCaptureAttributionString): Set the attribution
string to "[domain] in [application]".

* Platform/spi/ios/SystemStatusSPI.h: Added.
* Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Allow "com.apple.systemstatus.activityattribution"
to be looked up.

* Scripts/process-entitlements.sh: Add the entitlements required to use the
SystemStatus SPI.

* SourcesCocoa.txt:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::startProducingData): Fail capture
if setCaptureAttributionString returns false.
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
(WebKit::UserMediaCaptureManagerProxy::ConnectionProxy::setCaptureAttributionString):

* UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::updateCaptureOrigin): Call gpuProcess.updateCaptureOrigin
so the capture origin is correct when capture begins.
* UIProcess/GPU/GPUProcessProxy.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeMainDocument): Update the capture origin.
(WebKit::WebPageProxy::willStartCapture): Ditto.
(WebKit::WebPageProxy::gpuProcessExited): Drive-by - update local variable names
to make their purpose clearer.
* WebKit.xcodeproj/project.pbxproj:

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (279911 => 279912)


--- trunk/Source/WebCore/ChangeLog	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebCore/ChangeLog	2021-07-14 18:06:28 UTC (rev 279912)
@@ -1,3 +1,15 @@
+2021-07-14  Eric Carlson  <[email protected]>
+
+        [iOS] Dynamically set capture attribution
+        https://bugs.webkit.org/show_bug.cgi?id=227871
+        rdar://70241665
+
+        Reviewed by Jer Noble.
+
+        No new tests, tested manually.
+
+        * en.lproj/Localizable.strings:
+
 2021-07-14  Said Abou-Hallawa  <[email protected]>
 
         RenderElement::updateFillImages must fix the clients of the CSS image whose URL is invalid

Modified: trunk/Source/WebCore/PAL/ChangeLog (279911 => 279912)


--- trunk/Source/WebCore/PAL/ChangeLog	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-07-14 18:06:28 UTC (rev 279912)
@@ -1,3 +1,15 @@
+2021-07-14  Eric Carlson  <[email protected]>
+
+        [iOS] Dynamically set capture attribution
+        https://bugs.webkit.org/show_bug.cgi?id=227871
+        rdar://70241665
+
+        Reviewed by Jer Noble.
+
+        * PAL.xcodeproj/project.pbxproj:
+        * pal/ios/SystemStatusSoftLink.h: Added.
+        * pal/ios/SystemStatusSoftLink.mm: Added.
+
 2021-07-09  Jer Noble  <[email protected]>
 
         [Cocoa] Make Coordinator playback commands more precise

Modified: trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj (279911 => 279912)


--- trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2021-07-14 18:06:28 UTC (rev 279912)
@@ -25,6 +25,8 @@
 		07611DB7243FA5BF00D80704 /* UsageTrackingSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07611DB5243FA5BF00D80704 /* UsageTrackingSoftLink.mm */; };
 		077E87B1226A460200A2AFF0 /* AVFoundationSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 077E87AF226A460200A2AFF0 /* AVFoundationSoftLink.mm */; };
 		077E87B2226A460300A2AFF0 /* AVFoundationSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 077E87B0226A460200A2AFF0 /* AVFoundationSoftLink.h */; };
+		079D1D9726950DD700883577 /* SystemStatusSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 079D1D9526950DD700883577 /* SystemStatusSoftLink.h */; };
+		079D1D9826950DD700883577 /* SystemStatusSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 079D1D9626950DD700883577 /* SystemStatusSoftLink.mm */; };
 		0C00CFD41F68CE4600AAC26D /* MediaTimeAVFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C00CFD21F68CE4600AAC26D /* MediaTimeAVFoundation.h */; };
 		0C2D9E731EEF5AF600DBC317 /* ExportMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C2D9E721EEF5AF600DBC317 /* ExportMacros.h */; };
 		0C2DA06D1F33CA8400DBC317 /* CFLocaleSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C2DA0671F33CA8400DBC317 /* CFLocaleSPI.h */; };
@@ -236,6 +238,8 @@
 		07611DB5243FA5BF00D80704 /* UsageTrackingSoftLink.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UsageTrackingSoftLink.mm; sourceTree = "<group>"; };
 		077E87AF226A460200A2AFF0 /* AVFoundationSoftLink.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AVFoundationSoftLink.mm; sourceTree = "<group>"; };
 		077E87B0226A460200A2AFF0 /* AVFoundationSoftLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVFoundationSoftLink.h; sourceTree = "<group>"; };
+		079D1D9526950DD700883577 /* SystemStatusSoftLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemStatusSoftLink.h; sourceTree = "<group>"; };
+		079D1D9626950DD700883577 /* SystemStatusSoftLink.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SystemStatusSoftLink.mm; sourceTree = "<group>"; };
 		0C00CFD11F68CE4600AAC26D /* MediaTimeAVFoundation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaTimeAVFoundation.cpp; sourceTree = "<group>"; };
 		0C00CFD21F68CE4600AAC26D /* MediaTimeAVFoundation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaTimeAVFoundation.h; sourceTree = "<group>"; };
 		0C2D9E721EEF5AF600DBC317 /* ExportMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExportMacros.h; sourceTree = "<group>"; };
@@ -764,6 +768,8 @@
 				5C7C787223AC3E770065F47E /* ManagedConfigurationSoftLink.mm */,
 				4450FC9E21F5F602004DFA56 /* QuickLookSoftLink.h */,
 				4450FC9D21F5F602004DFA56 /* QuickLookSoftLink.mm */,
+				079D1D9526950DD700883577 /* SystemStatusSoftLink.h */,
+				079D1D9626950DD700883577 /* SystemStatusSoftLink.mm */,
 				2E1342CA215AA10A007199D2 /* UIKitSoftLink.h */,
 				2E1342CB215AA10A007199D2 /* UIKitSoftLink.mm */,
 			);
@@ -997,6 +1003,7 @@
 				31308B1420A21705003FB929 /* SystemPreviewSPI.h in Headers */,
 				A3AB6E581F3D1DDB009C14B1 /* SystemSleepListener.h in Headers */,
 				A3AB6E641F3D217F009C14B1 /* SystemSleepListenerMac.h in Headers */,
+				079D1D9726950DD700883577 /* SystemStatusSoftLink.h in Headers */,
 				0C7785A11F45130F00F4EBB6 /* TelephonyUtilitiesSPI.h in Headers */,
 				2E1342CC215AA10A007199D2 /* UIKitSoftLink.h in Headers */,
 				0C5AF9221F43A4C7002EAC02 /* UIKitSPI.h in Headers */,
@@ -1134,6 +1141,7 @@
 				93B38EC025821CD800198E63 /* SpeechSoftLink.mm in Sources */,
 				A3AB6E571F3D1DDB009C14B1 /* SystemSleepListener.cpp in Sources */,
 				A3AB6E651F3D217F009C14B1 /* SystemSleepListenerMac.mm in Sources */,
+				079D1D9826950DD700883577 /* SystemStatusSoftLink.mm in Sources */,
 				2E1342CD215AA10A007199D2 /* UIKitSoftLink.mm in Sources */,
 				07611DB7243FA5BF00D80704 /* UsageTrackingSoftLink.mm in Sources */,
 				41E1F344248A6A000022D5DE /* VideoToolboxSoftLink.cpp in Sources */,

Added: trunk/Source/WebCore/PAL/pal/ios/SystemStatusSoftLink.h (0 => 279912)


--- trunk/Source/WebCore/PAL/pal/ios/SystemStatusSoftLink.h	                        (rev 0)
+++ trunk/Source/WebCore/PAL/pal/ios/SystemStatusSoftLink.h	2021-07-14 18:06:28 UTC (rev 279912)
@@ -0,0 +1,36 @@
+/*
+ * 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
+
+#if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)
+
+#import <wtf/SoftLinking.h>
+
+SOFT_LINK_FRAMEWORK_FOR_HEADER(PAL, SystemStatus)
+
+SOFT_LINK_CLASS_FOR_HEADER(PAL, STDynamicActivityAttributionPublisher);
+
+#endif

Added: trunk/Source/WebCore/PAL/pal/ios/SystemStatusSoftLink.mm (0 => 279912)


--- trunk/Source/WebCore/PAL/pal/ios/SystemStatusSoftLink.mm	                        (rev 0)
+++ trunk/Source/WebCore/PAL/pal/ios/SystemStatusSoftLink.mm	2021-07-14 18:06:28 UTC (rev 279912)
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+#import "config.h"
+
+#if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)
+
+#import <wtf/SoftLinking.h>
+
+SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE(PAL, SystemStatus)
+
+SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT(PAL, SystemStatus, STDynamicActivityAttributionPublisher, PAL_EXPORT);
+
+#endif

Modified: trunk/Source/WebCore/en.lproj/Localizable.strings (279911 => 279912)


--- trunk/Source/WebCore/en.lproj/Localizable.strings	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebCore/en.lproj/Localizable.strings	2021-07-14 18:06:28 UTC (rev 279912)
@@ -1636,3 +1636,5 @@
 /* Option in segmented control for choosing list type in text editing */
 "•" = "•";
 
+/* The domain and application using the camera and/or microphone. The first argument is domain, the second is the application name (iOS only). */
+"“%@” in “%%@”" = "“%@” in “%%@”";

Modified: trunk/Source/WebKit/ChangeLog (279911 => 279912)


--- trunk/Source/WebKit/ChangeLog	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/ChangeLog	2021-07-14 18:06:28 UTC (rev 279912)
@@ -1,3 +1,53 @@
+2021-07-14  Eric Carlson  <[email protected]>
+
+        [iOS] Dynamically set capture attribution
+        https://bugs.webkit.org/show_bug.cgi?id=227871
+        rdar://70241665
+
+        Reviewed by Jer Noble.
+
+        * GPUProcess/GPUConnectionToWebProcess.cpp:
+        (WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess): Initialize m_captureOrigin.
+        (WebKit::GPUConnectionToWebProcess::updateCaptureOrigin): Update.
+        (WebKit::GPUConnectionToWebProcess::setCaptureAttributionString const): Non-Cocoa stub.
+        * GPUProcess/GPUConnectionToWebProcess.h:
+
+        * GPUProcess/GPUProcess.cpp:
+        (WebKit::GPUProcess::updateCaptureOrigin): Call same method in WebProcessConnection,
+        if it exists.
+        * GPUProcess/GPUProcess.h:
+        * GPUProcess/GPUProcess.messages.in:
+
+        * GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm: Added.
+        (WebKit::GPUConnectionToWebProcess::setCaptureAttributionString): Set the attribution
+        string to "[domain] in [application]".
+
+        * Platform/spi/ios/SystemStatusSPI.h: Added.
+        * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Allow "com.apple.systemstatus.activityattribution"
+        to be looked up.
+
+        * Scripts/process-entitlements.sh: Add the entitlements required to use the 
+        SystemStatus SPI.
+
+        * SourcesCocoa.txt:
+        * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
+        (WebKit::UserMediaCaptureManagerProxy::startProducingData): Fail capture
+        if setCaptureAttributionString returns false.
+        * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
+        (WebKit::UserMediaCaptureManagerProxy::ConnectionProxy::setCaptureAttributionString):
+
+        * UIProcess/GPU/GPUProcessProxy.cpp:
+        (WebKit::GPUProcessProxy::updateCaptureOrigin): Call gpuProcess.updateCaptureOrigin
+        so the capture origin is correct when capture begins.
+        * UIProcess/GPU/GPUProcessProxy.h:
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didChangeMainDocument): Update the capture origin.
+        (WebKit::WebPageProxy::willStartCapture): Ditto.
+        (WebKit::WebPageProxy::gpuProcessExited): Drive-by - update local variable names
+        to make their purpose clearer.
+        * WebKit.xcodeproj/project.pbxproj:
+
 2021-07-13  Wenson Hsieh  <[email protected]>
 
         [WK2] Push OS state dumping logic down from WebProcess to AuxiliaryProcess

Modified: trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp (279911 => 279912)


--- trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp	2021-07-14 18:06:28 UTC (rev 279912)
@@ -139,6 +139,10 @@
 #include "LocalAudioSessionRoutingArbitrator.h"
 #endif
 
+#if ENABLE(MEDIA_STREAM)
+#include <WebCore/SecurityOrigin.h>
+#endif
+
 namespace WebKit {
 using namespace WebCore;
 
@@ -178,9 +182,15 @@
             return m_process.allowsDisplayCapture();
         }
     }
+    
+    bool setCaptureAttributionString() final
+    {
+        return m_process.setCaptureAttributionString();
+    }
 
     GPUConnectionToWebProcess& m_process;
 };
+
 #endif
 
 Ref<GPUConnectionToWebProcess> GPUConnectionToWebProcess::create(GPUProcess& gpuProcess, WebCore::ProcessIdentifier webProcessIdentifier, IPC::Connection::Identifier connectionIdentifier, PAL::SessionID sessionID, GPUProcessConnectionParameters&& parameters)
@@ -203,6 +213,9 @@
 #if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
     , m_sampleBufferDisplayLayerManager(RemoteSampleBufferDisplayLayerManager::create(*this))
 #endif
+#if ENABLE(MEDIA_STREAM)
+    , m_captureOrigin(SecurityOrigin::createUnique())
+#endif
 #if ENABLE(ROUTING_ARBITRATION) && HAVE(AVAUDIO_ROUTING_ARBITER)
     , m_routingArbitrator(LocalAudioSessionRoutingArbitrator::create(*this))
 #endif
@@ -820,7 +833,18 @@
     m_allowsVideoCapture |= allowVideoCapture;
     m_allowsDisplayCapture |= allowDisplayCapture;
 }
+
+void GPUConnectionToWebProcess::updateCaptureOrigin(const WebCore::SecurityOriginData& originData)
+{
+    m_captureOrigin = originData.securityOrigin();
+}
+
+#if !PLATFORM(COCOA)
+bool GPUConnectionToWebProcess::setCaptureAttributionString() const
+{
+}
 #endif
+#endif // ENABLE(MEDIA_STREAM)
 
 #if PLATFORM(MAC)
 void GPUConnectionToWebProcess::displayConfigurationChanged(CGDirectDisplayID, CGDisplayChangeSummaryFlags flags)

Modified: trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h (279911 => 279912)


--- trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h	2021-07-14 18:06:28 UTC (rev 279912)
@@ -37,6 +37,7 @@
 #include "ScopedActiveMessageReceiveQueue.h"
 #include <WebCore/LibWebRTCEnumTraits.h>
 #include <WebCore/NowPlayingManager.h>
+#include <WebCore/PageIdentifier.h>
 #include <WebCore/ProcessIdentifier.h>
 #include <pal/SessionID.h>
 #include <wtf/Logger.h>
@@ -52,6 +53,11 @@
 #include <CoreGraphics/CGDisplayConfiguration.h>
 #endif
 
+namespace WebCore {
+class SecurityOrigin;
+struct SecurityOriginData;
+}
+
 namespace WebKit {
 
 class GPUProcess;
@@ -111,6 +117,8 @@
 #if ENABLE(MEDIA_STREAM)
     void setOrientationForMediaCapture(uint64_t orientation);
     void updateCaptureAccess(bool allowAudioCapture, bool allowVideoCapture, bool allowDisplayCapture);
+    void updateCaptureOrigin(const WebCore::SecurityOriginData&);
+    bool setCaptureAttributionString();
     bool allowsAudioCapture() const { return m_allowsAudioCapture; }
     bool allowsVideoCapture() const { return m_allowsVideoCapture; }
     bool allowsDisplayCapture() const { return m_allowsDisplayCapture; }
@@ -248,6 +256,7 @@
     std::unique_ptr<RemoteMediaRecorderManager> m_remoteMediaRecorderManager;
 #endif
 #if ENABLE(MEDIA_STREAM)
+    Ref<WebCore::SecurityOrigin> m_captureOrigin;
     bool m_allowsAudioCapture { false };
     bool m_allowsVideoCapture { false };
     bool m_allowsDisplayCapture { false };

Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.cpp (279911 => 279912)


--- trunk/Source/WebKit/GPUProcess/GPUProcess.cpp	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.cpp	2021-07-14 18:06:28 UTC (rev 279912)
@@ -312,6 +312,12 @@
     completionHandler();
 }
 
+void GPUProcess::updateCaptureOrigin(const WebCore::SecurityOriginData& originData, ProcessIdentifier processID)
+{
+    if (auto* connection = webProcessConnection(processID))
+        connection->updateCaptureOrigin(originData);
+}
+
 void GPUProcess::updateSandboxAccess(const Vector<SandboxExtension::Handle>& extensions)
 {
     for (auto& extension : extensions)

Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.h (279911 => 279912)


--- trunk/Source/WebKit/GPUProcess/GPUProcess.h	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.h	2021-07-14 18:06:28 UTC (rev 279912)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Apple Inc. All rights reserved.
+ * Copyright (C) 2019-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
@@ -45,6 +45,7 @@
 namespace WebCore {
 class NowPlayingManager;
 struct MockMediaDevice;
+struct SecurityOriginData;
 }
 
 namespace WebKit {
@@ -124,11 +125,13 @@
     void setMockCaptureDevicesEnabled(bool);
     void setOrientationForMediaCapture(uint64_t orientation);
     void updateCaptureAccess(bool allowAudioCapture, bool allowVideoCapture, bool allowDisplayCapture, WebCore::ProcessIdentifier, CompletionHandler<void()>&&);
+    void updateCaptureOrigin(const WebCore::SecurityOriginData&, WebCore::ProcessIdentifier);
     void updateSandboxAccess(const Vector<SandboxExtension::Handle>&);
     void addMockMediaDevice(const WebCore::MockMediaDevice&);
     void clearMockMediaDevices();
     void removeMockMediaDevice(const String& persistentId);
     void resetMockMediaDevices();
+    bool setCaptureAttributionString(const String&);
 #endif
 #if PLATFORM(MAC)
     void displayConfigurationChanged(CGDirectDisplayID, CGDisplayChangeSummaryFlags);

Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in (279911 => 279912)


--- trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in	2021-07-14 18:06:28 UTC (rev 279912)
@@ -41,6 +41,7 @@
     SetOrientationForMediaCapture(uint64_t orientation);
     UpdateSandboxAccess(Vector<WebKit::SandboxExtension::Handle> extensions);
     UpdateCaptureAccess(bool allowAudioCapture, bool allowVideoCapture, bool allowDisplayCapture, WebCore::ProcessIdentifier processID) -> () Async
+    UpdateCaptureOrigin(struct WebCore::SecurityOriginData originData, WebCore::ProcessIdentifier processID)
     AddMockMediaDevice(struct WebCore::MockMediaDevice device);
     ClearMockMediaDevices();
     RemoveMockMediaDevice(String persistentId);

Added: trunk/Source/WebKit/GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm (0 => 279912)


--- trunk/Source/WebKit/GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm	                        (rev 0)
+++ trunk/Source/WebKit/GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm	2021-07-14 18:06:28 UTC (rev 279912)
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+
+#import "config.h"
+#import "GPUConnectionToWebProcess.h"
+
+#if ENABLE(GPU_PROCESS)
+
+#import "SystemStatusSPI.h"
+#import <WebCore/LocalizedStrings.h>
+#import <WebCore/RegistrableDomain.h>
+#import <WebCore/SecurityOrigin.h>
+#import <pal/ios/SystemStatusSoftLink.h>
+
+namespace WebKit {
+
+#if ENABLE(MEDIA_STREAM)
+bool GPUConnectionToWebProcess::setCaptureAttributionString()
+{
+#if PLATFORM(IOS)
+    if (![PAL::getSTDynamicActivityAttributionPublisherClass() respondsToSelector:@selector(setCurrentAttributionStringWithFormat:auditToken:)])
+        return true;
+
+    auto domain = WebCore::RegistrableDomain { m_captureOrigin->data() };
+    if (domain.isEmpty())
+        return false;
+
+    auto auditToken = gpuProcess().parentProcessConnection()->getAuditToken();
+    if (!auditToken)
+        return false;
+
+    RetainPtr<NSString> formatString = [NSString stringWithFormat:WEB_UI_STRING("“%@” in “%%@”", "The domain and application using the camera and/or microphone. The first argument is domain, the second is the application name (iOS only)."), (NSString *)domain.string()];
+
+    [PAL::getSTDynamicActivityAttributionPublisherClass() setCurrentAttributionStringWithFormat:formatString.get() auditToken:auditToken.value()];
+#endif
+
+    return true;
+}
+#endif // ENABLE(MEDIA_STREAM)
+
+} // namespace WebKit
+
+#endif // ENABLE(GPU_PROCESS)

Added: trunk/Source/WebKit/Platform/spi/ios/SystemStatusSPI.h (0 => 279912)


--- trunk/Source/WebKit/Platform/spi/ios/SystemStatusSPI.h	                        (rev 0)
+++ trunk/Source/WebKit/Platform/spi/ios/SystemStatusSPI.h	2021-07-14 18:06:28 UTC (rev 279912)
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+#if USE(APPLE_INTERNAL_SDK)
+
+#import <SystemStatus/STDynamicActivityAttributionPublisher.h>
+
+#else
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface STDynamicActivityAttributionPublisher : NSObject
+
++ (void)setCurrentAttributionStringWithFormat:(NSString *)format auditToken:(audit_token_t)auditToken;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // USE(APPLE_INTERNAL_SDK)

Modified: trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb (279911 => 279912)


--- trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb	2021-07-14 18:06:28 UTC (rev 279912)
@@ -1003,6 +1003,9 @@
     )
 )
 
+(allow mach-lookup
+    (global-name "com.apple.systemstatus.activityattribution")
+)
 
 (allow mach-lookup
     (require-all

Modified: trunk/Source/WebKit/Scripts/process-entitlements.sh (279911 => 279912)


--- trunk/Source/WebKit/Scripts/process-entitlements.sh	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/Scripts/process-entitlements.sh	2021-07-14 18:06:28 UTC (rev 279912)
@@ -309,6 +309,10 @@
 
     plistbuddy Add :seatbelt-profiles array
     plistbuddy Add :seatbelt-profiles:0 string com.apple.WebKit.GPU
+
+    plistbuddy Add :com.apple.systemstatus.activityattribution bool YES
+    plistbuddy Add :com.apple.security.exception.mach-lookup.global-name array
+    plistbuddy Add :com.apple.security.exception.mach-lookup.global-name:0 string com.apple.systemstatus.activityattribution
 }
 
 function ios_family_process_webauthn_entitlements()

Modified: trunk/Source/WebKit/SourcesCocoa.txt (279911 => 279912)


--- trunk/Source/WebKit/SourcesCocoa.txt	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/SourcesCocoa.txt	2021-07-14 18:06:28 UTC (rev 279912)
@@ -58,6 +58,7 @@
 NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm
 
 GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm
+GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm
 GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp
 GPUProcess/graphics/ScopedRenderingResourcesRequestCocoa.mm @no-unify
 GPUProcess/graphics/ScopedWebGLRenderingResourcesRequestCocoa.cpp

Modified: trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp (279911 => 279912)


--- trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp	2021-07-14 18:06:28 UTC (rev 279912)
@@ -326,8 +326,16 @@
 
 void UserMediaCaptureManagerProxy::startProducingData(RealtimeMediaSourceIdentifier id)
 {
-    if (auto* proxy = m_proxies.get(id))
-        proxy->start();
+    auto* proxy = m_proxies.get(id);
+    if (!proxy)
+        return;
+
+    if (!m_connectionProxy->setCaptureAttributionString()) {
+        RELEASE_LOG_ERROR(WebRTC, "Unable to set capture attribution, failing capture.");
+        return;
+    }
+
+    proxy->start();
 }
 
 void UserMediaCaptureManagerProxy::stopProducingData(RealtimeMediaSourceIdentifier id)

Modified: trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h (279911 => 279912)


--- trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h	2021-07-14 18:06:28 UTC (rev 279912)
@@ -57,6 +57,7 @@
         virtual IPC::Connection& connection() = 0;
         virtual bool willStartCapture(WebCore::CaptureDevice::DeviceType) const = 0;
         virtual Logger& logger() = 0;
+        virtual bool setCaptureAttributionString() { return true; }
     };
     explicit UserMediaCaptureManagerProxy(UniqueRef<ConnectionProxy>&&);
     ~UserMediaCaptureManagerProxy();

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp (279911 => 279912)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2021-07-14 18:06:28 UTC (rev 279912)
@@ -280,6 +280,10 @@
     sendWithAsyncReply(Messages::GPUProcess::UpdateCaptureAccess { allowAudioCapture, allowVideoCapture, allowDisplayCapture, processID }, WTFMove(completionHandler));
 }
 
+void GPUProcessProxy::updateCaptureOrigin(const WebCore::SecurityOriginData& originData, WebCore::ProcessIdentifier processID)
+{
+    send(Messages::GPUProcess::UpdateCaptureOrigin { originData, processID }, 0);
+}
 
 void GPUProcessProxy::addMockMediaDevice(const WebCore::MockMediaDevice& device)
 {

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h (279911 => 279912)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2021-07-14 18:06:28 UTC (rev 279912)
@@ -49,6 +49,7 @@
 
 namespace WebCore {
 struct MockMediaDevice;
+struct SecurityOriginData;
 }
 
 namespace WebKit {
@@ -76,7 +77,7 @@
     void setUseMockCaptureDevices(bool);
     void setOrientationForMediaCapture(uint64_t orientation);
     void updateCaptureAccess(bool allowAudioCapture, bool allowVideoCapture, bool allowDisplayCapture, WebCore::ProcessIdentifier, CompletionHandler<void()>&&);
-
+    void updateCaptureOrigin(const WebCore::SecurityOriginData&, WebCore::ProcessIdentifier);
     void addMockMediaDevice(const WebCore::MockMediaDevice&);
     void clearMockMediaDevices();
     void removeMockMediaDevice(const String&);

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (279911 => 279912)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-07-14 18:06:28 UTC (rev 279912)
@@ -110,6 +110,7 @@
 #include "WebCoreArgumentCoders.h"
 #include "WebEditCommandProxy.h"
 #include "WebEventConversion.h"
+#include "WebFrame.h"
 #include "WebFramePolicyListenerProxy.h"
 #include "WebFullScreenManagerProxy.h"
 #include "WebFullScreenManagerProxyMessages.h"
@@ -136,6 +137,7 @@
 #include "WebPopupMenuProxy.h"
 #include "WebPreferences.h"
 #include "WebPreferencesKeys.h"
+#include "WebProcess.h"
 #include "WebProcessMessages.h"
 #include "WebProcessPool.h"
 #include "WebProcessProxy.h"
@@ -5101,11 +5103,21 @@
 void WebPageProxy::didChangeMainDocument(FrameIdentifier frameID)
 {
 #if ENABLE(MEDIA_STREAM)
-    if (m_userMediaPermissionRequestManager)
+    if (m_userMediaPermissionRequestManager) {
         m_userMediaPermissionRequestManager->resetAccess(frameID);
+
+#if ENABLE(GPU_PROCESS)
+        if (auto* gpuProcess = m_process->processPool().gpuProcess()) {
+            if (auto* frame = m_process->webFrame(frameID))
+                gpuProcess->updateCaptureOrigin(SecurityOriginData::fromURL(frame->url()), m_process->coreProcessIdentifier());
+        }
+#endif
+    }
+
 #else
     UNUSED_PARAM(frameID);
 #endif
+    
     m_isQuotaIncreaseDenied = false;
 
     m_speechRecognitionPermissionManager = nullptr;
@@ -8418,6 +8430,7 @@
 
     auto& gpuProcess = process().processPool().ensureGPUProcess();
     gpuProcess.updateCaptureAccess(request.requiresAudioCapture(), request.requiresVideoCapture(), request.requiresDisplayCapture(), m_process->coreProcessIdentifier(), WTFMove(callback));
+    gpuProcess.updateCaptureOrigin(request.topLevelDocumentSecurityOrigin().data(), m_process->coreProcessIdentifier());
 #if PLATFORM(IOS_FAMILY)
     gpuProcess.setOrientationForMediaCapture(m_deviceOrientation);
 #endif
@@ -10602,12 +10615,12 @@
     pageClient().gpuProcessDidExit();
 
 #if ENABLE(MEDIA_STREAM)
-    bool shouldAllowAudioCapture = isCapturingAudio() && preferences().captureAudioInGPUProcessEnabled();
-    bool shouldAllowVideoCapture = isCapturingVideo() && preferences().captureVideoInGPUProcessEnabled();
-    bool shouldAllowDisplayCapture = false;
-    if (shouldAllowAudioCapture || shouldAllowVideoCapture) {
+    bool activeAudioCapture = isCapturingAudio() && preferences().captureAudioInGPUProcessEnabled();
+    bool activeVideoCapture = isCapturingVideo() && preferences().captureVideoInGPUProcessEnabled();
+    bool activeDisplayCapture = false;
+    if (activeAudioCapture || activeVideoCapture) {
         auto& gpuProcess = process().processPool().ensureGPUProcess();
-        gpuProcess.updateCaptureAccess(shouldAllowAudioCapture, shouldAllowVideoCapture, shouldAllowDisplayCapture, m_process->coreProcessIdentifier(), [] { });
+        gpuProcess.updateCaptureAccess(activeAudioCapture, activeVideoCapture, activeDisplayCapture, m_process->coreProcessIdentifier(), [] { });
     }
 #endif
 }

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (279911 => 279912)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-07-14 17:54:57 UTC (rev 279911)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-07-14 18:06:28 UTC (rev 279912)
@@ -124,6 +124,7 @@
 		07923148239CBCB8009598E2 /* RemoteMediaPlayerManagerProxyMessagesReplies.h in Headers */ = {isa = PBXBuildFile; fileRef = 07923142239CBCB5009598E2 /* RemoteMediaPlayerManagerProxyMessagesReplies.h */; };
 		0792314B239CBCB8009598E2 /* RemoteMediaPlayerManagerProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07923145239CBCB7009598E2 /* RemoteMediaPlayerManagerProxyMessageReceiver.cpp */; };
 		0792314C239CBCB8009598E2 /* RemoteMediaPlayerManagerProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 07923146239CBCB7009598E2 /* RemoteMediaPlayerManagerProxyMessages.h */; };
+		079D1D9A26960CD300883577 /* SystemStatusSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 079D1D9926960CD300883577 /* SystemStatusSPI.h */; };
 		07A5EBBC1C7BA43E00B9CA69 /* WKFrameHandleRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 07A5EBBA1C7BA43E00B9CA69 /* WKFrameHandleRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		07E19EFB23D401F10094FFB4 /* MediaPlayerPrivateRemoteMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07E19EF823D401F00094FFB4 /* MediaPlayerPrivateRemoteMessageReceiver.cpp */; };
 		07E19EFC23D401F10094FFB4 /* MediaPlayerPrivateRemoteMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 07E19EF923D401F00094FFB4 /* MediaPlayerPrivateRemoteMessages.h */; };
@@ -2449,6 +2450,8 @@
 		0794B4AC24451BB90001B9C4 /* MediaUsageManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaUsageManager.h; sourceTree = "<group>"; };
 		0794B4AE244524B00001B9C4 /* MediaUsageManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MediaUsageManager.cpp; sourceTree = "<group>"; };
 		0794B4AF24452A2C0001B9C4 /* MediaUsageManagerCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaUsageManagerCocoa.h; sourceTree = "<group>"; };
+		079D1D9926960CD300883577 /* SystemStatusSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemStatusSPI.h; sourceTree = "<group>"; };
+		079D1D9C2698DBD000883577 /* cocoa */ = {isa = PBXFileReference; lastKnownFileType = folder; path = cocoa; sourceTree = "<group>"; };
 		07A5EBB91C7BA43E00B9CA69 /* WKFrameHandleRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKFrameHandleRef.cpp; sourceTree = "<group>"; };
 		07A5EBBA1C7BA43E00B9CA69 /* WKFrameHandleRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFrameHandleRef.h; sourceTree = "<group>"; };
 		07A6E5E3260E411400959478 /* RemoteMediaSessionCoordinatorProxyMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteMediaSessionCoordinatorProxyMessageReceiver.cpp; sourceTree = "<group>"; };
@@ -7680,6 +7683,7 @@
 		2D9FB1FF2375209D0049F936 /* GPUProcess */ = {
 			isa = PBXGroup;
 			children = (
+				079D1D9C2698DBD000883577 /* cocoa */,
 				2D9FB20D2375209D0049F936 /* EntryPoint */,
 				550640A124071A2900AAE045 /* graphics */,
 				2D9FB2042375209D0049F936 /* ios */,
@@ -11579,6 +11583,7 @@
 				3178AF9720E2A7F80074DE94 /* PDFKitSPI.h */,
 				2D279E1826955768004B3EEB /* PrototypeToolsSPI.h */,
 				46F38E8B2416E66D0059375A /* RunningBoardServicesSPI.h */,
+				079D1D9926960CD300883577 /* SystemStatusSPI.h */,
 				CE1A0BD01A48E6C60054EF74 /* TCCSPI.h */,
 				CE1A0BD11A48E6C60054EF74 /* TextInputSPI.h */,
 				CEE4AE2A1A5DCF430002F49B /* UIKitSPI.h */,
@@ -12416,6 +12421,7 @@
 				448AC24E267135A700B28921 /* SynapseSPI.h in Headers */,
 				4459984222833E8700E61373 /* SyntheticEditingCommandType.h in Headers */,
 				3157135F2040A9B20084F9CF /* SystemPreviewController.h in Headers */,
+				079D1D9A26960CD300883577 /* SystemStatusSPI.h in Headers */,
 				F4D985CB2691096600BBCCBE /* TapHandlingResult.h in Headers */,
 				44C51844266BE8C4006DD522 /* TCCSoftLink.h in Headers */,
 				CE1A0BD61A48E6C60054EF74 /* TCCSPI.h in Headers */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to