The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
    * Tested against Google Chrome 67.0.3396.99  Built on OSX, thanks Travis CI
    * Tested against Chrome/67.0.3396.99 / Win64, thanks AppVeyor
    * Tested against Chrome Chrome/59.0.3071.115
    * Tested against Chromium HeadlessChrome/60.0.3110.0
    * Tested against Chromium HeadlessChrome/61.0.3141.0
    * Tested against Chromium HeadlessChrome/62.0.3202.94
    * Tested against Chromium HeadlessChrome/63.0.3239.132
    * Tested against Chromium HeadlessChrome/64.0.3282.119
    * Tested against Chromium HeadlessChrome/65.0.3325.181
    * Tested against Chromium HeadlessChrome/66.0.3359.139
    * Tested against Chromium HeadlessChrome/67.0.3396.99
    * Tested against Chromium HeadlessChrome/68.0.3440.84
    * Tested against Chromium HeadlessChrome/69.0.3497.100
    * Tested against Chromium HeadlessChrome/70.0.3538.77
    * Tested against Chromium HeadlessChrome/70.0.3538.102
    * Tested against Chromium HeadlessChrome/71.0.3576.0
    * Tested against Chrome   HeadlessChrome/72.0.3602.0

0.25 2018-11-23
    * Added one stray test to the distribution
    * Rework of the documentation, thanks to Harald Joerg
      This is a result of the PRC, thank you very much!
    * No code changes, no need to upgrade

0.24 2018-11-19
    * Fix for ->setRequestInterception_future
      and ->setRequestInterception, contributed by Enrique Pessoa
      This addresses RT #127738

0.23 2018-10-20
    * Spun off screencast client into Mojolicious::Plugin::PNGCast distribution
    * Documentation fixes (thanks Hacktoberfest!)
    * --enable-automation is now on by default
    * Document PDF paper size options (Thanks Eugen Konkov)
    * Slight logging improvements for the Net::Async backend

0.22 2018-09-23
    . Logging improvements
    . Documentation of the DevToolsProtocol class
    . Convenience parameter to ->click() to click on text
    . Developer tests now spawn a single Chrome test, speeding up the test run

0.21 2018-09-15
    . Fix ->sendkeys() to actually work
    . Fix crash in ->wait_until_visible()
    . Fix ->block_urls() to actually work
    . Make log output less verbose, log more information in onelines
    . "extra_headers" constructor argument works as documented
    . Added a (Mojolicious) receiver for screencasts to better observe
      what a headless Chrome is currently doing
    . Added a very experimental start of WWW::Mechanize::Edge for
      Microsoft Edge, which happens to use the same protocol as Chrome. This
      is largely undocumented.

0.20 2018-09-07
    . Add better diagnostics when the Chrome binary is not found
    . Better search logic for Chrome binary, also support chromium-browser
    . ->sendkeys() method to type input into browser
    . ->content_as_pdf() now can also save to a file (as documented)
    . Docfix for screencast data

0.19 2018-08-25
    . Make ->set_attribute() actually work
    . Recognize more intra-page navigation events
    . Tested against Chrome/59.0.3071.115
    . Tested against HeadlessChrome/60.0.3110.0
    . Tested against HeadlessChrome/61.0.3141.0
    . Tested against HeadlessChrome/62.0.3202.94
    . Tested against HeadlessChrome/63.0.3239.132
    . Tested against HeadlessChrome/64.0.3282.119
    . Tested against HeadlessChrome/65.0.3325.181
    . Tested against HeadlessChrome/66.0.3359.139
    . Tested against HeadlessChrome/67.0.3396.99
    . Tested against HeadlessChrome/68.0.3435.0
    . Tested against HeadlessChrome/68.0.3440.84
    . Tested against HeadlessChrome/69.0.3496.0
    . Tested against HeadlessChrome/70.0.3500.0
    . Tested against HeadlessChrome/70.0.3509.0
    . Tested against Chromium 65.0.3325.181 Built on Ubuntu, thanks Travis CI
    . Tested against Google Chrome 67.0.3396.99  Built on OSX, thanks Travis CI
    . Tested against Chrome/67.0.3396.99 / Win64, thanks AppVeyor

0.18 2018-08-03
    . Properly handling moving between fragments, for example
      from http://example.com/#1 to http://example.com#2
      (reported via Perlmonks.org)
      This kind of navigation does not work on Chrome 64 and Chrome 59.
    . Disable the "save password" bubble by default.
      You can re-enable this by passing a true value to the option
      save_password_bubble in the constructor.
    . Tested against Chrome/59.0.3071.115
    . Tested against HeadlessChrome/60.0.3110.0
    . Tested against HeadlessChrome/61.0.3141.0
    . Tested against HeadlessChrome/62.0.3202.94
    . Tested against HeadlessChrome/63.0.3239.132
    . Tested against HeadlessChrome/64.0.3282.119
    . Tested against HeadlessChrome/65.0.3325.181
    . Tested against HeadlessChrome/66.0.3359.139
    . Tested against HeadlessChrome/67.0.3396.99
    . Tested against HeadlessChrome/68.0.3435.0
    . Tested against HeadlessChrome/68.0.3440.84
    . Tested against HeadlessChrome/69.0.3496.0
    . Tested against HeadlessChrome/70.0.3500.0
    . Tested against HeadlessChrome/70.0.3509.0
    . Tested against Chromium 65.0.3325.181 Built on Ubuntu, thanks Travis CI
    . Tested against Google Chrome 67.0.3396.99  Built on OSX, thanks Travis CI
    . Tested against Chrome/67.0.3396.99 / Win64, thanks AppVeyor

0.17 2018-07-07
    . Added installation instructions for MacOS / OSX, contributed by Sdonley
    . Added default path on MacOS for using the default Chrome executable
    . Automatic testing for OSX on Travis CI is now enabled
    . We now always launch Chrome / Chromium with --no-zygote and --no-sandbox
      This behaviour can be disabled by passing
          no_zygote => 0,
          no_sandbox => 0,
      to the constructor
    . Skip constructor failure tests for Perl < 5.014
      $@ is not always preserved when a destructor calls eval{} on those
      versions of Perl.
    . Add ->infinite_scroll as experimental API, together with ->scroll_to_bottom
      Added by sdondley
    . Tested against Chromium 59.0.3071.115 / Win64 (some tests skipped)
    . Tested against Chromium 60.0.3110.0 / Win64 (some tests skipped)
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64 (some tests skipped)
    . Tested against Chromium 63.0.3239.132 / Win64
    . Tested against Chromium 64.0.3282.119 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 / Win64 (some tests skipped)
    . Tested against Chromium 66.0.3359.139 / Win64 (some tests skipped)
    . Tested against Chromium 67.0.3396.99 / Win64 (some tests skipped)
    . Tested against Chromium 68.0.3435.0 / Win64 (some tests skipped)
    . Tested against Chromium 69.0.3481.0 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 Built on Ubuntu, thanks Travis CI
    . Tested against Google Chrome 67.0.3396.99  Built on OSX, thanks Travis CI
    . Tested against Chrome/67.0.3396.99 / Win64, thanks AppVeyor

0.16 2018-06-23
    + Added ->is_visible, ->wait_until_visible and ->wait_until_invisible
    + Better way to find the system browser by default
      This can be overridden by explicitly specifying the executable to use
    . Rename ->agent_async() to ->agent_future()
    . Add ->callFunctionOn_future() and ->callFunctionOn()
    ! "start_url" now actually gets you the first URL
    ! Fixed ->viewport_size() to actually work
    . Experimental prototype of self-implemented Save Page As feature
      (undocumented)

0.15 2018-05-30
    . Added ->links() method, pasted from WWW::Mechanize::PhantomJS
      Thanks to Alain Rioux for spotting
    + Add some more command line switches to disable more background behaviour
      of Chrome by default:
        background_networking
        client_side_phishing_detection
        component_update
        hang_monitor
        prompt_on_repost
        sync
        web_resources
        default_apps
        infobars
        default_apps
        popup_blocking
      You can re-enable this by passing a true value to the option in
      the constructor

0.14 2018-05-27
    + The "tab" parameter to ->new() was documented
    ! The "reuse" parameter to reconnect to an existing Chrome instance is
      not needed anymore if you pass in a true value for the "tab" parameter.
    ! Downloads are now detected in a better way on Chrome 66+
      This needed some general rework in how responses are treated, so please
      retest your scripts and send me failing tests if a case has now become
      time-critical.
    . Tested against Chromium 59.0.3071.115 / Win64 (some tests skipped)
    . Tested against Chromium 60.0.3110.0 / Win64 (some tests skipped)
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64 (some tests skipped)
    . Tested against Chromium 63.0.3239.132 / Win64
    . Tested against Chromium 64.0.3282.119 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 / Win64 (some tests skipped)
    . Tested against Chromium 66.0.3359.139 / Win64 (some tests skipped)
    . Tested against Chromium 67.0.3394.0 / Win64 (some tests skipped)
    . Tested against Chromium 68.0.3417.0 / Win64 (some tests skipped)
    . Tested against Chromium 69.0.3443.0 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 Built on Ubuntu, thanks Travis CI

0.13 2018-04-24
    . More test stability
    . Actually exit() after a failed fork() call
      This fixes RT 125162, diagnosed by Slaven Rezic
    . Tested against Chromium 59.0.3071.115 / Win64 (some tests skipped)
    . Tested against Chromium 60.0.3110.0 / Win64 (some tests skipped)
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64 (some tests skipped)
    . Tested against Chromium 63.0.3239.132 / Win64
    . Tested against Chromium 64.0.3282.119 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 / Win64 (some tests skipped)
    . Tested against Chromium 66.0.3346.0 / Win64 (some tests skipped)
    . Tested against Chromium 67.0.3394.0 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 Built on Ubuntu, thanks Travis CI

0.12 2018-04-21
    . Fix erroneous use of IO::Async::Loop in the tests
      This fixes RT 125156, diagnosed by Slaven Rezic
    . Tested against Chromium 59.0.3071.115 / Win64 (some tests skipped)
    . Tested against Chromium 60.0.3110.0 / Win64 (some tests skipped)
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64 (some tests skipped)
    . Tested against Chromium 63.0.3239.132 / Win64
    . Tested against Chromium 64.0.3282.119 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 / Win64 (some tests skipped)
    . Tested against Chromium 66.0.3346.0 / Win64 (some tests skipped)
    . Tested against Chromium 67.0.3394.0 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 Built on Ubuntu, thanks Travis CI

0.11 2018-04-14
    + Support ->reload on Chrome v66+ by adding --disable-prompt-on-repost
      This globally disables the prompting on repost for the process. If you
      need to test for these prompts, add
        disable_prompt_on_repost => 0
      to the options for the WWW::Mechanize::Chrome object. To my knowledge,
      there is no way to programmatically find whether Chrome is prompting for
      a repost or not. See also
          https://bugs.chromium.org/p/chromium/issues/detail?id=804371
    + Support ->getRequestPostData() to retrieve the data when sending a POST
	  request
    + Support ->searchInResponseBody() to search in a response body without
	  retrieving the body to Perl space. This doesn't work reliably in my
	  experience, as Chrome seems to forget response bodies rather quickly.
    + outerHTML is now a gettable property
	+ The User-Agent string can be set in the constructor
	+ Fixes for Chrome v67 when retrieving file:// resources
	  These fixes might have unwanted side-effects for other versions of Chrome
	  and other protocols, but the test suite doesn't show any of them. If this
	  change breaks your workflow, please submit a (failing) test case.
    . Tested against Chromium 59.0.3071.115 / Win64 (some tests skipped)
    . Tested against Chromium 60.0.3110.0 / Win64 (some tests skipped)
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64 (some tests skipped)
    . Tested against Chromium 63.0.3239.132 / Win64
    . Tested against Chromium 64.0.3282.119 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 / Win64 (some tests skipped)
    . Tested against Chromium 66.0.3346.0 / Win64 (some tests skipped)
    . Tested against Chromium 67.0.3394.0 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3325.181 Built on Ubuntu, thanks Travis CI

0.10 2018-02-02
    + IO::Async / Net::Async support
      This was mostly held back by me not understanding the API of
      Net::Async::WebSocket::Protocol. This needs
      Net::Async::WebSocket::Client 0.12 (or higher) installed.
    + Workarounds in tests for new, incompatible Chrome behaviour
    . Tested against Chromium 59.0.3071.115 / Win64 (some tests skipped)
    . Tested against Chromium 60.0.3110.0 / Win64 (some tests skipped)
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64 (some tests skipped)
    . Tested against Chromium 63.0.3239.132 / Win64
    . Tested against Chromium 64.0.3282.119 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3317.0 / Win64 (some tests skipped)
    . Tested against Chromium 66.0.3335.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 Built on Ubuntu, thanks Travis CI

0.09 2018-01-04
    ! ->js_errors() now only returns error messages
    ! ->js_console_entries returns all entries in the browser console
    ! Errors in JS code from ->eval_in_page are now fatal errors in Perl too
    + The ->reload() method works now
    . Tested against Chromium 59.0.3071.115 / Win64 (some tests skipped)
    . Tested against Chromium 60.0.3110.0 / Win64 (some tests skipped)
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64 (some tests skipped)
    . Tested against Chromium 63.0.3239.108 / Win64
    . Tested against Chromium 64.0.3282.0 / Win64 (some tests skipped)
    . Tested against Chromium 65.0.3311.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 Built on Ubuntu, thanks Travis CI

0.08 2017-11-30
    + Implemented file downloads and their storage for v62 and v63
      You can't find out the name a file was saved as, and you can't find out
      when the download is done.
      Chrome v64 doesn't notify us at all about downloads.
    ! Redid success/failure logic of responses
      We try harder to associate a response with something that we actually
      initiated.
    ! Selecting different backends now actually works
    . Tested against Chromium 59.0.3071.115 / Win64
    . Tested against Chromium 60.0.3110.0 / Win64
    . Tested against Chromium 61.0.3141.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 / Win64
    . Tested against Chromium 63.0.3205.0 / Win64
    . Tested against Chromium 64.0.3282.0 / Win64 (some tests skipped)
    . Tested against Chromium 62.0.3202.94 Built on Ubuntu, thanks Travis CI

0.07 2017-09-02
    ! Fix timers firing or not
    ! Implement a workaround for Chrome (not) navigating
      This workaround means sleeping 0.1s to see whether the notification comes
      in from Chrome after the "navigation complete" message has arrived.
      Ideally we will find a way to make Chrome tell us when it will perform
      HTTP transactions instead of having to wait.
    . Tested against Chromium 59.0.3071.115 / Win64
    . Tested against Chromium 60.0.3110.0 / Win64
    . Tested against Chromium 61.0.3141.0 / Win64
    . Tested against Chromium 62.0.3189.0 / Win64
    . Tested against Chromium 63.0.3205.0 / Win64
    . Tested against Chromium 58.0.3029.110 Built on Ubuntu, thanks Travis CI

0.06 2017-08-06
    . Correct the name of the examples module
    . No code changes, no need to upgrade

0.05 2017-08-06
    + More robust handling of Chrome disconnects
      It seems that Chromium 62+ disconnects all clients when a tab is closed
    ! ->get now always waits for an HTTP response
    . Tested against Chromium 59.0.3071.115 / Win64
    . Tested against Chromium 60.0.3110.0 / Win64
    . Tested against Chromium 61.0.3140.0 / Win64
    . Tested against Chromium 61.0.3141.0 / Win64
    . Tested against Chromium 62.0.3178.0 / Win64
    . Tested against Chromium 58.0.3029.110 Built on Ubuntu, thanks Travis CI

0.04 2017-07-01
    + Fix maximum websocket message size
      This was "randomly" breaking transfers with large assets.

0.03 2017-06-30
    ! The "profile" option now really uses the profile, not the data directory.
    + New option "data_directory" to set the base data directory.
    + We run all tests with a temporary user now instead of the default user
      that might be your current Chrome user
    + Tests now run headless by default
    + The backend event loop can be selected from the environment
    . Tested against Chromium 59.0.3071.115 / Win64
    . Tested against Chromium 60.0.3110.0 / Win64
    . Tested against Chromium 61.0.3140.0 / Win64
    . Tested against Chromium 61.0.3141.0 / Win64
    . Tested against Chromium 58.0.3029.110 Built on Ubuntu, thanks Travis CI

0.02 2017-06-23
    + Many more functions
    + Screencast ability
    + ->stop() function
    + Handling of Javascript dialogs
    . Tested against Chromium 60.0.3110.0 / Win64
    . Tested against Chromium 61.0.3140.0 / Win64
    . Tested against Chromium 58.0.3029.110 Built on Ubuntu, thanks Travis CI

0.01 2017-06-02
    . Released unto an unsuspecting audience
    . Tested against Chromium 60.0.3110.0 / Win64
    . Tested against Chromium 58.0.3029.110 Built on Ubuntu, thanks Travis CI