Closed erhuan-msft closed 2 years ago
Minimal repro:
const { chromium } = require('@playwright/test');
(async () => {
const browser = await chromium.launch({
executablePath: process.env.CRPATH,
});
const context = await browser.newContext({
colorScheme: 'dark'
});
const page = await context.newPage();
await page.emulateMedia({ forcedColors: "active" });
await page.goto('data:text/html,<title>Hello world!</title>');
// await page.goto('https://playwright.dev'); // original URL
await browser.close();
})().catch(err => {
console.error(err);
process.exit(1);
});
Bisect range: https://chromium.googlesource.com/chromium/src/+log/d44d19579e3917313f3f474977c731c243d0a572..b06485ddf7ea9f0100ef22b14e420c4a5bdf8d27 Related CR: https://chromium.googlesource.com/chromium/src/+/070a8cb8a3b153b4df96e54abd8f315d68d09cde Upstream bug report: https://bugs.chromium.org/p/chromium/issues/detail?id=1323216
Full stack trace:
root@a066cfa60242:/tmp# DEBUG=pw:browser node test.js
pw:browser <launching> /ms-playwright/chromium_with_symbols-1000/chrome-linux/chrome --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-Id98Fv --remote-debugging-pipe --no-startup-window +0ms
pw:browser <launched> pid=7098 +5ms
pw:browser [pid=7098][err] [0506/111418.513664:WARNING:discardable_shared_memory_manager.cc(197)] Less than 64MB of free space in temporary directory for shared memory files: 0 +66ms
pw:browser [pid=7098][err] [0506/111418.520646:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory +6ms
pw:browser [pid=7098][err] [0506/111418.520742:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory +0ms
pw:browser [pid=7098][err] [0506/111418.527096:WARNING:bluez_dbus_manager.cc(248)] Floss manager not present, cannot set Floss enable/disable. +6ms
pw:browser [pid=7098][err] [0506/111418.552004:WARNING:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process. +25ms
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/101.0.4951.15 Safari/537.36
pw:browser [pid=7098][err] Received signal 11 SEGV_MAPERR 000000000570 +83ms
pw:browser [pid=7098][err] #0 0x5627e6c15d79 base::debug::CollectStackTrace() +17ms
pw:browser [pid=7098][err] #1 0x5627e6b7a7e3 base::debug::StackTrace::StackTrace() +16ms
pw:browser [pid=7098][err] #2 0x5627e6c15881 base::debug::(anonymous namespace)::StackDumpSignalHandler() +17ms
pw:browser [pid=7098][err] #3 0x7f54b02733c0 (/usr/lib/x86_64-linux-gnu/libpthread-2.31.so+0x143bf) +0ms
pw:browser [pid=7098][err] #4 0x5627ea361139 blink::LocalFrameView::SetUseColorAdjustBackground() +35ms
pw:browser [pid=7098][err] #5 0x5627ea3e0b2a blink::StyleEngine::PlatformColorsChanged() +37ms
pw:browser [pid=7098][err] #6 0x5627ea3dcd5d blink::StyleEngine::UpdateColorScheme() +32ms
pw:browser [pid=7098][err] #7 0x5627ea2d37cb blink::Document::Document() +33ms
pw:browser [pid=7098][err] #8 0x5627ea7ae1a4 blink::HTMLDocument::HTMLDocument() +32ms
pw:browser [pid=7098][err] #9 0x5627ea5d935e blink::DocumentInit::CreateDocument() +32ms
pw:browser [pid=7098][err] #10 0x5627ea31acb2 blink::LocalDOMWindow::InstallNewDocument() +30ms
pw:browser [pid=7098][err] #11 0x5627eabba038 blink::DocumentLoader::CommitNavigation() +35ms
pw:browser [pid=7098][err] #12 0x5627eabd0b9c blink::FrameLoader::CommitDocumentLoader() +35ms
pw:browser [pid=7098][err] #13 0x5627eabd3484 blink::FrameLoader::CommitNavigation() +35ms
pw:browser [pid=7098][err] #14 0x5627ea6f8449 blink::WebLocalFrameImpl::CommitNavigation() +33ms
pw:browser [pid=7098][err] #15 0x5627eb4d8756 content::RenderFrameImpl::CommitNavigationWithParams() +38ms
pw:browser [pid=7098][err] #16 0x5627eb4f112f base::internal::FunctorTraits<>::Invoke<>() +41ms
pw:browser [pid=7098][err] #17 0x5627eb4f0f54 base::internal::Invoker<>::RunOnce() +43ms
pw:browser [pid=7098][err] #18 0x5627eb4d788b content::RenderFrameImpl::CommitNavigation() +34ms
pw:browser [pid=7098][err] #19 0x5627eb81e917 content::NavigationClient::CommitNavigation() +35ms
pw:browser [pid=7098][err] #20 0x5627e41b460a content::mojom::NavigationClientStubDispatch::AcceptWithResponder() +4ms
pw:browser [pid=7098][err] #21 0x5627e6f56856 mojo::InterfaceEndpointClient::HandleValidatedMessage() +18ms
pw:browser [pid=7098][err] #22 0x5627e6f5b403 mojo::MessageDispatcher::Accept() +16ms
pw:browser [pid=7098][err] #23 0x5627e6f57c1a mojo::InterfaceEndpointClient::HandleIncomingMessage() +16ms
pw:browser [pid=7098][err] #24 0x5627e7631702 IPC::(anonymous namespace)::ChannelAssociatedGroupController::AcceptOnEndpointThread() +59ms
pw:browser [pid=7098][err] #25 0x5627e6f58fc7 base::internal::Invoker<>::RunOnce() +36ms
pw:browser [pid=7098][err] #26 0x5627e6bd3fb0 base::TaskAnnotator::RunTaskImpl() +91ms
pw:browser [pid=7098][err] #27 0x5627e6be7ed9 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl() +27ms
pw:browser [pid=7098][err] #28 0x5627e6be7bfc base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() +20ms
pw:browser [pid=7098][err] #29 0x5627e6be83d2 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() +17ms
pw:browser [pid=7098][err] #30 0x5627e6b95b5c base::MessagePumpDefault::Run() +18ms
pw:browser [pid=7098][err] #31 0x5627e6be863e base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run() +20ms
pw:browser [pid=7098][err] #32 0x5627e6bb4bdd base::RunLoop::Run() +21ms
pw:browser [pid=7098][err] #33 0x5627ec05bfab content::RendererMain() +42ms
pw:browser [pid=7098][err] #34 0x5627e6722b8a content::RunZygote() +15ms
pw:browser [pid=7098][err] #35 0x5627e6723379 content::RunOtherNamedProcessTypeMain() +14ms
pw:browser [pid=7098][err] #36 0x5627e672400b content::ContentMainRunnerImpl::Run() +13ms
pw:browser [pid=7098][err] #37 0x5627e6721444 content::RunContentProcess() +15ms
pw:browser [pid=7098][err] #38 0x5627e6721d5e content::ContentMain() +15ms
pw:browser [pid=7098][err] #39 0x5627e677d55a headless::(anonymous namespace)::RunContentMain() +14ms
pw:browser [pid=7098][err] #40 0x5627e677d413 headless::RunChildProcessIfNeeded() +14ms
pw:browser [pid=7098][err] #41 0x5627e677c055 headless::HeadlessShellMain() +16ms
pw:browser [pid=7098][err] #42 0x5627e31d43e8 ChromeMain +41ms
pw:browser [pid=7098][err] #43 0x7f54af39e0b3 __libc_start_main +1ms
pw:browser [pid=7098][err] #44 0x5627e31d422a _start +41ms
pw:browser [pid=7098][err] r8: 00000b8000459920 r9: 0000000000000100 r10: 0000000000000007 r11: 00007f54af537500 +0ms
pw:browser [pid=7098][err] r12: 0000000000000001 r13: 00000b80008baa40 r14: 00001245003c2208 r15: 00001245003dcec0 +0ms
pw:browser [pid=7098][err] di: 00001245003dc110 si: 0000000000000000 bp: 00007ffd673dbfc0 bx: 00001245003dbad8 +0ms
pw:browser [pid=7098][err] dx: 0000000000000001 ax: 0000000000000000 cx: ff00000000000000 sp: 00007ffd673dbfa0 +0ms
pw:browser [pid=7098][err] ip: 00005627ea361139 efl: 0000000000010202 cgf: 002b000000000033 erf: 0000000000000004 +0ms
pw:browser [pid=7098][err] trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000570 +0ms
pw:browser [pid=7098][err] [end of stack trace] +1ms
page.goto: Navigation failed because page crashed!
=========================== logs ===========================
navigating to "data:text/html,<title>Hello world!</title>", waiting until "load"
============================================================
at /tmp/test.js:15:16 {
name: 'Error'
}
pw:browser [pid=7098] <kill> +23ms
pw:browser [pid=7098] <will force kill> +0ms
pw:browser [pid=7098] starting temporary directories cleanup +8ms
pw:browser [pid=7098] finished temporary directories cleanup
Closing since it has been fixed upstream, once we roll to Chromium >= 104 it won't occur anymore.
Context:
System:
Binaries:
Languages:
Code Snippet
foo.spec.ts
playwright.config.ts
Describe the bug
Page.goto failed on any page when chromium-based browser started with active forcedColors and dark colorScheme inside container. We have tried both custom Windows container and the Playwright supplied linux container. Running directly on Windows host is fine.
Running active forcedColors and light colorScheme worked inside container.
Docker command
Full debug output
All logs
```bash root@090944af0418:/visualparity# DEBUG=* xvfb-run npx playwright test pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'BrowserType', pw:channel:event initializer: { pw:channel:event executablePath: '/ms-playwright/chromium-1000/chrome-linux/chrome', pw:channel:event name: 'chromium' pw:channel:event }, pw:channel:event guid: 'browser-type@5855d47ab4ccf0e064e968f930f9cafd' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'BrowserType', pw:channel:event initializer: { pw:channel:event executablePath: '/ms-playwright/firefox-1322/firefox/firefox', pw:channel:event name: 'firefox' pw:channel:event }, pw:channel:event guid: 'browser-type@fb618309f763a926c38d433ed55bfc98' pw:channel:event } pw:channel:event } +3ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'BrowserType', pw:channel:event initializer: { pw:channel:event executablePath: '/ms-playwright/webkit-1630/pw_run.sh', pw:channel:event name: 'webkit' pw:channel:event }, pw:channel:event guid: 'browser-type@47b60f0764093472901a0107bf715186' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Android', pw:channel:event initializer: {}, pw:channel:event guid: 'android@0944f1339cf581e55c6e078b92f9213e' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Electron', pw:channel:event initializer: {}, pw:channel:event guid: 'electron@0e07a614248be32d1b787a1b7552e04c' pw:channel:event } pw:channel:event } +1ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'LocalUtils', pw:channel:event initializer: {}, pw:channel:event guid: 'localUtils@930d4332f7e88ce73369b8c62b683d8f' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Selectors', pw:channel:event initializer: {}, pw:channel:event guid: 'selectors@e391270e97c47701b7b419396a325c74' pw:channel:event } pw:channel:event } +1ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Playwright', pw:channel:event initializer: { pw:channel:event chromium: [Object], pw:channel:event firefox: [Object], pw:channel:event webkit: [Object], pw:channel:event android: [Object], pw:channel:event electron: [Object], pw:channel:event utils: [Object], pw:channel:event deviceDescriptors: [Array], pw:channel:event selectors: [Object], pw:channel:event preLaunchedBrowser: undefined, pw:channel:event socksSupport: undefined pw:channel:event }, pw:channel:event guid: 'Playwright' pw:channel:event } pw:channel:event } +1ms Running 1 test using 1 worker pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'BrowserType', pw:channel:event initializer: { pw:channel:event executablePath: '/ms-playwright/chromium-1000/chrome-linux/chrome', pw:channel:event name: 'chromium' pw:channel:event }, pw:channel:event guid: 'browser-type@589d0f640380d93b6aa560a959d3fce4' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'BrowserType', pw:channel:event initializer: { pw:channel:event executablePath: '/ms-playwright/firefox-1322/firefox/firefox', pw:channel:event name: 'firefox' pw:channel:event }, pw:channel:event guid: 'browser-type@d7fcd7221cb28f23f7be51009b348147' pw:channel:event } pw:channel:event } +3ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'BrowserType', pw:channel:event initializer: { pw:channel:event executablePath: '/ms-playwright/webkit-1630/pw_run.sh', pw:channel:event name: 'webkit' pw:channel:event }, pw:channel:event guid: 'browser-type@019fb023e6bcdeab75791b677b32d449' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Android', pw:channel:event initializer: {}, pw:channel:event guid: 'android@5a70b57c8827bff66cb51db17a215249' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Electron', pw:channel:event initializer: {}, pw:channel:event guid: 'electron@c371c49d7048f6f96a54a812eb42b68d' pw:channel:event } pw:channel:event } +1ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'LocalUtils', pw:channel:event initializer: {}, pw:channel:event guid: 'localUtils@98af5978e7012ad6af059eeda6fcbb16' pw:channel:event } pw:channel:event } +0ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Selectors', pw:channel:event initializer: {}, pw:channel:event guid: 'selectors@c345adbd2500918ddf38fc46b8fe28be' pw:channel:event } pw:channel:event } +1ms pw:channel:event { pw:channel:event guid: '', pw:channel:event method: '__create__', pw:channel:event params: { pw:channel:event type: 'Playwright', pw:channel:event initializer: { pw:channel:event chromium: [Object], pw:channel:event firefox: [Object], pw:channel:event webkit: [Object], pw:channel:event android: [Object], pw:channel:event electron: [Object], pw:channel:event utils: [Object], pw:channel:event deviceDescriptors: [Array], pw:channel:event selectors: [Object], pw:channel:event preLaunchedBrowser: undefined, pw:channel:event socksSupport: undefined pw:channel:event }, pw:channel:event guid: 'Playwright' pw:channel:event } pw:channel:event } +0ms [Microsoft Edge] › test/foo.spec.ts:4:1 › basic test pw:test setup playwright +0ms pw:test setup _browserOptions +7ms pw:test setup baseURL +0ms pw:test setup _combinedContextOptions +1ms pw:test setup _artifactsDir +0ms pw:test setup _setupContextOptionsAndArtifacts +0ms pw:test setup browserName +1ms pw:test setup browser +0ms pw:api => browserType.launch started +0ms pw:channel:command { pw:channel:command id: 1, pw:channel:command guid: 'browser-type@589d0f640380d93b6aa560a959d3fce4', pw:channel:command method: 'launch', pw:channel:command params: { pw:channel:command channel: 'msedge', pw:channel:command ignoreAllDefaultArgs: false, pw:channel:command handleSIGINT: false, pw:channel:command timeout: 0 pw:channel:command } pw:channel:command } +0ms pw:browser