. 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 70.0.3500.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.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