Skip to content

fix(modal): prevent browser hang when using ModalController in Angular #17722

fix(modal): prevent browser hang when using ModalController in Angular

fix(modal): prevent browser hang when using ModalController in Angular #17722

Triggered via pull request December 10, 2025 21:01
@ShaneKShaneK
synchronize #30845
IONIC-60
Status Success
Total duration 10m 12s
Artifacts 27

build.yml

on: pull_request
build-react
56s
build-react
build-vue
38s
build-vue
Matrix: test-core-screenshot
build-angular
1m 5s
build-angular
build-angular-server
36s
build-angular-server
test-core-clean-build
21s
test-core-clean-build
test-core-lint
51s
test-core-lint
test-core-spec
47s
test-core-spec
build-react-router
25s
build-react-router
build-vue-router
35s
build-vue-router
verify-screenshots
3s
verify-screenshots
Matrix: test-angular-e2e
Matrix: test-react-e2e
Matrix: test-react-router-e2e
Matrix: test-vue-e2e
verify-test-angular-e2e
3s
verify-test-angular-e2e
verify-test-react-e2e
2s
verify-test-react-e2e
verify-test-react-router-e2e
2s
verify-test-react-router-e2e
verify-test-vue-e2e
2s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

4 errors and 20 notices
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups: src/components/radio/test/a11y/radio.e2e.ts#L122
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 120 | 121 | await pageUtils.pressKeys('Tab'); > 122 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 123 | 124 | await pageUtils.pressKeys('Tab'); 125 | await expect(secondGroupRadios.nth(0)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:122:47
[Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load: src/components/router/test/guards/router.e2e.ts#L9
1) [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load Error: expect(received).toContain(expected) // indexOf Expected substring: "#/child/1" Received string: "http://localhost:3333/src/components/router/test/guards#/guard-initial-page?ionic:_testing=true&ionic:mode=ios&rtl=undefined&palette=light" 7 | await page.goto(`/src/components/router/test/guards#/guard-initial-page`, config); 8 | > 9 | expect(page.url()).toContain('#/child/1'); | ^ 10 | }); 11 | }); 12 | }); at /ionic/src/components/router/test/guards/router.e2e.ts:9:26
[Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:91:9 › toast: swipe gesture with middle position - ios/ltr › should swipe up to dismiss: src/components/toast/test/swipe-gesture/toast.e2e.ts#L0
1) [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:91:9 › toast: swipe gesture with middle position - ios/ltr › should swipe up to dismiss Test timeout of 30000ms exceeded.
🎭 Playwright Run Summary
216 skipped 259 passed (2.4m)
🎭 Playwright Run Summary
4 skipped 511 passed (3.2m)
🎭 Playwright Run Summary
1 skipped 537 passed (3.2m)
🎭 Playwright Run Summary
1 skipped 534 passed (3.2m)
🎭 Playwright Run Summary
535 passed (3.0m)
🎭 Playwright Run Summary
212 skipped 313 passed (3.6m)
🎭 Playwright Run Summary
2 flaky [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group 4 skipped 513 passed (3.9m)
🎭 Playwright Run Summary
648 passed (4.3m)
🎭 Playwright Run Summary
10 skipped 503 passed (5.1m)
🎭 Playwright Run Summary
14 skipped 401 passed (5.2m)
🎭 Playwright Run Summary
5 skipped 513 passed (5.2m)
🎭 Playwright Run Summary
1 skipped 538 passed (6.2m)
🎭 Playwright Run Summary
1 skipped 528 passed (6.3m)
🎭 Playwright Run Summary
2 skipped 517 passed (6.9m)
🎭 Playwright Run Summary
14 skipped 498 passed (7.0m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load 10 skipped 528 passed (6.8m)
🎭 Playwright Run Summary
4 skipped 537 passed (7.2m)
🎭 Playwright Run Summary
1 flaky [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:91:9 › toast: swipe gesture with middle position - ios/ltr › should swipe up to dismiss 5 skipped 572 passed (7.2m)
🎭 Playwright Run Summary
5 skipped 518 passed (7.3m)
🎭 Playwright Run Summary
7 skipped 510 passed (7.8m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular Expired
667 KB
sha256:0e6bd6d892a6ad20079649f9ba87f41d1d12f81b2dd5301023fbd0c9118dbc29
ionic-angular-server Expired
8.55 KB
sha256:6fc32765f328e7d3b4dfd5c98a868eff14f1602f47f12d755e4d876e5b4e0471
ionic-core Expired
4.57 MB
sha256:d29437f31cf24893b3cf15dd226b3f65ab08e4444f8b660c9f934c8a7cefa315
ionic-react Expired
211 KB
sha256:e97c0a5eecc5b3fcc1b14b9e5639ba2a31157cfa62afa58f0141a083607b0e29
ionic-react-router Expired
27.9 KB
sha256:3a01da2f5b797e3a8ea30d8cb6696104e9cccfe98867d6909a2fa543749154df
ionic-vue Expired
233 KB
sha256:da27bf995e82d313e5f857a5dd755759110d0d5ed73194144ef1b9b20e5d4648
ionic-vue-router Expired
17.1 KB
sha256:1ec882292321ef9c6c664ce68e94b0ed80bf0b0201fef0f1e7a33f5d40b84ba6
test-results-1-20 Expired
444 KB
sha256:6faa8fca613588f686b6cb8968236dbec0eabaeb68f9737a17c10232971aec97
test-results-10-20 Expired
460 KB
sha256:fca3ee7ea6af86e1101f4caede0f24b195c2a1c544070a9046da4b9485301c3c
test-results-11-20 Expired
1.62 MB
sha256:b05444f0a84c1ba0b204114c6421a5b6453e88525a08e166d4365a208ba32e27
test-results-12-20 Expired
442 KB
sha256:5d58cee5df4cb382d7dce8689448c4f450e704dfe180d8d31dd460836db16f3e
test-results-13-20 Expired
450 KB
sha256:ab42260da04487f06161d0e27014eeaad72c843576e27be0ba3abe7597cfc44c
test-results-14-20 Expired
407 KB
sha256:2771fdc9319838b82eef18c8902eb621c8c4ab0c5b72ba3540a64f54a85f10d6
test-results-15-20 Expired
430 KB
sha256:b9a3294cc84c3b14fdfa58e4ba74c90bbe8db652d94440cc6fbdee8bc2ca301f
test-results-16-20 Expired
428 KB
sha256:912c790ed556af457fe4991f2e1761c3332cbec443d05a402c86dfd19cc5a5b5
test-results-17-20 Expired
531 KB
sha256:42ad3a8d6cbaed692b6c75f602172d303177ca5cd354be3228b67516d223a1f3
test-results-18-20 Expired
1.25 MB
sha256:ea7af0e4ccc4eb13450859045b9e0ef3be58cb93bdf4fcda06a5f353c3da2fa9
test-results-19-20 Expired
397 KB
sha256:da346a58a13f4624b7c5210ed51d5a45ee6aeb068df30bf41176e9d18dbd4f95
test-results-2-20 Expired
472 KB
sha256:8e3b2930afb48319e5f740fd017a769313dfcdd080dea803db690802b4819761
test-results-20-20 Expired
360 KB
sha256:b53ded639d207a984f09f8109abba9011115d5945a7a25e06bd30ad3d3d93f7e
test-results-3-20 Expired
431 KB
sha256:82a788ff85927066c46b1421d4ce80fcb7b7c4a3446d55a130f3feb9fefb5763
test-results-4-20 Expired
522 KB
sha256:8962179591f6a35cc629e342f13853578012907c9784d0db445adfecb4f027cb
test-results-5-20 Expired
456 KB
sha256:cb35fcbcd3ee28f092d0c2745deb1ef7264a2e08439ad858a108bc0a2087b348
test-results-6-20 Expired
1.43 MB
sha256:856f5932489dcd77c3c4998af060ca7bd7afdbed04fd773f24034722f9b24ea6
test-results-7-20 Expired
352 KB
sha256:3e2dee554df69fd0f55e4993d2c5191995c3d5157ab52097eb7509cb5691f00d
test-results-8-20 Expired
429 KB
sha256:a896f479b22a011c64ecf0bdb81d93503eb408dbcbdc2e67a463750d69620f74
test-results-9-20 Expired
435 KB
sha256:7096579c77de4cc6bf115dbaaa696a878d20db0f45c708029487f257374ba893