diff --git a/Datadog/Datadog.xcodeproj/project.pbxproj b/Datadog/Datadog.xcodeproj/project.pbxproj index b56c31fcfa..ecb6a5546e 100644 --- a/Datadog/Datadog.xcodeproj/project.pbxproj +++ b/Datadog/Datadog.xcodeproj/project.pbxproj @@ -22,27 +22,14 @@ 3C0D5DF52A5443B100446CF9 /* DataFormatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C0D5DF42A5443B100446CF9 /* DataFormatTests.swift */; }; 3C0D5DF62A5443B100446CF9 /* DataFormatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C0D5DF42A5443B100446CF9 /* DataFormatTests.swift */; }; 3C41693C29FBF4D50042B9D2 /* DatadogWebViewTracking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CE119FE29F7BE0100202522 /* DatadogWebViewTracking.framework */; }; - 3C41694729FBF8CC0042B9D2 /* DatadogInternal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2DA2385298D57AA00C6C7E6 /* DatadogInternal.framework */; }; 3C74305C29FBC0480053B80F /* DatadogInternal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2DA2385298D57AA00C6C7E6 /* DatadogInternal.framework */; }; - 3C85D41B29F7C5C300AFF894 /* WKUserContentController+DatadogTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41829F7C5BE00AFF894 /* WKUserContentController+DatadogTests.swift */; }; - 3C85D41C29F7C5C400AFF894 /* WebViewTrackingCoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41729F7C5BE00AFF894 /* WebViewTrackingCoreTests.swift */; }; - 3C85D41D29F7C5C400AFF894 /* WKUserContentController+DatadogTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41829F7C5BE00AFF894 /* WKUserContentController+DatadogTests.swift */; }; - 3C85D41E29F7C5C400AFF894 /* WebViewTrackingCoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41729F7C5BE00AFF894 /* WebViewTrackingCoreTests.swift */; }; - 3C85D41F29F7C5C900AFF894 /* WebViewTrackingMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41529F7C59C00AFF894 /* WebViewTrackingMessage.swift */; }; - 3C85D42029F7C5C900AFF894 /* WKUserContentController+Datadog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41629F7C59C00AFF894 /* WKUserContentController+Datadog.swift */; }; 3C85D42129F7C5C900AFF894 /* WebViewTracking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41429F7C59C00AFF894 /* WebViewTracking.swift */; }; - 3C85D42229F7C5CA00AFF894 /* WebViewTrackingMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41529F7C59C00AFF894 /* WebViewTrackingMessage.swift */; }; - 3C85D42329F7C5CA00AFF894 /* WKUserContentController+Datadog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41629F7C59C00AFF894 /* WKUserContentController+Datadog.swift */; }; - 3C85D42429F7C5CA00AFF894 /* WebViewTracking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D41429F7C59C00AFF894 /* WebViewTracking.swift */; }; - 3C85D42929F7C6FD00AFF894 /* TestUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D257958B298ABB83008A1BE5 /* TestUtilities.framework */; }; 3C85D42A29F7C70300AFF894 /* TestUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D257953E298ABA65008A1BE5 /* TestUtilities.framework */; }; 3C85D42C29F7C87D00AFF894 /* HostsSanitizerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D42B29F7C87D00AFF894 /* HostsSanitizerMock.swift */; }; 3C85D42D29F7C87D00AFF894 /* HostsSanitizerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C85D42B29F7C87D00AFF894 /* HostsSanitizerMock.swift */; }; 3C9C6BB429F7C0C000581C43 /* DatadogInternal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D23039A5298D513C001A1FA3 /* DatadogInternal.framework */; }; 3CE11A1129F7BE0900202522 /* DatadogWebViewTracking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CE119FE29F7BE0100202522 /* DatadogWebViewTracking.framework */; }; 3CE11A1229F7BE0900202522 /* DatadogWebViewTracking.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3CE119FE29F7BE0100202522 /* DatadogWebViewTracking.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 3CE11A2829F7BE1E00202522 /* DatadogWebViewTracking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CE11A2029F7BE1800202522 /* DatadogWebViewTracking.framework */; }; - 3CE11A3729F7BE6B00202522 /* DatadogWebViewTracking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CE11A2029F7BE1800202522 /* DatadogWebViewTracking.framework */; }; 49274906288048B500ECD49B /* InternalTelemetryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49274903288048AA00ECD49B /* InternalTelemetryTests.swift */; }; 49274907288048B800ECD49B /* InternalTelemetryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49274903288048AA00ECD49B /* InternalTelemetryTests.swift */; }; 61020C2A2757AD91005EEAEA /* BackgroundLocationMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61020C292757AD91005EEAEA /* BackgroundLocationMonitor.swift */; }; @@ -513,7 +500,6 @@ D23F8E5829DDCD28001CFAE8 /* VitalMemoryReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BBBCB0265E71C600943419 /* VitalMemoryReader.swift */; }; D23F8E5929DDCD28001CFAE8 /* WebViewEventReceiver.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CBC26A294383F200134409 /* WebViewEventReceiver.swift */; }; D23F8E5A29DDCD28001CFAE8 /* RUMResourceScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61494CB024C839460082C633 /* RUMResourceScope.swift */; }; - D23F8E5B29DDCD28001CFAE8 /* RUMViewUpdatesThrottler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61494B7927F352570082BBCC /* RUMViewUpdatesThrottler.swift */; }; D23F8E5C29DDCD28001CFAE8 /* RUMApplicationScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C3E63D24BF1B91008053F2 /* RUMApplicationScope.swift */; }; D23F8E5D29DDCD28001CFAE8 /* SwiftUIViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D249859F2728042200B4F72D /* SwiftUIViewModifier.swift */; }; D23F8E5E29DDCD28001CFAE8 /* VitalInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3FC3C0626526EFF00DEED9E /* VitalInfo.swift */; }; @@ -527,7 +513,6 @@ D23F8E6729DDCD28001CFAE8 /* RUMUUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618DCFD624C7265300589570 /* RUMUUID.swift */; }; D23F8E6829DDCD28001CFAE8 /* UIKitExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 615F197B25B5A64B00BE14B5 /* UIKitExtensions.swift */; }; D23F8E6929DDCD28001CFAE8 /* RUMContextAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CBC26D294395A300134409 /* RUMContextAttributes.swift */; }; - D23F8E6A29DDCD28001CFAE8 /* (null) in Sources */ = {isa = PBXBuildFile; }; D23F8E6B29DDCD28001CFAE8 /* RUMMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61E5333524B84B43003D6C4E /* RUMMonitor.swift */; }; D23F8E6C29DDCD28001CFAE8 /* RUMContextProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6156CB8D24DDA1B5008CB2B2 /* RUMContextProvider.swift */; }; D23F8E6D29DDCD28001CFAE8 /* RUMViewIdentity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61FF9A4425AC5DEA001058CC /* RUMViewIdentity.swift */; }; @@ -567,7 +552,6 @@ D23F8EA029DDCD38001CFAE8 /* RUMOffViewEventsHandlingRuleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61A614E9276B9D4C00A06CE7 /* RUMOffViewEventsHandlingRuleTests.swift */; }; D23F8EA229DDCD38001CFAE8 /* RUMSessionScopeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C2C20824C0C75500C0321C /* RUMSessionScopeTests.swift */; }; D23F8EA329DDCD38001CFAE8 /* RUMUserActionScopeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 617CD0DC24CEDDD300B0B557 /* RUMUserActionScopeTests.swift */; }; - D23F8EA429DDCD38001CFAE8 /* RUMViewUpdatesThrottlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6141CE662806B41C00EBB879 /* RUMViewUpdatesThrottlerTests.swift */; }; D23F8EA529DDCD38001CFAE8 /* UIKitMocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = D29A9FDF29DDC75A005C54A4 /* UIKitMocks.swift */; }; D23F8EA629DDCD38001CFAE8 /* RUMDeviceInfoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61FD9FCE28534EBD00214BD9 /* RUMDeviceInfoTests.swift */; }; D23F8EA829DDCD38001CFAE8 /* RUMResourceScopeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61494CB424C864680082C633 /* RUMResourceScopeTests.swift */; }; @@ -730,6 +714,11 @@ D293302D2A137DAD0029C9EA /* CrashReportingFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = D293302B2A137DAD0029C9EA /* CrashReportingFeature.swift */; }; D295A16529F299C9007C0E9A /* URLSessionInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D295A16429F299C9007C0E9A /* URLSessionInterceptor.swift */; }; D295A16629F299C9007C0E9A /* URLSessionInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D295A16429F299C9007C0E9A /* URLSessionInterceptor.swift */; }; + D29732492A5C108700827599 /* DDScriptMessageHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D29732462A5C108700827599 /* DDScriptMessageHandler.swift */; }; + D297324B2A5C108700827599 /* MessageEmitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D29732472A5C108700827599 /* MessageEmitter.swift */; }; + D297324D2A5C108700827599 /* WebViewMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D29732482A5C108700827599 /* WebViewMessage.swift */; }; + D29732512A5C109A00827599 /* MessageEmitterCoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D297324F2A5C109A00827599 /* MessageEmitterCoreTests.swift */; }; + D29732532A5C109A00827599 /* WebViewTrackingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D29732502A5C109A00827599 /* WebViewTrackingTests.swift */; }; D29A9F3C29DD84AB005C54A4 /* DatadogRUM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D29A9F3429DD84AA005C54A4 /* DatadogRUM.framework */; }; D29A9F4B29DD8525005C54A4 /* DatadogInternal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D23039A5298D513C001A1FA3 /* DatadogInternal.framework */; }; D29A9F4C29DD8525005C54A4 /* DatadogInternal.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D23039A5298D513C001A1FA3 /* DatadogInternal.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -739,7 +728,6 @@ D29A9F5329DD85BB005C54A4 /* RUMOffViewEventsHandlingRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61A614E7276B2BD000A06CE7 /* RUMOffViewEventsHandlingRule.swift */; }; D29A9F5429DD85BB005C54A4 /* RUMScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C3E63624BF191F008053F2 /* RUMScope.swift */; }; D29A9F5529DD85BB005C54A4 /* PerformanceMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = E179FB4D28F80A6400CC2698 /* PerformanceMetric.swift */; }; - D29A9F5629DD85BB005C54A4 /* RUMViewUpdatesThrottler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61494B7927F352570082BBCC /* RUMViewUpdatesThrottler.swift */; }; D29A9F5729DD85BB005C54A4 /* URLSessionRUMResourcesHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2BCB11E29D30AF000737A9A /* URLSessionRUMResourcesHandler.swift */; }; D29A9F5829DD85BB005C54A4 /* RUMConnectivityInfoProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 614B0A4E24EBDC6B00A2A780 /* RUMConnectivityInfoProvider.swift */; }; D29A9F5929DD85BB005C54A4 /* RUMCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C3E63A24BF1A4B008053F2 /* RUMCommand.swift */; }; @@ -760,7 +748,6 @@ D29A9F6929DD85BB005C54A4 /* UIKitRUMUserActionsHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6141015A251A601D00E3C2D9 /* UIKitRUMUserActionsHandler.swift */; }; D29A9F6A29DD85BB005C54A4 /* SwiftUIViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D249859F2728042200B4F72D /* SwiftUIViewModifier.swift */; }; D29A9F6B29DD85BB005C54A4 /* VitalInfoSampler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9973F0268DF69500D8059B /* VitalInfoSampler.swift */; }; - D29A9F6C29DD85BB005C54A4 /* (null) in Sources */ = {isa = PBXBuildFile; }; D29A9F6D29DD85BB005C54A4 /* UIApplicationSwizzler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6141014E251A57AF00E3C2D9 /* UIApplicationSwizzler.swift */; }; D29A9F6E29DD85BB005C54A4 /* RUMUUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618DCFD624C7265300589570 /* RUMUUID.swift */; }; D29A9F6F29DD85BB005C54A4 /* RUMInstrumentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 616CCE15250A467E009FED46 /* RUMInstrumentation.swift */; }; @@ -809,7 +796,6 @@ D29A9FAC29DDB483005C54A4 /* UIKitRUMUserActionsHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 615C3195251DD5080018781C /* UIKitRUMUserActionsHandlerTests.swift */; }; D29A9FAE29DDB483005C54A4 /* SessionReplayDependencyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 615950EA291C029700470E0C /* SessionReplayDependencyTests.swift */; }; D29A9FB029DDB483005C54A4 /* RUMOperatingSystemInfoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 616C0AA028573F6300C13264 /* RUMOperatingSystemInfoTests.swift */; }; - D29A9FB129DDB483005C54A4 /* RUMViewUpdatesThrottlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6141CE662806B41C00EBB879 /* RUMViewUpdatesThrottlerTests.swift */; }; D29A9FB329DDB483005C54A4 /* RUMScopeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618DCFDE24C75FD300589570 /* RUMScopeTests.swift */; }; D29A9FB729DDB483005C54A4 /* RUMViewIdentityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C1510C25AC8C1B00362D4B /* RUMViewIdentityTests.swift */; }; D29A9FB829DDB483005C54A4 /* RUMViewScopeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6198D27024C6E3B700493501 /* RUMViewScopeTests.swift */; }; @@ -1265,27 +1251,6 @@ remoteGlobalIDString = D23039A4298D513C001A1FA3; remoteInfo = "DatadogInternal iOS"; }; - 3C41694329FBF7EE0042B9D2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 61133B79242393DE00786299 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D2DA2355298D57AA00C6C7E6; - remoteInfo = "DatadogInternal tvOS"; - }; - 3C41694529FBF7F50042B9D2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 61133B79242393DE00786299 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D2579571298ABB83008A1BE5; - remoteInfo = "TestUtilities tvOS"; - }; - 3C41694929FBF8CC0042B9D2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 61133B79242393DE00786299 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D2DA2355298D57AA00C6C7E6; - remoteInfo = "DatadogInternal tvOS"; - }; 3C4D5FEE2A0115C600F1FF78 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 61133B79242393DE00786299 /* Project object */; @@ -1314,13 +1279,6 @@ remoteGlobalIDString = 3CE119FD29F7BE0000202522; remoteInfo = "DatadogWebViewTracking iOS"; }; - 3CE11A2929F7BE1E00202522 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 61133B79242393DE00786299 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3CE11A1F29F7BE1800202522; - remoteInfo = "DatadogWebViewTracking tvOS"; - }; 61133C722423993200786299 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 61133B79242393DE00786299 /* Project object */; @@ -1690,15 +1648,9 @@ 3C0D5DEE2A5442A900446CF9 /* EventMocks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventMocks.swift; sourceTree = ""; }; 3C0D5DF42A5443B100446CF9 /* DataFormatTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataFormatTests.swift; sourceTree = ""; }; 3C85D41429F7C59C00AFF894 /* WebViewTracking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewTracking.swift; sourceTree = ""; }; - 3C85D41529F7C59C00AFF894 /* WebViewTrackingMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewTrackingMessage.swift; sourceTree = ""; }; - 3C85D41629F7C59C00AFF894 /* WKUserContentController+Datadog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WKUserContentController+Datadog.swift"; sourceTree = ""; }; - 3C85D41729F7C5BE00AFF894 /* WebViewTrackingCoreTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebViewTrackingCoreTests.swift; sourceTree = ""; }; - 3C85D41829F7C5BE00AFF894 /* WKUserContentController+DatadogTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WKUserContentController+DatadogTests.swift"; sourceTree = ""; }; 3C85D42B29F7C87D00AFF894 /* HostsSanitizerMock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HostsSanitizerMock.swift; sourceTree = ""; }; 3CE119FE29F7BE0100202522 /* DatadogWebViewTracking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DatadogWebViewTracking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3CE11A0529F7BE0300202522 /* DatadogWebViewTrackingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DatadogWebViewTrackingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CE11A2029F7BE1800202522 /* DatadogWebViewTracking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DatadogWebViewTracking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CE11A2729F7BE1B00202522 /* DatadogWebViewTrackingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DatadogWebViewTrackingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 49274903288048AA00ECD49B /* InternalTelemetryTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InternalTelemetryTests.swift; sourceTree = ""; }; 49274908288048F400ECD49B /* RUMInternalProxyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RUMInternalProxyTests.swift; sourceTree = ""; }; 61020C292757AD91005EEAEA /* BackgroundLocationMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundLocationMonitor.swift; sourceTree = ""; }; @@ -1802,7 +1754,6 @@ 6141015A251A601D00E3C2D9 /* UIKitRUMUserActionsHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitRUMUserActionsHandler.swift; sourceTree = ""; }; 61410166251A661D00E3C2D9 /* UIApplicationSwizzlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIApplicationSwizzlerTests.swift; sourceTree = ""; }; 61411B0F24EC15AC0012EAB2 /* Casting+RUM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Casting+RUM.swift"; sourceTree = ""; }; - 6141CE662806B41C00EBB879 /* RUMViewUpdatesThrottlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMViewUpdatesThrottlerTests.swift; sourceTree = ""; }; 61441C0224616DE9003D8BB8 /* Example iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 61441C0424616DE9003D8BB8 /* ExampleAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleAppDelegate.swift; sourceTree = ""; }; 61441C0B24616DE9003D8BB8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = "Base.lproj/Main iOS.storyboard"; sourceTree = ""; }; @@ -1821,7 +1772,6 @@ 6147989B2A459E2B0095CB02 /* DDTrace+apiTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "DDTrace+apiTests.m"; sourceTree = ""; }; 6147E3B2270486920092BC9F /* TracingConfigurationE2ETests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TracingConfigurationE2ETests.swift; sourceTree = ""; }; 614872762485067300E3EBDB /* SpanTagsReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpanTagsReducer.swift; sourceTree = ""; }; - 61494B7927F352570082BBCC /* RUMViewUpdatesThrottler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMViewUpdatesThrottler.swift; sourceTree = ""; }; 61494CB024C839460082C633 /* RUMResourceScope.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMResourceScope.swift; sourceTree = ""; }; 61494CB424C864680082C633 /* RUMResourceScopeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMResourceScopeTests.swift; sourceTree = ""; }; 61494CB924CB126F0082C633 /* RUMUserActionScope.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMUserActionScope.swift; sourceTree = ""; }; @@ -2246,6 +2196,11 @@ D29294E2291D652900F8EFF9 /* ApplicationVersionPublisherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationVersionPublisherTests.swift; sourceTree = ""; }; D293302B2A137DAD0029C9EA /* CrashReportingFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrashReportingFeature.swift; sourceTree = ""; }; D295A16429F299C9007C0E9A /* URLSessionInterceptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLSessionInterceptor.swift; sourceTree = ""; }; + D29732462A5C108700827599 /* DDScriptMessageHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DDScriptMessageHandler.swift; sourceTree = ""; }; + D29732472A5C108700827599 /* MessageEmitter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageEmitter.swift; sourceTree = ""; }; + D29732482A5C108700827599 /* WebViewMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebViewMessage.swift; sourceTree = ""; }; + D297324F2A5C109A00827599 /* MessageEmitterCoreTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageEmitterCoreTests.swift; sourceTree = ""; }; + D29732502A5C109A00827599 /* WebViewTrackingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebViewTrackingTests.swift; sourceTree = ""; }; D29889C72734136200A4D1A9 /* RUMViewsHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMViewsHandlerTests.swift; sourceTree = ""; }; D29A9F3429DD84AA005C54A4 /* DatadogRUM.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DatadogRUM.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D29A9F3B29DD84AB005C54A4 /* DatadogRUMTests iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "DatadogRUMTests iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -2352,23 +2307,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3CE11A1D29F7BE1800202522 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3C41694729FBF8CC0042B9D2 /* DatadogInternal.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CE11A2429F7BE1B00202522 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3C85D42929F7C6FD00AFF894 /* TestUtilities.framework in Frameworks */, - 3CE11A2829F7BE1E00202522 /* DatadogWebViewTracking.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 61133B88242393DE00786299 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2531,12 +2469,10 @@ buildActionMask = 2147483647; files = ( 61A2CC342A44A6030000FF25 /* DatadogRUM.framework in Frameworks */, - 3CE11A3729F7BE6B00202522 /* DatadogWebViewTracking.framework in Frameworks */, D25CFA9D29C4FC6E00E3A43D /* DatadogTrace.framework in Frameworks */, 9E5BD8062819742C00CB568E /* SwiftUI.framework in Frameworks */, D240687027CF971C00C04F44 /* CrashReporter.xcframework in Frameworks */, D240687127CF971C00C04F44 /* DatadogCore.framework in Frameworks */, - 3CE11A3729F7BE6B00202522 /* DatadogWebViewTracking.framework in Frameworks */, D240687227CF971C00C04F44 /* DatadogCrashReporting.framework in Frameworks */, D24C9C4629A7A520002057CF /* DatadogLogs.framework in Frameworks */, D240687327CF971C00C04F44 /* DatadogObjc.framework in Frameworks */, @@ -2705,8 +2641,9 @@ isa = PBXGroup; children = ( 3C85D41429F7C59C00AFF894 /* WebViewTracking.swift */, - 3C85D41529F7C59C00AFF894 /* WebViewTrackingMessage.swift */, - 3C85D41629F7C59C00AFF894 /* WKUserContentController+Datadog.swift */, + D29732462A5C108700827599 /* DDScriptMessageHandler.swift */, + D29732472A5C108700827599 /* MessageEmitter.swift */, + D29732482A5C108700827599 /* WebViewMessage.swift */, ); name = DatadogWebViewTracking; path = ../DatadogWebViewTracking/Sources; @@ -2715,8 +2652,8 @@ 3CE11A3C29F7BEF300202522 /* DatadogWebViewTrackingTests */ = { isa = PBXGroup; children = ( - 3C85D41729F7C5BE00AFF894 /* WebViewTrackingCoreTests.swift */, - 3C85D41829F7C5BE00AFF894 /* WKUserContentController+DatadogTests.swift */, + D297324F2A5C109A00827599 /* MessageEmitterCoreTests.swift */, + D29732502A5C109A00827599 /* WebViewTrackingTests.swift */, ); name = DatadogWebViewTrackingTests; path = ../DatadogWebViewTracking/Tests; @@ -2818,8 +2755,6 @@ D23F8ECD29DDCD38001CFAE8 /* DatadogRUMTests tvOS.xctest */, 3CE119FE29F7BE0100202522 /* DatadogWebViewTracking.framework */, 3CE11A0529F7BE0300202522 /* DatadogWebViewTrackingTests.xctest */, - 3CE11A2029F7BE1800202522 /* DatadogWebViewTracking.framework */, - 3CE11A2729F7BE1B00202522 /* DatadogWebViewTrackingTests.xctest */, ); name = Products; sourceTree = ""; @@ -3329,7 +3264,6 @@ children = ( 61C1510C25AC8C1B00362D4B /* RUMViewIdentityTests.swift */, 61A614E9276B9D4C00A06CE7 /* RUMOffViewEventsHandlingRuleTests.swift */, - 6141CE662806B41C00EBB879 /* RUMViewUpdatesThrottlerTests.swift */, ); path = Utils; sourceTree = ""; @@ -3411,7 +3345,6 @@ children = ( 61FF9A4425AC5DEA001058CC /* RUMViewIdentity.swift */, 61A614E7276B2BD000A06CE7 /* RUMOffViewEventsHandlingRule.swift */, - 61494B7927F352570082BBCC /* RUMViewUpdatesThrottler.swift */, ); path = Utils; sourceTree = ""; @@ -4874,13 +4807,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3CE11A1B29F7BE1800202522 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 61133B7D242393DE00786299 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -5049,45 +4975,6 @@ productReference = 3CE11A0529F7BE0300202522 /* DatadogWebViewTrackingTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 3CE11A1F29F7BE1800202522 /* DatadogWebViewTracking tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CE11A2F29F7BE2100202522 /* Build configuration list for PBXNativeTarget "DatadogWebViewTracking tvOS" */; - buildPhases = ( - 3CE11A1B29F7BE1800202522 /* Headers */, - 3CE11A1C29F7BE1800202522 /* Sources */, - 3CE11A1D29F7BE1800202522 /* Frameworks */, - 3CE11A1E29F7BE1800202522 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 3C41694A29FBF8CC0042B9D2 /* PBXTargetDependency */, - ); - name = "DatadogWebViewTracking tvOS"; - productName = "DatadogWebViewTracking tvOS"; - productReference = 3CE11A2029F7BE1800202522 /* DatadogWebViewTracking.framework */; - productType = "com.apple.product-type.framework"; - }; - 3CE11A2629F7BE1B00202522 /* DatadogWebViewTrackingTests tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CE11A3329F7BE2100202522 /* Build configuration list for PBXNativeTarget "DatadogWebViewTrackingTests tvOS" */; - buildPhases = ( - 3CE11A2329F7BE1B00202522 /* Sources */, - 3CE11A2429F7BE1B00202522 /* Frameworks */, - 3CE11A2529F7BE1B00202522 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 3C41694629FBF7F50042B9D2 /* PBXTargetDependency */, - 3C41694429FBF7EE0042B9D2 /* PBXTargetDependency */, - 3CE11A2A29F7BE1E00202522 /* PBXTargetDependency */, - ); - name = "DatadogWebViewTrackingTests tvOS"; - productName = "DatadogWebViewTracking tvOSTests"; - productReference = 3CE11A2729F7BE1B00202522 /* DatadogWebViewTrackingTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; 61133B81242393DE00786299 /* DatadogCore iOS */ = { isa = PBXNativeTarget; buildConfigurationList = 61133B96242393DE00786299 /* Build configuration list for PBXNativeTarget "DatadogCore iOS" */; @@ -5762,14 +5649,7 @@ }; 3CE11A0429F7BE0300202522 = { CreatedOnToolsVersion = 14.0.1; - LastSwiftMigration = 1400; - }; - 3CE11A1F29F7BE1800202522 = { - CreatedOnToolsVersion = 14.0.1; - }; - 3CE11A2629F7BE1B00202522 = { - CreatedOnToolsVersion = 14.0.1; - LastSwiftMigration = 1400; + LastSwiftMigration = 1430; }; 61133B81242393DE00786299 = { CreatedOnToolsVersion = 11.3.1; @@ -5891,8 +5771,6 @@ D2579571298ABB83008A1BE5 /* TestUtilities tvOS */, 3CE119FD29F7BE0000202522 /* DatadogWebViewTracking iOS */, 3CE11A0429F7BE0300202522 /* DatadogWebViewTrackingTests iOS */, - 3CE11A1F29F7BE1800202522 /* DatadogWebViewTracking tvOS */, - 3CE11A2629F7BE1B00202522 /* DatadogWebViewTrackingTests tvOS */, ); }; /* End PBXProject section */ @@ -5912,20 +5790,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3CE11A1E29F7BE1800202522 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CE11A2529F7BE1B00202522 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 61133B80242393DE00786299 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -6380,8 +6244,9 @@ buildActionMask = 2147483647; files = ( 3C85D42129F7C5C900AFF894 /* WebViewTracking.swift in Sources */, - 3C85D41F29F7C5C900AFF894 /* WebViewTrackingMessage.swift in Sources */, - 3C85D42029F7C5C900AFF894 /* WKUserContentController+Datadog.swift in Sources */, + D297324D2A5C108700827599 /* WebViewMessage.swift in Sources */, + D297324B2A5C108700827599 /* MessageEmitter.swift in Sources */, + D29732492A5C108700827599 /* DDScriptMessageHandler.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6389,27 +6254,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3C85D41B29F7C5C300AFF894 /* WKUserContentController+DatadogTests.swift in Sources */, - 3C85D41C29F7C5C400AFF894 /* WebViewTrackingCoreTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CE11A1C29F7BE1800202522 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3C85D42429F7C5CA00AFF894 /* WebViewTracking.swift in Sources */, - 3C85D42229F7C5CA00AFF894 /* WebViewTrackingMessage.swift in Sources */, - 3C85D42329F7C5CA00AFF894 /* WKUserContentController+Datadog.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CE11A2329F7BE1B00202522 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3C85D41D29F7C5C400AFF894 /* WKUserContentController+DatadogTests.swift in Sources */, - 3C85D41E29F7C5C400AFF894 /* WebViewTrackingCoreTests.swift in Sources */, + D29732532A5C109A00827599 /* WebViewTrackingTests.swift in Sources */, + D29732512A5C109A00827599 /* MessageEmitterCoreTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6902,7 +6748,6 @@ D23F8E5829DDCD28001CFAE8 /* VitalMemoryReader.swift in Sources */, D23F8E5929DDCD28001CFAE8 /* WebViewEventReceiver.swift in Sources */, D23F8E5A29DDCD28001CFAE8 /* RUMResourceScope.swift in Sources */, - D23F8E5B29DDCD28001CFAE8 /* RUMViewUpdatesThrottler.swift in Sources */, D23F8E5C29DDCD28001CFAE8 /* RUMApplicationScope.swift in Sources */, D23F8E5D29DDCD28001CFAE8 /* SwiftUIViewModifier.swift in Sources */, D23F8E5E29DDCD28001CFAE8 /* VitalInfo.swift in Sources */, @@ -6918,7 +6763,6 @@ D23F8E6829DDCD28001CFAE8 /* UIKitExtensions.swift in Sources */, 61C713A82A3B78F900FA735A /* RUMMonitorProtocol+Convenience.swift in Sources */, D23F8E6929DDCD28001CFAE8 /* RUMContextAttributes.swift in Sources */, - D23F8E6A29DDCD28001CFAE8 /* (null) in Sources */, D23F8E6B29DDCD28001CFAE8 /* RUMMonitor.swift in Sources */, D23F8E6C29DDCD28001CFAE8 /* RUMContextProvider.swift in Sources */, D23F8E6D29DDCD28001CFAE8 /* RUMViewIdentity.swift in Sources */, @@ -6971,7 +6815,6 @@ D23F8EA029DDCD38001CFAE8 /* RUMOffViewEventsHandlingRuleTests.swift in Sources */, D23F8EA229DDCD38001CFAE8 /* RUMSessionScopeTests.swift in Sources */, D23F8EA329DDCD38001CFAE8 /* RUMUserActionScopeTests.swift in Sources */, - D23F8EA429DDCD38001CFAE8 /* RUMViewUpdatesThrottlerTests.swift in Sources */, 61C713B42A3C3A0B00FA735A /* RUMMonitorProtocol+InternalTests.swift in Sources */, D23F8EA529DDCD38001CFAE8 /* UIKitMocks.swift in Sources */, D23F8EA629DDCD38001CFAE8 /* RUMDeviceInfoTests.swift in Sources */, @@ -7155,7 +6998,6 @@ D29A9F5B29DD85BB005C54A4 /* VitalMemoryReader.swift in Sources */, D29A9F6229DD85BB005C54A4 /* WebViewEventReceiver.swift in Sources */, D29A9F8429DD85BB005C54A4 /* RUMResourceScope.swift in Sources */, - D29A9F5629DD85BB005C54A4 /* RUMViewUpdatesThrottler.swift in Sources */, D29A9F7329DD85BB005C54A4 /* RUMApplicationScope.swift in Sources */, D29A9F6A29DD85BB005C54A4 /* SwiftUIViewModifier.swift in Sources */, D29A9F6429DD85BB005C54A4 /* VitalInfo.swift in Sources */, @@ -7171,7 +7013,6 @@ D29A9F8D29DD8665005C54A4 /* UIKitExtensions.swift in Sources */, 61C713A72A3B78F900FA735A /* RUMMonitorProtocol+Convenience.swift in Sources */, D29A9F6829DD85BB005C54A4 /* RUMContextAttributes.swift in Sources */, - D29A9F6C29DD85BB005C54A4 /* (null) in Sources */, D29A9F6329DD85BB005C54A4 /* RUMMonitor.swift in Sources */, D29A9F7029DD85BB005C54A4 /* RUMContextProvider.swift in Sources */, D29A9F6029DD85BB005C54A4 /* RUMViewIdentity.swift in Sources */, @@ -7224,7 +7065,6 @@ D29A9FA629DDB483005C54A4 /* RUMOffViewEventsHandlingRuleTests.swift in Sources */, D29A9FBD29DDB483005C54A4 /* RUMSessionScopeTests.swift in Sources */, D29A9FAB29DDB483005C54A4 /* RUMUserActionScopeTests.swift in Sources */, - D29A9FB129DDB483005C54A4 /* RUMViewUpdatesThrottlerTests.swift in Sources */, 61C713B32A3C3A0B00FA735A /* RUMMonitorProtocol+InternalTests.swift in Sources */, D29A9FE029DDC75A005C54A4 /* UIKitMocks.swift in Sources */, D29A9FA329DDB483005C54A4 /* RUMDeviceInfoTests.swift in Sources */, @@ -7758,21 +7598,6 @@ target = D23039A4298D513C001A1FA3 /* DatadogInternal iOS */; targetProxy = 3C41694129FBF6100042B9D2 /* PBXContainerItemProxy */; }; - 3C41694429FBF7EE0042B9D2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D2DA2355298D57AA00C6C7E6 /* DatadogInternal tvOS */; - targetProxy = 3C41694329FBF7EE0042B9D2 /* PBXContainerItemProxy */; - }; - 3C41694629FBF7F50042B9D2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D2579571298ABB83008A1BE5 /* TestUtilities tvOS */; - targetProxy = 3C41694529FBF7F50042B9D2 /* PBXContainerItemProxy */; - }; - 3C41694A29FBF8CC0042B9D2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D2DA2355298D57AA00C6C7E6 /* DatadogInternal tvOS */; - targetProxy = 3C41694929FBF8CC0042B9D2 /* PBXContainerItemProxy */; - }; 3C4D5FEF2A0115C600F1FF78 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = D2C1A53329C4F2DF00946C31 /* DatadogTrace tvOS */; @@ -7793,11 +7618,6 @@ target = 3CE119FD29F7BE0000202522 /* DatadogWebViewTracking iOS */; targetProxy = 3CE11A0729F7BE0500202522 /* PBXContainerItemProxy */; }; - 3CE11A2A29F7BE1E00202522 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3CE11A1F29F7BE1800202522 /* DatadogWebViewTracking tvOS */; - targetProxy = 3CE11A2929F7BE1E00202522 /* PBXContainerItemProxy */; - }; 61133C732423993200786299 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 61133B81242393DE00786299 /* DatadogCore iOS */; @@ -8214,208 +8034,6 @@ }; name = Integration; }; - 3CE11A3029F7BE2100202522 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 61569894256D0E9A00C6AADA /* Base.xcconfig */; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 Datadog. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.datadoghq.DatadogWebViewTracking; - PRODUCT_NAME = DatadogWebViewTracking; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvos appletvsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 3CE11A3129F7BE2100202522 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 61569894256D0E9A00C6AADA /* Base.xcconfig */; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 Datadog. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.datadoghq.DatadogWebViewTracking; - PRODUCT_NAME = DatadogWebViewTracking; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvos appletvsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; - 3CE11A3229F7BE2100202522 /* Integration */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 61569894256D0E9A00C6AADA /* Base.xcconfig */; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 Datadog. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.datadoghq.DatadogWebViewTracking; - PRODUCT_NAME = DatadogWebViewTracking; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvos appletvsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Integration; - }; - 3CE11A3429F7BE2100202522 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.datadoghq.DatadogWebViewTrackingTests; - PRODUCT_NAME = DatadogWebViewTrackingTests; - SDKROOT = appletvos; - SUPPORTED_PLATFORMS = "appletvos appletvsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 3CE11A3529F7BE2100202522 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.datadoghq.DatadogWebViewTrackingTests; - PRODUCT_NAME = DatadogWebViewTrackingTests; - SDKROOT = appletvos; - SUPPORTED_PLATFORMS = "appletvos appletvsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; - 3CE11A3629F7BE2100202522 /* Integration */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.datadoghq.DatadogWebViewTrackingTests; - PRODUCT_NAME = DatadogWebViewTrackingTests; - SDKROOT = appletvos; - SUPPORTED_PLATFORMS = "appletvos appletvsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Integration; - }; 61133B94242393DE00786299 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -11511,26 +11129,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3CE11A2F29F7BE2100202522 /* Build configuration list for PBXNativeTarget "DatadogWebViewTracking tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CE11A3029F7BE2100202522 /* Debug */, - 3CE11A3129F7BE2100202522 /* Release */, - 3CE11A3229F7BE2100202522 /* Integration */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3CE11A3329F7BE2100202522 /* Build configuration list for PBXNativeTarget "DatadogWebViewTrackingTests tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CE11A3429F7BE2100202522 /* Debug */, - 3CE11A3529F7BE2100202522 /* Release */, - 3CE11A3629F7BE2100202522 /* Integration */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 61133B7C242393DE00786299 /* Build configuration list for PBXProject "Datadog" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/DatadogCore/Tests/Datadog/Mocks/RUMFeatureMocks.swift b/DatadogCore/Tests/Datadog/Mocks/RUMFeatureMocks.swift index 7d663f3653..15ef1fb5bc 100644 --- a/DatadogCore/Tests/Datadog/Mocks/RUMFeatureMocks.swift +++ b/DatadogCore/Tests/Datadog/Mocks/RUMFeatureMocks.swift @@ -653,12 +653,6 @@ extension RUMSessionState: AnyMockable, RandomMockable { // MARK: - RUMScope Mocks -internal struct NoOpRUMViewUpdatesThrottler: RUMViewUpdatesThrottlerType { - func accept(event: RUMViewEvent) -> Bool { - return true // always send view update - } -} - func mockNoOpSessionListener() -> RUM.SessionListener { return { _, _ in } } diff --git a/DatadogCore/Tests/Datadog/RUM/RUMMonitorTests.swift b/DatadogCore/Tests/Datadog/RUM/RUMMonitorTests.swift index b345a4efc9..356f5c8877 100644 --- a/DatadogCore/Tests/Datadog/RUM/RUMMonitorTests.swift +++ b/DatadogCore/Tests/Datadog/RUM/RUMMonitorTests.swift @@ -21,7 +21,6 @@ class RUMMonitorTests: XCTestCase { super.setUp() core = DatadogCoreProxy() config = RUM.Configuration(applicationID: .mockAny()) - config.viewUpdatesThrottlerFactory = { NoOpRUMViewUpdatesThrottler() } // disable view updates sampling for deterministic behaviour } override func tearDown() { diff --git a/DatadogCore/Tests/DatadogObjc/DDRUMMonitorTests.swift b/DatadogCore/Tests/DatadogObjc/DDRUMMonitorTests.swift index f3739c7f50..07e090358f 100644 --- a/DatadogCore/Tests/DatadogObjc/DDRUMMonitorTests.swift +++ b/DatadogCore/Tests/DatadogObjc/DDRUMMonitorTests.swift @@ -141,7 +141,6 @@ class DDRUMMonitorTests: XCTestCase { core = DatadogCoreProxy() CoreRegistry.register(default: core) config = RUM.Configuration(applicationID: .mockAny()) - config.viewUpdatesThrottlerFactory = { NoOpRUMViewUpdatesThrottler() } // disable view updates sampling for deterministic behaviour } override func tearDown() { @@ -198,7 +197,6 @@ class DDRUMMonitorTests: XCTestCase { } func testSendingViewEventsWithTiming() throws { - config.viewUpdatesThrottlerFactory = { RUMViewUpdatesThrottler() } RUM.enable(with: config) let objcRUMMonitor = DDRUMMonitor.shared() @@ -211,7 +209,7 @@ class DDRUMMonitorTests: XCTestCase { let viewEvents = rumEventMatchers.filterRUMEvents(ofType: RUMViewEvent.self) { event in return event.view.name != RUMOffViewEventsHandlingRule.Constants.applicationLaunchViewName } - XCTAssertEqual(viewEvents.count, 2) + XCTAssertEqual(viewEvents.count, 3) let event1: RUMViewEvent = try viewEvents[0].model() let event2: RUMViewEvent = try viewEvents[1].model() diff --git a/DatadogRUM/Sources/Feature/RUMFeature.swift b/DatadogRUM/Sources/Feature/RUMFeature.swift index d7c34b5051..3453961744 100644 --- a/DatadogRUM/Sources/Feature/RUMFeature.swift +++ b/DatadogRUM/Sources/Feature/RUMFeature.swift @@ -51,7 +51,6 @@ internal final class RUMFeature: DatadogRemoteFeature { ), rumUUIDGenerator: configuration.uuidGenerator, ciTest: configuration.ciTestExecutionID.map { RUMCITest(testExecutionId: $0) }, - viewUpdatesThrottlerFactory: configuration.viewUpdatesThrottlerFactory, vitalsReaders: configuration.vitalsUpdateFrequency.map { VitalsReaders(frequency: $0.timeInterval) }, onSessionStart: configuration.onSessionStart ) diff --git a/DatadogRUM/Sources/RUMConfiguration.swift b/DatadogRUM/Sources/RUMConfiguration.swift index 4949b94ccf..2fdf131fae 100644 --- a/DatadogRUM/Sources/RUMConfiguration.swift +++ b/DatadogRUM/Sources/RUMConfiguration.swift @@ -250,9 +250,6 @@ extension RUM { internal var dateProvider: DateProvider = SystemDateProvider() - /// Produces view update events' throttler for each started RUM view scope. - internal var viewUpdatesThrottlerFactory: () -> RUMViewUpdatesThrottlerType = { RUMViewUpdatesThrottler() } - internal var debugSDK: Bool = ProcessInfo.processInfo.arguments.contains(LaunchArguments.Debug) internal var debugViews: Bool = ProcessInfo.processInfo.arguments.contains("DD_DEBUG_RUM") internal var ciTestExecutionID: String? = ProcessInfo.processInfo.environment["CI_VISIBILITY_TEST_EXECUTION_ID"] diff --git a/DatadogRUM/Sources/RUMMonitor/Scopes/RUMScopeDependencies.swift b/DatadogRUM/Sources/RUMMonitor/Scopes/RUMScopeDependencies.swift index efdc0cfee6..68eaa51c75 100644 --- a/DatadogRUM/Sources/RUMMonitor/Scopes/RUMScopeDependencies.swift +++ b/DatadogRUM/Sources/RUMMonitor/Scopes/RUMScopeDependencies.swift @@ -27,9 +27,6 @@ internal struct RUMScopeDependencies { let rumUUIDGenerator: RUMUUIDGenerator /// Integration with CIApp tests. It contains the CIApp test context when active. let ciTest: RUMCITest? - /// Produces `RUMViewUpdatesThrottlerType` for each started RUM view scope. - let viewUpdatesThrottlerFactory: () -> RUMViewUpdatesThrottlerType - let vitalsReaders: VitalsReaders? let onSessionStart: RUM.SessionListener? } diff --git a/DatadogRUM/Sources/RUMMonitor/Scopes/RUMViewScope.swift b/DatadogRUM/Sources/RUMMonitor/Scopes/RUMViewScope.swift index 11373212b5..58793254de 100644 --- a/DatadogRUM/Sources/RUMMonitor/Scopes/RUMViewScope.swift +++ b/DatadogRUM/Sources/RUMMonitor/Scopes/RUMViewScope.swift @@ -90,9 +90,6 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { private let vitalInfoSampler: VitalInfoSampler? - /// Samples view update events, so we can minimize the number of events in payload. - private let viewUpdatesThrottler: RUMViewUpdatesThrottlerType - private var viewPerformanceMetrics: [PerformanceMetric: VitalInfo] = [:] init( @@ -127,7 +124,6 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { frequency: $0.frequency ) } - self.viewUpdatesThrottler = dependencies.viewUpdatesThrottlerFactory() } // MARK: - RUMContextProvider @@ -395,7 +391,7 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { os: .init(context: context), service: context.service, session: .init( - hasReplay: context.srBaggage?.isReplayBeingRecorded, + hasReplay: context.srBaggage?.hasReplay, id: self.context.sessionID.toRUMDataFormat, type: dependencies.ciTest != nil ? .ciTest : .user ), @@ -442,6 +438,12 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { dd: .init( browserSdkVersion: nil, documentVersion: version.toInt64, + pageStates: nil, + replayStats: .init( + recordsCount: context.srBaggage?.recordsCountByViewID[viewUUID.toRUMDataFormat], + segmentsCount: nil, + segmentsTotalRawSize: nil + ), session: .init(plan: .plan1) ), application: .init(id: self.context.rumApplicationID), @@ -453,12 +455,14 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { display: nil, featureFlags: .init(featureFlagsInfo: featureFlags), os: .init(context: context), + privacy: nil, service: context.service, session: .init( - hasReplay: context.srBaggage?.isReplayBeingRecorded, + hasReplay: context.srBaggage?.hasReplay, id: self.context.sessionID.toRUMDataFormat, isActive: self.context.isSessionActive, - startReason: nil, + sampledForReplay: nil, + startPrecondition: nil, type: dependencies.ciTest != nil ? .ciTest : .user ), source: .init(rawValue: context.source) ?? .ios, @@ -509,11 +513,7 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { ) if let event = dependencies.eventBuilder.build(from: viewEvent) { - if viewUpdatesThrottler.accept(event: event) { - writer.write(value: event, metadata: event.metadata()) - } else { // if event was dropped by sampler - version -= 1 - } + writer.write(value: event, metadata: event.metadata()) // Update `CrashContext` with recent RUM view (no matter sampling - we want to always // have recent information if process is interrupted by crash): @@ -564,7 +564,7 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { os: .init(context: context), service: context.service, session: .init( - hasReplay: context.srBaggage?.isReplayBeingRecorded, + hasReplay: context.srBaggage?.hasReplay, id: self.context.sessionID.toRUMDataFormat, type: dependencies.ciTest != nil ? .ciTest : .user ), @@ -615,7 +615,7 @@ internal class RUMViewScope: RUMScope, RUMContextProvider { os: .init(context: context), service: context.service, session: .init( - hasReplay: context.srBaggage?.isReplayBeingRecorded, + hasReplay: context.srBaggage?.hasReplay, id: self.context.sessionID.toRUMDataFormat, type: dependencies.ciTest != nil ? .ciTest : .user ), diff --git a/DatadogRUM/Tests/Mocks/RUMFeatureMocks.swift b/DatadogRUM/Tests/Mocks/RUMFeatureMocks.swift index 36ed035125..628423fe72 100644 --- a/DatadogRUM/Tests/Mocks/RUMFeatureMocks.swift +++ b/DatadogRUM/Tests/Mocks/RUMFeatureMocks.swift @@ -640,12 +640,6 @@ extension RUMContext { // MARK: - RUMScope Mocks -internal struct NoOpRUMViewUpdatesThrottler: RUMViewUpdatesThrottlerType { - func accept(event: RUMViewEvent) -> Bool { - return true // always send view update - } -} - func mockNoOpSessionListener() -> RUM.SessionListener { return { _, _ in } } @@ -665,7 +659,6 @@ extension RUMScopeDependencies { eventBuilder: RUMEventBuilder = RUMEventBuilder(eventsMapper: .mockNoOp()), rumUUIDGenerator: RUMUUIDGenerator = DefaultRUMUUIDGenerator(), ciTest: RUMCITest? = nil, - viewUpdatesThrottlerFactory: @escaping () -> RUMViewUpdatesThrottlerType = { NoOpRUMViewUpdatesThrottler() }, vitalsReaders: VitalsReaders? = nil, onSessionStart: @escaping RUM.SessionListener = mockNoOpSessionListener() ) -> RUMScopeDependencies { @@ -679,7 +672,6 @@ extension RUMScopeDependencies { eventBuilder: eventBuilder, rumUUIDGenerator: rumUUIDGenerator, ciTest: ciTest, - viewUpdatesThrottlerFactory: viewUpdatesThrottlerFactory, vitalsReaders: vitalsReaders, onSessionStart: onSessionStart ) @@ -695,7 +687,6 @@ extension RUMScopeDependencies { eventBuilder: RUMEventBuilder? = nil, rumUUIDGenerator: RUMUUIDGenerator? = nil, ciTest: RUMCITest? = nil, - viewUpdatesThrottlerFactory: (() -> RUMViewUpdatesThrottlerType)? = nil, vitalsReaders: VitalsReaders? = nil, onSessionStart: RUM.SessionListener? = nil ) -> RUMScopeDependencies { @@ -709,7 +700,6 @@ extension RUMScopeDependencies { eventBuilder: eventBuilder ?? self.eventBuilder, rumUUIDGenerator: rumUUIDGenerator ?? self.rumUUIDGenerator, ciTest: ciTest ?? self.ciTest, - viewUpdatesThrottlerFactory: viewUpdatesThrottlerFactory ?? self.viewUpdatesThrottlerFactory, vitalsReaders: vitalsReaders ?? self.vitalsReaders, onSessionStart: onSessionStart ?? self.onSessionStart ) @@ -733,14 +723,14 @@ extension RUMSessionScope { parent: RUMContextProvider = RUMContextProviderMock(), startTime: Date = .mockAny(), dependencies: RUMScopeDependencies = .mockAny(), - isReplayBeingRecorded: Bool? = .mockAny() + hasReplay: Bool? = .mockAny() ) -> RUMSessionScope { return RUMSessionScope( isInitialSession: isInitialSession, parent: parent, startTime: startTime, dependencies: dependencies, - isReplayBeingRecorded: isReplayBeingRecorded + hasReplay: hasReplay ) } }