-
-
Notifications
You must be signed in to change notification settings - Fork 152
Closed
Description
Line 190 in 277f04e
def intercept(pattern: "*", resource_type: nil) |
If you try to create an intercept filter with an unknown resource type, the option is silently discarded:
browser.network.intercept resource_type: :Hotdogs
# => Okie dokie
Instead, it should raise an exception either by letting the CDP exception bubble up:
Unknown resource type in fetch filter: 'Hotdogs' (Ferrum::BrowserError)
from /Users/ttilberg/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/ferrum-0.12/lib/ferrum/browser/client.rb:49:in `command'
from /Users/ttilberg/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/ferrum-0.12/lib/ferrum/page.rb:177:in `command'
from /Users/ttilberg/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/ferrum-0.12/lib/ferrum/network.rb:98:in `intercept'
from browse.rb:4:in `<main>'
Or, raise an exception that helps the user by tailoring the language to the Ferrum API:
/Users/ttilberg/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/ferrum-0.12/lib/ferrum/network.rb:96:in `intercept': resource_type must be one of ["Document", "Stylesheet", "Image", "Media", "Font", "Script", "TextTrack", "XHR", "Fetch", "EventSource", "WebSocket", "Manifest", "SignedExchange", "Ping", "CSPViolationReport", "Other"] (RuntimeError)
from browse.rb:4:in `<main>'
It looks like RESOURCE_TYPES
is only used to guard this value, so perhaps by letting it bubble up you wouldn't have to maintain this list anyway.
This came up after trying to send WebSocket
as a value, and finding that it wasn't accepted by CDP anyway. So maybe there's a higher-level thing that needs to change anyway.
Metadata
Metadata
Assignees
Labels
No labels