appium-webdriveragent 16.1.4 → 16.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/PrivateHeaders/XCTest/CDStructures.h +0 -26
  3. package/PrivateHeaders/XCTest/NSFastEnumeration-Protocol.h +23 -0
  4. package/PrivateHeaders/XCTest/XCAXClient_iOS.h +80 -44
  5. package/PrivateHeaders/XCTest/XCApplicationQuery.h +18 -11
  6. package/PrivateHeaders/XCTest/XCDebugLogDelegate-Protocol.h +17 -5
  7. package/PrivateHeaders/XCTest/XCPointerEvent.h +52 -19
  8. package/PrivateHeaders/XCTest/XCPointerEventPath.h +55 -33
  9. package/PrivateHeaders/XCTest/XCSynthesizedEventRecord.h +41 -18
  10. package/PrivateHeaders/XCTest/XCTAggregateSuiteRunStatistics.h +38 -0
  11. package/PrivateHeaders/XCTest/XCTAttachmentManager.h +33 -0
  12. package/PrivateHeaders/XCTest/XCTCapabilities.h +35 -0
  13. package/PrivateHeaders/XCTest/XCTCapabilitiesProviding-Protocol.h +23 -0
  14. package/PrivateHeaders/XCTest/XCTElementSetTransformer-Protocol.h +30 -13
  15. package/PrivateHeaders/XCTest/XCTElementSnapshotAttributeDataSource-Protocol.h +33 -0
  16. package/PrivateHeaders/XCTest/XCTElementSnapshotProvider-Protocol.h +23 -0
  17. package/PrivateHeaders/XCTest/XCTExpectedFailureContextManager.h +35 -0
  18. package/PrivateHeaders/XCTest/XCTFuture.h +45 -0
  19. package/PrivateHeaders/XCTest/XCTHarnessEventReporting-Protocol.h +29 -0
  20. package/PrivateHeaders/XCTest/XCTIssue.h +49 -0
  21. package/PrivateHeaders/XCTest/XCTIssueHandling-Protocol.h +26 -0
  22. package/PrivateHeaders/XCTest/XCTMacCatalystStatusProviding-Protocol.h +23 -0
  23. package/PrivateHeaders/XCTest/XCTMeasureOptions.h +48 -0
  24. package/PrivateHeaders/XCTest/XCTMemoryChecker.h +50 -0
  25. package/PrivateHeaders/XCTest/XCTMemoryCheckerDelegate-Protocol.h +26 -0
  26. package/PrivateHeaders/XCTest/XCTMessagingChannel_IDEToRunner-Protocol.h +27 -0
  27. package/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToDaemon-Protocol.h +39 -0
  28. package/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToIDE-Protocol.h +32 -0
  29. package/PrivateHeaders/XCTest/XCTMessagingRole_ActivityReporting-Protocol.h +24 -0
  30. package/PrivateHeaders/XCTest/XCTMessagingRole_AttachmentFutureResultStatusUpdating-Protocol.h +23 -0
  31. package/PrivateHeaders/XCTest/XCTMessagingRole_BundleRequesting-Protocol.h +24 -0
  32. package/PrivateHeaders/XCTest/XCTMessagingRole_CapabilityExchange-Protocol.h +56 -0
  33. package/PrivateHeaders/XCTest/XCTMessagingRole_DebugLogging-Protocol.h +23 -0
  34. package/PrivateHeaders/XCTest/XCTMessagingRole_EventSynthesis-Protocol.h +34 -0
  35. package/PrivateHeaders/XCTest/XCTMessagingRole_ForcePressureSupportQuerying-Protocol.h +25 -0
  36. package/PrivateHeaders/XCTest/XCTMessagingRole_HIDEventRecording-Protocol.h +25 -0
  37. package/PrivateHeaders/XCTest/XCTMessagingRole_MemoryTesting-Protocol.h +23 -0
  38. package/PrivateHeaders/XCTest/XCTMessagingRole_PerformanceMeasurementReporting-Protocol.h +23 -0
  39. package/PrivateHeaders/XCTest/XCTMessagingRole_ProcessMonitoring-Protocol.h +25 -0
  40. package/PrivateHeaders/XCTest/XCTMessagingRole_ProtectedResourceAuthorization-Protocol.h +22 -0
  41. package/PrivateHeaders/XCTest/XCTMessagingRole_ScreenRecording-Protocol.h +24 -0
  42. package/PrivateHeaders/XCTest/XCTMessagingRole_SelfDiagnosisIssueReporting-Protocol.h +23 -0
  43. package/PrivateHeaders/XCTest/XCTMessagingRole_SignpostRequesting-Protocol.h +24 -0
  44. package/PrivateHeaders/XCTest/XCTMessagingRole_SiriAutomation-Protocol.h +27 -0
  45. package/PrivateHeaders/XCTest/XCTMessagingRole_SystemConfiguration-Protocol.h +27 -0
  46. package/PrivateHeaders/XCTest/XCTMessagingRole_TelemetrySending-Protocol.h +23 -0
  47. package/PrivateHeaders/XCTest/XCTMessagingRole_TestExecution-Protocol.h +28 -0
  48. package/PrivateHeaders/XCTest/XCTMessagingRole_TestReporting-Protocol.h +40 -0
  49. package/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomation-Protocol.h +29 -0
  50. package/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomationRunnerEventReporting-Protocol.h +27 -0
  51. package/PrivateHeaders/XCTest/XCTMessagingRole_UserPresence-Protocol.h +24 -0
  52. package/PrivateHeaders/XCTest/XCTMetricDiagnosticHelper.h +49 -0
  53. package/PrivateHeaders/XCTest/XCTNSPredicateExpectationObject-Protocol.h +15 -7
  54. package/PrivateHeaders/XCTest/XCTPromise.h +30 -0
  55. package/PrivateHeaders/XCTest/XCTRemoteSignpostListenerProxy-Protocol.h +29 -0
  56. package/PrivateHeaders/XCTest/XCTRepetitionPolicy.h +43 -0
  57. package/PrivateHeaders/XCTest/XCTReportingSession.h +50 -0
  58. package/PrivateHeaders/XCTest/XCTReportingSessionConfiguration-Protocol.h +27 -0
  59. package/PrivateHeaders/XCTest/XCTReportingSessionIssueReporter-Protocol.h +23 -0
  60. package/PrivateHeaders/XCTest/XCTReportingSessionTestContainer-Protocol.h +26 -0
  61. package/PrivateHeaders/XCTest/XCTReportingSessionTestReporter.h +51 -0
  62. package/PrivateHeaders/XCTest/XCTRunnerAutomationSession-Protocol.h +38 -0
  63. package/PrivateHeaders/XCTest/XCTRunnerDaemonSession.h +76 -78
  64. package/PrivateHeaders/XCTest/XCTRunnerDaemonSessionUIAutomationDelegate-Protocol.h +33 -0
  65. package/PrivateHeaders/XCTest/XCTRunnerIDESession.h +87 -53
  66. package/PrivateHeaders/XCTest/XCTRunnerIDESessionDelegate-Protocol.h +24 -0
  67. package/PrivateHeaders/XCTest/XCTRuntimeDiagnosticsPolicy.h +36 -0
  68. package/PrivateHeaders/XCTest/XCTRuntimeIssueDetectionPolicy.h +39 -0
  69. package/PrivateHeaders/XCTest/XCTScreenCapturePolicy.h +35 -0
  70. package/PrivateHeaders/XCTest/XCTSignpostListener-Protocol.h +25 -0
  71. package/PrivateHeaders/XCTest/XCTSkippedTestContext.h +37 -0
  72. package/PrivateHeaders/XCTest/XCTSourceCodeContext.h +39 -0
  73. package/PrivateHeaders/XCTest/XCTSourceCodeLocation.h +31 -0
  74. package/PrivateHeaders/XCTest/XCTTagSelection.h +41 -0
  75. package/PrivateHeaders/XCTest/XCTTestIdentifier.h +81 -0
  76. package/PrivateHeaders/XCTest/XCTTestIdentifierSet.h +54 -0
  77. package/PrivateHeaders/XCTest/XCTTestSelection.h +35 -0
  78. package/PrivateHeaders/XCTest/XCTWaiter.h +45 -46
  79. package/PrivateHeaders/XCTest/XCTWaiterManagement-Protocol.h +17 -6
  80. package/PrivateHeaders/XCTest/XCTWaiterManager-Protocol.h +25 -0
  81. package/PrivateHeaders/XCTest/XCTWaiterWait.h +40 -0
  82. package/PrivateHeaders/XCTest/XCTest.h +47 -28
  83. package/PrivateHeaders/XCTest/XCTestCase.h +165 -90
  84. package/PrivateHeaders/XCTest/XCTestCaseDiscoveryUIAutomationDelegate-Protocol.h +20 -0
  85. package/PrivateHeaders/XCTest/XCTestCaseRun.h +19 -9
  86. package/PrivateHeaders/XCTest/XCTestCaseUIAutomationDelegate-Protocol.h +25 -0
  87. package/PrivateHeaders/XCTest/XCTestCastMethodNamesUIAutomationDelegate-Protocol.h +24 -0
  88. package/PrivateHeaders/XCTest/XCTestConfiguration.h +83 -55
  89. package/PrivateHeaders/XCTest/XCTestDriver.h +54 -28
  90. package/PrivateHeaders/XCTest/XCTestExpectation.h +37 -26
  91. package/PrivateHeaders/XCTest/XCTestExpectationDelegate-Protocol.h +15 -6
  92. package/PrivateHeaders/XCTest/XCTestObservationCenter.h +49 -25
  93. package/PrivateHeaders/XCTest/XCTestRun.h +33 -28
  94. package/PrivateHeaders/XCTest/XCUIAXNotificationHandling-Protocol.h +25 -0
  95. package/PrivateHeaders/XCTest/XCUIAccessibilityInterface-Protocol.h +58 -0
  96. package/PrivateHeaders/XCTest/XCUIAlertMonitoring-Protocol.h +27 -0
  97. package/PrivateHeaders/XCTest/XCUIApplication.h +86 -48
  98. package/PrivateHeaders/XCTest/XCUIApplicationAutomationSessionProviding-Protocol.h +26 -0
  99. package/PrivateHeaders/XCTest/XCUIApplicationImpl.h +78 -26
  100. package/PrivateHeaders/XCTest/XCUIApplicationImplReporter-Protocol.h +26 -0
  101. package/PrivateHeaders/XCTest/XCUIApplicationManaging-Protocol.h +23 -0
  102. package/PrivateHeaders/XCTest/XCUIApplicationMonitor-Protocol.h +43 -0
  103. package/PrivateHeaders/XCTest/XCUIApplicationOpenRequest.h +34 -0
  104. package/PrivateHeaders/XCTest/XCUIApplicationPlatformServicesProviderDelegate-Protocol.h +25 -0
  105. package/PrivateHeaders/XCTest/XCUIApplicationProcess.h +89 -69
  106. package/PrivateHeaders/XCTest/XCUIApplicationProcessDelegate-Protocol.h +25 -0
  107. package/PrivateHeaders/XCTest/XCUIApplicationProcessManaging-Protocol.h +26 -0
  108. package/PrivateHeaders/XCTest/XCUIApplicationProcessTracker-Protocol.h +28 -0
  109. package/PrivateHeaders/XCTest/XCUIApplicationRegistry.h +32 -0
  110. package/PrivateHeaders/XCTest/XCUIButtonConsole.h +26 -0
  111. package/PrivateHeaders/XCTest/XCUICoordinate.h +37 -32
  112. package/PrivateHeaders/XCTest/XCUIDevice.h +122 -17
  113. package/PrivateHeaders/XCTest/XCUIDeviceAutomationModeInterface-Protocol.h +25 -0
  114. package/PrivateHeaders/XCTest/XCUIDeviceDelayedAttachmentTransferSupportInterface-Protocol.h +22 -0
  115. package/PrivateHeaders/XCTest/XCUIDeviceEventAndStateInterface-Protocol.h +40 -0
  116. package/PrivateHeaders/XCTest/XCUIElement.h +191 -58
  117. package/PrivateHeaders/XCTest/XCUIElementAttributesPrivate-Protocol.h +26 -0
  118. package/PrivateHeaders/XCTest/XCUIElementEventTarget-Protocol.h +38 -0
  119. package/PrivateHeaders/XCTest/XCUIElementQuery.h +154 -58
  120. package/PrivateHeaders/XCTest/XCUIElementTypeQueryProvider_Private-Protocol.h +24 -0
  121. package/PrivateHeaders/XCTest/XCUIEventRecording-Protocol.h +37 -0
  122. package/PrivateHeaders/XCTest/XCUIHitPointResult.h +16 -11
  123. package/PrivateHeaders/XCTest/XCUIInterruptionMonitoring-Protocol.h +27 -0
  124. package/PrivateHeaders/XCTest/XCUIIssueDiagnosticsProviding-Protocol.h +23 -0
  125. package/PrivateHeaders/XCTest/XCUIKnobControl.h +26 -0
  126. package/PrivateHeaders/XCTest/XCUILocation.h +24 -0
  127. package/PrivateHeaders/XCTest/XCUIPlatformApplicationServicesProviding-Protocol.h +33 -0
  128. package/PrivateHeaders/XCTest/XCUIRemoteAccessibilityInterface-Protocol.h +45 -0
  129. package/PrivateHeaders/XCTest/XCUIRemoteDeviceRunner-Protocol.h +24 -0
  130. package/PrivateHeaders/XCTest/XCUIRemoteSiriInterface-Protocol.h +30 -0
  131. package/PrivateHeaders/XCTest/XCUIResetAuthorizationStatusOfProtectedResourcesInterface-Protocol.h +22 -0
  132. package/PrivateHeaders/XCTest/XCUIScreen.h +45 -19
  133. package/PrivateHeaders/XCTest/XCUIScreenDataSource-Protocol.h +28 -12
  134. package/PrivateHeaders/XCTest/XCUISiriService.h +39 -0
  135. package/PrivateHeaders/XCTest/XCUISystem.h +26 -0
  136. package/PrivateHeaders/XCTest/XCUIXcodeApplicationManaging-Protocol.h +27 -0
  137. package/PrivateHeaders/XCTest/_TtC10XCTestCore19XCTReportingContext.h +26 -0
  138. package/PrivateHeaders/XCTest/_XCTMessaging_VoidProtocol-Protocol.h +20 -0
  139. package/PrivateHeaders/XCTest/_XCTestObservationInternal-Protocol.h +26 -0
  140. package/PrivateHeaders/XCTest/_XCTestObservationPrivate-Protocol.h +27 -0
  141. package/WebDriverAgent.xcodeproj/project.pbxproj +718 -426
  142. package/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.m +9 -13
  143. package/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +2 -2
  144. package/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.m +0 -1
  145. package/WebDriverAgentLib/Categories/XCUIApplicationProcess+FBQuiescence.m +1 -0
  146. package/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.m +4 -0
  147. package/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.m +9 -7
  148. package/WebDriverAgentLib/Categories/XCUIElement+FBClassChain.m +2 -2
  149. package/WebDriverAgentLib/Categories/XCUIElement+FBScrolling.m +7 -3
  150. package/WebDriverAgentLib/Categories/XCUIElement+FBTyping.h +33 -0
  151. package/WebDriverAgentLib/Categories/XCUIElement+FBTyping.m +23 -0
  152. package/WebDriverAgentLib/Categories/XCUIElementQuery+FBHelpers.m +1 -0
  153. package/WebDriverAgentLib/Commands/FBElementCommands.m +5 -0
  154. package/WebDriverAgentLib/Commands/FBSessionCommands.m +1 -1
  155. package/WebDriverAgentLib/FBAlert.m +12 -3
  156. package/WebDriverAgentLib/Info.plist +2 -2
  157. package/WebDriverAgentLib/Routing/FBWebServer.m +3 -2
  158. package/WebDriverAgentLib/Routing/FBXCElementSnapshot.h +1 -1
  159. package/WebDriverAgentLib/Utilities/FBActiveAppDetectionPoint.m +2 -2
  160. package/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.h +1 -0
  161. package/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m +6 -0
  162. package/WebDriverAgentLib/Utilities/FBScreenshot.m +2 -2
  163. package/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.h +2 -2
  164. package/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.m +4 -4
  165. package/WebDriverAgentLib/Utilities/FBXCodeCompatibility.m +24 -3
  166. package/build/lib/no-session-proxy.d.ts +2 -2
  167. package/build/lib/no-session-proxy.d.ts.map +1 -1
  168. package/build/lib/no-session-proxy.js +2 -2
  169. package/build/lib/no-session-proxy.js.map +1 -1
  170. package/build/lib/webdriveragent.d.ts +2 -2
  171. package/build/lib/webdriveragent.d.ts.map +1 -1
  172. package/build/lib/webdriveragent.js +2 -2
  173. package/build/lib/webdriveragent.js.map +1 -1
  174. package/lib/no-session-proxy.ts +2 -2
  175. package/lib/webdriveragent.ts +3 -3
  176. package/package.json +1 -1
  177. package/PrivateHeaders/XCTest/NSString-XCTAdditions.h +0 -11
  178. package/PrivateHeaders/XCTest/NSValue-XCTestAdditions.h +0 -11
  179. package/PrivateHeaders/XCTest/UIGestureRecognizer-RecordingAdditions.h +0 -11
  180. package/PrivateHeaders/XCTest/UILongPressGestureRecognizer-RecordingAdditions.h +0 -11
  181. package/PrivateHeaders/XCTest/UIPanGestureRecognizer-RecordingAdditions.h +0 -11
  182. package/PrivateHeaders/XCTest/UIPinchGestureRecognizer-RecordingAdditions.h +0 -11
  183. package/PrivateHeaders/XCTest/UISwipeGestureRecognizer-RecordingAdditions.h +0 -11
  184. package/PrivateHeaders/XCTest/UITapGestureRecognizer-RecordingAdditions.h +0 -11
  185. package/PrivateHeaders/XCTest/XCActivityRecord.h +0 -39
  186. package/PrivateHeaders/XCTest/XCApplicationMonitor.h +0 -44
  187. package/PrivateHeaders/XCTest/XCApplicationMonitor_iOS.h +0 -18
  188. package/PrivateHeaders/XCTest/XCDeviceEvent.h +0 -27
  189. package/PrivateHeaders/XCTest/XCEventGenerator.h +0 -73
  190. package/PrivateHeaders/XCTest/XCKeyMappingPath.h +0 -36
  191. package/PrivateHeaders/XCTest/XCKeyboardInputSolver.h +0 -41
  192. package/PrivateHeaders/XCTest/XCKeyboardKeyMap.h +0 -101
  193. package/PrivateHeaders/XCTest/XCKeyboardLayout.h +0 -35
  194. package/PrivateHeaders/XCTest/XCSourceCodeRecording.h +0 -42
  195. package/PrivateHeaders/XCTest/XCSourceCodeTreeNode.h +0 -84
  196. package/PrivateHeaders/XCTest/XCSourceCodeTreeNodeEnumerator.h +0 -18
  197. package/PrivateHeaders/XCTest/XCSymbolicationRecord.h +0 -29
  198. package/PrivateHeaders/XCTest/XCSymbolicatorHolder.h +0 -14
  199. package/PrivateHeaders/XCTest/XCTAXClient-Protocol.h +0 -14
  200. package/PrivateHeaders/XCTest/XCTAsyncActivity-Protocol.h +0 -16
  201. package/PrivateHeaders/XCTest/XCTAsyncActivity.h +0 -23
  202. package/PrivateHeaders/XCTest/XCTAutomationTarget-Protocol.h +0 -12
  203. package/PrivateHeaders/XCTest/XCTDarwinNotificationExpectation.h +0 -23
  204. package/PrivateHeaders/XCTest/XCTKVOExpectation.h +0 -28
  205. package/PrivateHeaders/XCTest/XCTMetric.h +0 -29
  206. package/PrivateHeaders/XCTest/XCTNSNotificationExpectation.h +0 -27
  207. package/PrivateHeaders/XCTest/XCTNSPredicateExpectation.h +0 -24
  208. package/PrivateHeaders/XCTest/XCTRunnerAutomationSession.h +0 -21
  209. package/PrivateHeaders/XCTest/XCTTestRunSession.h +0 -25
  210. package/PrivateHeaders/XCTest/XCTTestRunSessionDelegate-Protocol.h +0 -17
  211. package/PrivateHeaders/XCTest/XCTUIApplicationMonitor-Protocol.h +0 -17
  212. package/PrivateHeaders/XCTest/XCTWaiterDelegate-Protocol.h +0 -16
  213. package/PrivateHeaders/XCTest/XCTWaiterDelegatePrivate-Protocol.h +0 -12
  214. package/PrivateHeaders/XCTest/XCTWaiterManager.h +0 -28
  215. package/PrivateHeaders/XCTest/XCTestCaseSuite.h +0 -19
  216. package/PrivateHeaders/XCTest/XCTestContext.h +0 -26
  217. package/PrivateHeaders/XCTest/XCTestContextScope.h +0 -19
  218. package/PrivateHeaders/XCTest/XCTestDriverInterface-Protocol.h +0 -14
  219. package/PrivateHeaders/XCTest/XCTestExpectationWaiter.h +0 -17
  220. package/PrivateHeaders/XCTest/XCTestLog.h +0 -32
  221. package/PrivateHeaders/XCTest/XCTestManager_IDEInterface-Protocol.h +0 -36
  222. package/PrivateHeaders/XCTest/XCTestManager_ManagerInterface-Protocol.h +0 -54
  223. package/PrivateHeaders/XCTest/XCTestManager_TestsInterface-Protocol.h +0 -12
  224. package/PrivateHeaders/XCTest/XCTestMisuseObserver.h +0 -37
  225. package/PrivateHeaders/XCTest/XCTestObservation-Protocol.h +0 -20
  226. package/PrivateHeaders/XCTest/XCTestObserver.h +0 -20
  227. package/PrivateHeaders/XCTest/XCTestProbe.h +0 -13
  228. package/PrivateHeaders/XCTest/XCTestSuite.h +0 -48
  229. package/PrivateHeaders/XCTest/XCTestSuiteRun.h +0 -28
  230. package/PrivateHeaders/XCTest/XCTestWaiter.h +0 -14
  231. package/PrivateHeaders/XCTest/XCUIElementAsynchronousHandlerWrapper.h +0 -19
  232. package/PrivateHeaders/XCTest/XCUIElementHitPointCoordinate.h +0 -24
  233. package/PrivateHeaders/XCTest/XCUIRecorderNodeFinder.h +0 -65
  234. package/PrivateHeaders/XCTest/XCUIRecorderNodeFinderMatch.h +0 -25
  235. package/PrivateHeaders/XCTest/XCUIRecorderTimingMessage.h +0 -20
  236. package/PrivateHeaders/XCTest/XCUIRecorderUtilities.h +0 -45
  237. package/PrivateHeaders/XCTest/_XCInternalTestRun.h +0 -43
  238. package/PrivateHeaders/XCTest/_XCKVOExpectationImplementation.h +0 -32
  239. package/PrivateHeaders/XCTest/_XCTDarwinNotificationExpectationImplementation.h +0 -27
  240. package/PrivateHeaders/XCTest/_XCTNSNotificationExpectationImplementation.h +0 -30
  241. package/PrivateHeaders/XCTest/_XCTNSPredicateExpectationImplementation.h +0 -29
  242. package/PrivateHeaders/XCTest/_XCTWaiterImpl.h +0 -41
  243. package/PrivateHeaders/XCTest/_XCTestCaseImplementation.h +0 -70
  244. package/PrivateHeaders/XCTest/_XCTestCaseInterruptionException.h +0 -13
  245. package/PrivateHeaders/XCTest/_XCTestExpectationImplementation.h +0 -40
  246. package/PrivateHeaders/XCTest/_XCTestImplementation.h +0 -14
  247. package/PrivateHeaders/XCTest/_XCTestObservationCenterImplementation.h +0 -19
  248. package/PrivateHeaders/XCTest/_XCTestSuiteImplementation.h +0 -23
@@ -113,17 +113,13 @@ static NSString *const FB_LIMITED_ACCESS_PROMPT_BUNDLE_ID = @"com.apple.Contacts
113
113
  NSMutableArray<XCUIElement *> *sheets = [NSMutableArray array];
114
114
  NSMutableArray<XCUIElement *> *scrollViews = [NSMutableArray array];
115
115
  for (XCUIElement *candidate in candidates) {
116
- switch (candidate.elementType) {
117
- case XCUIElementTypeAlert:
118
- return candidate;
119
- case XCUIElementTypeSheet:
120
- [sheets addObject:candidate];
121
- break;
122
- case XCUIElementTypeScrollView:
123
- [scrollViews addObject:candidate];
124
- break;
125
- default:
126
- break;
116
+ XCUIElementType elementType = candidate.elementType;
117
+ if (elementType == XCUIElementTypeAlert) {
118
+ return candidate;
119
+ } else if (elementType == XCUIElementTypeSheet) {
120
+ [sheets addObject:candidate];
121
+ } else if (elementType == XCUIElementTypeScrollView) {
122
+ [scrollViews addObject:candidate];
127
123
  }
128
124
  }
129
125
 
@@ -135,7 +131,7 @@ static NSString *const FB_LIMITED_ACCESS_PROMPT_BUNDLE_ID = @"com.apple.Contacts
135
131
 
136
132
  // In case of iPad we want to check if sheet isn't contained by popover.
137
133
  // In that case we ignore it.
138
- id<FBXCElementSnapshot> sheetSnapshot = sheet.lastSnapshot ?: sheet.fb_cachedSnapshot ?: [sheet fb_customSnapshot];
134
+ id<FBXCElementSnapshot> sheetSnapshot = sheet.fb_cachedSnapshot ?: [sheet fb_customSnapshot];
139
135
  BOOL isInsidePopover = NO;
140
136
  id<FBXCElementSnapshot> ancestor = sheetSnapshot.parent;
141
137
  while (nil != ancestor) {
@@ -154,7 +150,7 @@ static NSString *const FB_LIMITED_ACCESS_PROMPT_BUNDLE_ID = @"com.apple.Contacts
154
150
  }
155
151
 
156
152
  for (XCUIElement *scrollView in scrollViews) {
157
- id<FBXCElementSnapshot> scrollViewSnapshot = scrollView.lastSnapshot ?: scrollView.fb_cachedSnapshot ?: [scrollView fb_customSnapshot];
153
+ id<FBXCElementSnapshot> scrollViewSnapshot = scrollView.fb_cachedSnapshot ?: [scrollView fb_customSnapshot];
158
154
  id<FBXCElementSnapshot> app = [[FBXCElementSnapshotWrapper ensureWrapped:scrollViewSnapshot] fb_parentMatchingType:XCUIElementTypeApplication];
159
155
  if (nil == app || ![app.label isEqualToString:FB_SAFARI_APP_NAME]) {
160
156
  continue;
@@ -23,7 +23,7 @@
23
23
  #import "FBXCElementSnapshotWrapper+Helpers.h"
24
24
  #import "FBXCAXClientProxy.h"
25
25
  #import "FBXMLGenerationOptions.h"
26
- #import "XCTestManager_ManagerInterface-Protocol.h"
26
+ #import "XCTMessagingChannel_RunnerToDaemon-Protocol.h"
27
27
  #import "XCTestPrivateSymbols.h"
28
28
  #import "XCTRunnerDaemonSession.h"
29
29
  #import "XCUIApplication.h"
@@ -144,7 +144,7 @@ NSDictionary<NSString *, NSString *> *customExclusionAttributesMap(void) {
144
144
  + (NSArray<NSDictionary<NSString *, id> *> *)fb_appsInfoWithAxElements:(NSArray<id<FBXCAccessibilityElement>> *)axElements
145
145
  {
146
146
  NSMutableArray<NSDictionary<NSString *, id> *> *result = [NSMutableArray array];
147
- id<XCTestManager_ManagerInterface> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
147
+ id<XCTMessagingChannel_RunnerToDaemon> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
148
148
  for (id<FBXCAccessibilityElement> axElement in axElements) {
149
149
  NSMutableDictionary<NSString *, id> *appInfo = [NSMutableDictionary dictionary];
150
150
  pid_t pid = axElement.processIdentifier;
@@ -16,7 +16,6 @@
16
16
  #import "FBRunLoopSpinner.h"
17
17
  #import "FBW3CActionsSynthesizer.h"
18
18
  #import "FBXCTestDaemonsProxy.h"
19
- #import "XCEventGenerator.h"
20
19
  #import "XCUIElement+FBUtilities.h"
21
20
 
22
21
  #if !TARGET_OS_TV
@@ -10,6 +10,7 @@
10
10
 
11
11
  #import <objc/runtime.h>
12
12
 
13
+ #import "CDStructures.h"
13
14
  #import "FBConfiguration.h"
14
15
  #import "FBExceptions.h"
15
16
  #import "FBLogger.h"
@@ -123,6 +123,9 @@ static bool fb_isLocked;
123
123
  if (fb_isLocked) {
124
124
  return YES;
125
125
  }
126
+ #if TARGET_OS_SIMULATOR
127
+ [self pressLockButton];
128
+ #else
126
129
  if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"27.0")) {
127
130
  // iOS 27: pressLockButton no longer locks; use a direct IOHID Power press (0x0C/0x30, ~0.5s hold).
128
131
  if (![self fb_performIOHIDEventWithPage:0x0C
@@ -134,6 +137,7 @@ static bool fb_isLocked;
134
137
  } else {
135
138
  [self pressLockButton];
136
139
  }
140
+ #endif
137
141
  return [[[[FBRunLoopSpinner new]
138
142
  timeout:FBScreenLockTimeout]
139
143
  timeoutErrorMessage:@"Timed out while waiting until the screen gets locked"]
@@ -190,19 +190,21 @@ static NSDictionary<NSString *, NSString *> *FBVoiceOverMoveSelectors(void)
190
190
  - (nullable NSString *)fb_voiceOverMove:(NSString *)direction error:(NSError **)error
191
191
  {
192
192
  if (![direction isKindOfClass:NSString.class] || 0 == direction.length) {
193
- return [[[FBErrorBuilder builder]
194
- withDescription:@"VoiceOver move direction must be a non-empty string"]
195
- buildError:error], nil;
193
+ [[[FBErrorBuilder builder]
194
+ withDescription:@"VoiceOver move direction must be a non-empty string"]
195
+ buildError:error];
196
+ return nil;
196
197
  }
197
198
 
198
199
  NSString *normalizedDirection = direction.lowercaseString;
199
200
  NSString *selectorName = FBVoiceOverMoveSelectors()[normalizedDirection];
200
201
  if (nil == selectorName) {
201
202
  NSArray *supportedDirections = [FBVoiceOverMoveSelectors().allKeys sortedArrayUsingSelector:@selector(compare:)];
202
- return [[[FBErrorBuilder builder]
203
- withDescriptionFormat:@"Unsupported VoiceOver move direction '%@'. Supported directions: %@",
204
- direction, supportedDirections]
205
- buildError:error], nil;
203
+ [[[FBErrorBuilder builder]
204
+ withDescriptionFormat:@"Unsupported VoiceOver move direction '%@'. Supported directions: %@",
205
+ direction, supportedDirections]
206
+ buildError:error];
207
+ return nil;
206
208
  }
207
209
 
208
210
  return FBVoiceOverSpeechFromSelector(NSSelectorFromString(selectorName), error);
@@ -137,7 +137,7 @@
137
137
  // Reuse an already-taken snapshot of `self` if one is available (e.g. the
138
138
  // caller just resolved/inspected this same element) instead of always
139
139
  // paying for a fresh one.
140
- NSArray<id<FBXCElementSnapshot>> *currentRoots = @[self.lastSnapshot ?: [self fb_customSnapshot]];
140
+ NSArray<id<FBXCElementSnapshot>> *currentRoots = @[self.lastSnapshot ?: self.fb_cachedSnapshot ?: [self fb_customSnapshot]];
141
141
  FBClassChainItem *chainItem = lookupChain.firstObject;
142
142
  NSArray<id<FBXCElementSnapshot>> *candidates = [self.class fb_snapshotsMatchingItem:chainItem inRoots:currentRoots];
143
143
  [lookupChain removeObjectAtIndex:0];
@@ -153,7 +153,7 @@
153
153
  if (0 == currentRootMatch.count) {
154
154
  return @[];
155
155
  }
156
- currentRoots = @[currentRootMatch.firstObject];
156
+ currentRoots = @[(id<FBXCElementSnapshot> _Nonnull)currentRootMatch.firstObject];
157
157
  } else {
158
158
  currentRoots = candidates;
159
159
  }
@@ -48,9 +48,13 @@ const CGFloat FBScrollTouchProportion = 0.75f;
48
48
 
49
49
  - (BOOL)fb_nativeScrollToVisibleWithError:(NSError **)error
50
50
  {
51
- id<FBXCElementSnapshot> snapshot = [self fb_customSnapshot];
52
- return nil != [self _hitPointByAttemptingToScrollToVisibleSnapshot:snapshot
53
- error:error];
51
+ [self scrollToVisible];
52
+ if (self.wdVisible) {
53
+ return YES;
54
+ }
55
+ return [[[FBErrorBuilder builder]
56
+ withDescriptionFormat:@"Failed to scroll element '%@' into view", self.description]
57
+ buildError:error];
54
58
  }
55
59
 
56
60
  - (void)fb_scrollUpByNormalizedDistance:(CGFloat)distance
@@ -7,6 +7,7 @@
7
7
  */
8
8
 
9
9
  #import <XCTest/XCTest.h>
10
+ #import <WebDriverAgentLib/FBXCElementSnapshot.h>
10
11
 
11
12
  NS_ASSUME_NONNULL_BEGIN
12
13
 
@@ -50,6 +51,25 @@ BOOL FBTypeText(NSString *text, NSUInteger typingSpeed, NSError **error);
50
51
  frequency:(NSUInteger)frequency
51
52
  error:(NSError **)error;
52
53
 
54
+ /**
55
+ Types a text into element, reusing a snapshot the caller already holds
56
+ instead of fetching a new one. Only pass a snapshot that is known to
57
+ reflect the element's current state (e.g. one taken moments earlier in
58
+ the same operation) - a stale snapshot here will not be detected as such.
59
+
60
+ @param text text that should be typed
61
+ @param shouldClear Whether to clear the input field before start typing
62
+ @param frequency Frequency of typing (letters per sec)
63
+ @param snapshot A recent snapshot of the receiver
64
+ @param error If there is an error, upon return contains an NSError object that describes the problem.
65
+ @return YES if the operation succeeds, otherwise NO.
66
+ */
67
+ - (BOOL)fb_typeText:(NSString *)text
68
+ shouldClear:(BOOL)shouldClear
69
+ frequency:(NSUInteger)frequency
70
+ snapshot:(id<FBXCElementSnapshot>)snapshot
71
+ error:(NSError **)error;
72
+
53
73
  /**
54
74
  Clears text on element.
55
75
  It will try to activate keyboard on element, if element has no keyboard focus.
@@ -59,6 +79,19 @@ BOOL FBTypeText(NSString *text, NSUInteger typingSpeed, NSError **error);
59
79
  */
60
80
  - (BOOL)fb_clearTextWithError:(NSError **)error;
61
81
 
82
+ /**
83
+ Clears text on element, reusing a snapshot the caller already holds
84
+ instead of fetching a new one. Only pass a snapshot that is known to
85
+ reflect the element's current state (e.g. one taken moments earlier in
86
+ the same operation) - a stale snapshot here will not be detected as such.
87
+
88
+ @param snapshot A recent snapshot of the receiver
89
+ @param error If there is an error, upon return contains an NSError object that describes the problem.
90
+ @return YES if the operation succeeds, otherwise NO.
91
+ */
92
+ - (BOOL)fb_clearTextWithSnapshot:(id<FBXCElementSnapshot>)snapshot
93
+ error:(NSError **)error;
94
+
62
95
  @end
63
96
 
64
97
  NS_ASSUME_NONNULL_END
@@ -109,7 +109,22 @@ BOOL FBTypeText(NSString *text, NSUInteger typingSpeed, NSError **error)
109
109
  frequency:(NSUInteger)frequency
110
110
  error:(NSError **)error
111
111
  {
112
+ // No snapshot was handed to us, so there is nothing to safely reuse -
113
+ // always fetch a fresh one.
112
114
  id<FBXCElementSnapshot> snapshot = [self fb_standardSnapshot];
115
+ return [self fb_typeText:text
116
+ shouldClear:shouldClear
117
+ frequency:frequency
118
+ snapshot:snapshot
119
+ error:error];
120
+ }
121
+
122
+ - (BOOL)fb_typeText:(NSString *)text
123
+ shouldClear:(BOOL)shouldClear
124
+ frequency:(NSUInteger)frequency
125
+ snapshot:(id<FBXCElementSnapshot>)snapshot
126
+ error:(NSError **)error
127
+ {
113
128
  FBXCElementSnapshotWrapper *wrapped = [FBXCElementSnapshotWrapper ensureWrapped:snapshot];
114
129
  [self fb_prepareForTextInputWithSnapshot:wrapped];
115
130
  if (shouldClear && ![self fb_clearTextWithSnapshot:wrapped shouldPrepareForInput:NO error:error]) {
@@ -120,7 +135,15 @@ BOOL FBTypeText(NSString *text, NSUInteger typingSpeed, NSError **error)
120
135
 
121
136
  - (BOOL)fb_clearTextWithError:(NSError **)error
122
137
  {
138
+ // No snapshot was handed to us, so there is nothing to safely reuse -
139
+ // always fetch a fresh one.
123
140
  id<FBXCElementSnapshot> snapshot = [self fb_standardSnapshot];
141
+ return [self fb_clearTextWithSnapshot:snapshot error:error];
142
+ }
143
+
144
+ - (BOOL)fb_clearTextWithSnapshot:(id<FBXCElementSnapshot>)snapshot
145
+ error:(NSError **)error
146
+ {
124
147
  return [self fb_clearTextWithSnapshot:[FBXCElementSnapshotWrapper ensureWrapped:snapshot]
125
148
  shouldPrepareForInput:YES
126
149
  error:error];
@@ -11,6 +11,7 @@
11
11
  #import "FBXCodeCompatibility.h"
12
12
  #import "XCUIElementQuery.h"
13
13
  #import "FBXCElementSnapshot.h"
14
+ #import "XCTElementSetTransformer-Protocol.h"
14
15
 
15
16
  @implementation XCUIElementQuery (FBHelpers)
16
17
 
@@ -221,9 +221,14 @@
221
221
  }
222
222
  NSUInteger frequency = (NSUInteger)[request.arguments[@"frequency"] longLongValue] ?: [FBConfiguration maxTypingFrequency];
223
223
  NSError *error = nil;
224
+ // checkStaleness:YES above already took a fresh, verified-live snapshot of
225
+ // `element` and cached it as `lastSnapshot` - reuse it instead of paying
226
+ // for another round trip.
227
+ id<FBXCElementSnapshot> snapshot = element.lastSnapshot ?: element.fb_cachedSnapshot ?: [element fb_standardSnapshot];
224
228
  if (![element fb_typeText:textToType
225
229
  shouldClear:NO
226
230
  frequency:frequency
231
+ snapshot:snapshot
227
232
  error:&error]) {
228
233
  return FBResponseWithStatus([FBCommandStatus invalidElementStateErrorWithMessage:error.description traceback:nil]);
229
234
  }
@@ -313,7 +313,7 @@
313
313
  return nil;
314
314
  }
315
315
 
316
- XCUIApplication *app = [[XCUIApplication alloc] initWithBundleIdentifier:bundleID];
316
+ XCUIApplication *app = [[XCUIApplication alloc] initWithBundleIdentifier:(NSString * _Nonnull)bundleID];
317
317
  BOOL forceAppLaunch = nil == capabilities[FB_CAP_FORCE_APP_LAUNCH]
318
318
  || [capabilities[FB_CAP_FORCE_APP_LAUNCH] boolValue];
319
319
  XCUIApplicationState appState = app.state;
@@ -74,7 +74,7 @@
74
74
  XCUIElement *alertElement = self.alertElement;
75
75
  self.cachedAlertSnapshot = nil == alertElement
76
76
  ? nil
77
- : (alertElement.lastSnapshot ?: alertElement.fb_cachedSnapshot ?: [alertElement fb_customSnapshot]);
77
+ : (alertElement.fb_cachedSnapshot ?: [alertElement fb_customSnapshot]);
78
78
  self.hasCachedAlertSnapshot = YES;
79
79
  }
80
80
  return self.cachedAlertSnapshot;
@@ -194,7 +194,15 @@
194
194
  [self fb_raiseSetTextFailedExceptionWithReason:@"Failed to resolve the input field element"];
195
195
  }
196
196
  NSError *error;
197
- if (![dstField fb_typeText:text shouldClear:YES error:&error]) {
197
+ // dstField was just resolved via a live query in fb_elementForSnapshot:underElement:
198
+ // above, so its cached snapshot can be safely reconstructed in memory
199
+ // instead of paying for a fresh round trip.
200
+ id<FBXCElementSnapshot> snapshot = dstField.fb_cachedSnapshot ?: [dstField fb_standardSnapshot];
201
+ if (![dstField fb_typeText:text
202
+ shouldClear:YES
203
+ frequency:FBConfiguration.maxTypingFrequency
204
+ snapshot:snapshot
205
+ error:&error]) {
198
206
  [self fb_raiseSetTextFailedExceptionWithReason:error.description];
199
207
  }
200
208
  }
@@ -394,7 +402,8 @@
394
402
  }
395
403
  XCUIElement *matchedElement = nil;
396
404
  for (XCUIElement *match in matches) {
397
- if (nil == alertSnapshotUids || [alertSnapshotUids containsObject:match.fb_uid]) {
405
+ NSString *matchUid = match.fb_uid;
406
+ if (nil == alertSnapshotUids || (nil != matchUid && [alertSnapshotUids containsObject:matchUid])) {
398
407
  matchedElement = match;
399
408
  break;
400
409
  }
@@ -15,11 +15,11 @@
15
15
  <key>CFBundlePackageType</key>
16
16
  <string>FMWK</string>
17
17
  <key>CFBundleShortVersionString</key>
18
- <string>16.1.4</string>
18
+ <string>16.1.6</string>
19
19
  <key>CFBundleSignature</key>
20
20
  <string>????</string>
21
21
  <key>CFBundleVersion</key>
22
- <string>16.1.4</string>
22
+ <string>16.1.6</string>
23
23
  <key>NSPrincipalClass</key>
24
24
  <string/>
25
25
  </dict>
@@ -128,8 +128,9 @@ static NSString *const FBServerURLEndMarker = @"<-ServerURLHere";
128
128
 
129
129
  if (!serverStarted) {
130
130
  [FBLogger logFmt:@"Last attempt to start web server failed with error %@", [error description]];
131
- if ([self.delegate respondsToSelector:@selector(webServer:didFailToStartWithError:)]) {
132
- [self.delegate webServer:self didFailToStartWithError:(NSError * _Nonnull)error];
131
+ id<FBWebServerDelegate> delegate = self.delegate;
132
+ if ([delegate respondsToSelector:@selector(webServer:didFailToStartWithError:)]) {
133
+ [delegate webServer:self didFailToStartWithError:(NSError * _Nonnull)error];
133
134
  return NO;
134
135
  }
135
136
  abort();
@@ -58,7 +58,7 @@ NS_ASSUME_NONNULL_BEGIN
58
58
  - (void)mergeTreeWithSnapshot:(id)arg1;
59
59
  - (id)_childMatchingElement:(id)arg1;
60
60
  - (NSArray<id<FBXCElementSnapshot>> *)_allDescendants;
61
- - (BOOL)hasDescendantMatchingFilter:(CDUnknownBlockType)arg1;
61
+ - (BOOL)hasDescendantMatchingFilter:(BOOL(^)(id<FBXCElementSnapshot> snapshot))arg1;
62
62
  - (NSArray<id<FBXCElementSnapshot>> *)descendantsByFilteringWithBlock:(BOOL(^)(id<FBXCElementSnapshot> snapshot))block;
63
63
  - (id)elementSnapshotMatchingAccessibilityElement:(id)arg1;
64
64
  - (void)enumerateDescendantsUsingBlock:(void(^)(id<FBXCElementSnapshot> snapshot))block;
@@ -11,7 +11,7 @@
11
11
  #import "FBErrorBuilder.h"
12
12
  #import "FBLogger.h"
13
13
  #import "FBXCTestDaemonsProxy.h"
14
- #import "XCTestManager_ManagerInterface-Protocol.h"
14
+ #import "XCTMessagingChannel_RunnerToDaemon-Protocol.h"
15
15
 
16
16
  @implementation FBActiveAppDetectionPoint
17
17
 
@@ -38,7 +38,7 @@
38
38
  + (id<FBXCAccessibilityElement>)axElementWithPoint:(CGPoint)point
39
39
  {
40
40
  __block id<FBXCAccessibilityElement> onScreenElement = nil;
41
- id<XCTestManager_ManagerInterface> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
41
+ id<XCTMessagingChannel_RunnerToDaemon> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
42
42
  dispatch_semaphore_t sem = dispatch_semaphore_create(0);
43
43
  [proxy _XCT_requestElementAtPoint:point
44
44
  reply:^(id element, NSError *error) {
@@ -9,6 +9,7 @@
9
9
  #import "FBElementCache.h"
10
10
  #import "FBXCElementSnapshot.h"
11
11
  #import "XCUIApplication.h"
12
+ #import "XCPointerEventPath.h"
12
13
  #import "XCSynthesizedEventRecord.h"
13
14
 
14
15
  NS_ASSUME_NONNULL_BEGIN
@@ -9,6 +9,9 @@
9
9
  #import "FBFailureProofTestCase.h"
10
10
 
11
11
  #import "FBLogger.h"
12
+ #import "XCTIssue.h"
13
+ #import "XCTSourceCodeContext.h"
14
+ #import "XCTSourceCodeLocation.h"
12
15
 
13
16
  @implementation FBFailureProofTestCase
14
17
 
@@ -45,6 +48,8 @@
45
48
  /**
46
49
  Override 'recordFailureWithDescription' to not stop by failures.
47
50
  */
51
+ #pragma clang diagnostic push
52
+ #pragma clang diagnostic ignored "-Wdeprecated-implementations"
48
53
  - (void)recordFailureWithDescription:(NSString *)description
49
54
  inFile:(NSString *)filePath
50
55
  atLine:(NSUInteger)lineNumber
@@ -52,6 +57,7 @@
52
57
  {
53
58
  [self _enqueueFailureWithDescription:description inFile:filePath atLine:lineNumber expected:expected];
54
59
  }
60
+ #pragma clang diagnostic pop
55
61
 
56
62
  /**
57
63
  Private XCTestCase method used to block and tunnel failure messages
@@ -17,7 +17,7 @@
17
17
  #import "FBMacros.h"
18
18
  #import "FBXCodeCompatibility.h"
19
19
  #import "FBXCTestDaemonsProxy.h"
20
- #import "XCTestManager_ManagerInterface-Protocol.h"
20
+ #import "XCTMessagingChannel_RunnerToDaemon-Protocol.h"
21
21
  #import "XCUIScreen.h"
22
22
 
23
23
  static const NSTimeInterval SCREENSHOT_TIMEOUT = 20.;
@@ -95,7 +95,7 @@ NSString *formatTimeInterval(NSTimeInterval interval) {
95
95
  timeout:(NSTimeInterval)timeout
96
96
  error:(NSError **)error
97
97
  {
98
- id<XCTestManager_ManagerInterface> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
98
+ id<XCTMessagingChannel_RunnerToDaemon> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
99
99
  __block NSData *screenshotData = nil;
100
100
  __block NSError *innerError = nil;
101
101
  dispatch_semaphore_t sem = dispatch_semaphore_create(0);
@@ -16,12 +16,12 @@
16
16
 
17
17
  NS_ASSUME_NONNULL_BEGIN
18
18
 
19
- @protocol XCTestManager_ManagerInterface;
19
+ @protocol XCTMessagingChannel_RunnerToDaemon;
20
20
  @class FBScreenRecordingRequest, FBScreenRecordingPromise;
21
21
 
22
22
  @interface FBXCTestDaemonsProxy : NSObject
23
23
 
24
- + (id<XCTestManager_ManagerInterface>)testRunnerProxy;
24
+ + (id<XCTMessagingChannel_RunnerToDaemon>)testRunnerProxy;
25
25
 
26
26
  + (BOOL)synthesizeEventWithRecord:(XCSynthesizedEventRecord *)record
27
27
  error:(NSError *__autoreleasing*)error;
@@ -80,9 +80,9 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
80
80
  #pragma clang diagnostic pop
81
81
  }
82
82
 
83
- + (id<XCTestManager_ManagerInterface>)testRunnerProxy
83
+ + (id<XCTMessagingChannel_RunnerToDaemon>)testRunnerProxy
84
84
  {
85
- static id<XCTestManager_ManagerInterface> proxy = nil;
85
+ static id<XCTMessagingChannel_RunnerToDaemon> proxy = nil;
86
86
  if ([FBConfiguration shouldUseSingletonTestManager]) {
87
87
  static dispatch_once_t onceToken;
88
88
  dispatch_once(&onceToken, ^{
@@ -97,7 +97,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
97
97
  return proxy;
98
98
  }
99
99
 
100
- + (id<XCTestManager_ManagerInterface>)retrieveTestRunnerProxy
100
+ + (id<XCTMessagingChannel_RunnerToDaemon>)retrieveTestRunnerProxy
101
101
  {
102
102
  return ((XCTRunnerDaemonSession *)[XCTRunnerDaemonSession sharedSession]).daemonProxy;
103
103
  }
@@ -113,7 +113,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
113
113
  completion();
114
114
  };
115
115
 
116
- XCEventGeneratorHandler handlerBlock = ^(XCSynthesizedEventRecord *innerRecord, NSError *invokeError) {
116
+ void (^handlerBlock)(XCSynthesizedEventRecord *, NSError *) = ^(XCSynthesizedEventRecord *innerRecord, NSError *invokeError) {
117
117
  errorHandler(invokeError);
118
118
  };
119
119
  [[XCUIDevice.sharedDevice eventSynthesizer] synthesizeEvent:record completion:(id)^(BOOL result, NSError *invokeError) {
@@ -15,7 +15,18 @@
15
15
  #import "XCUIApplication+FBHelpers.h"
16
16
  #import "XCUIElementQuery.h"
17
17
  #import "FBXCTestDaemonsProxy.h"
18
- #import "XCTestManager_ManagerInterface-Protocol.h"
18
+ #import "XCTCapabilities.h"
19
+ #import "XCTMessagingChannel_RunnerToDaemon-Protocol.h"
20
+ #import "XCTRunnerDaemonSession.h"
21
+
22
+ /**
23
+ Legacy testmanagerd (pre-Xcode 15) protocol-version handshake. Xcode 15+ testmanagerd replaced
24
+ this with named XCTCapabilities negotiation and no longer declares this selector at all, so it
25
+ does not appear in the modern XCTMessagingChannel_RunnerToDaemon protocol surface.
26
+ */
27
+ @protocol FBXCTestManagerLegacyProtocolVersionExchanging <NSObject>
28
+ - (void)_XCT_exchangeProtocolVersion:(unsigned long long)version reply:(void (^)(unsigned long long code))reply;
29
+ @end
19
30
 
20
31
  @implementation XCUIElementQuery (FBCompatibility)
21
32
 
@@ -71,15 +82,25 @@ NSInteger FBTestmanagerdVersion(void)
71
82
  static dispatch_once_t getTestmanagerdVersion;
72
83
  static NSInteger testmanagerdVersion;
73
84
  dispatch_once(&getTestmanagerdVersion, ^{
74
- id<XCTestManager_ManagerInterface> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
85
+ id<XCTMessagingChannel_RunnerToDaemon> proxy = [FBXCTestDaemonsProxy testRunnerProxy];
75
86
  if ([(NSObject *)proxy respondsToSelector:@selector(_XCT_exchangeProtocolVersion:reply:)]) {
87
+ id<FBXCTestManagerLegacyProtocolVersionExchanging> legacyProxy = (id<FBXCTestManagerLegacyProtocolVersionExchanging>)proxy;
76
88
  [FBRunLoopSpinner spinUntilCompletion:^(void(^completion)(void)){
77
- [proxy _XCT_exchangeProtocolVersion:testmanagerdVersion reply:^(unsigned long long code) {
89
+ [legacyProxy _XCT_exchangeProtocolVersion:testmanagerdVersion reply:^(unsigned long long code) {
78
90
  testmanagerdVersion = (NSInteger) code;
79
91
  completion();
80
92
  }];
81
93
  }];
82
94
  } else {
95
+ // Modern testmanagerd (Xcode 15+) has already negotiated named XCTCapabilities by the time
96
+ // a daemon session exists, instead of a single scalar protocol version. There is no direct
97
+ // integer equivalent to report here (this value is diagnostic-only, surfaced via the
98
+ // 'testmanagerdVersion' session capability), so keep reporting the existing "assume
99
+ // newest/full-featured" sentinel, while confirming capabilities did negotiate successfully.
100
+ XCTCapabilities *capabilities = [XCTRunnerDaemonSession sharedSession].remoteInterfaceCapabilities;
101
+ if (nil == capabilities) {
102
+ [FBLogger log:@"Could not retrieve testmanagerd capabilities"];
103
+ }
83
104
  testmanagerdVersion = 0xFFFF;
84
105
  }
85
106
  });
@@ -1,6 +1,6 @@
1
- import { JWProxy } from '@appium/base-driver';
1
+ import { WebDriverProxy } from '@appium/base-driver';
2
2
  import type { ProxyOptions } from '@appium/types';
3
- export declare class NoSessionProxy extends JWProxy {
3
+ export declare class NoSessionProxy extends WebDriverProxy {
4
4
  constructor(opts?: ProxyOptions);
5
5
  getUrlForProxy(url: string): string;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-session-proxy.d.ts","sourceRoot":"","sources":["../../lib/no-session-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,qBAAa,cAAe,SAAQ,OAAO;gBAC7B,IAAI,GAAE,YAAiB;IAI1B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAU7C"}
1
+ {"version":3,"file":"no-session-proxy.d.ts","sourceRoot":"","sources":["../../lib/no-session-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,qBAAa,cAAe,SAAQ,cAAc;gBACpC,IAAI,GAAE,YAAiB;IAI1B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAU7C"}
@@ -1,5 +1,5 @@
1
- import { JWProxy } from '@appium/base-driver';
2
- export class NoSessionProxy extends JWProxy {
1
+ import { WebDriverProxy } from '@appium/base-driver';
2
+ export class NoSessionProxy extends WebDriverProxy {
3
3
  constructor(opts = {}) {
4
4
  super(opts);
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-session-proxy.js","sourceRoot":"","sources":["../../lib/no-session-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAG5C,MAAM,OAAO,cAAe,SAAQ,OAAO;IACzC,YAAY,OAAqB,EAAE;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAEQ,cAAc,CAAC,GAAW;QACjC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,8BAA8B;QAC3E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,GAAG,CAAC,CAAC;IAC/D,CAAC;CACF"}
1
+ {"version":3,"file":"no-session-proxy.js","sourceRoot":"","sources":["../../lib/no-session-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAGnD,MAAM,OAAO,cAAe,SAAQ,cAAc;IAChD,YAAY,OAAqB,EAAE;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAEQ,cAAc,CAAC,GAAW;QACjC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,8BAA8B;QAC3E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,GAAG,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { JWProxy } from '@appium/base-driver';
1
+ import { WebDriverProxy } from '@appium/base-driver';
2
2
  import type { AppiumLogger, StringRecord } from '@appium/types';
3
3
  import { NoSessionProxy } from './no-session-proxy.js';
4
4
  import type { WebDriverAgentArgs, AppleDevice, XcodeBuildSettings, RetrieveBuildSettingsOptions } from './types.js';
@@ -20,7 +20,7 @@ export declare class WebDriverAgent {
20
20
  started: boolean;
21
21
  updatedWDABundleId?: string;
22
22
  noSessionProxy?: NoSessionProxy;
23
- jwproxy?: JWProxy;
23
+ jwproxy?: WebDriverProxy;
24
24
  proxyReqRes?: any;
25
25
  private readonly log;
26
26
  private readonly wdaLocalPort?;
@@ -1 +1 @@
1
- {"version":3,"file":"webdriveragent.d.ts","sourceRoot":"","sources":["../../lib/webdriveragent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webdriveragent.d.ts","sourceRoot":"","sources":["../../lib/webdriveragent.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import path from 'node:path';
2
- import { JWProxy } from '@appium/base-driver';
2
+ import { WebDriverProxy } from '@appium/base-driver';
3
3
  import { strongbox } from '@appium/strongbox';
4
4
  import { fs, util } from '@appium/support';
5
5
  import AsyncLock from 'async-lock';
@@ -399,7 +399,7 @@ export class WebDriverAgent {
399
399
  if (this.args.reqBasePath) {
400
400
  proxyOpts.reqBasePath = this.args.reqBasePath;
401
401
  }
402
- this.jwproxy = new JWProxy(proxyOpts);
402
+ this.jwproxy = new WebDriverProxy(proxyOpts);
403
403
  this.jwproxy.sessionId = sessionId;
404
404
  this.proxyReqRes = this.jwproxy.proxyReqRes.bind(this.jwproxy);
405
405
  this.noSessionProxy = new NoSessionProxy(proxyOpts);