Class: Playwright::Connection
- Inherits:
-
Object
- Object
- Playwright::Connection
- Defined in:
- lib/playwright/connection.rb
Overview
Instance Attribute Summary collapse
-
#local_utils ⇒ Object
readonly
Returns the value of attribute local_utils.
Instance Method Summary collapse
- #async_run ⇒ Object
- #async_send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
-
#initialize(transport) ⇒ Connection
constructor
A new instance of Connection.
- #initialize_playwright ⇒ Object
- #mark_as_remote ⇒ Object
- #remote? ⇒ Boolean
- #send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize(transport) ⇒ 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 |
# File 'lib/playwright/connection.rb', line 8 def initialize(transport) @transport = transport @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) @remote = false end |
Instance Attribute Details
#local_utils ⇒ Object (readonly)
Returns the value of attribute local_utils.
27 28 29 |
# File 'lib/playwright/connection.rb', line 27 def local_utils @local_utils end |
Instance Method Details
#async_run ⇒ Object
37 38 39 |
# File 'lib/playwright/connection.rb', line 37 def async_run @transport.async_run end |
#async_send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/playwright/connection.rb', line 53 def (guid, method, params, metadata: nil) 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), metadata: || {}, } begin @transport.() rescue => err @callbacks.delete(id) callback.reject(err) raise unless err.is_a?(Transport::AlreadyDisconnectedError) end end callback end |
#initialize_playwright ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/playwright/connection.rb', line 45 def initialize_playwright # Avoid Error: sdkLanguage: expected one of (javascript|python|java|csharp) # ref: https://github.com/microsoft/playwright/pull/18308 # ref: https://github.com/YusukeIwaki/playwright-ruby-client/issues/228 result = ('', 'initialize', { sdkLanguage: 'python' }) ChannelOwners::Playwright.from(result['playwright']) end |
#mark_as_remote ⇒ Object
29 30 31 |
# File 'lib/playwright/connection.rb', line 29 def mark_as_remote @remote = true end |
#remote? ⇒ Boolean
33 34 35 |
# File 'lib/playwright/connection.rb', line 33 def remote? @remote end |
#send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
81 82 83 |
# File 'lib/playwright/connection.rb', line 81 def (guid, method, params, metadata: nil) (guid, method, params, metadata: ).value! end |
#stop ⇒ Object
41 42 43 |
# File 'lib/playwright/connection.rb', line 41 def stop @transport.stop end |