Skip to content

fix(lint): webkit linting#1

Merged
pavelfeldman merged 1 commit intomicrosoft:masterfrom
pavelfeldman:lint
Nov 19, 2019
Merged

fix(lint): webkit linting#1
pavelfeldman merged 1 commit intomicrosoft:masterfrom
pavelfeldman:lint

Conversation

@pavelfeldman
Copy link
Member

No description provided.

const ControlKey = 1 << 1;
const AltKey = 1 << 2;
const MetaKey = 1 << 3;
const CapsLockKey = 1 << 4;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's strange.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caps lock is a modifier in WK, see Source/WebCore/platform/PlatformEvent.h

@pavelfeldman pavelfeldman merged commit 44ef81e into microsoft:master Nov 19, 2019
rwoll referenced this pull request in rwoll/playwright Apr 22, 2020
The fail with:

```
NON-TEST ERROR #1: UNHANDLED PROMISE REJECTION
  Error: Pass { acceptDownloads: true } when you are creating your browser context.
```

which shows the issue we were running into.
rwoll referenced this pull request in rwoll/playwright Apr 22, 2020
The fail with:

```
NON-TEST ERROR #1: UNHANDLED PROMISE REJECTION
  Error: Pass { acceptDownloads: true } when you are creating your browser context.
```

which shows the issue we were running into.
aslushnikov referenced this pull request in aslushnikov/playwright Jul 15, 2020
Missing dependencies is #1 problem with launching on Linux.

This patch starts validating browser dependencies before launching
browser on Linux. In case of a missing dependency, we will abandon
launching with an error that lists all missing libs.

References microsoft#2745
aslushnikov added a commit that referenced this pull request Jul 15, 2020
Missing dependencies is #1 problem with launching on Linux.

This patch starts validating browser dependencies before launching
browser on Linux. In case of a missing dependency, we will abandon
launching with an error that lists all missing libs.

References #2745
aslushnikov referenced this pull request in aslushnikov/playwright Jul 21, 2020
This patch detects Chromium crash with a sandboxing error and re-writes
the error to surface information nicely.

```sh
pwuser@396166c88ec2:/root/playwright$ node a.js
(node:9916) UnhandledPromiseRejectionWarning: browserType.launch: Protocol error (Target.setAutoAttach): Target closed.
=========================== logs ===========================
[browser] <launching> /home/pwuser/.cache/ms-playwright/chromium-786218/chrome-linux/chrome --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disab
le-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=TranslateUI,BlinkGenPropertyTrees,ImprovedCookieControls,SameSiteByDefaultCookies --disable-hang-monitor --disab
le-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 --user-data-dir=/tmp/playwrig
ht_chromiumdev_profile-S7DvGF --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --no-startup-window
[browser] <launched> pid=9993
[browser] [0721/210028.684682:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live
dangerously and need an immediate workaround, you can try using --no-sandbox.
[browser] #0 0x55604e10fca9 base::debug::CollectStackTrace()
[browser] #1 0x55604e08abb3 base::debug::StackTrace::StackTrace()
[browser] microsoft#2 0x55604e09c810 logging::LogMessage::~LogMessage()
[browser] microsoft#3 0x55604c7e68de content::ZygoteHostImpl::Init()
[browser] microsoft#4 0x55604dc56067 content::ContentMainRunnerImpl::Initialize()
[browser] microsoft#5 0x55604dca493a service_manager::Main()
[browser] microsoft#6 0x55604dc54681 content::ContentMain()
[browser] microsoft#7 0x55604dca365d headless::(anonymous namespace)::RunContentMain()
[browser] microsoft#8 0x55604dca335c headless::HeadlessShellMain()
[browser] microsoft#9 0x55604b5a0527 ChromeMain
[browser] microsoft#10 0x7fcbfda52b97 __libc_start_main
[browser] microsoft#11 0x55604b5a036a _start
[browser]
[browser] Received signal 6
[browser] #0 0x55604e10fca9 base::debug::CollectStackTrace()
[browser] #1 0x55604e08abb3 base::debug::StackTrace::StackTrace()
[browser] microsoft#2 0x55604e10f845 base::debug::(anonymous namespace)::StackDumpSignalHandler()
[browser] microsoft#3 0x7fcc03ee3890 (/lib/x86_64-linux-gnu/libpthread-2.27.so+0x1288f)
[browser] microsoft#4 0x7fcbfda6fe97 gsignal
[browser] microsoft#5 0x7fcbfda71801 abort
[browser] microsoft#6 0x55604e10e7a5 base::debug::BreakDebugger()
[browser] microsoft#7 0x55604e09cc7b logging::LogMessage::~LogMessage()
[browser] microsoft#8 0x55604c7e68de content::ZygoteHostImpl::Init()
[browser] microsoft#9 0x55604dc56067 content::ContentMainRunnerImpl::Initialize()
[browser] microsoft#10 0x55604dca493a service_manager::Main()
[browser] microsoft#11 0x55604dc54681 content::ContentMain()
[browser] microsoft#12 0x55604dca365d headless::(anonymous namespace)::RunContentMain()
[browser] microsoft#13 0x55604dca335c headless::HeadlessShellMain()
[browser] microsoft#14 0x55604b5a0527 ChromeMain
[browser] microsoft#15 0x7fcbfda52b97 __libc_start_main
[browser] microsoft#16 0x55604b5a036a _start
[browser]   r8: 0000000000000000  r9: 00007fff94da5d90 r10: 0000000000000008 r11: 0000000000000246
[browser]  r12: 00007fff94da7060 r13: 00007fff94da5ff0 r14: 00007fff94da7070 r15: aaaaaaaaaaaaaaaa
[browser]   di: 0000000000000002  si: 00007fff94da5d90  bp: 00007fff94da5fe0  bx: 00007fff94da6824
[browser]   dx: 0000000000000000  ax: 0000000000000000  cx: 00007fcbfda6fe97  sp: 00007fff94da5d90
[browser]   ip: 00007fcbfda6fe97 efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
[browser]  trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[browser] [end of stack trace]
[browser] Calling _exit(1). Core file will not be generated.
============================================================
Note: use DEBUG=pw:api environment variable and rerun to capture Playwright logs.Error
    at /root/playwright/lib/chromium/crConnection.js:131:63
    at new Promise (<anonymous>)
    at CRSession.send (/root/playwright/lib/chromium/crConnection.js:130:16)
    at CRSession.send (/root/playwright/lib/helper.js:78:31)
    at Function.connect (/root/playwright/lib/chromium/crBrowser.js:54:27)
    at Chromium._connectToTransport (/root/playwright/lib/server/chromium.js:53:38)
    at Chromium._innerLaunch (/root/playwright/lib/server/browserType.js:87:36)
    at async ProgressController.run (/root/playwright/lib/progress.js:75:28)
    at async Chromium.launch (/root/playwright/lib/server/browserType.js:60:25)
    at async /root/playwright/a.js:4:19
(node:9916) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejec
tion, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:9916) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```

```sh
pwuser@396166c88ec2:/root/playwright$ node a.js
(node:10074) UnhandledPromiseRejectionWarning: Chromium sandboxing failed!
================================
To workaround sandboxing issues, do either of the following:
  - (preferred): Configure environment to support sandboxing: https://github.com/microsoft/playwright/blob/master/docs/troubleshooting.md
  - (alternative): Launch Chromium without sandbox using 'chromiumSandbox: false' option
================================
Error
    at /root/playwright/lib/chromium/crConnection.js:131:63
    at new Promise (<anonymous>)
    at CRSession.send (/root/playwright/lib/chromium/crConnection.js:130:16)
    at CRSession.send (/root/playwright/lib/helper.js:78:31)
    at Function.connect (/root/playwright/lib/chromium/crBrowser.js:54:27)
    at Chromium._connectToTransport (/root/playwright/lib/server/chromium.js:53:38)
    at Chromium._innerLaunch (/root/playwright/lib/server/browserType.js:87:36)
    at async ProgressController.run (/root/playwright/lib/progress.js:75:28)
    at async Chromium.launch (/root/playwright/lib/server/browserType.js:60:25)
    at async /root/playwright/a.js:4:19
(node:10074) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:10074) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```
aslushnikov referenced this pull request in aslushnikov/playwright Jul 22, 2020
This patch detects Chromium crash with a sandboxing error and re-writes
the error to surface information nicely.

```sh
pwuser@396166c88ec2:/root/playwright$ node a.js
(node:9916) UnhandledPromiseRejectionWarning: browserType.launch: Protocol error (Target.setAutoAttach): Target closed.
=========================== logs ===========================
[browser] <launching> /home/pwuser/.cache/ms-playwright/chromium-786218/chrome-linux/chrome --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disab
le-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=TranslateUI,BlinkGenPropertyTrees,ImprovedCookieControls,SameSiteByDefaultCookies --disable-hang-monitor --disab
le-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 --user-data-dir=/tmp/playwrig
ht_chromiumdev_profile-S7DvGF --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --no-startup-window
[browser] <launched> pid=9993
[browser] [0721/210028.684682:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live
dangerously and need an immediate workaround, you can try using --no-sandbox.
[browser] #0 0x55604e10fca9 base::debug::CollectStackTrace()
[browser] #1 0x55604e08abb3 base::debug::StackTrace::StackTrace()
[browser] microsoft#2 0x55604e09c810 logging::LogMessage::~LogMessage()
[browser] microsoft#3 0x55604c7e68de content::ZygoteHostImpl::Init()
[browser] microsoft#4 0x55604dc56067 content::ContentMainRunnerImpl::Initialize()
[browser] microsoft#5 0x55604dca493a service_manager::Main()
[browser] microsoft#6 0x55604dc54681 content::ContentMain()
[browser] microsoft#7 0x55604dca365d headless::(anonymous namespace)::RunContentMain()
[browser] microsoft#8 0x55604dca335c headless::HeadlessShellMain()
[browser] microsoft#9 0x55604b5a0527 ChromeMain
[browser] microsoft#10 0x7fcbfda52b97 __libc_start_main
[browser] microsoft#11 0x55604b5a036a _start
[browser]
[browser] Received signal 6
[browser] #0 0x55604e10fca9 base::debug::CollectStackTrace()
[browser] #1 0x55604e08abb3 base::debug::StackTrace::StackTrace()
[browser] microsoft#2 0x55604e10f845 base::debug::(anonymous namespace)::StackDumpSignalHandler()
[browser] microsoft#3 0x7fcc03ee3890 (/lib/x86_64-linux-gnu/libpthread-2.27.so+0x1288f)
[browser] microsoft#4 0x7fcbfda6fe97 gsignal
[browser] microsoft#5 0x7fcbfda71801 abort
[browser] microsoft#6 0x55604e10e7a5 base::debug::BreakDebugger()
[browser] microsoft#7 0x55604e09cc7b logging::LogMessage::~LogMessage()
[browser] microsoft#8 0x55604c7e68de content::ZygoteHostImpl::Init()
[browser] microsoft#9 0x55604dc56067 content::ContentMainRunnerImpl::Initialize()
[browser] microsoft#10 0x55604dca493a service_manager::Main()
[browser] microsoft#11 0x55604dc54681 content::ContentMain()
[browser] microsoft#12 0x55604dca365d headless::(anonymous namespace)::RunContentMain()
[browser] microsoft#13 0x55604dca335c headless::HeadlessShellMain()
[browser] microsoft#14 0x55604b5a0527 ChromeMain
[browser] microsoft#15 0x7fcbfda52b97 __libc_start_main
[browser] microsoft#16 0x55604b5a036a _start
[browser]   r8: 0000000000000000  r9: 00007fff94da5d90 r10: 0000000000000008 r11: 0000000000000246
[browser]  r12: 00007fff94da7060 r13: 00007fff94da5ff0 r14: 00007fff94da7070 r15: aaaaaaaaaaaaaaaa
[browser]   di: 0000000000000002  si: 00007fff94da5d90  bp: 00007fff94da5fe0  bx: 00007fff94da6824
[browser]   dx: 0000000000000000  ax: 0000000000000000  cx: 00007fcbfda6fe97  sp: 00007fff94da5d90
[browser]   ip: 00007fcbfda6fe97 efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
[browser]  trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[browser] [end of stack trace]
[browser] Calling _exit(1). Core file will not be generated.
============================================================
Note: use DEBUG=pw:api environment variable and rerun to capture Playwright logs.Error
    at /root/playwright/lib/chromium/crConnection.js:131:63
    at new Promise (<anonymous>)
    at CRSession.send (/root/playwright/lib/chromium/crConnection.js:130:16)
    at CRSession.send (/root/playwright/lib/helper.js:78:31)
    at Function.connect (/root/playwright/lib/chromium/crBrowser.js:54:27)
    at Chromium._connectToTransport (/root/playwright/lib/server/chromium.js:53:38)
    at Chromium._innerLaunch (/root/playwright/lib/server/browserType.js:87:36)
    at async ProgressController.run (/root/playwright/lib/progress.js:75:28)
    at async Chromium.launch (/root/playwright/lib/server/browserType.js:60:25)
    at async /root/playwright/a.js:4:19
(node:9916) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejec
tion, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:9916) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```

```sh
pwuser@396166c88ec2:/root/playwright$ node a.js
(node:10074) UnhandledPromiseRejectionWarning: Chromium sandboxing failed!
================================
To workaround sandboxing issues, do either of the following:
  - (preferred): Configure environment to support sandboxing: https://github.com/microsoft/playwright/blob/master/docs/troubleshooting.md
  - (alternative): Launch Chromium without sandbox using 'chromiumSandbox: false' option
================================
Error
    at /root/playwright/lib/chromium/crConnection.js:131:63
    at new Promise (<anonymous>)
    at CRSession.send (/root/playwright/lib/chromium/crConnection.js:130:16)
    at CRSession.send (/root/playwright/lib/helper.js:78:31)
    at Function.connect (/root/playwright/lib/chromium/crBrowser.js:54:27)
    at Chromium._connectToTransport (/root/playwright/lib/server/chromium.js:53:38)
    at Chromium._innerLaunch (/root/playwright/lib/server/browserType.js:87:36)
    at async ProgressController.run (/root/playwright/lib/progress.js:75:28)
    at async Chromium.launch (/root/playwright/lib/server/browserType.js:60:25)
    at async /root/playwright/a.js:4:19
(node:10074) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:10074) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```
aslushnikov added a commit that referenced this pull request Jul 22, 2020
This patch detects Chromium crash with a sandboxing error and re-writes
the error to surface information nicely.

#### Error Before:

```sh
pwuser@23592d09b3bd:~/tmp$ node a.js
(node:324) UnhandledPromiseRejectionWarning: browserType.launch: Protocol error (Browser.getVersion): Target closed.
=========================== logs ===========================
[browser] <launching> /home/pwuser/.cache/ms-playwright/chromium-790602/chrome-linux/chrome --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disab
le-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=TranslateUI,BlinkGenPropertyTrees,ImprovedCookieControls,SameSiteByDefaultCookies --disable-hang-monitor --disab
le-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 --user-data-dir=/tmp/playwrig
ht_chromiumdev_profile-mjSfr2 --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --no-startup-window
[browser] <launched> pid=401
[browser] [0722/170825.030020:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live
dangerously and need an immediate workaround, you can try using --no-sandbox.
[browser] #0 0x55ac4f8c7be9 base::debug::CollectStackTrace()
[browser] #1 0x55ac4f841c13 base::debug::StackTrace::StackTrace()
[browser] #2 0x55ac4f853680 logging::LogMessage::~LogMessage()
[browser] #3 0x55ac4df2307e content::ZygoteHostImpl::Init()
[browser] #4 0x55ac4f40dd47 content::ContentMainRunnerImpl::Initialize()
[browser] #5 0x55ac4f45c9fa service_manager::Main()
[browser] #6 0x55ac4f40c361 content::ContentMain()
[browser] #7 0x55ac4f45b5bd headless::(anonymous namespace)::RunContentMain()
[browser] #8 0x55ac4f45b2bc headless::HeadlessShellMain()
[browser] #9 0x55ac4ccc22e7 ChromeMain
[browser] #10 0x7f0f3d736b97 __libc_start_main
[browser] #11 0x55ac4ccc212a _start
[browser]
[browser] Received signal 6
[browser] #0 0x55ac4f8c7be9 base::debug::CollectStackTrace()
[browser] #1 0x55ac4f841c13 base::debug::StackTrace::StackTrace()
[browser] #2 0x55ac4f8c7785 base::debug::(anonymous namespace)::StackDumpSignalHandler()
[browser] #3 0x7f0f437b3890 (/lib/x86_64-linux-gnu/libpthread-2.27.so+0x1288f)
[browser] #4 0x7f0f3d753e97 gsignal
[browser] #5 0x7f0f3d755801 abort
[browser] #6 0x55ac4f8c66e5 base::debug::BreakDebugger()
[browser] #7 0x55ac4f853aeb logging::LogMessage::~LogMessage()
[browser] #8 0x55ac4df2307e content::ZygoteHostImpl::Init()
[browser] #9 0x55ac4f40dd47 content::ContentMainRunnerImpl::Initialize()
[browser] #10 0x55ac4f45c9fa service_manager::Main()
[browser] #11 0x55ac4f40c361 content::ContentMain()
[browser] #12 0x55ac4f45b5bd headless::(anonymous namespace)::RunContentMain()
[browser] #13 0x55ac4f45b2bc headless::HeadlessShellMain()
[browser] #14 0x55ac4ccc22e7 ChromeMain
[browser] #15 0x7f0f3d736b97 __libc_start_main
[browser] #16 0x55ac4ccc212a _start
[browser]   r8: 0000000000000000  r9: 00007ffd38a863b0 r10: 0000000000000008 r11: 0000000000000246
[browser]  r12: 00007ffd38a87680 r13: 00007ffd38a86610 r14: 00007ffd38a87690 r15: aaaaaaaaaaaaaaaa
[browser]   di: 0000000000000002  si: 00007ffd38a863b0  bp: 00007ffd38a86600  bx: 00007ffd38a86e44
[browser]   dx: 0000000000000000  ax: 0000000000000000  cx: 00007f0f3d753e97  sp: 00007ffd38a863b0
[browser]   ip: 00007f0f3d753e97 efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
[browser]  trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[browser] [end of stack trace]
[browser] Calling _exit(1). Core file will not be generated.
============================================================
Note: use DEBUG=pw:api environment variable and rerun to capture Playwright logs.Error
    at /home/pwuser/tmp/node_modules/playwright/lib/chromium/crConnection.js:131:63
    at new Promise (<anonymous>)
    at CRSession.send (/home/pwuser/tmp/node_modules/playwright/lib/chromium/crConnection.js:130:16)
    at CRSession.send (/home/pwuser/tmp/node_modules/playwright/lib/helper.js:78:31)
    at Function.connect (/home/pwuser/tmp/node_modules/playwright/lib/chromium/crBrowser.js:54:39)
    at Chromium._connectToTransport (/home/pwuser/tmp/node_modules/playwright/lib/server/chromium.js:52:38)
    at Chromium._innerLaunch (/home/pwuser/tmp/node_modules/playwright/lib/server/browserType.js:87:36)
    at async ProgressController.run (/home/pwuser/tmp/node_modules/playwright/lib/progress.js:75:28)
    at async Chromium.launch (/home/pwuser/tmp/node_modules/playwright/lib/server/browserType.js:60:25)
    at async /home/pwuser/tmp/a.js:4:19
(node:324) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise reject
ion, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:324) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```


#### Error After:

```sh
pwuser@23592d09b3bd:~/tmp$ node a.js
(node:222) UnhandledPromiseRejectionWarning: browserType.launch: Chromium sandboxing failed!
================================
To workaround sandboxing issues, do either of the following:
  - (preferred): Configure environment to support sandboxing: https://github.com/microsoft/playwright/blob/master/docs/troubleshooting.md
  - (alternative): Launch Chromium without sandbox using 'chromiumSandbox: false' option
================================
Error
    at /home/pwuser/tmp/node_modules/playwright/lib/chromium/crConnection.js:131:63
    at new Promise (<anonymous>)
    at CRSession.send (/home/pwuser/tmp/node_modules/playwright/lib/chromium/crConnection.js:130:16)
    at CRSession.send (/home/pwuser/tmp/node_modules/playwright/lib/helper.js:78:31)
    at Function.connect (/home/pwuser/tmp/node_modules/playwright/lib/chromium/crBrowser.js:54:27)
    at Chromium._connectToTransport (/home/pwuser/tmp/node_modules/playwright/lib/server/chromium.js:53:38)
    at Chromium._innerLaunch (/home/pwuser/tmp/node_modules/playwright/lib/server/browserType.js:89:36)
    at async ProgressController.run (/home/pwuser/tmp/node_modules/playwright/lib/progress.js:75:28)
    at async Chromium.launch (/home/pwuser/tmp/node_modules/playwright/lib/server/browserType.js:61:25)
    at async /home/pwuser/tmp/a.js:4:19
(node:222) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise reject
ion, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:222) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```

References #2745
aslushnikov referenced this pull request in aslushnikov/playwright Sep 30, 2020
@github-actions github-actions bot mentioned this pull request Jun 10, 2025
iumehara added a commit to iumehara/playwright that referenced this pull request Jan 6, 2026
- give the base implementation a microsoft#1 overload and update referencing documentation
- CSSProperties type defaults to never if react is not installed
BogaPurushotham pushed a commit to BogaPurushotham/playwright that referenced this pull request Jan 6, 2026
Implemented the following filter enhancements:
- Item microsoft#1: State filter buttons now toggle with aria-pressed attribute and active styling
- Item microsoft#4: Enhanced URL encoding with proper filter preservation
- Item microsoft#5: Text filter is preserved when clicking status/tag-label filters
- Item microsoft#8: All button now works with text filter (preserves text search)
- Item microsoft#14: Real-time URL updates when typing in search input

Also fixed build script to handle workspace paths with spaces on Windows.
BogaPurushotham pushed a commit to BogaPurushotham/playwright that referenced this pull request Jan 19, 2026
Implement toggle behavior for state filter buttons (Item microsoft#1 from issue microsoft#35212):
- Add aria-pressed attribute to state filter buttons for accessibility
- Add visual feedback with aria-pressed styling in CSS
- Clicking an active filter now toggles it off instead of keeping it active
- Clicking an inactive filter toggles other filters of same type off

This improves UX by making filters behave like expected toggle buttons.
BogaPurushotham pushed a commit to BogaPurushotham/playwright that referenced this pull request Jan 29, 2026
…essibility

Addresses feedback from PR microsoft#38843 and implements Item microsoft#1 from issue microsoft#35212.

Changes:
- Add role='button' and aria-pressed attribute to state filter buttons
- Add visual feedback styling for active filters via aria-pressed
- Maintain existing preset behavior (filters are mutually exclusive)
- Fix if-else chain in filter.ts for proper prefix assignment

This improves accessibility for screen readers while preserving the
design intent that state filters are preset buttons, not toggles.
As clarified by @pavelfeldman: 'These are not stateful filters, they
are buttons for filter presets.'

The aria-pressed attribute indicates which preset is currently active
without changing the underlying preset behavior where clicking a
filter replaces other filters of the same type.

Refs: microsoft#35212
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants