WebDriver/RemoteProtocol/WebDriver BiDi

From MozillaWiki
Jump to: navigation, search

WebDriver BiDi is an extension of the WebDriver specification that offers a bidirectional communication between a webdriver compatible client and a remote end like Firefox. That means that beside sending commands to the browser and receiving responses, it will be also possible to register for certain events (e.g page load, network interception).

Project Status

WebDriver BiDi Milestone 2 (required)

Goal: Extend the current WebDriver BiDi code base to allow external clients to connect to Firefox and to run the first completed BiDi event for logging. Further add basic functionality for navigation.

Full Query
ID Summary Status Assigned to Priority Fx points
1601245 Enable Puppeteer and CDP tests in mochitest-remote for Fission RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1686110 Release geckodriver 0.30.0 RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1693839 Add basic support for payload serialization and deserialization ASSIGNED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1694136 Refactor Remote Protocol documentation for various protocols (Marionette, WebDriver BiDi, and CDP) under /remote NEW P2 2
1694145 Implement session.unsubscribe ASSIGNED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1713443 MessageHandler: Support shared global session data that supports BiDi and CDP ASSIGNED Julian Descottes [:jdescottes] (Away until Nov 2) P2 13
1722659 Stop using singleton for MessageHandlerRegistry RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1723084 Add a shared try preset for remote protocol RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1723102 Implement full support for session.subscribe NEW P2 13
1723592 MessageHandler: Modules should explicitly declare their public commands NEW P2 2
1725111 Add filter for top-level browsing contexts to MessageHandler broadcasting NEW P2 2
1726800 Finalize ModuleRegistry implementation RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1731548 Add "JavascriptLogEntry" support to log.entryAdded event NEW P2 2
1731553 Add support for "stackTrace" to ConsoleLogEntry and JavascriptLogEntry NEW P2 2
1731556 Automatically subscribe to events in case these were set globally ASSIGNED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1731574 Emit cached log entries when subscribing for `log.entryAdded` events ASSIGNED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1731589 Add serialization and deserialization support common data types as used by `log.entryAdded` NEW P2 8
1731790 Add blank implementation of Fetch.disable to prevent unknown method errors RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1733463 "origin" property of "Runtime.executionContextCreated" events contain URL instead of window origin RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1734208 Puppeteer causes Firefox to freeze because stdout/stderr pipes are no longer processed RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1734896 (Puppeteer) Protocol error (Target.setDiscoverTargets): can't access property "documentTitle", this.browsingContext.currentWindowGlobal is null get title@chrome://remote/content/cdp/targets/TabTarget.jsm:108:5 NEW P2 2
1735131 (Puppeteer) JavaScript error: chrome://remote/content/cdp/observers/ContextObserver.jsm, line 137: TypeError: can't access property "docShell", window is null RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2

22 Total; 13 Open (59.09%); 9 Resolved (40.91%); 0 Verified (0%);


WebDriver BiDi Milestone 2 (reserved)

Full Query
ID Summary Status Assigned to Priority Fx points
1646289 Replace uuid from TabTarget.id with unique window identifiers as used by WebDriver NEW P3 2
1672366 Add browser chrome test to check the Browser's UI cue when Remote Agent is enabled NEW P3 8
1693836 Implement BiDi vs CDP command detection NEW P3 8
1694127 Change recommended version of Firefox for Puppeteer from Nightly to Beta/Release NEW P3 8
1694389 Implement browsingContext.contextCreated event NEW P3 8
1694390 Implement browsingContext.contextDestroyed event NEW P3 2
1694391 Implement browsingContext.getTree() NEW P3 8
1695032 Update Remote Agent mochitests to make those CDP only NEW P3 2
1704394 Extract tab related helpers from browser.js to a shared tab-manager module NEW P3 2
1713440 MessageHandler: Support chrome window contexts NEW P3 8
1713640 Add typescript checks for JS modules in /remote NEW P3 8
1720707 Refactor WebDriver session handling for better BiDi integration NEW P3 13
1730642 Implement basic support for "browsingContext.navigate" command NEW P3 13
1730913 MessageHandler: cleanup all MessageHandler instances when the root MessageHandler is destroyed NEW P3 2
1731543 Finish support for ConsoleLogEntry for log.entryAdded event NEW P3 8
1731565 Cleanup internal event subscription states for closed browsing contexts NEW P3 2
1731576 Log pollution for "Cannot forward command to 'ROOT' from 'ROOT'" when command is not supported NEW P3 2
1731730 Implement capability matching for session.new command NEW P3 8
1731743 Use a global state for "acceptInsecureCerts" and "proxy" capabilities NEW P3 2
1731754 Add tests for WebDriver BiDi handshake (upgrade path) NEW P3 8
1732263 Enable BFCacheInParent for CDP with Fission enabled NEW P3 13
1732611 Leakage of CDP (and WebDriver BiDi) connections NEW P3 2

22 Total; 22 Open (100%); 0 Resolved (0%); 0 Verified (0%);


WebDriver BiDi Milestone 1 (completed - 09/10/21)

Goal: Adapt the existing Remote Agent code base, and make it ready for building support for WebDriver BiDi. Introduce support for basic logging events (plain string message).

This milestone has been completed on September 10th, 2021.

Full Query
ID Summary Status Assigned to Priority Fx points
1601618 Use XPCOMUtils.defineLazyModuleGetters() to defer loading of not immediately necessary modules RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1609162 Intermittent remote/cdp/test/browser/<random> | Uncaught exception - [object ProgressEvent] (could not start server on port 9222) [NS_ERROR_SOCKET_ADDRESS_IN_USE] RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1676803 Build the Remote Agent on Android RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1680479 Make window handles of top-level browsing contexts unique (no change for browsing context swaps) RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1690468 Move Remote Agent component related files under /remote/components RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1690469 Move Rust related files away from /remote RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1690472 Move sharable top-level modules to /remote/shared RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1690474 Move CDP specific code to /remote/cdp RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1690475 Reorganize /remote/test for CDP RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1691047 Marionette should restrict to a single active session only RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1691402 Extract session specific code from driver.js into a dedicated session module RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1691414 Refactor WebDriver session module to be shareable with WebDriver BiDi RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1691446 Implement Session for WebDriver BiDi RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1691481 Share Marionette's errors module with WebDriver BiDi RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1691500 Extract window handling code to a shareable module RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1692984 Add support for "webSocketUrl” capability to Marionette RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1693004 Add support for "webSocketUrl” capability to geckodriver RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1693296 Browser.close() has to ensure that Firefox will be closed even when something prevents it RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1693761 Add CI runs for MacOS on Puppeteer repository RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1693763 Re-enable CI runs for Windows on Puppeteer repository RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1693802 Make Connection.jsm work with both CDP and WebDriver BiDi RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1693803 Share recommended preferences between Marionette and WebDriver BiDi RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1693805 Add support for handling BiDi connections RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1693993 Move Marionette server code from /testing/marionette to /remote RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1694143 Implement basic support for log.entryAdded RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1694144 Implement basic support for session.subscribe (for log.entryAdded) RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1694322 "mach file-info bugzilla-component" broken for remote/cdp RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1694506 Sync vendored puppeteer to v8.0.0 RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1695031 Combine build configurations for Marionette and Remote Protocol into WebDriver RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1696160 Recommended preferences should only be reset when actually modified RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1699044 [wdspec] Add wdspec tests for Fenix / Firefox on Android RESOLVED James Graham [:jgraham] P2 2
1700392 Replace usage of marionette format.js by remote/shared/Format.jsm RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1702142 Unify logging between Marionette and Remote Agent RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1704998 Allow WebSocket to be used by Remote Agent on Android RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1707588 Sync vendored puppeteer to v9.1.1 RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1708633 Add port forwarding for the Remote Agent when testing mobile builds on Android RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1710000 Allow the "remote-listening" observer to also print other messages to stderr RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1710839 Remove the "remote.enabled" preference RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1712902 Conditionally enable WebDriver Bidi on Nightly channel only RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1713439 MessageHandler: Initial MessageHandler support for content windows RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 13
1713441 MessageHandler: Support command broadcasting for window contexts RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1713442 MessageHandler: Support events RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 8
1713775 Marionette should throw a SessionNotCreatedError when "webSocketUrl" capability is passed RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1713779 Also set "webdriver.log.*" preferences for debug and trace logs RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1713784 Implement basic support for session.new command (without capability matching) RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1714068 Sync vendored puppeteer to v10.0.0 RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1714348 Update chrome imports for Marionette modules that now live under /remote/content/marionette RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1717145 Recommended preferences aren't always reset during shutdown RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1718052 Replace usage of marionette log.js by remote/shared/Log.jsm RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1719667 Do not set recommended preferences when not wanted RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1719692 Stop using MarionettePrefs.logLevel and use remote.log.level instead RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1719833 Share WindowManager between Marionette and Remote Agent RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1720070 Permanent Talos RemoteAgent ERROR unable to stop listener: TypeError: can't access property "destructor", this.targetList is null(chrome://remote/content/cdp/CDP.jsm:92:5) JS Stack trace: stop@CDP.jsm:92:5 - DO NOT USE FOR CLASSIFICATION VERIFIED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1720676 Don't run Remote Agent specific code when --remote-debugging-port hasn't been specified RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 8
1721012 Permanent /webdriver/tests/bidi/new_session/connect.py | test_websocket_url_connect[capabilities0] - KeyError: 'webSocketUrl' - when Gecko 92 merges to Beta on 2021-08-09 VERIFIED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1721148 Errors thrown during WebSocket upgrade could hang clients when reading HTTP response RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1721327 Share Marionette's assertion module with WebDriver BiDi RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1723026 Enable mochitest-remote suite on Fission platforms RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1724028 Starting firefox with --marionette --remote-debugging-port=XXXX triggers the load of eg. http://0.0.38.160 RESOLVED Julian Descottes [:jdescottes] (Away until Nov 2) P2 2
1724227 [wdspec] Only reset the current BiDi session if capabilities have been changed RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1725620 Permanent TEST-UNEXPECTED-TIMEOUT | /webdriver/tests/bidi/session_subscribe/subscribe.py | expected OK when Gecko 93 merges to Beta on 2021-09-06 VERIFIED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2
1725683 [wdspec] Session fixtures silently ignore SessionNotCreated exceptions RESOLVED Henrik Skupin (:whimboo) [⌚️UTC+1] (away 10/23 - 10/31) P2 2

62 Total; 0 Open (0%); 59 Resolved (95.16%); 3 Verified (4.84%);