-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
firefox protocol checking #9
Comments
aslushnikov
added a commit
to aslushnikov/playwright
that referenced
this issue
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
added a commit
to aslushnikov/playwright
that referenced
this issue
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 issue
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It would be very nice to lint firefox against the juggle protocol. Requires a protocol.json exposed in juggler.
The text was updated successfully, but these errors were encountered: