Class: Playwright::Connection
- Inherits:
-
Object
- Object
- Playwright::Connection
- Defined in:
- lib/playwright/connection.rb
Overview
Instance Method Summary collapse
- #async_run ⇒ Object
- #async_send_message_to_server(guid, method, params) ⇒ Object
-
#initialize(playwright_cli_executable_path:) ⇒ Connection
constructor
A new instance of Connection.
- #send_message_to_server(guid, method, params) ⇒ Object
- #stop ⇒ Object
- #wait_for_object_with_known_name(guid) ⇒ Object
Constructor Details
#initialize(playwright_cli_executable_path:) ⇒ Connection
Returns a new instance of Connection.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/playwright/connection.rb', line 8 def initialize(playwright_cli_executable_path:) @transport = Transport.new( playwright_cli_executable_path: playwright_cli_executable_path ) @transport. do || dispatch() end @transport.on_driver_crashed do @callbacks.each_value do |callback| callback.reject(::Playwright::DriverCrashedError.new) end raise ::Playwright::DriverCrashedError.new end @objects = {} # Hash[ guid => ChannelOwner ] @waiting_for_object = {} # Hash[ guid => Promise<ChannelOwner> ] @callbacks = {} # Hash [ guid => Promise<ChannelOwner> ] @root_object = RootChannelOwner.new(self) end |
Instance Method Details
#async_run ⇒ Object
28 29 30 |
# File 'lib/playwright/connection.rb', line 28 def async_run @transport.async_run end |
#async_send_message_to_server(guid, method, params) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/playwright/connection.rb', line 46 def (guid, method, params) callback = Concurrent::Promises.resolvable_future with_generated_id do |id| # register callback promise object first. # @see https://github.com/YusukeIwaki/puppeteer-ruby/pull/34 @callbacks[id] = callback = { id: id, guid: guid, method: method, params: replace_channels_with_guids(params), } begin @transport.() rescue => err @callbacks.delete(id) callback.reject(err) raise unless err.is_a?(Transport::AlreadyDisconnectedError) end end callback end |
#send_message_to_server(guid, method, params) ⇒ Object
72 73 74 |
# File 'lib/playwright/connection.rb', line 72 def (guid, method, params) (guid, method, params).value! end |
#stop ⇒ Object
32 33 34 |
# File 'lib/playwright/connection.rb', line 32 def stop @transport.stop end |
#wait_for_object_with_known_name(guid) ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/playwright/connection.rb', line 36 def wait_for_object_with_known_name(guid) if @objects[guid] return @objects[guid] end callback = Concurrent::Promises.resolvable_future @waiting_for_object[guid] = callback callback.value! end |