@@ -94,21 +94,27 @@ def attach_socket_listener
9494 Thread . current . abort_on_exception = true
9595 Thread . current . report_on_exception = false
9696
97- until socket . eof?
98- incoming_frame << socket . readpartial ( 1024 )
99-
100- while ( frame = incoming_frame . next )
101- message = process_frame ( frame )
102- next unless message [ 'method' ]
103-
104- params = message [ 'params' ]
105- callbacks [ message [ 'method' ] ] . each do |callback |
106- @callback_threads . add ( callback_thread ( params , &callback ) )
107- end
108- end
97+ read_and_process_frames until socket . eof?
98+ rescue *CONNECTION_ERRORS => e
99+ WebDriver . logger . debug ( "BiDi socket closed: #{ e . class } - #{ e . message } " , id : :websocket )
100+ Thread . exit
101+ rescue StandardError => e
102+ WebDriver . logger . debug ( "Unexpected error in BiDi socket thread: #{ e . class } - #{ e . message } " , id : :websocket )
103+ Thread . exit
104+ end
105+ end
106+
107+ def read_and_process_frames
108+ incoming_frame << socket . readpartial ( 1024 )
109+
110+ while ( frame = incoming_frame . next )
111+ message = process_frame ( frame )
112+ next unless message [ 'method' ]
113+
114+ params = message [ 'params' ]
115+ callbacks [ message [ 'method' ] ] . each do |callback |
116+ @callback_threads . add ( callback_thread ( params , &callback ) )
109117 end
110- rescue *CONNECTION_ERRORS
111- Thread . stop
112118 end
113119 end
114120
@@ -142,7 +148,7 @@ def callback_thread(params)
142148
143149 yield params
144150 rescue Error ::WebDriverError , *CONNECTION_ERRORS
145- Thread . stop
151+ Thread . exit
146152 end
147153 end
148154
0 commit comments