diff --git a/CHANGELOG.md b/CHANGELOG.md
index e4b97351..97ea75ec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@
- `Ferrum::Network::Exchange#finished?` takes into account that exchange might be in an unknown state after loader changed(next `go_to` call) and considers
such as finished [#426]
+- `headless: "new"` mode is removed as it's now default in modern Chrome, just use `headless: true` instead [#518]
### Fixed
diff --git a/README.md b/README.md
index 0231f684..499aead8 100644
--- a/README.md
+++ b/README.md
@@ -150,8 +150,7 @@ Ferrum::Browser.new(options)
```
* options `Hash`
- * `:headless` (String | Boolean) - Set browser as headless or not, `true` by default. You can set `"new"` to support
- [new headless mode](https://developer.chrome.com/articles/new-headless/).
+ * `:headless` (String | Boolean) - Set browser as headless or not, `true` by default.
* `:xvfb` (Boolean) - Run browser in a virtual framebuffer, `false` by default.
* `:flatten` (Boolean) - Use one websocket connection to the browser and all the pages in flatten mode.
* `:window_size` (Array) - The dimensions of the browser window in which to
diff --git a/lib/ferrum/browser.rb b/lib/ferrum/browser.rb
index 9626ad1d..0d3950d7 100644
--- a/lib/ferrum/browser.rb
+++ b/lib/ferrum/browser.rb
@@ -245,10 +245,6 @@ def version
VersionInfo.new(command("Browser.getVersion"))
end
- def headless_new?
- process&.command&.headless_new?
- end
-
private
def start
diff --git a/lib/ferrum/browser/command.rb b/lib/ferrum/browser/command.rb
index b6907cec..32675e9d 100644
--- a/lib/ferrum/browser/command.rb
+++ b/lib/ferrum/browser/command.rb
@@ -39,10 +39,6 @@ def xvfb?
!!options.xvfb
end
- def headless_new?
- @flags["headless"] == "new"
- end
-
def to_a
[path] + @flags.map { |k, v| v.nil? ? "--#{k}" : "--#{k}=#{v}" }
end
diff --git a/lib/ferrum/browser/options/chrome.rb b/lib/ferrum/browser/options/chrome.rb
index 06c2e82a..f0dcd941 100644
--- a/lib/ferrum/browser/options/chrome.rb
+++ b/lib/ferrum/browser/options/chrome.rb
@@ -76,13 +76,7 @@ def merge_required(flags, options, user_data_dir)
end
def merge_default(flags, options)
- defaults = case options.headless
- when false
- except("headless", "disable-gpu")
- when "new"
- except("headless").merge("headless" => "new")
- end
-
+ defaults = except("headless", "disable-gpu") if options.headless == false
defaults ||= DEFAULT_OPTIONS
# On Windows, the --disable-gpu flag is a temporary work around for a few bugs.
# See https://bugs.chromium.org/p/chromium/issues/detail?id=737678 for more information.
diff --git a/spec/network_spec.rb b/spec/network_spec.rb
index 50d49f05..7ad22a24 100644
--- a/spec/network_spec.rb
+++ b/spec/network_spec.rb
@@ -517,6 +517,6 @@
%r{Request to http://.*/with_js failed \(net::ERR_INTERNET_DISCONNECTED\)}
)
- expect(page.at_css("body").text).to match("No internet") if browser.headless_new?
+ expect(page.at_css("body").text).to match("No internet")
end
end
diff --git a/spec/page_spec.rb b/spec/page_spec.rb
index 93e99a8b..65fb1174 100644
--- a/spec/page_spec.rb
+++ b/spec/page_spec.rb
@@ -55,7 +55,7 @@
describe "#position=" do
it "allows the window to be positioned" do
- skip if Ferrum::Utils::Platform.mac? && !browser.headless_new?
+ skip if Ferrum::Utils::Platform.mac?
expect do
page.position = { left: 10, top: 20 }
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 4c944a29..47946236 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -33,7 +33,6 @@
config.before(:all) do
base_url = Ferrum::Server.server.base_url
options = { base_url: base_url }
- options.merge!(headless: "new") if ENV["HEADLESS"] == "new"
options.merge!(headless: false) if ENV["HEADLESS"] == "false"
options.merge!(slowmo: ENV["SLOWMO"].to_f) if ENV["SLOWMO"].to_f > 0
diff --git a/spec/support/application.rb b/spec/support/application.rb
index 22624303..86e479d7 100644
--- a/spec/support/application.rb
+++ b/spec/support/application.rb
@@ -49,7 +49,7 @@ def authorized?(login, password)
get "/" do
response.set_cookie("cookie", value: "root cookie", domain: request.host, path: request.path)
- %(Hello world! Relative)
+ %(Hello world! Relative)
end
get "/set_cookie" do