appium-xcuitest-driver 12.22.1 → 12.22.2

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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [12.22.2](https://github.com/appium/appium-xcuitest-driver/compare/v12.22.1...v12.22.2) (2026-10-28)
2
+
3
+ ### Bug Fixes
4
+
5
+ * stop stale remote debugger listeners when switching webview contexts ([#3089](https://github.com/appium/appium-xcuitest-driver/issues/3089)) ([e963398](https://github.com/appium/appium-xcuitest-driver/commit/e96339839225581647e0f90ea0d98d0a825db2dd))
6
+
1
7
  ## [12.22.1](https://github.com/appium/appium-xcuitest-driver/compare/v12.22.0...v12.22.1) (2026-10-28)
2
8
 
3
9
  ### Miscellaneous Chores
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,cAAc,EAA6B,MAAM,wBAAwB,CAAC;AAOxG,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AAMtC,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAGjF,eAAO,MAAM,YAAY,aAAoB,CAAC;AAI9C;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAU9G;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/E;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAoCjG;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,GAAE,MAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6BlH;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,cAAc,EACpB,sBAAsB,EAAE,sBAAsB,GAC7C,OAAO,CAAC,IAAI,CAAC,CAqGf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA4BxF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7E;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,GAAG;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,EAClC,QAAQ,CAAC,EAAE,GAAG,EACd,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsGf;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC,CAazF;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,cAAc,EAA6B,MAAM,wBAAwB,CAAC;AAOxG,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AAMtC,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAGjF,eAAO,MAAM,YAAY,aAAoB,CAAC;AAI9C;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAU9G;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/E;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAoCjG;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,GAAE,MAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6BlH;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,cAAc,EACpB,sBAAsB,EAAE,sBAAsB,GAC7C,OAAO,CAAC,IAAI,CAAC,CAqGf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA4BxF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7E;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,GAAG;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,EAClC,QAAQ,CAAC,EAAE,GAAG,EACd,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC,CAazF;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF"}
@@ -395,14 +395,6 @@ export async function getCurrentContext() {
395
395
  * @throws {errors.NoSuchContextError} If the specified context does not exist
396
396
  */
397
397
  export async function setContext(name, callback, skipReadyCheck = false) {
398
- function alreadyInContext(desired, current) {
399
- return (desired === current ||
400
- (desired === null && current === NATIVE_WIN) ||
401
- (desired === NATIVE_WIN && current === null));
402
- }
403
- function isNativeContext(context) {
404
- return context === NATIVE_WIN || context === null;
405
- }
406
398
  // allow the full context list to be passed in
407
399
  const strName = String(typeof name === 'object' && name && 'id' in name ? name.id : name);
408
400
  this.log.debug(`Attempting to set context to '${strName || NATIVE_WIN}' from '${this.curContext ? this.curContext : NATIVE_WIN}'`);
@@ -418,63 +410,16 @@ export async function setContext(name, callback, skipReadyCheck = false) {
418
410
  await notifyBiDiContextChange.bind(this)();
419
411
  return;
420
412
  }
421
- // switching into a webview context
422
- // if contexts have not already been retrieved, get them
423
- if (this.contexts === undefined) {
424
- await this.getContexts();
425
- }
426
- let contextId = strName.replace(WEBVIEW_BASE, '');
427
- if (contextId === '') {
428
- // allow user to pass in "WEBVIEW" without an index
429
- // the second context will be the first webview as
430
- // the first is always NATIVE_APP
431
- contextId = this.contexts[1];
432
- }
433
- if (!this.contexts.includes(contextId)) {
434
- throw new errors.NoSuchContextError();
435
- }
436
- const oldContext = this.curContext;
437
- this.curContext = this.curWindowHandle = contextId;
438
- // `contextId` will be in the form of `appId.pageId` in this case
439
- const [appIdKey, pageIdKey] = contextId.split('.').map((id) => parseInt(id, 10));
440
- try {
441
- this.selectingNewPage = true;
442
- await this.remote.selectPage(appIdKey, pageIdKey, skipReadyCheck);
443
- await notifyBiDiContextChange.bind(this)();
444
- }
445
- catch (err) {
446
- this.curContext = this.curWindowHandle = oldContext;
447
- throw err;
448
- }
449
- finally {
450
- this.selectingNewPage = false;
451
- }
413
+ const contextId = await resolveWebviewContextId.call(this, strName);
414
+ await stopPerformanceLog.call(this);
415
+ await selectWebviewPage.call(this, contextId, skipReadyCheck);
452
416
  // attempt to start performance logging, if requested
453
417
  if (this.opts.enablePerformanceLogging && this._remote) {
454
- const context = this.curContext;
455
- this.log.debug(`Starting performance log on '${context}'`);
456
- this.logs.performance = assignBiDiLogListener(this.eventEmitter, new IOSPerformanceLog({
457
- remoteDebugger: this.remote,
458
- log: this.log,
459
- }), {
460
- type: 'performance',
461
- context,
462
- })[0];
463
- await this.logs.performance?.startCapture();
418
+ await startPerformanceLog.call(this, contextId);
464
419
  }
465
420
  // start safari logging if the logs handlers are active
466
421
  if (name && name !== NATIVE_WIN && this.logs) {
467
- const { safariConsole, safariNetwork } = this.logs;
468
- if (safariConsole) {
469
- const consoleLog = safariConsole;
470
- const eventListener = (error, event) => consoleLog.onConsoleLogEvent(error, event);
471
- this.remote.startConsole(eventListener);
472
- }
473
- if (safariNetwork) {
474
- const networkLog = safariNetwork;
475
- const eventListener = (error, event, method) => networkLog.onNetworkEvent(error, event, method);
476
- this.remote.startNetwork(eventListener);
477
- }
422
+ restartSafariLogs.call(this);
478
423
  }
479
424
  }
480
425
  /**
@@ -541,4 +486,119 @@ function isUrlIgnored(url, safariIgnoreWebHostnames) {
541
486
  }
542
487
  return false;
543
488
  }
489
+ /**
490
+ * Checks if the desired context is the current one, treating `null` and `NATIVE_APP` as equal.
491
+ *
492
+ * @param desired - The context being switched to
493
+ * @param current - The current context
494
+ */
495
+ function alreadyInContext(desired, current) {
496
+ return (desired === current || (desired === null && current === NATIVE_WIN) || (desired === NATIVE_WIN && current === null));
497
+ }
498
+ /**
499
+ * Checks if the given context is the native one.
500
+ *
501
+ * @param context - The context to check
502
+ */
503
+ function isNativeContext(context) {
504
+ return context === NATIVE_WIN || context === null;
505
+ }
506
+ /**
507
+ * Resolves the webview context id to switch to, retrieving the contexts first if needed.
508
+ * A bare `WEBVIEW` name resolves to the first webview, which is the second context
509
+ * since the first one is always `NATIVE_APP`.
510
+ *
511
+ * @param name - The requested context name
512
+ * @throws {errors.NoSuchContextError} If the resolved context does not exist
513
+ */
514
+ async function resolveWebviewContextId(name) {
515
+ if (this.contexts === undefined) {
516
+ await this.getContexts();
517
+ }
518
+ let contextId = name.replace(WEBVIEW_BASE, '');
519
+ if (contextId === '') {
520
+ contextId = this.contexts[1];
521
+ }
522
+ if (!this.contexts.includes(contextId)) {
523
+ throw new errors.NoSuchContextError();
524
+ }
525
+ return contextId;
526
+ }
527
+ /**
528
+ * Stops the current performance log and detaches its listeners, so it neither keeps
529
+ * capturing nor forwards events after a new one is created for the next webview.
530
+ */
531
+ async function stopPerformanceLog() {
532
+ const performanceLog = this.logs.performance;
533
+ if (!performanceLog?.isCapturing) {
534
+ return;
535
+ }
536
+ try {
537
+ await performanceLog.stopCapture();
538
+ }
539
+ catch (err) {
540
+ this.log.warn(`Failed to stop the previous performance log: ${err.message}`);
541
+ }
542
+ performanceLog.removeAllListeners();
543
+ }
544
+ /**
545
+ * Selects the page behind the given webview context and makes it current.
546
+ * The context id is in the form of `appId.pageId`. The previous context is restored
547
+ * if the page cannot be selected.
548
+ *
549
+ * @param contextId - The webview context id
550
+ * @param skipReadyCheck - Whether to skip waiting for the page to be ready
551
+ */
552
+ async function selectWebviewPage(contextId, skipReadyCheck) {
553
+ const oldContext = this.curContext;
554
+ this.curContext = this.curWindowHandle = contextId;
555
+ const [appIdKey, pageIdKey] = contextId.split('.').map((id) => parseInt(id, 10));
556
+ try {
557
+ this.selectingNewPage = true;
558
+ await this.remote.selectPage(appIdKey, pageIdKey, skipReadyCheck);
559
+ await notifyBiDiContextChange.bind(this)();
560
+ }
561
+ catch (err) {
562
+ this.curContext = this.curWindowHandle = oldContext;
563
+ throw err;
564
+ }
565
+ finally {
566
+ this.selectingNewPage = false;
567
+ }
568
+ }
569
+ /**
570
+ * Creates a performance log for the given webview context and starts capturing.
571
+ *
572
+ * @param context - The webview context id
573
+ */
574
+ async function startPerformanceLog(context) {
575
+ this.log.debug(`Starting performance log on '${context}'`);
576
+ this.logs.performance = assignBiDiLogListener(this.eventEmitter, new IOSPerformanceLog({
577
+ remoteDebugger: this.remote,
578
+ log: this.log,
579
+ }), {
580
+ type: 'performance',
581
+ context,
582
+ })[0];
583
+ await this.logs.performance?.startCapture();
584
+ }
585
+ /**
586
+ * Re-registers the Safari console and network listeners on the remote debugger,
587
+ * stopping the previous ones first so each event is recorded once.
588
+ */
589
+ function restartSafariLogs() {
590
+ const { safariConsole, safariNetwork } = this.logs;
591
+ if (safariConsole) {
592
+ const consoleLog = safariConsole;
593
+ const eventListener = (error, event) => consoleLog.onConsoleLogEvent(error, event);
594
+ this.remote.stopConsole();
595
+ this.remote.startConsole(eventListener);
596
+ }
597
+ if (safariNetwork) {
598
+ const networkLog = safariNetwork;
599
+ const eventListener = (error, event, method) => networkLog.onNetworkEvent(error, event, method);
600
+ this.remote.stopNetwork();
601
+ this.remote.startNetwork(eventListener);
602
+ }
603
+ }
544
604
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"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"}
@@ -464,17 +464,6 @@ export async function setContext(
464
464
  callback?: any,
465
465
  skipReadyCheck: boolean = false,
466
466
  ): Promise<void> {
467
- function alreadyInContext(desired: string | null, current: string | null): boolean {
468
- return (
469
- desired === current ||
470
- (desired === null && current === NATIVE_WIN) ||
471
- (desired === NATIVE_WIN && current === null)
472
- );
473
- }
474
- function isNativeContext(context: string | null): boolean {
475
- return context === NATIVE_WIN || context === null;
476
- }
477
-
478
467
  // allow the full context list to be passed in
479
468
  const strName = String(typeof name === 'object' && name && 'id' in name ? name.id : name);
480
469
 
@@ -497,73 +486,18 @@ export async function setContext(
497
486
  return;
498
487
  }
499
488
 
500
- // switching into a webview context
501
-
502
- // if contexts have not already been retrieved, get them
503
- if (this.contexts === undefined) {
504
- await this.getContexts();
505
- }
506
-
507
- let contextId = strName.replace(WEBVIEW_BASE, '');
508
- if (contextId === '') {
509
- // allow user to pass in "WEBVIEW" without an index
510
- // the second context will be the first webview as
511
- // the first is always NATIVE_APP
512
- contextId = (this.contexts as string[])[1];
513
- }
514
- if (!this.contexts.includes(contextId)) {
515
- throw new errors.NoSuchContextError();
516
- }
517
-
518
- const oldContext = this.curContext;
519
- this.curContext = this.curWindowHandle = contextId;
520
-
521
- // `contextId` will be in the form of `appId.pageId` in this case
522
- const [appIdKey, pageIdKey] = contextId.split('.').map((id) => parseInt(id, 10));
523
- try {
524
- this.selectingNewPage = true;
525
- await this.remote.selectPage(appIdKey, pageIdKey, skipReadyCheck);
526
- await notifyBiDiContextChange.bind(this)();
527
- } catch (err) {
528
- this.curContext = this.curWindowHandle = oldContext;
529
- throw err;
530
- } finally {
531
- this.selectingNewPage = false;
532
- }
489
+ const contextId = await resolveWebviewContextId.call(this, strName);
490
+ await stopPerformanceLog.call(this);
491
+ await selectWebviewPage.call(this, contextId, skipReadyCheck);
533
492
 
534
493
  // attempt to start performance logging, if requested
535
494
  if (this.opts.enablePerformanceLogging && this._remote) {
536
- const context = this.curContext;
537
- this.log.debug(`Starting performance log on '${context}'`);
538
- this.logs.performance = assignBiDiLogListener(
539
- this.eventEmitter,
540
- new IOSPerformanceLog({
541
- remoteDebugger: this.remote,
542
- log: this.log,
543
- }),
544
- {
545
- type: 'performance',
546
- context,
547
- },
548
- )[0];
549
- await this.logs.performance?.startCapture();
495
+ await startPerformanceLog.call(this, contextId);
550
496
  }
551
497
 
552
498
  // start safari logging if the logs handlers are active
553
499
  if (name && name !== NATIVE_WIN && this.logs) {
554
- const {safariConsole, safariNetwork} = this.logs;
555
- if (safariConsole) {
556
- const consoleLog = safariConsole as SafariConsoleLog;
557
- const eventListener = (error?: Error, event?: StringRecord) =>
558
- consoleLog.onConsoleLogEvent(error, event as unknown as SafariConsoleEntry);
559
- this.remote.startConsole(eventListener);
560
- }
561
- if (safariNetwork) {
562
- const networkLog = safariNetwork as SafariNetworkLog;
563
- const eventListener = (error?: Error, event?: StringRecord, method?: string) =>
564
- networkLog.onNetworkEvent(error, event as unknown as SafariNetworkLogEntry, method);
565
- this.remote.startNetwork(eventListener);
566
- }
500
+ restartSafariLogs.call(this);
567
501
  }
568
502
  }
569
503
 
@@ -633,3 +567,132 @@ function isUrlIgnored(url: string, safariIgnoreWebHostnames?: string): boolean {
633
567
  }
634
568
  return false;
635
569
  }
570
+
571
+ /**
572
+ * Checks if the desired context is the current one, treating `null` and `NATIVE_APP` as equal.
573
+ *
574
+ * @param desired - The context being switched to
575
+ * @param current - The current context
576
+ */
577
+ function alreadyInContext(desired: string | null, current: string | null): boolean {
578
+ return (
579
+ desired === current || (desired === null && current === NATIVE_WIN) || (desired === NATIVE_WIN && current === null)
580
+ );
581
+ }
582
+
583
+ /**
584
+ * Checks if the given context is the native one.
585
+ *
586
+ * @param context - The context to check
587
+ */
588
+ function isNativeContext(context: string | null): boolean {
589
+ return context === NATIVE_WIN || context === null;
590
+ }
591
+
592
+ /**
593
+ * Resolves the webview context id to switch to, retrieving the contexts first if needed.
594
+ * A bare `WEBVIEW` name resolves to the first webview, which is the second context
595
+ * since the first one is always `NATIVE_APP`.
596
+ *
597
+ * @param name - The requested context name
598
+ * @throws {errors.NoSuchContextError} If the resolved context does not exist
599
+ */
600
+ async function resolveWebviewContextId(this: XCUITestDriver, name: string): Promise<string> {
601
+ if (this.contexts === undefined) {
602
+ await this.getContexts();
603
+ }
604
+
605
+ let contextId = name.replace(WEBVIEW_BASE, '');
606
+ if (contextId === '') {
607
+ contextId = (this.contexts as string[])[1];
608
+ }
609
+ if (!this.contexts.includes(contextId)) {
610
+ throw new errors.NoSuchContextError();
611
+ }
612
+ return contextId;
613
+ }
614
+
615
+ /**
616
+ * Stops the current performance log and detaches its listeners, so it neither keeps
617
+ * capturing nor forwards events after a new one is created for the next webview.
618
+ */
619
+ async function stopPerformanceLog(this: XCUITestDriver): Promise<void> {
620
+ const performanceLog = this.logs.performance;
621
+ if (!performanceLog?.isCapturing) {
622
+ return;
623
+ }
624
+ try {
625
+ await performanceLog.stopCapture();
626
+ } catch (err) {
627
+ this.log.warn(`Failed to stop the previous performance log: ${(err as Error).message}`);
628
+ }
629
+ performanceLog.removeAllListeners();
630
+ }
631
+
632
+ /**
633
+ * Selects the page behind the given webview context and makes it current.
634
+ * The context id is in the form of `appId.pageId`. The previous context is restored
635
+ * if the page cannot be selected.
636
+ *
637
+ * @param contextId - The webview context id
638
+ * @param skipReadyCheck - Whether to skip waiting for the page to be ready
639
+ */
640
+ async function selectWebviewPage(this: XCUITestDriver, contextId: string, skipReadyCheck: boolean): Promise<void> {
641
+ const oldContext = this.curContext;
642
+ this.curContext = this.curWindowHandle = contextId;
643
+
644
+ const [appIdKey, pageIdKey] = contextId.split('.').map((id) => parseInt(id, 10));
645
+ try {
646
+ this.selectingNewPage = true;
647
+ await this.remote.selectPage(appIdKey, pageIdKey, skipReadyCheck);
648
+ await notifyBiDiContextChange.bind(this)();
649
+ } catch (err) {
650
+ this.curContext = this.curWindowHandle = oldContext;
651
+ throw err;
652
+ } finally {
653
+ this.selectingNewPage = false;
654
+ }
655
+ }
656
+
657
+ /**
658
+ * Creates a performance log for the given webview context and starts capturing.
659
+ *
660
+ * @param context - The webview context id
661
+ */
662
+ async function startPerformanceLog(this: XCUITestDriver, context: string): Promise<void> {
663
+ this.log.debug(`Starting performance log on '${context}'`);
664
+ this.logs.performance = assignBiDiLogListener(
665
+ this.eventEmitter,
666
+ new IOSPerformanceLog({
667
+ remoteDebugger: this.remote,
668
+ log: this.log,
669
+ }),
670
+ {
671
+ type: 'performance',
672
+ context,
673
+ },
674
+ )[0];
675
+ await this.logs.performance?.startCapture();
676
+ }
677
+
678
+ /**
679
+ * Re-registers the Safari console and network listeners on the remote debugger,
680
+ * stopping the previous ones first so each event is recorded once.
681
+ */
682
+ function restartSafariLogs(this: XCUITestDriver): void {
683
+ const {safariConsole, safariNetwork} = this.logs;
684
+ if (safariConsole) {
685
+ const consoleLog = safariConsole as SafariConsoleLog;
686
+ const eventListener = (error?: Error, event?: StringRecord) =>
687
+ consoleLog.onConsoleLogEvent(error, event as unknown as SafariConsoleEntry);
688
+ this.remote.stopConsole();
689
+ this.remote.startConsole(eventListener);
690
+ }
691
+ if (safariNetwork) {
692
+ const networkLog = safariNetwork as SafariNetworkLog;
693
+ const eventListener = (error?: Error, event?: StringRecord, method?: string) =>
694
+ networkLog.onNetworkEvent(error, event as unknown as SafariNetworkLogEntry, method);
695
+ this.remote.stopNetwork();
696
+ this.remote.startNetwork(eventListener);
697
+ }
698
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-xcuitest-driver",
3
- "version": "12.22.1",
3
+ "version": "12.22.2",
4
4
  "description": "Appium driver for iOS using XCUITest for backend",
5
5
  "keywords": [
6
6
  "appium",