playwright-ruby-client 0.0.8 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/docs/api_coverage.md +159 -101
  4. data/lib/playwright.rb +5 -2
  5. data/lib/playwright/{input_types/android_input.rb → android_input_impl.rb} +5 -1
  6. data/lib/playwright/api_implementation.rb +18 -0
  7. data/lib/playwright/channel.rb +13 -6
  8. data/lib/playwright/channel_owner.rb +3 -5
  9. data/lib/playwright/channel_owners/android.rb +1 -1
  10. data/lib/playwright/channel_owners/android_device.rb +12 -12
  11. data/lib/playwright/channel_owners/binding_call.rb +3 -0
  12. data/lib/playwright/channel_owners/browser.rb +1 -1
  13. data/lib/playwright/channel_owners/browser_context.rb +157 -3
  14. data/lib/playwright/channel_owners/dialog.rb +28 -0
  15. data/lib/playwright/channel_owners/download.rb +27 -0
  16. data/lib/playwright/channel_owners/element_handle.rb +15 -4
  17. data/lib/playwright/channel_owners/frame.rb +24 -5
  18. data/lib/playwright/channel_owners/js_handle.rb +1 -1
  19. data/lib/playwright/channel_owners/page.rb +367 -29
  20. data/lib/playwright/channel_owners/playwright.rb +4 -0
  21. data/lib/playwright/channel_owners/request.rb +35 -3
  22. data/lib/playwright/channel_owners/response.rb +60 -0
  23. data/lib/playwright/channel_owners/route.rb +78 -0
  24. data/lib/playwright/channel_owners/selectors.rb +19 -1
  25. data/lib/playwright/errors.rb +1 -1
  26. data/lib/playwright/event_emitter.rb +8 -1
  27. data/lib/playwright/event_emitter_proxy.rb +49 -0
  28. data/lib/playwright/file_chooser_impl.rb +23 -0
  29. data/lib/playwright/http_headers.rb +20 -0
  30. data/lib/playwright/input_files.rb +1 -1
  31. data/lib/playwright/{input_types/keyboard.rb → keyboard_impl.rb} +5 -1
  32. data/lib/playwright/mouse_impl.rb +7 -0
  33. data/lib/playwright/playwright_api.rb +59 -20
  34. data/lib/playwright/route_handler_entry.rb +36 -0
  35. data/lib/playwright/select_option_values.rb +14 -4
  36. data/lib/playwright/touchscreen_impl.rb +7 -0
  37. data/lib/playwright/utils.rb +4 -3
  38. data/lib/playwright/version.rb +1 -1
  39. data/lib/playwright/wait_helper.rb +1 -1
  40. data/lib/playwright_api/android.rb +82 -11
  41. data/lib/playwright_api/android_device.rb +148 -32
  42. data/lib/playwright_api/android_input.rb +17 -13
  43. data/lib/playwright_api/android_socket.rb +16 -0
  44. data/lib/playwright_api/android_web_view.rb +21 -0
  45. data/lib/playwright_api/binding_call.rb +14 -5
  46. data/lib/playwright_api/browser.rb +22 -23
  47. data/lib/playwright_api/browser_context.rb +49 -35
  48. data/lib/playwright_api/browser_type.rb +24 -64
  49. data/lib/playwright_api/chromium_browser_context.rb +10 -8
  50. data/lib/playwright_api/console_message.rb +10 -6
  51. data/lib/playwright_api/dialog.rb +37 -6
  52. data/lib/playwright_api/download.rb +28 -11
  53. data/lib/playwright_api/element_handle.rb +107 -96
  54. data/lib/playwright_api/file_chooser.rb +18 -10
  55. data/lib/playwright_api/frame.rb +124 -117
  56. data/lib/playwright_api/js_handle.rb +20 -22
  57. data/lib/playwright_api/keyboard.rb +5 -5
  58. data/lib/playwright_api/page.rb +206 -148
  59. data/lib/playwright_api/playwright.rb +33 -45
  60. data/lib/playwright_api/request.rb +11 -12
  61. data/lib/playwright_api/response.rb +30 -16
  62. data/lib/playwright_api/route.rb +27 -5
  63. data/lib/playwright_api/selectors.rb +14 -10
  64. data/lib/playwright_api/web_socket.rb +10 -1
  65. data/lib/playwright_api/worker.rb +13 -13
  66. metadata +16 -7
  67. data/lib/playwright/input_type.rb +0 -19
  68. data/lib/playwright/input_types/mouse.rb +0 -4
  69. data/lib/playwright/input_types/touchscreen.rb +0 -4
@@ -113,51 +113,15 @@ module Playwright
113
113
  wrap_impl(@impl.devices)
114
114
  end
115
115
 
116
- # Playwright methods might throw errors if they are unable to fulfill a request. For example,
117
- # [`method: Page.waitForSelector`] might fail if the selector doesn't match any nodes during the given timeframe.
118
- #
119
- # For certain types of errors Playwright uses specific error classes. These classes are available via
120
- # [`playwright.errors`](#playwrighterrors).
121
- #
122
- # An example of handling a timeout error:
123
- #
124
- #
125
- # ```js
126
- # try {
127
- # await page.waitForSelector('.foo');
128
- # } catch (e) {
129
- # if (e instanceof playwright.errors.TimeoutError) {
130
- # // Do something if this is a timeout.
131
- # }
132
- # }
133
- # ```
134
- #
135
- # ```python async
136
- # try:
137
- # await page.wait_for_selector(".foo")
138
- # except TimeoutError as e:
139
- # # do something if this is a timeout.
140
- # ```
141
- #
142
- # ```python sync
143
- # try:
144
- # page.wait_for_selector(".foo")
145
- # except TimeoutError as e:
146
- # # do something if this is a timeout.
147
- # ```
148
- def errors # property
149
- raise NotImplementedError.new('errors is not implemented yet.')
150
- end
151
-
152
116
  # This object can be used to launch or connect to Firefox, returning instances of `FirefoxBrowser`.
153
117
  def firefox # property
154
118
  wrap_impl(@impl.firefox)
155
119
  end
156
120
 
157
- # Selectors can be used to install custom selector engines. See
158
- # [Working with selectors](./selectors.md#working-with-selectors) for more information.
121
+ # Selectors can be used to install custom selector engines. See [Working with selectors](./selectors.md) for more
122
+ # information.
159
123
  def selectors # property
160
- raise NotImplementedError.new('selectors is not implemented yet.')
124
+ wrap_impl(@impl.selectors)
161
125
  end
162
126
 
163
127
  # This object can be used to launch or connect to WebKit, returning instances of `WebKitBrowser`.
@@ -165,6 +129,26 @@ module Playwright
165
129
  wrap_impl(@impl.webkit)
166
130
  end
167
131
 
132
+ # Terminates this instance of Playwright in case it was created bypassing the Python context manager. This is useful in
133
+ # REPL applications.
134
+ #
135
+ # ```py
136
+ # >>> from playwright.sync_api import sync_playwright
137
+ #
138
+ # >>> playwright = sync_playwright().start()
139
+ #
140
+ # >>> browser = playwright.chromium.launch()
141
+ # >>> page = browser.new_page()
142
+ # >>> page.goto("http://whatsmyuseragent.org/")
143
+ # >>> page.screenshot(path="example.png")
144
+ # >>> browser.close()
145
+ #
146
+ # >>> playwright.stop()
147
+ # ```
148
+ def stop
149
+ raise NotImplementedError.new('stop is not implemented yet.')
150
+ end
151
+
168
152
  # @nodoc
169
153
  def android
170
154
  wrap_impl(@impl.android)
@@ -177,20 +161,24 @@ module Playwright
177
161
 
178
162
  # -- inherited from EventEmitter --
179
163
  # @nodoc
180
- def on(event, callback)
181
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
164
+ def off(event, callback)
165
+ event_emitter_proxy.off(event, callback)
182
166
  end
183
167
 
184
168
  # -- inherited from EventEmitter --
185
169
  # @nodoc
186
- def off(event, callback)
187
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
170
+ def once(event, callback)
171
+ event_emitter_proxy.once(event, callback)
188
172
  end
189
173
 
190
174
  # -- inherited from EventEmitter --
191
175
  # @nodoc
192
- def once(event, callback)
193
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
176
+ def on(event, callback)
177
+ event_emitter_proxy.on(event, callback)
178
+ end
179
+
180
+ private def event_emitter_proxy
181
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
194
182
  end
195
183
  end
196
184
  end
@@ -2,10 +2,10 @@ module Playwright
2
2
  # Whenever the page sends a request for a network resource the following sequence of events are emitted by `Page`:
3
3
  # - [`event: Page.request`] emitted when the request is issued by the page.
4
4
  # - [`event: Page.response`] emitted when/if the response status and headers are received for the request.
5
- # - [`event: Page.requestfinished`] emitted when the response body is downloaded and the request is complete.
5
+ # - [`event: Page.requestFinished`] emitted when the response body is downloaded and the request is complete.
6
6
  #
7
7
  # If request fails at some point, then instead of `'requestfinished'` event (and possibly instead of 'response' event),
8
- # the [`event: Page.requestfailed`] event is emitted.
8
+ # the [`event: Page.requestFailed`] event is emitted.
9
9
  #
10
10
  # > NOTE: HTTP Error responses, such as 404 or 503, are still successful responses from HTTP standpoint, so request will
11
11
  # complete with `'requestfinished'` event.
@@ -178,27 +178,26 @@ module Playwright
178
178
  wrap_impl(@impl.url)
179
179
  end
180
180
 
181
+ # -- inherited from EventEmitter --
181
182
  # @nodoc
182
- def after_initialize
183
- wrap_impl(@impl.after_initialize)
183
+ def off(event, callback)
184
+ event_emitter_proxy.off(event, callback)
184
185
  end
185
186
 
186
187
  # -- inherited from EventEmitter --
187
188
  # @nodoc
188
- def on(event, callback)
189
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
189
+ def once(event, callback)
190
+ event_emitter_proxy.once(event, callback)
190
191
  end
191
192
 
192
193
  # -- inherited from EventEmitter --
193
194
  # @nodoc
194
- def off(event, callback)
195
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
195
+ def on(event, callback)
196
+ event_emitter_proxy.on(event, callback)
196
197
  end
197
198
 
198
- # -- inherited from EventEmitter --
199
- # @nodoc
200
- def once(event, callback)
201
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
199
+ private def event_emitter_proxy
200
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
202
201
  end
203
202
  end
204
203
  end
@@ -4,77 +4,91 @@ module Playwright
4
4
 
5
5
  # Returns the buffer with response body.
6
6
  def body
7
- raise NotImplementedError.new('body is not implemented yet.')
7
+ wrap_impl(@impl.body)
8
8
  end
9
9
 
10
10
  # Waits for this response to finish, returns failure error if request failed.
11
11
  def finished
12
- raise NotImplementedError.new('finished is not implemented yet.')
12
+ wrap_impl(@impl.finished)
13
13
  end
14
14
 
15
15
  # Returns the `Frame` that initiated this response.
16
16
  def frame
17
- raise NotImplementedError.new('frame is not implemented yet.')
17
+ wrap_impl(@impl.frame)
18
18
  end
19
19
 
20
20
  # Returns the object with HTTP headers associated with the response. All header names are lower-case.
21
21
  def headers
22
- raise NotImplementedError.new('headers is not implemented yet.')
22
+ wrap_impl(@impl.headers)
23
23
  end
24
24
 
25
25
  # Returns the JSON representation of response body.
26
26
  #
27
27
  # This method will throw if the response body is not parsable via `JSON.parse`.
28
28
  def json
29
- raise NotImplementedError.new('json is not implemented yet.')
29
+ wrap_impl(@impl.json)
30
30
  end
31
31
 
32
32
  # Contains a boolean stating whether the response was successful (status in the range 200-299) or not.
33
33
  def ok
34
- raise NotImplementedError.new('ok is not implemented yet.')
34
+ wrap_impl(@impl.ok)
35
35
  end
36
36
 
37
37
  # Returns the matching `Request` object.
38
38
  def request
39
- raise NotImplementedError.new('request is not implemented yet.')
39
+ wrap_impl(@impl.request)
40
40
  end
41
41
 
42
42
  # Contains the status code of the response (e.g., 200 for a success).
43
43
  def status
44
- raise NotImplementedError.new('status is not implemented yet.')
44
+ wrap_impl(@impl.status)
45
45
  end
46
46
 
47
47
  # Contains the status text of the response (e.g. usually an "OK" for a success).
48
48
  def status_text
49
- raise NotImplementedError.new('status_text is not implemented yet.')
49
+ wrap_impl(@impl.status_text)
50
50
  end
51
51
 
52
52
  # Returns the text representation of response body.
53
53
  def text
54
- raise NotImplementedError.new('text is not implemented yet.')
54
+ wrap_impl(@impl.text)
55
55
  end
56
56
 
57
57
  # Contains the URL of the response.
58
58
  def url
59
- raise NotImplementedError.new('url is not implemented yet.')
59
+ wrap_impl(@impl.url)
60
60
  end
61
61
 
62
- # -- inherited from EventEmitter --
63
62
  # @nodoc
64
- def on(event, callback)
65
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
63
+ def ok?
64
+ wrap_impl(@impl.ok?)
65
+ end
66
+
67
+ # @nodoc
68
+ def after_initialize
69
+ wrap_impl(@impl.after_initialize)
66
70
  end
67
71
 
68
72
  # -- inherited from EventEmitter --
69
73
  # @nodoc
70
74
  def off(event, callback)
71
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
75
+ event_emitter_proxy.off(event, callback)
72
76
  end
73
77
 
74
78
  # -- inherited from EventEmitter --
75
79
  # @nodoc
76
80
  def once(event, callback)
77
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
81
+ event_emitter_proxy.once(event, callback)
82
+ end
83
+
84
+ # -- inherited from EventEmitter --
85
+ # @nodoc
86
+ def on(event, callback)
87
+ event_emitter_proxy.on(event, callback)
88
+ end
89
+
90
+ private def event_emitter_proxy
91
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
78
92
  end
79
93
  end
80
94
  end
@@ -5,7 +5,7 @@ module Playwright
5
5
 
6
6
  # Aborts the route's request.
7
7
  def abort(errorCode: nil)
8
- raise NotImplementedError.new('abort is not implemented yet.')
8
+ wrap_impl(@impl.abort(errorCode: unwrap_impl(errorCode)))
9
9
  end
10
10
 
11
11
  # Continues route's request with optional overrides.
@@ -48,8 +48,8 @@ module Playwright
48
48
  # }
49
49
  # page.route("**/*", handle)
50
50
  # ```
51
- def continue_(headers: nil, method: nil, postData: nil, url: nil)
52
- raise NotImplementedError.new('continue_ is not implemented yet.')
51
+ def continue(headers: nil, method: nil, postData: nil, url: nil)
52
+ wrap_impl(@impl.continue(headers: unwrap_impl(headers), method: unwrap_impl(method), postData: unwrap_impl(postData), url: unwrap_impl(url)))
53
53
  end
54
54
 
55
55
  # Fulfills route's request with given response.
@@ -101,12 +101,34 @@ module Playwright
101
101
  headers: nil,
102
102
  path: nil,
103
103
  status: nil)
104
- raise NotImplementedError.new('fulfill is not implemented yet.')
104
+ wrap_impl(@impl.fulfill(body: unwrap_impl(body), contentType: unwrap_impl(contentType), headers: unwrap_impl(headers), path: unwrap_impl(path), status: unwrap_impl(status)))
105
105
  end
106
106
 
107
107
  # A request to be routed.
108
108
  def request
109
- raise NotImplementedError.new('request is not implemented yet.')
109
+ wrap_impl(@impl.request)
110
+ end
111
+
112
+ # -- inherited from EventEmitter --
113
+ # @nodoc
114
+ def off(event, callback)
115
+ event_emitter_proxy.off(event, callback)
116
+ end
117
+
118
+ # -- inherited from EventEmitter --
119
+ # @nodoc
120
+ def once(event, callback)
121
+ event_emitter_proxy.once(event, callback)
122
+ end
123
+
124
+ # -- inherited from EventEmitter --
125
+ # @nodoc
126
+ def on(event, callback)
127
+ event_emitter_proxy.on(event, callback)
128
+ end
129
+
130
+ private def event_emitter_proxy
131
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
110
132
  end
111
133
  end
112
134
  end
@@ -1,6 +1,6 @@
1
1
  module Playwright
2
- # Selectors can be used to install custom selector engines. See
3
- # [Working with selectors](./selectors.md#working-with-selectors) for more information.
2
+ # Selectors can be used to install custom selector engines. See [Working with selectors](./selectors.md) for more
3
+ # information.
4
4
  class Selectors < PlaywrightApi
5
5
 
6
6
  # An example of registering selector engine that queries elements based on a tag name:
@@ -48,26 +48,30 @@ module Playwright
48
48
  # ```python sync
49
49
  # # FIXME: add snippet
50
50
  # ```
51
- def register(name, script, contentScript: nil)
52
- raise NotImplementedError.new('register is not implemented yet.')
51
+ def register(name, contentScript: nil, path: nil, script: nil)
52
+ wrap_impl(@impl.register(unwrap_impl(name), contentScript: unwrap_impl(contentScript), path: unwrap_impl(path), script: unwrap_impl(script)))
53
53
  end
54
54
 
55
55
  # -- inherited from EventEmitter --
56
56
  # @nodoc
57
- def on(event, callback)
58
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
57
+ def off(event, callback)
58
+ event_emitter_proxy.off(event, callback)
59
59
  end
60
60
 
61
61
  # -- inherited from EventEmitter --
62
62
  # @nodoc
63
- def off(event, callback)
64
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
63
+ def once(event, callback)
64
+ event_emitter_proxy.once(event, callback)
65
65
  end
66
66
 
67
67
  # -- inherited from EventEmitter --
68
68
  # @nodoc
69
- def once(event, callback)
70
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
69
+ def on(event, callback)
70
+ event_emitter_proxy.on(event, callback)
71
+ end
72
+
73
+ private def event_emitter_proxy
74
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
71
75
  end
72
76
  end
73
77
  end
@@ -14,8 +14,17 @@ module Playwright
14
14
 
15
15
  # Waits for event to fire and passes its value into the predicate function. Returns when the predicate returns truthy
16
16
  # value. Will throw an error if the webSocket is closed before the event is fired. Returns the event data value.
17
- def expect_event(event, optionsOrPredicate: nil)
17
+ def expect_event(event, predicate: nil, timeout: nil)
18
18
  raise NotImplementedError.new('expect_event is not implemented yet.')
19
19
  end
20
+
21
+ # > NOTE: In most cases, you should use [`method: WebSocket.waitForEvent`].
22
+ #
23
+ # Waits for given `event` to fire. If predicate is provided, it passes event's value into the `predicate` function and
24
+ # waits for `predicate(event)` to return a truthy value. Will throw an error if the socket is closed before the `event` is
25
+ # fired.
26
+ def wait_for_event(event, predicate: nil, timeout: nil)
27
+ raise NotImplementedError.new('wait_for_event is not implemented yet.')
28
+ end
20
29
  end
21
30
  end
@@ -28,26 +28,26 @@ module Playwright
28
28
  # ```
29
29
  class Worker < PlaywrightApi
30
30
 
31
- # Returns the return value of `pageFunction`
31
+ # Returns the return value of `expression`.
32
32
  #
33
- # If the function passed to the `worker.evaluate` returns a [Promise], then `worker.evaluate` would wait for the promise
34
- # to resolve and return its value.
33
+ # If the function passed to the [`method: Worker.evaluate`] returns a [Promise], then [`method: Worker.evaluate`] would
34
+ # wait for the promise to resolve and return its value.
35
35
  #
36
- # If the function passed to the `worker.evaluate` returns a non-[Serializable] value, then `worker.evaluate` returns
37
- # `undefined`. DevTools Protocol also supports transferring some additional values that are not serializable by `JSON`:
38
- # `-0`, `NaN`, `Infinity`, `-Infinity`, and bigint literals.
39
- def evaluate(pageFunction, arg: nil)
36
+ # If the function passed to the [`method: Worker.evaluate`] returns a non-[Serializable] value, then
37
+ # [`method: Worker.evaluate`] returns `undefined`. Playwright also supports transferring some additional values that are
38
+ # not serializable by `JSON`: `-0`, `NaN`, `Infinity`, `-Infinity`.
39
+ def evaluate(expression, arg: nil)
40
40
  raise NotImplementedError.new('evaluate is not implemented yet.')
41
41
  end
42
42
 
43
- # Returns the return value of `pageFunction` as in-page object (JSHandle).
43
+ # Returns the return value of `expression` as a `JSHandle`.
44
44
  #
45
- # The only difference between `worker.evaluate` and `worker.evaluateHandle` is that `worker.evaluateHandle` returns
46
- # in-page object (JSHandle).
45
+ # The only difference between [`method: Worker.evaluate`] and [`method: Worker.evaluateHandle`] is that
46
+ # [`method: Worker.evaluateHandle`] returns `JSHandle`.
47
47
  #
48
- # If the function passed to the `worker.evaluateHandle` returns a [Promise], then `worker.evaluateHandle` would wait for
49
- # the promise to resolve and return its value.
50
- def evaluate_handle(pageFunction, arg: nil)
48
+ # If the function passed to the [`method: Worker.evaluateHandle`] returns a [Promise], then
49
+ # [`method: Worker.evaluateHandle`] would wait for the promise to resolve and return its value.
50
+ def evaluate_handle(expression, arg: nil)
51
51
  raise NotImplementedError.new('evaluate_handle is not implemented yet.')
52
52
  end
53
53
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playwright-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-11 00:00:00.000000000 Z
11
+ date: 2021-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -181,6 +181,8 @@ files:
181
181
  - bin/setup
182
182
  - docs/api_coverage.md
183
183
  - lib/playwright.rb
184
+ - lib/playwright/android_input_impl.rb
185
+ - lib/playwright/api_implementation.rb
184
186
  - lib/playwright/channel.rb
185
187
  - lib/playwright/channel_owner.rb
186
188
  - lib/playwright/channel_owners/android.rb
@@ -192,6 +194,8 @@ files:
192
194
  - lib/playwright/channel_owners/chromium_browser.rb
193
195
  - lib/playwright/channel_owners/chromium_browser_context.rb
194
196
  - lib/playwright/channel_owners/console_message.rb
197
+ - lib/playwright/channel_owners/dialog.rb
198
+ - lib/playwright/channel_owners/download.rb
195
199
  - lib/playwright/channel_owners/electron.rb
196
200
  - lib/playwright/channel_owners/element_handle.rb
197
201
  - lib/playwright/channel_owners/firefox_browser.rb
@@ -201,26 +205,29 @@ files:
201
205
  - lib/playwright/channel_owners/playwright.rb
202
206
  - lib/playwright/channel_owners/request.rb
203
207
  - lib/playwright/channel_owners/response.rb
208
+ - lib/playwright/channel_owners/route.rb
204
209
  - lib/playwright/channel_owners/selectors.rb
205
210
  - lib/playwright/channel_owners/webkit_browser.rb
206
211
  - lib/playwright/connection.rb
207
212
  - lib/playwright/errors.rb
208
213
  - lib/playwright/event_emitter.rb
214
+ - lib/playwright/event_emitter_proxy.rb
209
215
  - lib/playwright/events.rb
216
+ - lib/playwright/file_chooser_impl.rb
217
+ - lib/playwright/http_headers.rb
210
218
  - lib/playwright/input_files.rb
211
- - lib/playwright/input_type.rb
212
- - lib/playwright/input_types/android_input.rb
213
- - lib/playwright/input_types/keyboard.rb
214
- - lib/playwright/input_types/mouse.rb
215
- - lib/playwright/input_types/touchscreen.rb
216
219
  - lib/playwright/javascript.rb
217
220
  - lib/playwright/javascript/expression.rb
218
221
  - lib/playwright/javascript/function.rb
219
222
  - lib/playwright/javascript/value_parser.rb
220
223
  - lib/playwright/javascript/value_serializer.rb
224
+ - lib/playwright/keyboard_impl.rb
225
+ - lib/playwright/mouse_impl.rb
221
226
  - lib/playwright/playwright_api.rb
227
+ - lib/playwright/route_handler_entry.rb
222
228
  - lib/playwright/select_option_values.rb
223
229
  - lib/playwright/timeout_settings.rb
230
+ - lib/playwright/touchscreen_impl.rb
224
231
  - lib/playwright/transport.rb
225
232
  - lib/playwright/url_matcher.rb
226
233
  - lib/playwright/utils.rb
@@ -230,6 +237,8 @@ files:
230
237
  - lib/playwright_api/android.rb
231
238
  - lib/playwright_api/android_device.rb
232
239
  - lib/playwright_api/android_input.rb
240
+ - lib/playwright_api/android_socket.rb
241
+ - lib/playwright_api/android_web_view.rb
233
242
  - lib/playwright_api/binding_call.rb
234
243
  - lib/playwright_api/browser.rb
235
244
  - lib/playwright_api/browser_context.rb