From 951e1660418d04083276627bd97ca338d5b883bb Mon Sep 17 00:00:00 2001 From: YujiSoftware Date: Sat, 11 Jan 2025 18:09:56 +0900 Subject: [PATCH] fix: wait_for_idle has issue with window.URL.createObjectURL --- lib/ferrum/network/exchange.rb | 2 +- spec/network/exchange_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/ferrum/network/exchange.rb b/lib/ferrum/network/exchange.rb index f3f261be..26c12915 100644 --- a/lib/ferrum/network/exchange.rb +++ b/lib/ferrum/network/exchange.rb @@ -83,7 +83,7 @@ def blocked? # @return [Boolean] # def finished? - blocked? || response&.loaded? || !error.nil? || ping? + blocked? || response&.loaded? || !error.nil? || ping? || !!url&.start_with?("blob:") end # diff --git a/spec/network/exchange_spec.rb b/spec/network/exchange_spec.rb index 2b27a0ed..6e68f4bb 100644 --- a/spec/network/exchange_spec.rb +++ b/spec/network/exchange_spec.rb @@ -136,6 +136,21 @@ exchange.request = Ferrum::Network::Request.new({ "type" => "Ping" }) expect(exchange.finished?).to be true end + + it "returns true for blob requests" do + exchange = Ferrum::Network::Exchange.new(page, "1") + expect(exchange.finished?).to be false + + exchange.request = Ferrum::Network::Request.new( + { + "type" => "Document", + "request" => { + "url" => "blob:null/75787aaf-a81f-4237-98d7-0d51fe6cfcba" + } + } + ) + expect(exchange.finished?).to be true + end end describe "#redirect?" do