@tapflowio/ios-agent 0.27.0 → 0.28.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.
- package/LICENSE-APACHE-2.0 +202 -0
- package/NOTICE +12 -0
- package/dist/DeviceChromeLoader.d.ts +29 -1
- package/dist/DeviceChromeLoader.d.ts.map +1 -1
- package/dist/DeviceChromeLoader.js +134 -73
- package/dist/DeviceChromeLoader.js.map +1 -1
- package/dist/IOSAgent.d.ts +32 -0
- package/dist/IOSAgent.d.ts.map +1 -1
- package/dist/IOSAgent.js +153 -39
- package/dist/IOSAgent.js.map +1 -1
- package/dist/MjpegStreamer.d.ts.map +1 -1
- package/dist/MjpegStreamer.js +6 -0
- package/dist/MjpegStreamer.js.map +1 -1
- package/dist/XCUITreeReader.d.ts +26 -6
- package/dist/XCUITreeReader.d.ts.map +1 -1
- package/dist/XCUITreeReader.js +283 -79
- package/dist/XCUITreeReader.js.map +1 -1
- package/dist/xcuiTree.d.ts.map +1 -1
- package/dist/xcuiTree.js +13 -6
- package/dist/xcuiTree.js.map +1 -1
- package/package.json +11 -9
- package/xctest-runner/TreeRunner/TreeServer.swift +21 -8
- package/xctest-runner/TreeRunner/TreeServerTest.swift +9 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceChromeLoader.js","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeviceChromeLoader.js","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"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"}
|
package/dist/IOSAgent.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type SleepBlocker } from '@tapflowio/agent-core/utils';
|
|
|
4
4
|
import { SimctlWrapper } from './SimctlWrapper.js';
|
|
5
5
|
import { SimulatorNetwork } from './SimulatorNetwork.js';
|
|
6
6
|
import { LeanStore } from './LeanStore.js';
|
|
7
|
+
import { DeviceChromeLoader } from './DeviceChromeLoader.js';
|
|
7
8
|
/** Lean mode needs an iOS runtime of 18.5 or later, where launchd honours the host-side overrides
|
|
8
9
|
* across reboots. tvOS, watchOS and visionOS devices come through the same list and are left alone. */
|
|
9
10
|
export declare function leanSupported(osVersion: string | undefined): boolean;
|
|
@@ -27,6 +28,9 @@ export interface IOSAgentOptions {
|
|
|
27
28
|
lean?: boolean;
|
|
28
29
|
/** Where the launchd overrides are written. Injectable for the same reason as `network`. */
|
|
29
30
|
leanStore?: LeanStore;
|
|
31
|
+
/** Device frame loading. Under vitest the default points at directories that do not exist, so a suite never
|
|
32
|
+
* reads the developer's Xcode chrome or spends seconds rendering it. */
|
|
33
|
+
chromeLoader?: DeviceChromeLoader;
|
|
30
34
|
}
|
|
31
35
|
export declare class IOSAgent implements DeviceAgent, NetworkControlCapability {
|
|
32
36
|
private readonly simctl;
|
|
@@ -94,6 +98,10 @@ export declare class IOSAgent implements DeviceAgent, NetworkControlCapability {
|
|
|
94
98
|
private lastBundleIds;
|
|
95
99
|
private readonly uiTreeReader;
|
|
96
100
|
private readonly sleepBlocker;
|
|
101
|
+
/** What the next "relay disconnected" line reports: when the relay last pinged, and the socket's last error. */
|
|
102
|
+
private lastPingAt;
|
|
103
|
+
private lastSocketError;
|
|
104
|
+
private releaseStallWatch;
|
|
97
105
|
private relayUrl;
|
|
98
106
|
/** The last device-type lookup that answered. A udid's type never changes, so on a reconnect whose
|
|
99
107
|
* lookup fails this is still right — and the relay overwrites device fields on every register, so
|
|
@@ -109,12 +117,26 @@ export declare class IOSAgent implements DeviceAgent, NetworkControlCapability {
|
|
|
109
117
|
constructor(options?: IOSAgentOptions, simctl?: SimctlWrapper);
|
|
110
118
|
get sessionId(): string | null;
|
|
111
119
|
connect(relayUrl: string): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* `listTimeoutMs` is set only by the reconnect loop. `simctl list` is left unbounded elsewhere on purpose
|
|
122
|
+
* (see `SimctlWrapper.listDevices`), but here a hang has a worse outcome than a failure: the attempt never
|
|
123
|
+
* settles, `_scheduleReconnect` is never reached, and the agent stays offline with nothing in its output
|
|
124
|
+
* even after CoreSimulator recovers. A bounded attempt fails and the loop tries again.
|
|
125
|
+
*/
|
|
126
|
+
private connectOnce;
|
|
112
127
|
private initDeviceStates;
|
|
113
128
|
disconnect(): void;
|
|
129
|
+
/** `loss` is absent when a reconnect attempt failed: there is no close to describe, only a retry. */
|
|
114
130
|
private _scheduleReconnect;
|
|
115
131
|
private reportResources;
|
|
116
132
|
private cleanupDeviceState;
|
|
133
|
+
private stopAudioCapture;
|
|
134
|
+
/** Resolves `false` when a newer boot or a relay loss retired this one during the chrome load, in which case
|
|
135
|
+
* nothing was stored and the caller abandons the boot. A closed socket alone continues as it always did —
|
|
136
|
+
* the relay loss that follows bumps the seq. */
|
|
117
137
|
private sendChromeData;
|
|
138
|
+
/** `failures` counts the frameless runs before this one; only the restart in `pump` passes it, so a new
|
|
139
|
+
* boot starts from zero without any state to reset. */
|
|
118
140
|
private startBinaryStream;
|
|
119
141
|
private wsClientOptions;
|
|
120
142
|
private openStreamWs;
|
|
@@ -333,4 +355,14 @@ export declare class IOSAgent implements DeviceAgent, NetworkControlCapability {
|
|
|
333
355
|
touchEnd(): Promise<void>;
|
|
334
356
|
openUrl(url: string): Promise<void>;
|
|
335
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* When to restart a screen stream that just ended. Only a run that delivered a frame resets the count — not
|
|
360
|
+
* how long it lasted: the helper retries `device.io` and its ports for up to ~10s before it gives up, so a
|
|
361
|
+
* duration rule would call every first-boot failure healthy. A simulator shut down from outside makes the
|
|
362
|
+
* helper exit at once, which without this was a restart loop at full speed.
|
|
363
|
+
*/
|
|
364
|
+
export declare function streamRestartPlan(previousFailures: number, deliveredFrame: boolean): {
|
|
365
|
+
failures: number;
|
|
366
|
+
delayMs: number;
|
|
367
|
+
};
|
|
336
368
|
//# sourceMappingURL=IOSAgent.d.ts.map
|
package/dist/IOSAgent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IOSAgent.d.ts","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAA4C,MAAM,EAAE,WAAW,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAsCpK,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIrD,CAAA;AACD,OAAO,
|
|
1
|
+
{"version":3,"file":"IOSAgent.d.ts","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/IOSAgent.js
CHANGED
|
@@ -3,7 +3,7 @@ import fs from 'fs';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { tmpdir } from 'os';
|
|
5
5
|
import { randomUUID } from 'crypto';
|
|
6
|
-
import {
|
|
6
|
+
import { spawn } from 'child_process';
|
|
7
7
|
import { WebSocket } from 'ws';
|
|
8
8
|
import { createLogger, PlatformError, ValidationError, bootAbandonMessage, BOOT_NO_SESSION_STATE, SHUTDOWN_NO_SESSION_STATE, downloadBuild } from '@tapflowio/agent-core';
|
|
9
9
|
const logger = createLogger('ios-agent');
|
|
@@ -39,7 +39,7 @@ export const IOS_BUTTON_ALIASES = {
|
|
|
39
39
|
volume_up: 'volume-up',
|
|
40
40
|
volume_down: 'volume-down',
|
|
41
41
|
};
|
|
42
|
-
import { createResourceSampler, registerStreamWs, disableNagle, createKeyframeAwareSender, pickMaxSize, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, getMachineId, isLocalhostWss, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, rewriteLowLatencySpsInFrame, CODEC_JPEG, CODEC_H264, CODEC_AUDIO, sendAudioYieldingToVideo, } from '@tapflowio/agent-core/utils';
|
|
42
|
+
import { createResourceSampler, registerStreamWs, disableNagle, createKeyframeAwareSender, pickMaxSize, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, acquireLoopStallWatch, describeRelayLoss, getMachineId, isLocalhostWss, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, rewriteLowLatencySpsInFrame, CODEC_JPEG, CODEC_H264, CODEC_AUDIO, sendAudioYieldingToVideo, } from '@tapflowio/agent-core/utils';
|
|
43
43
|
import { SimctlWrapper, isDeviceMissingError, ClipboardTooLargeError, firstLine, launchFailureReason } from './SimctlWrapper.js';
|
|
44
44
|
import { SimulatorNetwork } from './SimulatorNetwork.js';
|
|
45
45
|
import { LeanStore } from './LeanStore.js';
|
|
@@ -58,8 +58,8 @@ import { KEY_CODE_MAP, MODIFIER_BITS } from './KeyCodeMap.js';
|
|
|
58
58
|
// processes (launched apps, WebKit WebContent). Short enough that a tab's audio starts promptly,
|
|
59
59
|
// long enough to keep `ps` overhead negligible.
|
|
60
60
|
const AUDIO_POLL_MS = 1500;
|
|
61
|
-
|
|
62
|
-
const
|
|
61
|
+
/** Bound on `simctl list` during a reconnect attempt only; see `connectOnce`. */
|
|
62
|
+
const RECONNECT_LIST_TIMEOUT_MS = 10_000;
|
|
63
63
|
/** Lean mode needs an iOS runtime of 18.5 or later, where launchd honours the host-side overrides
|
|
64
64
|
* across reboots. tvOS, watchOS and visionOS devices come through the same list and are left alone. */
|
|
65
65
|
export function leanSupported(osVersion) {
|
|
@@ -146,6 +146,10 @@ export class IOSAgent {
|
|
|
146
146
|
// Holds a macOS power assertion while connected so the host doesn't idle-throttle the
|
|
147
147
|
// simulator capture/encode when the Mac is unattended. No-op off macOS.
|
|
148
148
|
sleepBlocker;
|
|
149
|
+
/** What the next "relay disconnected" line reports: when the relay last pinged, and the socket's last error. */
|
|
150
|
+
lastPingAt = null;
|
|
151
|
+
lastSocketError;
|
|
152
|
+
releaseStallWatch = null;
|
|
149
153
|
relayUrl = null;
|
|
150
154
|
/** The last device-type lookup that answered. A udid's type never changes, so on a reconnect whose
|
|
151
155
|
* lookup fails this is still right — and the relay overwrites device fields on every register, so
|
|
@@ -188,7 +192,9 @@ export class IOSAgent {
|
|
|
188
192
|
this.fps = options.fps ?? 30;
|
|
189
193
|
this.intervalMs = options.intervalMs;
|
|
190
194
|
this.reconnectDelays = options.reconnectDelays ?? [1000, 2000, 4000, 8000, 16000, 30000];
|
|
191
|
-
this.chromeLoader = new DeviceChromeLoader(
|
|
195
|
+
this.chromeLoader = options.chromeLoader ?? new DeviceChromeLoader(process.env.VITEST
|
|
196
|
+
? { run: () => Promise.reject(new Error('no chrome under vitest')) }
|
|
197
|
+
: {});
|
|
192
198
|
this.deviceFilter = options.deviceFilter;
|
|
193
199
|
this.token = options.token;
|
|
194
200
|
this.handshakeTimeoutMs = options.handshakeTimeoutMs ?? 10_000;
|
|
@@ -200,6 +206,15 @@ export class IOSAgent {
|
|
|
200
206
|
return first?.sessionId ?? null;
|
|
201
207
|
}
|
|
202
208
|
async connect(relayUrl) {
|
|
209
|
+
return this.connectOnce(relayUrl);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* `listTimeoutMs` is set only by the reconnect loop. `simctl list` is left unbounded elsewhere on purpose
|
|
213
|
+
* (see `SimctlWrapper.listDevices`), but here a hang has a worse outcome than a failure: the attempt never
|
|
214
|
+
* settles, `_scheduleReconnect` is never reached, and the agent stays offline with nothing in its output
|
|
215
|
+
* even after CoreSimulator recovers. A bounded attempt fails and the loop tries again.
|
|
216
|
+
*/
|
|
217
|
+
async connectOnce(relayUrl, listTimeoutMs) {
|
|
203
218
|
this._stopping = false;
|
|
204
219
|
// Paired with the `dispose()` in `disconnect()`. This method is public and reuses the network, so
|
|
205
220
|
// without it a reconnect leaves the liveness watcher off for good — see `SimulatorNetwork.resume`.
|
|
@@ -209,7 +224,7 @@ export class IOSAgent {
|
|
|
209
224
|
this._reconnectTimer = null;
|
|
210
225
|
}
|
|
211
226
|
this.relayUrl = relayUrl;
|
|
212
|
-
const allDevices = await this.simctl.listDevices();
|
|
227
|
+
const allDevices = await this.simctl.listDevices(listTimeoutMs);
|
|
213
228
|
this.revertLeftoverLean(allDevices);
|
|
214
229
|
const devices = this.deviceFilter
|
|
215
230
|
? allDevices.filter((d) => d.name === this.deviceFilter || d.id === this.deviceFilter)
|
|
@@ -285,7 +300,18 @@ export class IOSAgent {
|
|
|
285
300
|
});
|
|
286
301
|
this.reportResources();
|
|
287
302
|
this.resourcesTimer = setInterval(() => this.reportResources(), 5000);
|
|
288
|
-
|
|
303
|
+
this.lastPingAt = null;
|
|
304
|
+
this.lastSocketError = undefined;
|
|
305
|
+
ws.on('ping', () => { this.lastPingAt = Date.now(); });
|
|
306
|
+
// After registration the handshake's `once('error', reject)` lands on a settled promise, so the
|
|
307
|
+
// code (ETIMEDOUT, ECONNRESET…) was dropped. It is the network half of the disconnect line.
|
|
308
|
+
ws.on('error', (e) => { this.lastSocketError = e.code ?? e.message; });
|
|
309
|
+
// `now` is taken here, at the close, not when the warning prints: the cleanup in between can run
|
|
310
|
+
// work that holds the event loop and would inflate the ping age.
|
|
311
|
+
ws.on('close', (code, reason) => this._scheduleReconnect({
|
|
312
|
+
code, reason: reason.toString(), errorCode: this.lastSocketError, lastPingAt: this.lastPingAt, now: Date.now(),
|
|
313
|
+
}));
|
|
314
|
+
this.releaseStallWatch ??= acquireLoopStallWatch();
|
|
289
315
|
resolve();
|
|
290
316
|
}
|
|
291
317
|
else {
|
|
@@ -358,12 +384,15 @@ export class IOSAgent {
|
|
|
358
384
|
// other things that tick. It is `unref`'d, which is why nobody noticed it had no caller.
|
|
359
385
|
this.network.dispose();
|
|
360
386
|
this.sleepBlocker.release();
|
|
387
|
+
this.releaseStallWatch?.();
|
|
388
|
+
this.releaseStallWatch = null;
|
|
361
389
|
this.ws?.close();
|
|
362
390
|
this.ws = null;
|
|
363
391
|
this.relayUrl = null;
|
|
364
392
|
this.simctl.stopKeyboardDaemon();
|
|
365
393
|
}
|
|
366
|
-
|
|
394
|
+
/** `loss` is absent when a reconnect attempt failed: there is no close to describe, only a retry. */
|
|
395
|
+
_scheduleReconnect(loss) {
|
|
367
396
|
if (this._stopping)
|
|
368
397
|
return;
|
|
369
398
|
if (this.resourcesTimer) {
|
|
@@ -385,12 +414,14 @@ export class IOSAgent {
|
|
|
385
414
|
const delays = this.reconnectDelays;
|
|
386
415
|
const delay = delays[Math.min(this._reconnectAttempt, delays.length - 1)];
|
|
387
416
|
this._reconnectAttempt++;
|
|
388
|
-
logger.warn(
|
|
417
|
+
logger.warn(loss
|
|
418
|
+
? `relay disconnected (${describeRelayLoss(loss)}) — reconnecting in ${delay / 1000}s (attempt ${this._reconnectAttempt})`
|
|
419
|
+
: `reconnecting in ${delay / 1000}s (attempt ${this._reconnectAttempt})`);
|
|
389
420
|
this._reconnectTimer = setTimeout(() => {
|
|
390
421
|
this._reconnectTimer = null;
|
|
391
422
|
if (this._stopping || !this.relayUrl)
|
|
392
423
|
return;
|
|
393
|
-
this.
|
|
424
|
+
this.connectOnce(this.relayUrl, RECONNECT_LIST_TIMEOUT_MS).then(() => {
|
|
394
425
|
this._reconnectAttempt = 0;
|
|
395
426
|
logger.info('reconnected to relay');
|
|
396
427
|
}).catch((e) => {
|
|
@@ -426,9 +457,17 @@ export class IOSAgent {
|
|
|
426
457
|
void this.network.forget(state.deviceId).catch((e) => {
|
|
427
458
|
logger.warn('could not clear the network rule for a retired device:', e.message);
|
|
428
459
|
});
|
|
429
|
-
|
|
460
|
+
state.streamReader?.cancel().catch(() => { });
|
|
430
461
|
state.streamReader = null;
|
|
431
462
|
state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
|
|
463
|
+
this.stopAudioCapture(state);
|
|
464
|
+
state.touchHelper?.stop();
|
|
465
|
+
state.touchHelper = null;
|
|
466
|
+
state.booted = false;
|
|
467
|
+
state.streamWs?.close();
|
|
468
|
+
state.streamWs = null;
|
|
469
|
+
}
|
|
470
|
+
stopAudioCapture(state) {
|
|
432
471
|
if (state.audioPoll) {
|
|
433
472
|
clearInterval(state.audioPoll);
|
|
434
473
|
state.audioPoll = null;
|
|
@@ -437,18 +476,16 @@ export class IOSAgent {
|
|
|
437
476
|
state.audioStreamer = null;
|
|
438
477
|
state.audioPort = 0;
|
|
439
478
|
state.audioPids = null;
|
|
440
|
-
state.touchHelper?.stop();
|
|
441
|
-
state.touchHelper = null;
|
|
442
|
-
state.booted = false;
|
|
443
|
-
state.streamWs?.close();
|
|
444
|
-
state.streamWs = null;
|
|
445
479
|
}
|
|
446
|
-
|
|
480
|
+
/** Resolves `false` when a newer boot or a relay loss retired this one during the chrome load, in which case
|
|
481
|
+
* nothing was stored and the caller abandons the boot. A closed socket alone continues as it always did —
|
|
482
|
+
* the relay loss that follows bumps the seq. */
|
|
483
|
+
async sendChromeData(state, device, seq) {
|
|
447
484
|
// `readyState`, not presence: this runs mid-boot, and a socket that closed since the entry guard
|
|
448
485
|
// takes the payload into a buffer nobody flushes while `device:ready` is dropped by `sendMsg`'s own
|
|
449
486
|
// check — leaving the caller with neither the data nor an answer.
|
|
450
487
|
if (this.ws?.readyState !== WebSocket.OPEN)
|
|
451
|
-
return;
|
|
488
|
+
return true;
|
|
452
489
|
// Stop the outgoing helper before dropping the reference. This used to leak a child process;
|
|
453
490
|
// now that a helper revives itself on death, an orphan would also keep respawning with
|
|
454
491
|
// nobody left holding a reference to stop it.
|
|
@@ -463,16 +500,28 @@ export class IOSAgent {
|
|
|
463
500
|
osVersion: device.osVersion ?? '',
|
|
464
501
|
},
|
|
465
502
|
});
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
this.
|
|
503
|
+
// Awaited where it used to block: a cold load is seconds of swift renders. A newer boot or a shutdown can
|
|
504
|
+
// land meanwhile, so the result is stored only after the seq is checked — otherwise a slow stale load
|
|
505
|
+
// would overwrite the chrome a faster newer boot already set, and the button path reads it.
|
|
506
|
+
const chrome = await this.chromeLoader.load(device.typeId ?? device.name);
|
|
507
|
+
if (seq !== state.bootSeq)
|
|
508
|
+
return false;
|
|
509
|
+
const ws = this.ws;
|
|
510
|
+
if (ws?.readyState !== WebSocket.OPEN)
|
|
511
|
+
return true;
|
|
512
|
+
state.loadedChrome = chrome;
|
|
513
|
+
if (!chrome)
|
|
514
|
+
return true;
|
|
515
|
+
this.sendOn(ws, {
|
|
470
516
|
type: 'session:chrome',
|
|
471
517
|
sessionId: state.sessionId,
|
|
472
|
-
payload:
|
|
518
|
+
payload: chrome,
|
|
473
519
|
});
|
|
520
|
+
return true;
|
|
474
521
|
}
|
|
475
|
-
|
|
522
|
+
/** `failures` counts the frameless runs before this one; only the restart in `pump` passes it, so a new
|
|
523
|
+
* boot starts from zero without any state to reset. */
|
|
524
|
+
startBinaryStream(state, streamWs, failures = 0) {
|
|
476
525
|
// H.264 is the default; opt out per-agent with TAPFLOW_IOS_CODEC=jpeg. It also needs
|
|
477
526
|
// a browser that reported it can decode it (device:boot acceptH264) — otherwise JPEG.
|
|
478
527
|
// Only on the ScreenCaptureStreamer path — the MjpegStreamer fallback is always JPEG, and now
|
|
@@ -520,11 +569,13 @@ export class IOSAgent {
|
|
|
520
569
|
state.captureStreamer?.requestKeyframe();
|
|
521
570
|
} };
|
|
522
571
|
const pump = async () => {
|
|
572
|
+
let delivered = false;
|
|
523
573
|
try {
|
|
524
574
|
while (true) {
|
|
525
575
|
const { value, done } = await reader.read();
|
|
526
576
|
if (done)
|
|
527
577
|
break;
|
|
578
|
+
delivered = true;
|
|
528
579
|
// Declare reorder=0 on the keyframe SPS so every decoder (WebCodecs, MSE,
|
|
529
580
|
// WASM) emits frames immediately instead of buffering the level's max DPB
|
|
530
581
|
// (~8 frames ≈ 250ms). Keyframe-only (SPS lives there); no-op otherwise.
|
|
@@ -543,7 +594,26 @@ export class IOSAgent {
|
|
|
543
594
|
if (metricsTimer)
|
|
544
595
|
clearInterval(metricsTimer);
|
|
545
596
|
if (state.streamReader === reader && streamWs.readyState === WebSocket.OPEN) {
|
|
546
|
-
|
|
597
|
+
const next = streamRestartPlan(failures, delivered);
|
|
598
|
+
if (next.failures === 2) {
|
|
599
|
+
logger.warn(`screen stream for ${state.deviceId} keeps ending before its first frame — backing off restarts`);
|
|
600
|
+
}
|
|
601
|
+
// Re-checked after the delay: a new boot, a shutdown, a relay loss or disconnect() all swap or clear
|
|
602
|
+
// the reader, or close the socket, in the meantime.
|
|
603
|
+
const restart = () => {
|
|
604
|
+
if (this._stopping || state.streamReader !== reader || streamWs.readyState !== WebSocket.OPEN)
|
|
605
|
+
return;
|
|
606
|
+
try {
|
|
607
|
+
this.startBinaryStream(state, streamWs, next.failures);
|
|
608
|
+
}
|
|
609
|
+
catch (e) {
|
|
610
|
+
logger.error(`screen stream for ${state.deviceId} could not restart: ${e instanceof Error ? e.message : String(e)}`);
|
|
611
|
+
}
|
|
612
|
+
};
|
|
613
|
+
if (next.delayMs === 0)
|
|
614
|
+
restart();
|
|
615
|
+
else
|
|
616
|
+
setTimeout(restart, next.delayMs).unref();
|
|
547
617
|
}
|
|
548
618
|
};
|
|
549
619
|
void pump();
|
|
@@ -604,7 +674,7 @@ export class IOSAgent {
|
|
|
604
674
|
// `requestId` is a parameter, never a field on `state`: `bootSeq` exists because two boots overlap,
|
|
605
675
|
// and a correlator hoisted onto shared state would answer the first request with the second's id.
|
|
606
676
|
// Optional because the relay's idle timer boots nothing — but every *browser* boot carries one.
|
|
607
|
-
async handleDeviceBoot(sessionId, deviceId, fullErase = false, acceptH264 = false, tier, requestId) {
|
|
677
|
+
async handleDeviceBoot(sessionId, deviceId, fullErase = false, acceptH264 = false, tier, requestId, automation = false) {
|
|
608
678
|
const state = this.deviceStates.get(sessionId);
|
|
609
679
|
// Split, because the two halves are not the same kind of nothing. No open control channel means the
|
|
610
680
|
// answer itself has nowhere to go, so this is the one abandonment that stays silent — and the caller
|
|
@@ -631,9 +701,12 @@ export class IOSAgent {
|
|
|
631
701
|
// superseded was gone as well. The caller then waited out the very deadline this change exists to
|
|
632
702
|
// end. `finally` is what stops `bootAbandon` outliving the boot that would have read it.
|
|
633
703
|
try {
|
|
634
|
-
|
|
704
|
+
state.streamReader?.cancel().catch(() => { });
|
|
635
705
|
state.streamReader = null;
|
|
636
706
|
state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
|
|
707
|
+
// A boot of a device that is already running starts its own capture below. Without stopping the
|
|
708
|
+
// last one here, every re-boot orphaned an audiotap-helper and left its poll running.
|
|
709
|
+
this.stopAudioCapture(state);
|
|
637
710
|
state.touchHelper?.stop();
|
|
638
711
|
state.touchHelper = null;
|
|
639
712
|
state.booted = false;
|
|
@@ -662,6 +735,9 @@ export class IOSAgent {
|
|
|
662
735
|
// This makes an unwanted reset *succeed* rather than fail, so it is only safe alongside the
|
|
663
736
|
// dashboard change that consumes the toggle after one use. The erase failing is what used
|
|
664
737
|
// to stand between a stale toggle and a wiped device.
|
|
738
|
+
// A runner still starting for this device would boot it back up mid-erase (`test-without-building` boots its
|
|
739
|
+
// destination), and one already serving would outlive the simulator it reads.
|
|
740
|
+
this.uiTreeReader.stopIfDevice(deviceId);
|
|
665
741
|
if (target.status !== 'shutdown')
|
|
666
742
|
await this.simctl.shutdown(deviceId);
|
|
667
743
|
// The shutdown is an await, so a newer boot for this device may have overtaken us while it
|
|
@@ -750,7 +826,10 @@ export class IOSAgent {
|
|
|
750
826
|
this.abandonBoot(state, seq, sessionId, requestId);
|
|
751
827
|
return;
|
|
752
828
|
}
|
|
753
|
-
this.sendChromeData(state, bootedDevice)
|
|
829
|
+
if (!(await this.sendChromeData(state, bootedDevice, seq))) {
|
|
830
|
+
this.abandonBoot(state, seq, sessionId, requestId);
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
754
833
|
const streamWs = await this.openStreamWs(state);
|
|
755
834
|
if (seq !== state.bootSeq) {
|
|
756
835
|
streamWs.close();
|
|
@@ -773,6 +852,9 @@ export class IOSAgent {
|
|
|
773
852
|
// riding inside it: a tester whose device just came up can arm the toggle in the same breath, and
|
|
774
853
|
// a boot that armed nothing still has to say so rather than leaving the control blank.
|
|
775
854
|
void this.reportNetworkState(sessionId);
|
|
855
|
+
// An automation client's first selector step would otherwise spend the runner's cold start inside its timeout.
|
|
856
|
+
if (automation)
|
|
857
|
+
this.uiTreeReader.warm(deviceId);
|
|
776
858
|
// Sync AppleKeyboards after ready — fire-and-forget so streaming isn't delayed.
|
|
777
859
|
// hw=Automatic lets the hardware layout follow the active input source on LANG1/CapsLock.
|
|
778
860
|
// By the time the user navigates to a text field the sync has already completed.
|
|
@@ -890,7 +972,7 @@ export class IOSAgent {
|
|
|
890
972
|
void this.network.forget(deviceId).catch((e) => {
|
|
891
973
|
logger.warn('could not clear the network rule for a shut-down device:', e.message);
|
|
892
974
|
});
|
|
893
|
-
|
|
975
|
+
state.streamReader?.cancel().catch(() => { });
|
|
894
976
|
state.streamReader = null;
|
|
895
977
|
state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
|
|
896
978
|
state.touchHelper?.stop();
|
|
@@ -899,8 +981,7 @@ export class IOSAgent {
|
|
|
899
981
|
state.streamWs?.close();
|
|
900
982
|
state.streamWs = null;
|
|
901
983
|
this.lastBundleIds.delete(deviceId);
|
|
902
|
-
//
|
|
903
|
-
// booted device must not kill another device's resident runner.
|
|
984
|
+
// Each device has its own tree runner; stop this one's, never another device's.
|
|
904
985
|
this.uiTreeReader.stopIfDevice(deviceId);
|
|
905
986
|
try {
|
|
906
987
|
await this.simctl.shutdown(deviceId);
|
|
@@ -1067,9 +1148,10 @@ export class IOSAgent {
|
|
|
1067
1148
|
handleRelayMessage(msg) {
|
|
1068
1149
|
switch (msg.type) {
|
|
1069
1150
|
case 'device:boot': {
|
|
1070
|
-
|
|
1151
|
+
// `external` and `automation` are added by the relay, never by the browser (see `DeviceBoot`).
|
|
1152
|
+
const { deviceId, resetMode, acceptH264, secureContext, external, automation } = msg.payload;
|
|
1071
1153
|
const sessionId = msg.sessionId;
|
|
1072
|
-
this.handleDeviceBoot(sessionId, deviceId, resetMode === 'full-erase', acceptH264 === true, { secureContext: !!secureContext, external: !!external }, msg.requestId)
|
|
1154
|
+
this.handleDeviceBoot(sessionId, deviceId, resetMode === 'full-erase', acceptH264 === true, { secureContext: !!secureContext, external: !!external }, msg.requestId, automation === true)
|
|
1073
1155
|
.catch((e) => logger.error('handleDeviceBoot failed:', e));
|
|
1074
1156
|
break;
|
|
1075
1157
|
}
|
|
@@ -1779,7 +1861,8 @@ export class IOSAgent {
|
|
|
1779
1861
|
return await this.installFrom(udid, source, tmpDir);
|
|
1780
1862
|
}
|
|
1781
1863
|
finally {
|
|
1782
|
-
|
|
1864
|
+
// Async for the same reason as the extraction: a large .app is a lot of files to unlink.
|
|
1865
|
+
await fs.promises.rm(tmpDir, { recursive: true, force: true });
|
|
1783
1866
|
}
|
|
1784
1867
|
}
|
|
1785
1868
|
/** Extraction + `simctl install`, given a file this machine can actually open. */
|
|
@@ -1794,11 +1877,12 @@ export class IOSAgent {
|
|
|
1794
1877
|
// `tmpDir`, and extracting beside it would put the two in one listing.
|
|
1795
1878
|
const outDir = path.join(tmpDir, 'x');
|
|
1796
1879
|
fs.mkdirSync(outDir, { recursive: true });
|
|
1797
|
-
//
|
|
1798
|
-
//
|
|
1880
|
+
// **Not `spawnSync`.** It held the event loop for as long as the extraction ran, which on a large build
|
|
1881
|
+
// or a busy Mac was long enough for the relay's heartbeat to end this agent's connection — and every
|
|
1882
|
+
// other session on the Mac froze with it.
|
|
1799
1883
|
const result = isTar
|
|
1800
|
-
?
|
|
1801
|
-
:
|
|
1884
|
+
? await runExtractor('tar', ['-xzf', filePath, '-C', outDir])
|
|
1885
|
+
: await runExtractor('unzip', ['-q', '-o', filePath, '-d', outDir]);
|
|
1802
1886
|
// 실행 자체 실패(tar/unzip 부재=ENOENT 등)는 아카이브 무효와 구분한다.
|
|
1803
1887
|
if (result.error) {
|
|
1804
1888
|
const code = result.error.code ?? result.error.message;
|
|
@@ -1809,7 +1893,7 @@ export class IOSAgent {
|
|
|
1809
1893
|
// evidence away, so a build that was fine read as corrupt — `unzip` had said
|
|
1810
1894
|
// `cannot find or open`, which names a missing file rather than a bad archive, and nobody
|
|
1811
1895
|
// could see it. Trimmed because the whole thing reaches a browser toast.
|
|
1812
|
-
const detail =
|
|
1896
|
+
const detail = result.stderr.trim().split('\n')[0]?.slice(0, 300);
|
|
1813
1897
|
throw new ValidationError((isTar
|
|
1814
1898
|
? 'tar.gz 압축 해제 실패 — 시뮬레이터용 .tar.gz(경로 탈출/심볼릭 링크 없는)인지 확인하세요.'
|
|
1815
1899
|
: 'zip 압축 해제 실패 — 시뮬레이터용 .app.zip 파일인지 확인하세요.')
|
|
@@ -2157,4 +2241,34 @@ export class IOSAgent {
|
|
|
2157
2241
|
return this.simctl.openUrl(await this.soleLiveDeviceId(), url);
|
|
2158
2242
|
}
|
|
2159
2243
|
}
|
|
2244
|
+
/**
|
|
2245
|
+
* Runs an archive tool without blocking, in the shape `spawnSync` returned: a spawn failure (the tool is
|
|
2246
|
+
* missing) in `error`, otherwise the exit `status` and what it wrote to stderr. stdout is discarded — the
|
|
2247
|
+
* tools run quiet, and nothing reads it.
|
|
2248
|
+
*/
|
|
2249
|
+
function runExtractor(cmd, args) {
|
|
2250
|
+
return new Promise((resolve) => {
|
|
2251
|
+
const child = spawn(cmd, args, { stdio: ['ignore', 'ignore', 'pipe'] });
|
|
2252
|
+
let stderr = '';
|
|
2253
|
+
// Decoded by the stream, not per chunk: a chunk boundary inside a multibyte character (a Korean file
|
|
2254
|
+
// name in unzip's message) would otherwise turn into replacement characters.
|
|
2255
|
+
child.stderr?.setEncoding('utf8');
|
|
2256
|
+
child.stderr?.on('data', (chunk) => { if (stderr.length < 64 * 1024)
|
|
2257
|
+
stderr += chunk; });
|
|
2258
|
+
child.once('error', (error) => resolve({ error, status: null, stderr }));
|
|
2259
|
+
child.once('close', (status) => resolve({ status, stderr }));
|
|
2260
|
+
});
|
|
2261
|
+
}
|
|
2262
|
+
/**
|
|
2263
|
+
* When to restart a screen stream that just ended. Only a run that delivered a frame resets the count — not
|
|
2264
|
+
* how long it lasted: the helper retries `device.io` and its ports for up to ~10s before it gives up, so a
|
|
2265
|
+
* duration rule would call every first-boot failure healthy. A simulator shut down from outside makes the
|
|
2266
|
+
* helper exit at once, which without this was a restart loop at full speed.
|
|
2267
|
+
*/
|
|
2268
|
+
export function streamRestartPlan(previousFailures, deliveredFrame) {
|
|
2269
|
+
if (deliveredFrame)
|
|
2270
|
+
return { failures: 0, delayMs: 0 };
|
|
2271
|
+
const failures = previousFailures + 1;
|
|
2272
|
+
return { failures, delayMs: failures <= 1 ? 0 : Math.min(250 * 2 ** (failures - 2), 5000) };
|
|
2273
|
+
}
|
|
2160
2274
|
//# sourceMappingURL=IOSAgent.js.map
|