appium-android-driver 5.14.7 → 6.0.0

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 (192) hide show
  1. package/build/index.d.ts +282 -0
  2. package/build/index.d.ts.map +1 -0
  3. package/build/index.js.map +1 -0
  4. package/build/lib/commands/actions.d.ts +6 -224
  5. package/build/lib/commands/actions.d.ts.map +1 -1
  6. package/build/lib/commands/actions.js +306 -405
  7. package/build/lib/commands/actions.js.map +1 -1
  8. package/build/lib/commands/alert.d.ts +7 -9
  9. package/build/lib/commands/alert.d.ts.map +1 -1
  10. package/build/lib/commands/alert.js +24 -18
  11. package/build/lib/commands/alert.js.map +1 -1
  12. package/build/lib/commands/app-management.d.ts +7 -313
  13. package/build/lib/commands/app-management.d.ts.map +1 -1
  14. package/build/lib/commands/app-management.js +135 -293
  15. package/build/lib/commands/app-management.js.map +1 -1
  16. package/build/lib/commands/context.d.ts +8 -92
  17. package/build/lib/commands/context.d.ts.map +1 -1
  18. package/build/lib/commands/context.js +381 -439
  19. package/build/lib/commands/context.js.map +1 -1
  20. package/build/lib/commands/element.d.ts +8 -35
  21. package/build/lib/commands/element.d.ts.map +1 -1
  22. package/build/lib/commands/element.js +153 -136
  23. package/build/lib/commands/element.js.map +1 -1
  24. package/build/lib/commands/emu-console.d.ts +6 -48
  25. package/build/lib/commands/emu-console.d.ts.map +1 -1
  26. package/build/lib/commands/emu-console.js +19 -34
  27. package/build/lib/commands/emu-console.js.map +1 -1
  28. package/build/lib/commands/execute.d.ts +6 -5
  29. package/build/lib/commands/execute.d.ts.map +1 -1
  30. package/build/lib/commands/execute.js +77 -66
  31. package/build/lib/commands/execute.js.map +1 -1
  32. package/build/lib/commands/file-actions.d.ts +7 -128
  33. package/build/lib/commands/file-actions.d.ts.map +1 -1
  34. package/build/lib/commands/file-actions.js +183 -219
  35. package/build/lib/commands/file-actions.js.map +1 -1
  36. package/build/lib/commands/find.d.ts +8 -12
  37. package/build/lib/commands/find.d.ts.map +1 -1
  38. package/build/lib/commands/find.js +19 -23
  39. package/build/lib/commands/find.js.map +1 -1
  40. package/build/lib/commands/general.d.ts +9 -132
  41. package/build/lib/commands/general.d.ts.map +1 -1
  42. package/build/lib/commands/general.js +281 -312
  43. package/build/lib/commands/general.js.map +1 -1
  44. package/build/lib/commands/ime.d.ts +7 -10
  45. package/build/lib/commands/ime.d.ts.map +1 -1
  46. package/build/lib/commands/ime.js +47 -35
  47. package/build/lib/commands/ime.js.map +1 -1
  48. package/build/lib/commands/index.d.ts +27 -2
  49. package/build/lib/commands/index.d.ts.map +1 -1
  50. package/build/lib/commands/index.js +41 -19
  51. package/build/lib/commands/index.js.map +1 -1
  52. package/build/lib/commands/intent.d.ts +7 -417
  53. package/build/lib/commands/intent.d.ts.map +1 -1
  54. package/build/lib/commands/intent.js +104 -216
  55. package/build/lib/commands/intent.js.map +1 -1
  56. package/build/lib/commands/keyboard.d.ts +6 -5
  57. package/build/lib/commands/keyboard.d.ts.map +1 -1
  58. package/build/lib/commands/keyboard.js +16 -8
  59. package/build/lib/commands/keyboard.js.map +1 -1
  60. package/build/lib/commands/log.d.ts +7 -44
  61. package/build/lib/commands/log.d.ts.map +1 -1
  62. package/build/lib/commands/log.js +146 -108
  63. package/build/lib/commands/log.js.map +1 -1
  64. package/build/lib/commands/media-projection.d.ts +7 -143
  65. package/build/lib/commands/media-projection.d.ts.map +1 -1
  66. package/build/lib/commands/media-projection.js +113 -140
  67. package/build/lib/commands/media-projection.js.map +1 -1
  68. package/build/lib/commands/mixins.d.ts +740 -0
  69. package/build/lib/commands/mixins.d.ts.map +1 -0
  70. package/build/lib/commands/mixins.js +19 -0
  71. package/build/lib/commands/mixins.js.map +1 -0
  72. package/build/lib/commands/network.d.ts +7 -138
  73. package/build/lib/commands/network.d.ts.map +1 -1
  74. package/build/lib/commands/network.js +212 -254
  75. package/build/lib/commands/network.js.map +1 -1
  76. package/build/lib/commands/performance.d.ts +24 -70
  77. package/build/lib/commands/performance.d.ts.map +1 -1
  78. package/build/lib/commands/performance.js +144 -100
  79. package/build/lib/commands/performance.js.map +1 -1
  80. package/build/lib/commands/permissions.d.ts +8 -92
  81. package/build/lib/commands/permissions.d.ts.map +1 -1
  82. package/build/lib/commands/permissions.js +75 -87
  83. package/build/lib/commands/permissions.js.map +1 -1
  84. package/build/lib/commands/recordscreen.d.ts +7 -193
  85. package/build/lib/commands/recordscreen.d.ts.map +1 -1
  86. package/build/lib/commands/recordscreen.js +151 -182
  87. package/build/lib/commands/recordscreen.js.map +1 -1
  88. package/build/lib/commands/shell.d.ts +7 -7
  89. package/build/lib/commands/shell.d.ts.map +1 -1
  90. package/build/lib/commands/shell.js +40 -33
  91. package/build/lib/commands/shell.js.map +1 -1
  92. package/build/lib/commands/streamscreen.d.ts +9 -103
  93. package/build/lib/commands/streamscreen.d.ts.map +1 -1
  94. package/build/lib/commands/streamscreen.js +261 -218
  95. package/build/lib/commands/streamscreen.js.map +1 -1
  96. package/build/lib/commands/system-bars.d.ts +22 -90
  97. package/build/lib/commands/system-bars.d.ts.map +1 -1
  98. package/build/lib/commands/system-bars.js +76 -74
  99. package/build/lib/commands/system-bars.js.map +1 -1
  100. package/build/lib/commands/touch.d.ts +10 -29
  101. package/build/lib/commands/touch.d.ts.map +1 -1
  102. package/build/lib/commands/touch.js +301 -285
  103. package/build/lib/commands/touch.js.map +1 -1
  104. package/build/lib/commands/types.d.ts +978 -0
  105. package/build/lib/commands/types.d.ts.map +1 -0
  106. package/build/lib/commands/types.js +3 -0
  107. package/build/lib/commands/types.js.map +1 -0
  108. package/build/lib/constraints.d.ts +291 -0
  109. package/build/lib/constraints.d.ts.map +1 -0
  110. package/build/lib/constraints.js +300 -0
  111. package/build/lib/constraints.js.map +1 -0
  112. package/build/lib/driver.d.ts +68 -37
  113. package/build/lib/driver.d.ts.map +1 -1
  114. package/build/lib/driver.js +123 -80
  115. package/build/lib/driver.js.map +1 -1
  116. package/build/lib/helpers/android.d.ts +164 -0
  117. package/build/lib/helpers/android.d.ts.map +1 -0
  118. package/build/lib/helpers/android.js +819 -0
  119. package/build/lib/helpers/android.js.map +1 -0
  120. package/build/lib/helpers/index.d.ts +7 -0
  121. package/build/lib/helpers/index.d.ts.map +1 -0
  122. package/build/lib/helpers/index.js +29 -0
  123. package/build/lib/helpers/index.js.map +1 -0
  124. package/build/lib/helpers/types.d.ts +121 -0
  125. package/build/lib/helpers/types.d.ts.map +1 -0
  126. package/build/lib/helpers/types.js +3 -0
  127. package/build/lib/helpers/types.js.map +1 -0
  128. package/build/lib/helpers/unlock.d.ts +32 -0
  129. package/build/lib/helpers/unlock.d.ts.map +1 -0
  130. package/build/lib/helpers/unlock.js +273 -0
  131. package/build/lib/helpers/unlock.js.map +1 -0
  132. package/build/lib/helpers/webview.d.ts +74 -0
  133. package/build/lib/helpers/webview.d.ts.map +1 -0
  134. package/build/lib/helpers/webview.js +421 -0
  135. package/build/lib/helpers/webview.js.map +1 -0
  136. package/build/lib/index.d.ts +9 -0
  137. package/build/lib/index.d.ts.map +1 -0
  138. package/build/lib/index.js +37 -0
  139. package/build/lib/index.js.map +1 -0
  140. package/build/lib/method-map.d.ts +0 -8
  141. package/build/lib/method-map.d.ts.map +1 -1
  142. package/build/lib/method-map.js +63 -74
  143. package/build/lib/method-map.js.map +1 -1
  144. package/build/lib/stubs.d.ts +0 -1
  145. package/build/lib/stubs.d.ts.map +1 -1
  146. package/build/lib/stubs.js +1 -0
  147. package/build/lib/stubs.js.map +1 -1
  148. package/build/lib/utils.d.ts +1 -1
  149. package/build/lib/utils.d.ts.map +1 -1
  150. package/lib/commands/actions.js +351 -464
  151. package/lib/commands/alert.js +27 -17
  152. package/lib/commands/app-management.js +156 -314
  153. package/lib/commands/context.js +457 -441
  154. package/lib/commands/element.js +201 -157
  155. package/lib/commands/emu-console.js +25 -45
  156. package/lib/commands/execute.js +106 -90
  157. package/lib/commands/file-actions.js +222 -240
  158. package/lib/commands/find.ts +103 -0
  159. package/lib/commands/general.js +327 -339
  160. package/lib/commands/ime.js +50 -34
  161. package/lib/commands/{index.js → index.ts} +20 -24
  162. package/lib/commands/intent.js +108 -249
  163. package/lib/commands/keyboard.js +20 -8
  164. package/lib/commands/log.js +172 -116
  165. package/lib/commands/media-projection.js +134 -161
  166. package/lib/commands/mixins.ts +966 -0
  167. package/lib/commands/network.js +252 -281
  168. package/lib/commands/performance.js +203 -132
  169. package/lib/commands/permissions.js +108 -109
  170. package/lib/commands/recordscreen.js +212 -209
  171. package/lib/commands/shell.js +51 -40
  172. package/lib/commands/streamscreen.js +355 -289
  173. package/lib/commands/system-bars.js +92 -83
  174. package/lib/commands/touch.js +357 -294
  175. package/lib/commands/types.ts +1097 -0
  176. package/lib/{desired-caps.js → constraints.ts} +106 -103
  177. package/lib/{driver.js → driver.ts} +278 -132
  178. package/lib/helpers/android.ts +1143 -0
  179. package/lib/helpers/index.ts +6 -0
  180. package/lib/helpers/types.ts +134 -0
  181. package/lib/helpers/unlock.ts +329 -0
  182. package/lib/helpers/webview.ts +582 -0
  183. package/lib/index.ts +18 -0
  184. package/lib/method-map.js +87 -98
  185. package/lib/stubs.ts +0 -1
  186. package/package.json +27 -20
  187. package/index.js +0 -24
  188. package/lib/android-helpers.js +0 -983
  189. package/lib/commands/coverage.js +0 -18
  190. package/lib/commands/find.js +0 -82
  191. package/lib/unlock-helpers.js +0 -278
  192. package/lib/webview-helpers.js +0 -602
@@ -0,0 +1,421 @@
1
+ "use strict";
2
+ /**
3
+ * Webview-related helper functions
4
+ * @module
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.WEBVIEW_WIN = exports.WEBVIEW_BASE = exports.NATIVE_WIN = exports.KNOWN_CHROME_PACKAGE_NAMES = exports.CHROMIUM_WIN = exports.DEVTOOLS_SOCKET_PATTERN = void 0;
11
+ const support_1 = require("@appium/support");
12
+ const axios_1 = __importDefault(require("axios"));
13
+ const bluebird_1 = __importDefault(require("bluebird"));
14
+ const lodash_1 = __importDefault(require("lodash"));
15
+ const lru_cache_1 = __importDefault(require("lru-cache"));
16
+ const node_os_1 = __importDefault(require("node:os"));
17
+ const node_path_1 = __importDefault(require("node:path"));
18
+ const portscanner_1 = require("portscanner");
19
+ const logger_1 = __importDefault(require("../logger"));
20
+ const NATIVE_WIN = 'NATIVE_APP';
21
+ exports.NATIVE_WIN = NATIVE_WIN;
22
+ const WEBVIEW_WIN = 'WEBVIEW';
23
+ exports.WEBVIEW_WIN = WEBVIEW_WIN;
24
+ const CHROMIUM_WIN = 'CHROMIUM';
25
+ exports.CHROMIUM_WIN = CHROMIUM_WIN;
26
+ const WEBVIEW_BASE = `${WEBVIEW_WIN}_`;
27
+ exports.WEBVIEW_BASE = WEBVIEW_BASE;
28
+ const WEBVIEW_PID_PATTERN = new RegExp(`^${WEBVIEW_BASE}(\\d+)`);
29
+ const WEBVIEW_PKG_PATTERN = new RegExp(`^${WEBVIEW_BASE}([^\\d\\s][\\w.]*)`);
30
+ exports.DEVTOOLS_SOCKET_PATTERN = /@[\w.]+_devtools_remote_?([\w.]+_)?(\d+)?\b/;
31
+ const CROSSWALK_SOCKET_PATTERN = /@([\w.]+)_devtools_remote\b/;
32
+ const CHROMIUM_DEVTOOLS_SOCKET = 'chrome_devtools_remote';
33
+ const CHROME_PACKAGE_NAME = 'com.android.chrome';
34
+ const KNOWN_CHROME_PACKAGE_NAMES = [
35
+ CHROME_PACKAGE_NAME,
36
+ 'com.chrome.beta',
37
+ 'com.chrome.dev',
38
+ 'com.chrome.canary',
39
+ ];
40
+ exports.KNOWN_CHROME_PACKAGE_NAMES = KNOWN_CHROME_PACKAGE_NAMES;
41
+ const DEVTOOLS_PORTS_RANGE = [10900, 11000];
42
+ const WEBVIEWS_DETAILS_CACHE = new lru_cache_1.default({
43
+ max: 100,
44
+ updateAgeOnGet: true,
45
+ });
46
+ const CDP_REQ_TIMEOUT = 2000; // ms
47
+ const DEVTOOLS_PORT_ALLOCATION_GUARD = support_1.util.getLockFileGuard(node_path_1.default.resolve(node_os_1.default.tmpdir(), 'android_devtools_port_guard'), { timeout: 7, tryRecovery: true });
48
+ function toDetailsCacheKey(adb, webview) {
49
+ return `${adb?.curDeviceId}:${webview}`;
50
+ }
51
+ /**
52
+ * This function gets a list of android system processes and returns ones
53
+ * that look like webviews
54
+ * See https://cs.chromium.org/chromium/src/chrome/browser/devtools/device/android_device_info_query.cc
55
+ * for more details
56
+ *
57
+ * @param adb - an ADB instance
58
+ *
59
+ * @returns a list of matching webview socket names (including the leading '@')
60
+ */
61
+ async function getPotentialWebviewProcs(adb) {
62
+ const out = (await adb.shell(['cat', '/proc/net/unix']));
63
+ const names = [];
64
+ const allMatches = [];
65
+ for (const line of out.split('\n')) {
66
+ // Num RefCount Protocol Flags Type St Inode Path
67
+ const [, , , flags, , st, , sockPath] = line.trim().split(/\s+/);
68
+ if (!sockPath) {
69
+ continue;
70
+ }
71
+ if (sockPath.startsWith('@')) {
72
+ allMatches.push(line.trim());
73
+ }
74
+ if (flags !== '00010000' || st !== '01') {
75
+ continue;
76
+ }
77
+ if (!exports.DEVTOOLS_SOCKET_PATTERN.test(sockPath)) {
78
+ continue;
79
+ }
80
+ names.push(sockPath);
81
+ }
82
+ if (lodash_1.default.isEmpty(names)) {
83
+ logger_1.default.debug('Found no active devtools sockets');
84
+ if (!lodash_1.default.isEmpty(allMatches)) {
85
+ logger_1.default.debug(`Other sockets are: ${JSON.stringify(allMatches, null, 2)}`);
86
+ }
87
+ }
88
+ else {
89
+ logger_1.default.debug(`Parsed ${names.length} active devtools ${support_1.util.pluralize('socket', names.length, false)}: ` +
90
+ JSON.stringify(names));
91
+ }
92
+ // sometimes the webview process shows up multiple times per app
93
+ return lodash_1.default.uniq(names);
94
+ }
95
+ /**
96
+ * This function retrieves a list of system processes that look like webviews,
97
+ * and returns them along with the webview context name appropriate for it.
98
+ * If we pass in a deviceSocket, we only attempt to find webviews which match
99
+ * that socket name (this is for apps which embed Chromium, which isn't the
100
+ * same as chrome-backed webviews).
101
+ *
102
+ * @param adb - an ADB instance
103
+ * @param deviceSocket - the explictly-named device socket to use
104
+ */
105
+ async function webviewsFromProcs(adb, deviceSocket = null) {
106
+ const socketNames = await getPotentialWebviewProcs(adb);
107
+ const webviews = [];
108
+ for (const socketName of socketNames) {
109
+ if (deviceSocket === CHROMIUM_DEVTOOLS_SOCKET && socketName === `@${deviceSocket}`) {
110
+ webviews.push({
111
+ proc: socketName,
112
+ webview: CHROMIUM_WIN,
113
+ });
114
+ continue;
115
+ }
116
+ const socketNameMatch = exports.DEVTOOLS_SOCKET_PATTERN.exec(socketName);
117
+ if (!socketNameMatch) {
118
+ continue;
119
+ }
120
+ const matchedSocketName = socketNameMatch[2];
121
+ const crosswalkMatch = CROSSWALK_SOCKET_PATTERN.exec(socketName);
122
+ if (!matchedSocketName && !crosswalkMatch) {
123
+ continue;
124
+ }
125
+ if ((deviceSocket && socketName === `@${deviceSocket}`) || !deviceSocket) {
126
+ webviews.push({
127
+ proc: socketName,
128
+ webview: matchedSocketName
129
+ ? `${WEBVIEW_BASE}${matchedSocketName}`
130
+ : // @ts-expect-error: XXX crosswalkMatch can absolutely be null
131
+ `${WEBVIEW_BASE}${crosswalkMatch[1]}`,
132
+ });
133
+ }
134
+ }
135
+ return webviews;
136
+ }
137
+ /**
138
+ * Allocates a local port for devtools communication
139
+ *
140
+ * @param adb - ADB instance
141
+ * @param socketName - The remote Unix socket name
142
+ * @param webviewDevtoolsPort - The local port number or null to apply
143
+ * autodetection
144
+ * @returns The local port number if the remote socket has been forwarded
145
+ * successfully or `null` otherwise
146
+ * @throws {Error} If there was an error while allocating the local port
147
+ */
148
+ async function allocateDevtoolsPort(adb, socketName, webviewDevtoolsPort = null) {
149
+ // socket names come with '@', but this should not be a part of the abstract
150
+ // remote port, so remove it
151
+ const remotePort = socketName.replace(/^@/, '');
152
+ let [startPort, endPort] = DEVTOOLS_PORTS_RANGE;
153
+ if (webviewDevtoolsPort) {
154
+ endPort = webviewDevtoolsPort + (endPort - startPort);
155
+ startPort = webviewDevtoolsPort;
156
+ }
157
+ logger_1.default.debug(`Forwarding remote port ${remotePort} to a local ` + `port in range ${startPort}..${endPort}`);
158
+ if (!webviewDevtoolsPort) {
159
+ logger_1.default.debug(`You could use the 'webviewDevtoolsPort' capability to customize ` +
160
+ `the starting port number`);
161
+ }
162
+ return (await DEVTOOLS_PORT_ALLOCATION_GUARD(async () => {
163
+ let localPort;
164
+ try {
165
+ localPort = await (0, portscanner_1.findAPortNotInUse)(startPort, endPort);
166
+ }
167
+ catch (e) {
168
+ throw new Error(`Cannot find any free port to forward the Devtools socket ` +
169
+ `in range ${startPort}..${endPort}. You could set the starting port number ` +
170
+ `manually by providing the 'webviewDevtoolsPort' capability`);
171
+ }
172
+ await adb.adbExec(['forward', `tcp:${localPort}`, `localabstract:${remotePort}`]);
173
+ return localPort;
174
+ }));
175
+ }
176
+ /**
177
+ * This is a wrapper for Chrome Debugger Protocol data collection.
178
+ * No error is thrown if CDP request fails - in such case no data will be
179
+ * recorded into the corresponding `webviewsMapping` item.
180
+ *
181
+ * @param adb The ADB instance
182
+ * @param webviewsMapping The current webviews mapping
183
+ * !!! Each item of this array gets mutated (`info`/`pages` properties get added
184
+ * based on the provided `opts`) if the requested details have been
185
+ * successfully retrieved for it !!!
186
+ * @param opts If both `ensureWebviewsHavePages` and
187
+ * `enableWebviewDetailsCollection` properties are falsy then no details collection
188
+ * is performed
189
+ */
190
+ async function collectWebviewsDetails(adb, webviewsMapping, opts = {}) {
191
+ if (lodash_1.default.isEmpty(webviewsMapping)) {
192
+ return;
193
+ }
194
+ const { webviewDevtoolsPort = null, ensureWebviewsHavePages = null, enableWebviewDetailsCollection = null, } = opts;
195
+ if (!ensureWebviewsHavePages) {
196
+ logger_1.default.info(`Not checking whether webviews have active pages; use the ` +
197
+ `'ensureWebviewsHavePages' cap to turn this check on`);
198
+ }
199
+ if (!enableWebviewDetailsCollection) {
200
+ logger_1.default.info(`Not collecting web view details. Details collection might help ` +
201
+ `to make Chromedriver initialization more precise. Use the 'enableWebviewDetailsCollection' ` +
202
+ `cap to turn it on`);
203
+ }
204
+ if (!ensureWebviewsHavePages && !enableWebviewDetailsCollection) {
205
+ return;
206
+ }
207
+ // Connect to each devtools socket and retrieve web view details
208
+ logger_1.default.debug(`Collecting CDP data of ${support_1.util.pluralize('webview', webviewsMapping.length, true)}`);
209
+ const detailCollectors = [];
210
+ for (const item of webviewsMapping) {
211
+ detailCollectors.push((async () => {
212
+ let localPort;
213
+ try {
214
+ localPort = await allocateDevtoolsPort(adb, item.proc, webviewDevtoolsPort);
215
+ if (enableWebviewDetailsCollection) {
216
+ item.info = await cdpInfo(localPort);
217
+ }
218
+ if (ensureWebviewsHavePages) {
219
+ item.pages = await cdpList(localPort);
220
+ }
221
+ }
222
+ catch (e) {
223
+ logger_1.default.debug(e);
224
+ }
225
+ finally {
226
+ if (localPort) {
227
+ try {
228
+ await adb.removePortForward(localPort);
229
+ }
230
+ catch (e) {
231
+ logger_1.default.debug(e);
232
+ }
233
+ }
234
+ }
235
+ })());
236
+ }
237
+ await bluebird_1.default.all(detailCollectors);
238
+ logger_1.default.debug(`CDP data collection completed`);
239
+ }
240
+ // https://chromedevtools.github.io/devtools-protocol/
241
+ async function cdpList(localPort) {
242
+ return (await (0, axios_1.default)({
243
+ url: `http://127.0.0.1:${localPort}/json/list`,
244
+ timeout: CDP_REQ_TIMEOUT,
245
+ })).data;
246
+ }
247
+ // https://chromedevtools.github.io/devtools-protocol/
248
+ async function cdpInfo(localPort) {
249
+ return (await (0, axios_1.default)({
250
+ url: `http://127.0.0.1:${localPort}/json/version`,
251
+ timeout: CDP_REQ_TIMEOUT,
252
+ })).data;
253
+ }
254
+ const WebviewHelpers = {
255
+ async procFromWebview(adb, webview) {
256
+ const pidMatch = WEBVIEW_PID_PATTERN.exec(webview);
257
+ if (!pidMatch) {
258
+ throw new Error(`Could not find PID for webview '${webview}'`);
259
+ }
260
+ const pid = pidMatch[1];
261
+ logger_1.default.debug(`${webview} mapped to pid ${pid}`);
262
+ logger_1.default.debug(`Getting process name for webview '${webview}'`);
263
+ const pkg = await adb.getNameByPid(pid);
264
+ logger_1.default.debug(`Got process name: '${pkg}'`);
265
+ return pkg;
266
+ },
267
+ parseWebviewNames(webviewsMapping, { ensureWebviewsHavePages = true, isChromeSession = false } = {}) {
268
+ if (isChromeSession) {
269
+ return [CHROMIUM_WIN];
270
+ }
271
+ const result = [];
272
+ for (const { webview, pages, proc, webviewName } of webviewsMapping) {
273
+ if (ensureWebviewsHavePages && pages?.length === 0) {
274
+ logger_1.default.info(`Skipping the webview '${webview}' at '${proc}' ` +
275
+ `since it has reported having zero pages`);
276
+ continue;
277
+ }
278
+ if (webviewName) {
279
+ result.push(webviewName);
280
+ }
281
+ }
282
+ logger_1.default.debug(`Found ${support_1.util.pluralize('webview', result.length, true)}: ${JSON.stringify(result)}`);
283
+ return result;
284
+ },
285
+ async getWebViewsMapping(adb, { androidDeviceSocket = null, ensureWebviewsHavePages = true, webviewDevtoolsPort = null, enableWebviewDetailsCollection = true, } = {}) {
286
+ logger_1.default.debug('Getting a list of available webviews');
287
+ const webviewsMapping = (await webviewsFromProcs(adb, androidDeviceSocket));
288
+ await collectWebviewsDetails(adb, webviewsMapping, {
289
+ ensureWebviewsHavePages,
290
+ enableWebviewDetailsCollection,
291
+ webviewDevtoolsPort,
292
+ });
293
+ for (const webviewMapping of webviewsMapping) {
294
+ const { webview, info } = webviewMapping;
295
+ webviewMapping.webviewName = null;
296
+ let wvName = webview;
297
+ let process;
298
+ if (!androidDeviceSocket) {
299
+ const pkgMatch = WEBVIEW_PKG_PATTERN.exec(webview);
300
+ try {
301
+ // web view name could either be suffixed with PID or the package name
302
+ // package names could not start with a digit
303
+ const pkg = pkgMatch ? pkgMatch[1] : await WebviewHelpers.procFromWebview(adb, webview);
304
+ wvName = `${WEBVIEW_BASE}${pkg}`;
305
+ const pidMatch = WEBVIEW_PID_PATTERN.exec(webview);
306
+ process = {
307
+ name: pkg,
308
+ id: pidMatch ? pidMatch[1] : null,
309
+ };
310
+ }
311
+ catch (e) {
312
+ logger_1.default.warn(e.message);
313
+ continue;
314
+ }
315
+ }
316
+ webviewMapping.webviewName = wvName;
317
+ const key = toDetailsCacheKey(adb, wvName);
318
+ if (info || process) {
319
+ WEBVIEWS_DETAILS_CACHE.set(key, { info, process });
320
+ }
321
+ else if (WEBVIEWS_DETAILS_CACHE.has(key)) {
322
+ WEBVIEWS_DETAILS_CACHE.delete(key);
323
+ }
324
+ }
325
+ return webviewsMapping;
326
+ },
327
+ getWebviewDetails(adb, webview) {
328
+ const key = toDetailsCacheKey(adb, webview);
329
+ return WEBVIEWS_DETAILS_CACHE.get(key);
330
+ },
331
+ createChromedriverCaps(opts, deviceId, webViewDetails) {
332
+ const caps = { chromeOptions: {} };
333
+ const androidPackage = opts.chromeOptions?.androidPackage ||
334
+ opts.appPackage ||
335
+ webViewDetails?.info?.['Android-Package'];
336
+ if (androidPackage) {
337
+ // chromedriver raises an invalid argument error when androidPackage is 'null'
338
+ caps.chromeOptions.androidPackage = androidPackage;
339
+ }
340
+ if (lodash_1.default.isBoolean(opts.chromeUseRunningApp)) {
341
+ caps.chromeOptions.androidUseRunningApp = opts.chromeUseRunningApp;
342
+ }
343
+ if (opts.chromeAndroidPackage) {
344
+ caps.chromeOptions.androidPackage = opts.chromeAndroidPackage;
345
+ }
346
+ if (opts.chromeAndroidActivity) {
347
+ caps.chromeOptions.androidActivity = opts.chromeAndroidActivity;
348
+ }
349
+ if (opts.chromeAndroidProcess) {
350
+ caps.chromeOptions.androidProcess = opts.chromeAndroidProcess;
351
+ }
352
+ else if (webViewDetails?.process?.name && webViewDetails?.process?.id) {
353
+ caps.chromeOptions.androidProcess = webViewDetails.process.name;
354
+ }
355
+ if (lodash_1.default.toLower(opts.browserName) === 'chromium-webview') {
356
+ caps.chromeOptions.androidActivity = opts.appActivity;
357
+ }
358
+ if (opts.pageLoadStrategy) {
359
+ caps.pageLoadStrategy = opts.pageLoadStrategy;
360
+ }
361
+ const isChrome = lodash_1.default.toLower(caps.chromeOptions.androidPackage) === 'chrome';
362
+ if (lodash_1.default.includes(KNOWN_CHROME_PACKAGE_NAMES, caps.chromeOptions.androidPackage) || isChrome) {
363
+ // if we have extracted package from context name, it could come in as bare
364
+ // "chrome", and so we should make sure the details are correct, including
365
+ // not using an activity or process id
366
+ if (isChrome) {
367
+ caps.chromeOptions.androidPackage = CHROME_PACKAGE_NAME;
368
+ }
369
+ delete caps.chromeOptions.androidActivity;
370
+ delete caps.chromeOptions.androidProcess;
371
+ }
372
+ // add device id from adb
373
+ caps.chromeOptions.androidDeviceSerial = deviceId;
374
+ if (lodash_1.default.isPlainObject(opts.loggingPrefs) || lodash_1.default.isPlainObject(opts.chromeLoggingPrefs)) {
375
+ if (opts.loggingPrefs) {
376
+ logger_1.default.warn(`The 'loggingPrefs' cap is deprecated; use the 'chromeLoggingPrefs' cap instead`);
377
+ }
378
+ // @ts-expect-error Why are we using this if it's deprecated?
379
+ caps.loggingPrefs = opts.chromeLoggingPrefs || opts.loggingPrefs;
380
+ }
381
+ if (opts.enablePerformanceLogging) {
382
+ logger_1.default.warn(`The 'enablePerformanceLogging' cap is deprecated; simply use ` +
383
+ `the 'chromeLoggingPrefs' cap instead, with a 'performance' key set to 'ALL'`);
384
+ const newPref = { performance: 'ALL' };
385
+ // don't overwrite other logging prefs that have been sent in if they exist
386
+ // @ts-expect-error Why are we using this if it's deprecated?
387
+ caps.loggingPrefs = caps.loggingPrefs
388
+ ? // @ts-expect-error Why are we using this if it's deprecated?
389
+ Object.assign({}, caps.loggingPrefs, newPref)
390
+ : newPref;
391
+ }
392
+ if (opts.chromeOptions?.Arguments) {
393
+ // merge `Arguments` and `args`
394
+ opts.chromeOptions.args = [
395
+ ...(opts.chromeOptions.args || []),
396
+ ...opts.chromeOptions.Arguments,
397
+ ];
398
+ delete opts.chromeOptions.Arguments;
399
+ }
400
+ logger_1.default.debug('Precalculated Chromedriver capabilities: ' + JSON.stringify(caps.chromeOptions, null, 2));
401
+ const protectedCapNames = [];
402
+ for (const [opt, val] of lodash_1.default.toPairs(opts.chromeOptions)) {
403
+ if (lodash_1.default.isUndefined(caps.chromeOptions[opt])) {
404
+ caps.chromeOptions[opt] = val;
405
+ }
406
+ else {
407
+ protectedCapNames.push(opt);
408
+ }
409
+ }
410
+ if (!lodash_1.default.isEmpty(protectedCapNames)) {
411
+ logger_1.default.info('The following Chromedriver capabilities cannot be overridden ' +
412
+ 'by the provided chromeOptions:');
413
+ for (const optName of protectedCapNames) {
414
+ logger_1.default.info(` ${optName} (${JSON.stringify(opts.chromeOptions[optName])})`);
415
+ }
416
+ }
417
+ return caps;
418
+ },
419
+ };
420
+ exports.default = WebviewHelpers;
421
+ //# sourceMappingURL=webview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview.js","sourceRoot":"","sources":["../../../lib/helpers/webview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { AndroidDriver } from './driver';
2
+ export type * from './commands';
3
+ export { ANDROID_DRIVER_CONSTRAINTS as commonCapConstraints } from './constraints';
4
+ export * from './driver';
5
+ export { SETTINGS_HELPER_PKG_ID, default as androidHelpers } from './helpers/android';
6
+ export type * from './helpers/types';
7
+ export { CHROMIUM_WIN, NATIVE_WIN, WEBVIEW_BASE, WEBVIEW_WIN, default as webviewHelpers, } from './helpers/webview';
8
+ export default AndroidDriver;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAC,0BAA0B,IAAI,oBAAoB,EAAC,MAAM,eAAe,CAAC;AACjF,cAAc,UAAU,CAAC;AACzB,OAAO,EAAC,sBAAsB,EAAE,OAAO,IAAI,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACpF,mBAAmB,iBAAiB,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,OAAO,IAAI,cAAc,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,eAAe,aAAa,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.webviewHelpers = exports.WEBVIEW_WIN = exports.WEBVIEW_BASE = exports.NATIVE_WIN = exports.CHROMIUM_WIN = exports.androidHelpers = exports.SETTINGS_HELPER_PKG_ID = exports.commonCapConstraints = void 0;
21
+ const source_map_support_1 = require("source-map-support");
22
+ (0, source_map_support_1.install)();
23
+ const driver_1 = require("./driver");
24
+ var constraints_1 = require("./constraints");
25
+ Object.defineProperty(exports, "commonCapConstraints", { enumerable: true, get: function () { return constraints_1.ANDROID_DRIVER_CONSTRAINTS; } });
26
+ __exportStar(require("./driver"), exports);
27
+ var android_1 = require("./helpers/android");
28
+ Object.defineProperty(exports, "SETTINGS_HELPER_PKG_ID", { enumerable: true, get: function () { return android_1.SETTINGS_HELPER_PKG_ID; } });
29
+ Object.defineProperty(exports, "androidHelpers", { enumerable: true, get: function () { return __importDefault(android_1).default; } });
30
+ var webview_1 = require("./helpers/webview");
31
+ Object.defineProperty(exports, "CHROMIUM_WIN", { enumerable: true, get: function () { return webview_1.CHROMIUM_WIN; } });
32
+ Object.defineProperty(exports, "NATIVE_WIN", { enumerable: true, get: function () { return webview_1.NATIVE_WIN; } });
33
+ Object.defineProperty(exports, "WEBVIEW_BASE", { enumerable: true, get: function () { return webview_1.WEBVIEW_BASE; } });
34
+ Object.defineProperty(exports, "WEBVIEW_WIN", { enumerable: true, get: function () { return webview_1.WEBVIEW_WIN; } });
35
+ Object.defineProperty(exports, "webviewHelpers", { enumerable: true, get: function () { return __importDefault(webview_1).default; } });
36
+ exports.default = driver_1.AndroidDriver;
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,2DAA2C;AAC3C,IAAA,4BAAO,GAAE,CAAC;AAEV,qCAAuC;AAEvC,6CAAiF;AAAzE,mHAAA,0BAA0B,OAAwB;AAC1D,2CAAyB;AACzB,6CAAoF;AAA5E,iHAAA,sBAAsB,OAAA;AAAE,0HAAA,OAAO,OAAkB;AAEzD,6CAM2B;AALzB,uGAAA,YAAY,OAAA;AACZ,qGAAA,UAAU,OAAA;AACV,uGAAA,YAAY,OAAA;AACZ,sGAAA,WAAW,OAAA;AACX,0HAAA,OAAO,OAAkB;AAG3B,kBAAe,sBAAa,CAAC"}
@@ -353,14 +353,6 @@ export const newMethodMap: {
353
353
  };
354
354
  };
355
355
  };
356
- readonly '/session/:sessionId/appium/app/end_test_coverage': {
357
- readonly POST: {
358
- readonly command: "endCoverage";
359
- readonly payloadParams: {
360
- readonly required: readonly ["intent", "path"];
361
- };
362
- };
363
- };
364
356
  readonly '/session/:sessionId/appium/app/strings': {
365
357
  readonly POST: {
366
358
  readonly command: "getStrings";
@@ -1 +1 @@
1
- {"version":3,"file":"method-map.d.ts","sourceRoot":"","sources":["../../lib/method-map.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0NG"}
1
+ {"version":3,"file":"method-map.d.ts","sourceRoot":"","sources":["../../lib/method-map.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+MG"}