Every few weeks we share some highlights in recent work on Remote Protocol.
- Fixed bugs between May 6th and May 19th
- 🌟 Contributor Etienne Bruines implemented offline mode for Network.emulateNetworkConditions to allow testing frameworks to verify the correct offline behavior for web applications. Thanks, Etienne!
- The Runtime.executionContextCreated and Runtime.executionContextDestroyed events are now correctly emitted when subframes are created and destroyed. To not break users of Puppeteer while further work for frames needs to be landed, both events are temporarily put behind the `remote.frames.enabled` preference, and not sent out by default.
- The Network.requestWillBeSent event has been updated to include request headers and document URL.
- The Network.responseReceived event is available now. Some data about the response, such as security state, will be implemented later.
- loaderId of document request is now included in Page.lifecycleEvent
- Page.getFrameTree now returns all the frames of the current tab target and is now also Fission compatible.
- Page.navigate now waits until the response of the initial document request has been received and is therefore able to return errorText when navigation fails.
- See all the fixed bugs from April 7th to May 5th.
- Fixed bugs between Feb 25th and April 6th
- Maja addedFirefox Nightly support to Google Puppeteer’s browser-fetching feature. This means that as of v3, Puppeteer users will have an equally convenient install+launch+connect flow for both Firefox and Chrome.
- Henrik landed several fixes and enhancements for both the Runtime.evaluate and Runtime.callFunctionOn API’s.
- Henrik added basic implementations for DOM.describeNode and DOM.resolveNode.
- We can now run Wordpress Gutenberg end-to-end tests against Firefox Nightly and we pass 52% of all the tests out of the box. To reach that status a fair amount of work has been done over the last couple of months.
- Fixed bugs between Jan 15th and Feb 24th
- Henrik finished off the patch from David Burns for Page.setCookie(s).
- Henrik added support for the "clip" argument in Page.captureScreenshot
- The Puppeteer project is now running their CI jobs against Firefox Nightly in addition to Chrome
- Fixed bugs between Dec 18th and Jan 14th
- 🌟 mohitsingh1930 fixed some missing default parameters in the remote agent
- 🌟 Kstheking0 refactored the remote browser-chrome tests and made the task function arguments to use an object
- Henrik implemented Network.deleteCookies and parts of Network.getCookies to allow consumers of Puppeteer to interact with site cookies.
- Henrik implemented Network.setCacheDisabled to allow ignoring the cache for each network request.
- Henrik fixed Emulation.setUserAgentOverride to only affect the current tab target.
- Henrik started the work on making the Remote Agent Fission compatible.
- You can see a demo of our Puppeteer support during the Berlin All-Hands.
- Fixed bugs between Dec 4th and Dec 17th
- Henrik implemented parts of Page.getLayoutMetrics to retrieve the layout (fixed) viewport and the full content size. Both are needed for better screenshot capabilities like capturing the full page.
- Henrik added support for Page.printToPDF to allow the current web page to be printed to a PDF file. This also includes the implementation for handling streams via IO.read and IO.close.
2019-11-05 and 2019-12-03
Introduction: The Web Predictability team (#interop) is implementing a subset of CDP in Firefox; we’ve had a working prototype for some time, and our next milestone is to provide initial cross-browser support in Google's Puppeteer (a popular Node.js library for headless browser automation).
- Fixed bugs between Nov 5th and Dec 3rd
- 🌟 Jacob Stenson removed the unnecessarily returned frameId property from the Page.loadEventFired event
- We started shipping the CDP-based remote debugging server on the Firefox Nightly release channel(see --remote-debugger flag)
- Maja added Firefox support to Puppeteer’s launcher API; users will be able to run Puppeteer with Firefox in addition to Chrome as of the next Puppeteer release.
- Andreas added a new section for Remote Debugging in about:support to expose the status if Firefox is under remote control and a visual cue in the Firefox UI when the browser is remotely controlled
- We’re steadily implementing more CDP methods on track toward our MVP
- Andreas made it possible to use Page.reload ignoring the browser’s cache
- Thomas Kosmas removed the unnecessarily returned timeout property from various page navigation events
- Henrik added support for Target.activateTarget, which switches to the specified target (tab) in any of the open browser windows. That also fixed a bug in Page.bringToFront, which caused the command to not wait for the window’s “activate” and “focus” events.
- Henrik made it possible for Page.captureScreenshot to save the captured screenshots in different formats and quality
- Andreas added support for Security.setIgnoreCertificateErrors to allow bypassing security exceptions when loading documents with invalid or otherwise bad TLS certificates
- Henrik added support for Emulation.setUserAgentOverride which allows clients to replace the user agent with a custom value.