11# frozen_string_literal: true
22
3- require "concurrent-ruby"
43require "ferrum/browser/subscriber"
54require "ferrum/browser/web_socket"
65
@@ -14,15 +13,18 @@ def initialize(browser, ws_url, id_starts_with: 0)
1413 @command_id = id_starts_with
1514 @pendings = Concurrent ::Hash . new
1615 @ws = WebSocket . new ( ws_url , @browser . ws_max_receive_size , @browser . logger )
17- @subscriber , @interruptor = Subscriber . build ( 2 )
16+ @subscriber , @interrupter = Subscriber . build ( 2 )
1817
1918 @thread = Thread . new do
2019 Thread . current . abort_on_exception = true
2120 Thread . current . report_on_exception = true if Thread . current . respond_to? ( :report_on_exception= )
2221
23- while message = @ws . messages . pop
22+ loop do
23+ message = @ws . messages . pop
24+ break unless message
25+
2426 if INTERRUPTIONS . include? ( message [ "method" ] )
25- @interruptor . async . call ( message )
27+ @interrupter . async . call ( message )
2628 elsif message . key? ( "method" )
2729 @subscriber . async . call ( message )
2830 else
@@ -51,14 +53,14 @@ def command(method, params = {})
5153 def on ( event , &block )
5254 case event
5355 when *INTERRUPTIONS
54- @interruptor . on ( event , &block )
56+ @interrupter . on ( event , &block )
5557 else
5658 @subscriber . on ( event , &block )
5759 end
5860 end
5961
6062 def subscribed? ( event )
61- [ @interruptor , @subscriber ] . any? { |s | s . subscribed? ( event ) }
63+ [ @interrupter , @subscriber ] . any? { |s | s . subscribed? ( event ) }
6264 end
6365
6466 def close
0 commit comments