diff --git a/CHANGELOG.md b/CHANGELOG.md index 1339ce6d..6c0866bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,8 @@ `go_to` instead ### Fixed +- `InterceptedRequest#navigation_request?` and `AuthRequest#navigation_request?` always returned `nil`, they are true + for document requests now - `evaluate` raised `NoMethodError` when a node inside a `Map` or `Set` was also referenced elsewhere in the result - `headers.clear` kept sending the old headers until the next `add` or `set`, and kept the user agent and language they set. Now it clears them in Chrome right away diff --git a/lib/ferrum/network/auth_request.rb b/lib/ferrum/network/auth_request.rb index c5cb1fcf..a65e2568 100644 --- a/lib/ferrum/network/auth_request.rb +++ b/lib/ferrum/network/auth_request.rb @@ -26,7 +26,7 @@ def initialize(page, params) # @return [Boolean] # def navigation_request? - @params["isNavigationRequest"] + resource_type == "Document" end # diff --git a/lib/ferrum/network/intercepted_request.rb b/lib/ferrum/network/intercepted_request.rb index 16a675d6..d3e3fbef 100644 --- a/lib/ferrum/network/intercepted_request.rb +++ b/lib/ferrum/network/intercepted_request.rb @@ -45,7 +45,7 @@ def status?(value) # @return [Boolean] # def navigation_request? - @params["isNavigationRequest"] + resource_type == "Document" end # diff --git a/sig/ferrum/network/intercepted_request.rbs b/sig/ferrum/network/intercepted_request.rbs index b1857ded..73c70fc3 100644 --- a/sig/ferrum/network/intercepted_request.rbs +++ b/sig/ferrum/network/intercepted_request.rbs @@ -15,7 +15,7 @@ module Ferrum def status?: (untyped value) -> untyped - def navigation_request?: () -> untyped + def navigation_request?: () -> bool def match?: (untyped regexp) -> untyped diff --git a/spec/network/auth_request_spec.rb b/spec/network/auth_request_spec.rb index 8263fb80..4f56b73b 100644 --- a/spec/network/auth_request_spec.rb +++ b/spec/network/auth_request_spec.rb @@ -11,6 +11,20 @@ } end + describe "#navigation_request?" do + it "returns true for a document request" do + request = described_class.new(nil, params.merge("resourceType" => "Document")) + + expect(request.navigation_request?).to be(true) + end + + it "returns false for a subresource request" do + request = described_class.new(nil, params.merge("resourceType" => "Script")) + + expect(request.navigation_request?).to be(false) + end + end + describe "#match?" do it "matches regular expressions" do expect(request.match?(/pattern\.svg\?\d/)).to be(true) diff --git a/spec/network/intercepted_request_spec.rb b/spec/network/intercepted_request_spec.rb index 38a3283d..06e38611 100644 --- a/spec/network/intercepted_request_spec.rb +++ b/spec/network/intercepted_request_spec.rb @@ -40,6 +40,20 @@ end end + describe "#navigation_request?" do + it "returns true for a document request" do + request = described_class.new(nil, params.merge("resourceType" => "Document")) + + expect(request.navigation_request?).to be(true) + end + + it "returns false for a subresource request" do + request = described_class.new(nil, params.merge("resourceType" => "Script")) + + expect(request.navigation_request?).to be(false) + end + end + describe "#match?" do it "matches regular expressions" do expect(request.match?(/pattern\.svg\?\d/)).to be(true)