playwright-ruby-client 1.60.0 → 1.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/docs/api/api_response.md +18 -0
  3. data/documentation/docs/api/browser_context.md +6 -0
  4. data/documentation/docs/api/browser_type.md +1 -0
  5. data/documentation/docs/api/credentials.md +132 -0
  6. data/documentation/docs/api/frame.md +4 -4
  7. data/documentation/docs/api/page.md +12 -2
  8. data/documentation/docs/api/touchscreen.md +1 -1
  9. data/documentation/docs/api/web_storage.md +65 -0
  10. data/documentation/docs/include/api_coverage.md +20 -0
  11. data/lib/playwright/api_response_impl.rb +8 -0
  12. data/lib/playwright/channel_owners/browser_context.rb +2 -1
  13. data/lib/playwright/channel_owners/browser_type.rb +2 -1
  14. data/lib/playwright/channel_owners/frame.rb +36 -17
  15. data/lib/playwright/channel_owners/page.rb +12 -2
  16. data/lib/playwright/connection.rb +7 -1
  17. data/lib/playwright/credentials_impl.rb +35 -0
  18. data/lib/playwright/errors.rb +4 -1
  19. data/lib/playwright/locator_utils.rb +9 -1
  20. data/lib/playwright/screencast.rb +3 -1
  21. data/lib/playwright/version.rb +2 -2
  22. data/lib/playwright/waiter.rb +9 -41
  23. data/lib/playwright/web_storage_impl.rb +34 -0
  24. data/lib/playwright_api/api_request_context.rb +6 -6
  25. data/lib/playwright_api/api_response.rb +12 -0
  26. data/lib/playwright_api/browser.rb +6 -6
  27. data/lib/playwright_api/browser_context.rb +23 -16
  28. data/lib/playwright_api/browser_type.rb +8 -7
  29. data/lib/playwright_api/cdp_session.rb +6 -6
  30. data/lib/playwright_api/credentials.rb +120 -0
  31. data/lib/playwright_api/dialog.rb +6 -6
  32. data/lib/playwright_api/element_handle.rb +6 -6
  33. data/lib/playwright_api/frame.rb +14 -14
  34. data/lib/playwright_api/js_handle.rb +6 -6
  35. data/lib/playwright_api/locator.rb +5 -5
  36. data/lib/playwright_api/page.rb +32 -20
  37. data/lib/playwright_api/playwright.rb +6 -6
  38. data/lib/playwright_api/request.rb +8 -8
  39. data/lib/playwright_api/response.rb +6 -6
  40. data/lib/playwright_api/route.rb +6 -6
  41. data/lib/playwright_api/touchscreen.rb +1 -1
  42. data/lib/playwright_api/tracing.rb +6 -6
  43. data/lib/playwright_api/web_socket.rb +6 -6
  44. data/lib/playwright_api/web_storage.rb +48 -0
  45. data/lib/playwright_api/worker.rb +8 -8
  46. data/sig/playwright.rbs +21 -1
  47. metadata +8 -2
@@ -53,6 +53,18 @@ module Playwright
53
53
  wrap_impl(@impl.keyboard)
54
54
  end
55
55
 
56
+ #
57
+ # Provides access to the page's `localStorage` for the current origin. See `WebStorage`.
58
+ def local_storage # property
59
+ wrap_impl(@impl.local_storage)
60
+ end
61
+
62
+ #
63
+ # Provides access to the page's `sessionStorage` for the current origin. See `WebStorage`.
64
+ def session_storage # property
65
+ wrap_impl(@impl.session_storage)
66
+ end
67
+
56
68
  def mouse # property
57
69
  wrap_impl(@impl.mouse)
58
70
  end
@@ -402,7 +414,7 @@ module Playwright
402
414
  # `ElementHandle` instances can be passed as an argument to the [`method: Page.evaluate`]:
403
415
  #
404
416
  # ```python sync
405
- # body_handle = page.evaluate("document.body")
417
+ # body_handle = page.evaluate_handle("document.body")
406
418
  # html = page.evaluate("([body, suffix]) => body.innerHTML + suffix", [body_handle, "hello"])
407
419
  # body_handle.dispose()
408
420
  # ```
@@ -1495,7 +1507,7 @@ module Playwright
1495
1507
  # When all steps combined have not finished during the specified `timeout`, this method throws a
1496
1508
  # `TimeoutError`. Passing zero timeout disables this.
1497
1509
  #
1498
- # **NOTE**: [`method: Page.tap`] the method will throw if `hasTouch` option of the browser context is false.
1510
+ # **NOTE**: [`method: Page.tap`] will throw if the `hasTouch` option of the browser context is false.
1499
1511
  def tap_point(
1500
1512
  selector,
1501
1513
  force: nil,
@@ -1868,29 +1880,24 @@ module Playwright
1868
1880
  raise NotImplementedError.new('wait_for_event is not implemented yet.')
1869
1881
  end
1870
1882
 
1871
- # @nodoc
1872
- def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
1873
- wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
1874
- end
1875
-
1876
1883
  # @nodoc
1877
1884
  def _assertions(timeout, is_not, message)
1878
1885
  wrap_impl(@impl._assertions(unwrap_impl(timeout), unwrap_impl(is_not), unwrap_impl(message)))
1879
1886
  end
1880
1887
 
1881
1888
  # @nodoc
1882
- def guid
1883
- wrap_impl(@impl.guid)
1889
+ def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
1890
+ wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
1884
1891
  end
1885
1892
 
1886
1893
  # @nodoc
1887
- def owned_context=(req)
1888
- wrap_impl(@impl.owned_context=(unwrap_impl(req)))
1894
+ def snapshot_for_ai(timeout: nil, depth: nil, boxes: nil, _track: nil)
1895
+ wrap_impl(@impl.snapshot_for_ai(timeout: unwrap_impl(timeout), depth: unwrap_impl(depth), boxes: unwrap_impl(boxes), _track: unwrap_impl(_track)))
1889
1896
  end
1890
1897
 
1891
1898
  # @nodoc
1892
- def snapshot_for_ai(timeout: nil, depth: nil, boxes: nil, _track: nil)
1893
- wrap_impl(@impl.snapshot_for_ai(timeout: unwrap_impl(timeout), depth: unwrap_impl(depth), boxes: unwrap_impl(boxes), _track: unwrap_impl(_track)))
1899
+ def stop_js_coverage
1900
+ wrap_impl(@impl.stop_js_coverage)
1894
1901
  end
1895
1902
 
1896
1903
  # @nodoc
@@ -1899,19 +1906,18 @@ module Playwright
1899
1906
  end
1900
1907
 
1901
1908
  # @nodoc
1902
- def stop_js_coverage
1903
- wrap_impl(@impl.stop_js_coverage)
1909
+ def stop_css_coverage
1910
+ wrap_impl(@impl.stop_css_coverage)
1904
1911
  end
1905
1912
 
1906
1913
  # @nodoc
1907
- def stop_css_coverage
1908
- wrap_impl(@impl.stop_css_coverage)
1914
+ def guid
1915
+ wrap_impl(@impl.guid)
1909
1916
  end
1910
1917
 
1911
- # -- inherited from EventEmitter --
1912
1918
  # @nodoc
1913
- def on(event, callback)
1914
- event_emitter_proxy.on(event, callback)
1919
+ def owned_context=(req)
1920
+ wrap_impl(@impl.owned_context=(unwrap_impl(req)))
1915
1921
  end
1916
1922
 
1917
1923
  # -- inherited from EventEmitter --
@@ -1926,6 +1932,12 @@ module Playwright
1926
1932
  event_emitter_proxy.once(event, callback)
1927
1933
  end
1928
1934
 
1935
+ # -- inherited from EventEmitter --
1936
+ # @nodoc
1937
+ def on(event, callback)
1938
+ event_emitter_proxy.on(event, callback)
1939
+ end
1940
+
1929
1941
  private def event_emitter_proxy
1930
1942
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
1931
1943
  end
@@ -103,12 +103,6 @@ module Playwright
103
103
  wrap_impl(@impl.electron)
104
104
  end
105
105
 
106
- # -- inherited from EventEmitter --
107
- # @nodoc
108
- def on(event, callback)
109
- event_emitter_proxy.on(event, callback)
110
- end
111
-
112
106
  # -- inherited from EventEmitter --
113
107
  # @nodoc
114
108
  def off(event, callback)
@@ -121,6 +115,12 @@ module Playwright
121
115
  event_emitter_proxy.once(event, callback)
122
116
  end
123
117
 
118
+ # -- inherited from EventEmitter --
119
+ # @nodoc
120
+ def on(event, callback)
121
+ event_emitter_proxy.on(event, callback)
122
+ end
123
+
124
124
  private def event_emitter_proxy
125
125
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
126
126
  end
@@ -217,20 +217,14 @@ module Playwright
217
217
  wrap_impl(@impl.url)
218
218
  end
219
219
 
220
- # @nodoc
221
- def apply_fallback_overrides(overrides)
222
- wrap_impl(@impl.apply_fallback_overrides(unwrap_impl(overrides)))
223
- end
224
-
225
220
  # @nodoc
226
221
  def header_values(name)
227
222
  wrap_impl(@impl.header_values(unwrap_impl(name)))
228
223
  end
229
224
 
230
- # -- inherited from EventEmitter --
231
225
  # @nodoc
232
- def on(event, callback)
233
- event_emitter_proxy.on(event, callback)
226
+ def apply_fallback_overrides(overrides)
227
+ wrap_impl(@impl.apply_fallback_overrides(unwrap_impl(overrides)))
234
228
  end
235
229
 
236
230
  # -- inherited from EventEmitter --
@@ -245,6 +239,12 @@ module Playwright
245
239
  event_emitter_proxy.once(event, callback)
246
240
  end
247
241
 
242
+ # -- inherited from EventEmitter --
243
+ # @nodoc
244
+ def on(event, callback)
245
+ event_emitter_proxy.on(event, callback)
246
+ end
247
+
248
248
  private def event_emitter_proxy
249
249
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
250
250
  end
@@ -133,12 +133,6 @@ module Playwright
133
133
  wrap_impl(@impl.from_service_worker?)
134
134
  end
135
135
 
136
- # -- inherited from EventEmitter --
137
- # @nodoc
138
- def on(event, callback)
139
- event_emitter_proxy.on(event, callback)
140
- end
141
-
142
136
  # -- inherited from EventEmitter --
143
137
  # @nodoc
144
138
  def off(event, callback)
@@ -151,6 +145,12 @@ module Playwright
151
145
  event_emitter_proxy.once(event, callback)
152
146
  end
153
147
 
148
+ # -- inherited from EventEmitter --
149
+ # @nodoc
150
+ def on(event, callback)
151
+ event_emitter_proxy.on(event, callback)
152
+ end
153
+
154
154
  private def event_emitter_proxy
155
155
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
156
156
  end
@@ -177,12 +177,6 @@ module Playwright
177
177
  wrap_impl(@impl.redirect_navigation_request(unwrap_impl(url)))
178
178
  end
179
179
 
180
- # -- inherited from EventEmitter --
181
- # @nodoc
182
- def on(event, callback)
183
- event_emitter_proxy.on(event, callback)
184
- end
185
-
186
180
  # -- inherited from EventEmitter --
187
181
  # @nodoc
188
182
  def off(event, callback)
@@ -195,6 +189,12 @@ module Playwright
195
189
  event_emitter_proxy.once(event, callback)
196
190
  end
197
191
 
192
+ # -- inherited from EventEmitter --
193
+ # @nodoc
194
+ def on(event, callback)
195
+ event_emitter_proxy.on(event, callback)
196
+ end
197
+
198
198
  private def event_emitter_proxy
199
199
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
200
200
  end
@@ -9,7 +9,7 @@ module Playwright
9
9
  #
10
10
  # Dispatches a `touchstart` and `touchend` event with a single touch at the position (`x`,`y`).
11
11
  #
12
- # **NOTE**: [`method: Page.tap`] the method will throw if `hasTouch` option of the browser context is false.
12
+ # **NOTE**: [`method: Touchscreen.tap`] will throw if the `hasTouch` option of the browser context is false.
13
13
  def tap_point(x, y)
14
14
  wrap_impl(@impl.tap_point(unwrap_impl(x), unwrap_impl(y)))
15
15
  end
@@ -127,12 +127,6 @@ module Playwright
127
127
  wrap_impl(@impl.stop_har)
128
128
  end
129
129
 
130
- # -- inherited from EventEmitter --
131
- # @nodoc
132
- def on(event, callback)
133
- event_emitter_proxy.on(event, callback)
134
- end
135
-
136
130
  # -- inherited from EventEmitter --
137
131
  # @nodoc
138
132
  def off(event, callback)
@@ -145,6 +139,12 @@ module Playwright
145
139
  event_emitter_proxy.once(event, callback)
146
140
  end
147
141
 
142
+ # -- inherited from EventEmitter --
143
+ # @nodoc
144
+ def on(event, callback)
145
+ event_emitter_proxy.on(event, callback)
146
+ end
147
+
148
148
  private def event_emitter_proxy
149
149
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
150
150
  end
@@ -34,12 +34,6 @@ module Playwright
34
34
  wrap_impl(@impl.wait_for_event(unwrap_impl(event), predicate: unwrap_impl(predicate), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
35
35
  end
36
36
 
37
- # -- inherited from EventEmitter --
38
- # @nodoc
39
- def on(event, callback)
40
- event_emitter_proxy.on(event, callback)
41
- end
42
-
43
37
  # -- inherited from EventEmitter --
44
38
  # @nodoc
45
39
  def off(event, callback)
@@ -52,6 +46,12 @@ module Playwright
52
46
  event_emitter_proxy.once(event, callback)
53
47
  end
54
48
 
49
+ # -- inherited from EventEmitter --
50
+ # @nodoc
51
+ def on(event, callback)
52
+ event_emitter_proxy.on(event, callback)
53
+ end
54
+
55
55
  private def event_emitter_proxy
56
56
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
57
57
  end
@@ -0,0 +1,48 @@
1
+ module Playwright
2
+ #
3
+ # WebStorage exposes the page's `localStorage` or `sessionStorage` for the current origin via an async,
4
+ # [browser-consistent](https://developer.mozilla.org/en-US/docs/Web/API/Storage) API.
5
+ #
6
+ # Instances are accessed through [`property: Page.localStorage`] and [`property: Page.sessionStorage`].
7
+ #
8
+ # ```python sync
9
+ # page.goto("https://example.com")
10
+ # page.local_storage.set_item("token", "abc")
11
+ # token = page.local_storage.get_item("token")
12
+ # all = page.local_storage.items()
13
+ # page.local_storage.remove_item("token")
14
+ # page.local_storage.clear()
15
+ # ```
16
+ class WebStorage < PlaywrightApi
17
+
18
+ #
19
+ # Returns all items in the storage as name/value pairs.
20
+ def items
21
+ wrap_impl(@impl.items)
22
+ end
23
+
24
+ #
25
+ # Returns the value for the given `name` if present.
26
+ def get_item(name)
27
+ wrap_impl(@impl.get_item(unwrap_impl(name)))
28
+ end
29
+
30
+ #
31
+ # Sets the value for the given `name`. Overwrites any existing value for that name.
32
+ def set_item(name, value)
33
+ wrap_impl(@impl.set_item(unwrap_impl(name), unwrap_impl(value)))
34
+ end
35
+
36
+ #
37
+ # Removes the item with the given `name`. No-op if the item is absent.
38
+ def remove_item(name)
39
+ wrap_impl(@impl.remove_item(unwrap_impl(name)))
40
+ end
41
+
42
+ #
43
+ # Removes all items from the storage.
44
+ def clear
45
+ wrap_impl(@impl.clear)
46
+ end
47
+ end
48
+ end
@@ -63,20 +63,14 @@ module Playwright
63
63
  wrap_impl(@impl.expect_event(unwrap_impl(event), predicate: unwrap_impl(predicate), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
64
64
  end
65
65
 
66
- # @nodoc
67
- def context=(req)
68
- wrap_impl(@impl.context=(unwrap_impl(req)))
69
- end
70
-
71
66
  # @nodoc
72
67
  def page=(req)
73
68
  wrap_impl(@impl.page=(unwrap_impl(req)))
74
69
  end
75
70
 
76
- # -- inherited from EventEmitter --
77
71
  # @nodoc
78
- def on(event, callback)
79
- event_emitter_proxy.on(event, callback)
72
+ def context=(req)
73
+ wrap_impl(@impl.context=(unwrap_impl(req)))
80
74
  end
81
75
 
82
76
  # -- inherited from EventEmitter --
@@ -91,6 +85,12 @@ module Playwright
91
85
  event_emitter_proxy.once(event, callback)
92
86
  end
93
87
 
88
+ # -- inherited from EventEmitter --
89
+ # @nodoc
90
+ def on(event, callback)
91
+ event_emitter_proxy.on(event, callback)
92
+ end
93
+
94
94
  private def event_emitter_proxy
95
95
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
96
96
  end
data/sig/playwright.rbs CHANGED
@@ -376,6 +376,8 @@ module Playwright
376
376
 
377
377
  attr_reader clock: Clock
378
378
  attr_reader keyboard: Keyboard
379
+ attr_reader local_storage: WebStorage
380
+ attr_reader session_storage: WebStorage
379
381
  attr_reader mouse: Mouse
380
382
  attr_reader request: APIRequestContext
381
383
  attr_reader screencast: untyped
@@ -421,6 +423,7 @@ module Playwright
421
423
  def expect_page: (?predicate: function, ?timeout: Float) { () -> void } -> Page
422
424
 
423
425
  attr_reader clock: Clock
426
+ attr_reader credentials: Credentials
424
427
  attr_reader request: APIRequestContext
425
428
  attr_reader tracing: Tracing
426
429
  end
@@ -447,7 +450,7 @@ module Playwright
447
450
 
448
451
  class BrowserType
449
452
  def connect: (String endpoint, ?exposeNetwork: String, ?headers: Hash[untyped, untyped], ?slowMo: Float, ?timeout: Float) ?{ (untyped) -> untyped } -> Browser
450
- def connect_over_cdp: (String endpointURL, ?headers: Hash[untyped, untyped], ?isLocal: bool, ?noDefaults: bool, ?slowMo: Float, ?timeout: Float) ?{ (untyped) -> untyped } -> Browser
453
+ def connect_over_cdp: (String endpointURL, ?artifactsDir: (String | File), ?headers: Hash[untyped, untyped], ?isLocal: bool, ?noDefaults: bool, ?slowMo: Float, ?timeout: Float) ?{ (untyped) -> untyped } -> Browser
451
454
  def executable_path: -> String
452
455
  def launch: (?args: Array[untyped], ?artifactsDir: (String | File), ?channel: String, ?chromiumSandbox: bool, ?downloadsPath: (String | File), ?env: Hash[untyped, untyped], ?executablePath: (String | File), ?firefoxUserPrefs: Hash[untyped, untyped], ?handleSIGHUP: bool, ?handleSIGINT: bool, ?handleSIGTERM: bool, ?headless: bool, ?ignoreDefaultArgs: (bool | Array[untyped]), ?proxy: Hash[untyped, untyped], ?slowMo: Float, ?timeout: Float, ?tracesDir: (String | File)) ?{ (Browser) -> untyped } -> Browser
453
456
  def launch_persistent_context: ((String | File) userDataDir, ?acceptDownloads: bool, ?args: Array[untyped], ?artifactsDir: (String | File), ?baseURL: String, ?bypassCSP: bool, ?channel: String, ?chromiumSandbox: bool, ?clientCertificates: Array[untyped], ?colorScheme: ("light" | "dark" | "no-preference" | "null"), ?contrast: ("no-preference" | "more" | "null"), ?deviceScaleFactor: Float, ?downloadsPath: (String | File), ?env: Hash[untyped, untyped], ?executablePath: (String | File), ?extraHTTPHeaders: Hash[untyped, untyped], ?firefoxUserPrefs: Hash[untyped, untyped], ?forcedColors: ("active" | "none" | "null"), ?geolocation: Hash[untyped, untyped], ?handleSIGHUP: bool, ?handleSIGINT: bool, ?handleSIGTERM: bool, ?hasTouch: bool, ?headless: bool, ?httpCredentials: Hash[untyped, untyped], ?ignoreDefaultArgs: (bool | Array[untyped]), ?ignoreHTTPSErrors: bool, ?isMobile: bool, ?javaScriptEnabled: bool, ?locale: String, ?noViewport: bool, ?offline: bool, ?permissions: Array[untyped], ?proxy: Hash[untyped, untyped], ?record_har_content: ("omit" | "embed" | "attach"), ?record_har_mode: ("full" | "minimal"), ?record_har_omit_content: bool, ?record_har_path: (String | File), ?record_har_url_filter: (String | Regexp), ?record_video_dir: (String | File), ?record_video_size: Hash[untyped, untyped], ?reducedMotion: ("reduce" | "no-preference" | "null"), ?screen: Hash[untyped, untyped], ?serviceWorkers: ("allow" | "block"), ?slowMo: Float, ?strictSelectors: bool, ?timeout: Float, ?timezoneId: String, ?tracesDir: (String | File), ?userAgent: String, ?viewport: (nil | Hash[untyped, untyped])) ?{ (untyped) -> untyped } -> BrowserContext
@@ -572,6 +575,8 @@ module Playwright
572
575
  def headers_array: -> Array[untyped]
573
576
  def json: -> untyped
574
577
  def ok: -> bool
578
+ def security_details: -> (nil | Hash[untyped, untyped])
579
+ def server_addr: -> (nil | Hash[untyped, untyped])
575
580
  def status: -> Integer
576
581
  def status_text: -> String
577
582
  def text: -> String
@@ -659,5 +664,20 @@ module Playwright
659
664
  def to_have_url: ((String | Regexp) urlOrRegExp, ?ignoreCase: bool, ?timeout: Float) -> void
660
665
  end
661
666
 
667
+ class WebStorage
668
+ def items: -> Array[untyped]
669
+ def get_item: (String name) -> (nil | String)
670
+ def set_item: (String name, String value) -> void
671
+ def remove_item: (String name) -> void
672
+ def clear: -> void
673
+ end
674
+
675
+ class Credentials
676
+ def install: -> void
677
+ def create: (String rpId, ?id: String, ?privateKey: String, ?publicKey: String, ?userHandle: String) -> Hash[untyped, untyped]
678
+ def delete: (String id) -> void
679
+ def get: (?id: String, ?rpId: String) -> Array[untyped]
680
+ end
681
+
662
682
  def self.create: (playwright_cli_executable_path: String) { (Playwright) -> void } -> void
663
683
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playwright-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.60.0
4
+ version: 1.61.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
@@ -245,6 +245,7 @@ files:
245
245
  - documentation/docs/api/cdp_session.md
246
246
  - documentation/docs/api/clock.md
247
247
  - documentation/docs/api/console_message.md
248
+ - documentation/docs/api/credentials.md
248
249
  - documentation/docs/api/dialog.md
249
250
  - documentation/docs/api/download.md
250
251
  - documentation/docs/api/element_handle.md
@@ -267,6 +268,7 @@ files:
267
268
  - documentation/docs/api/touchscreen.md
268
269
  - documentation/docs/api/tracing.md
269
270
  - documentation/docs/api/web_socket.md
271
+ - documentation/docs/api/web_storage.md
270
272
  - documentation/docs/api/worker.md
271
273
  - documentation/docs/article/api_coverage.mdx
272
274
  - documentation/docs/article/getting_started.md
@@ -338,6 +340,7 @@ files:
338
340
  - lib/playwright/clock_impl.rb
339
341
  - lib/playwright/connection.rb
340
342
  - lib/playwright/console_message_impl.rb
343
+ - lib/playwright/credentials_impl.rb
341
344
  - lib/playwright/disposable.rb
342
345
  - lib/playwright/download_impl.rb
343
346
  - lib/playwright/errors.rb
@@ -380,6 +383,7 @@ files:
380
383
  - lib/playwright/waiter.rb
381
384
  - lib/playwright/web_socket_client.rb
382
385
  - lib/playwright/web_socket_transport.rb
386
+ - lib/playwright/web_storage_impl.rb
383
387
  - lib/playwright_api/api_request.rb
384
388
  - lib/playwright_api/api_request_context.rb
385
389
  - lib/playwright_api/api_response.rb
@@ -389,6 +393,7 @@ files:
389
393
  - lib/playwright_api/cdp_session.rb
390
394
  - lib/playwright_api/clock.rb
391
395
  - lib/playwright_api/console_message.rb
396
+ - lib/playwright_api/credentials.rb
392
397
  - lib/playwright_api/dialog.rb
393
398
  - lib/playwright_api/download.rb
394
399
  - lib/playwright_api/element_handle.rb
@@ -410,6 +415,7 @@ files:
410
415
  - lib/playwright_api/touchscreen.rb
411
416
  - lib/playwright_api/tracing.rb
412
417
  - lib/playwright_api/web_socket.rb
418
+ - lib/playwright_api/web_storage.rb
413
419
  - lib/playwright_api/worker.rb
414
420
  - playwright.gemspec
415
421
  - sig/playwright.rbs
@@ -433,5 +439,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
433
439
  requirements: []
434
440
  rubygems_version: 3.6.9
435
441
  specification_version: 4
436
- summary: The Ruby binding of playwright driver 1.60.0
442
+ summary: The Ruby binding of playwright driver 1.61.1
437
443
  test_files: []