microsoft / microsoft/playwright-java
[Bug]: Edge channel browser process crashes/closes page context during cross-origin SAML/OIDC redirect in v1.62.0
まだ誰も着手していません。
- 主要言語
- Java
- スター
- 1.6k
- フォーク
- 298
- 平均マージ
- 3日 2時間
- マージ済み PR(30日)
- 14
説明
Version
1.62.0
Steps to reproduce
- Configure Playwright 1.62.0 in Java using the Microsoft Edge channel:
BrowserType.LaunchOptions launchOptions = new BrowserType.LaunchOptions()
.setHeadless(false)
.setChannel("msedge");
-
Navigate to an enterprise application URL protected by an OIDC / SAML 2.0 gateway (IBM Security Access Manager integrated with Microsoft Entra ID / Azure AD).
-
Fill in user credentials and submit the form.
-
On the Entra ID "Keep Me Signed In" (KMSI) screen (login.microsoftonline.com/kmsi), click the final submit button (#idSIButton9).
-
Observe the browser context behavior as Entra ID executes the top-level POST redirect back to the application's OIDC authorization endpoint (/oidc/endpoint/default/authorize).
Expected behavior
The Edge browser tab should process the top-level OIDC authorization redirect cleanly, remain open, and navigate to the target application URL.
Actual behavior
During the SAML/OIDC POST redirect handoff immediately following the KMSI submission, the active browser page target closes unexpectedly (PageImpl.didClose event fires). Any subsequent Playwright navigation waiter or frame listener fails immediately with:
com.microsoft.playwright.PlaywrightException: Target page, context or browser has been closed
Note: This failure is isolated strictly to the Edge channel binary on 1.62.0. Running the exact same test flow on 1.62.0 using bundled Chromium, Google Chrome (chrome), or Firefox (firefox) works as expected without closing the page target.
Additional context
-
Regression Window: Works cleanly in Playwright 1.59.0 (all channels). Fails in 1.62.0 when using setChannel("msedge").
-
Telemetry Observation: Console logs show Microsoft BSSO telemetry attempting native broker calls prior to the crash: BSSO Telemetry: {"result":"Error","error":"bssoNotSupported"... "window.navigator.msLaunchUri is not available"}.
Trace Snippet:
[WARN] Redirect to: https://login.microsoftonline.com/kmsi
[WARN] Redirect to: https://miloginwidev.michigan.gov/oidc/endpoint/default/authorize...
[WARN] Page closed from thread: main
at com.microsoft.playwright.impl.PageImpl.didClose(PageImpl.java:255)
at com.microsoft.playwright.impl.PageImpl.handleEvent(PageImpl.java:242)
at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:314)
at com.microsoft.playwright.impl.FrameImpl.waitForURLImpl(FrameImpl.java:1044)
at com.microsoft.playwright.impl.PageImpl.waitForURL(PageImpl.java:1647)
com.microsoft.playwright.PlaywrightException: Target page, context or browser has been closed
- Due to state government security policies and internal network constraints, live test credentials and internal domain URLs cannot be publicly provided.
Environment
- Playwright Version: 1.62.0
- Operating System: Windows 11
- Browser: Microsoft Edge (Channel: msedge) > playwright chromium v1234
- Language/JDK: Java 17
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
setChannel("msedge") を使用する Java の起動構成から始め、Entra ID の KMSI 画面を経由する OIDC/SAML リダイレクトフローを再現します。PageImpl.didClose のトレースを失敗シグナルとして使用し、Edge 1.62.0 とバンドルされた Chromium、Chrome、Firefox、Playwright 1.59.0 を比較します。リダイレクト後も Edge のページが開いたままで、対象アプリケーションに到達すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- testing-qa
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100