selenium-webdriver 4.46.0 → 4.47.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +29 -0
  3. data/bin/linux/selenium-manager +0 -0
  4. data/bin/macos/selenium-manager +0 -0
  5. data/bin/selenium-manager-THIRD-PARTY-NOTICES.txt +5971 -0
  6. data/bin/selenium-manager.cdx.json +11629 -0
  7. data/bin/windows/selenium-manager.exe +0 -0
  8. data/lib/selenium/webdriver/{common/driver_extensions/has_bidi.rb → bidi/error.rb} +21 -13
  9. data/lib/selenium/webdriver/bidi/protocol/bluetooth.rb +53 -23
  10. data/lib/selenium/webdriver/bidi/protocol/browser.rb +43 -15
  11. data/lib/selenium/webdriver/bidi/protocol/browsing_context.rb +172 -68
  12. data/lib/selenium/webdriver/bidi/protocol/domain.rb +8 -2
  13. data/lib/selenium/webdriver/bidi/protocol/emulation.rb +123 -9
  14. data/lib/selenium/webdriver/bidi/protocol/error_code.rb +66 -0
  15. data/lib/selenium/webdriver/bidi/protocol/input.rb +101 -28
  16. data/lib/selenium/webdriver/bidi/protocol/log.rb +17 -6
  17. data/lib/selenium/webdriver/bidi/protocol/network.rb +146 -63
  18. data/lib/selenium/webdriver/bidi/protocol/permissions.rb +4 -2
  19. data/lib/selenium/webdriver/bidi/protocol/script.rb +264 -86
  20. data/lib/selenium/webdriver/bidi/protocol/session.rb +48 -3
  21. data/lib/selenium/webdriver/bidi/protocol/speculation.rb +4 -2
  22. data/lib/selenium/webdriver/bidi/protocol/storage.rb +32 -6
  23. data/lib/selenium/webdriver/bidi/protocol/user_agent_client_hints.rb +7 -2
  24. data/lib/selenium/webdriver/bidi/protocol/web_extension.rb +49 -10
  25. data/lib/selenium/webdriver/bidi/protocol.rb +3 -0
  26. data/lib/selenium/webdriver/bidi/serialization/record.rb +194 -18
  27. data/lib/selenium/webdriver/bidi/serialization/union.rb +45 -3
  28. data/lib/selenium/webdriver/bidi/serialization.rb +13 -1
  29. data/lib/selenium/webdriver/bidi/support/bidi_generate.rb +529 -45
  30. data/lib/selenium/webdriver/bidi/support/check_generated.rb +12 -4
  31. data/lib/selenium/webdriver/bidi/transport.rb +8 -3
  32. data/lib/selenium/webdriver/chrome/service.rb +4 -1
  33. data/lib/selenium/webdriver/chromium/driver.rb +0 -1
  34. data/lib/selenium/webdriver/chromium/options.rb +20 -0
  35. data/lib/selenium/webdriver/common/driver.rb +11 -0
  36. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +0 -7
  37. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +0 -7
  38. data/lib/selenium/webdriver/common/driver_finder.rb +4 -3
  39. data/lib/selenium/webdriver/common/options.rb +21 -1
  40. data/lib/selenium/webdriver/common/proxy.rb +0 -8
  41. data/lib/selenium/webdriver/common/selenium_manager.rb +2 -1
  42. data/lib/selenium/webdriver/common/takes_screenshot.rb +1 -1
  43. data/lib/selenium/webdriver/common.rb +0 -1
  44. data/lib/selenium/webdriver/edge/service.rb +4 -1
  45. data/lib/selenium/webdriver/firefox/driver.rb +0 -3
  46. data/lib/selenium/webdriver/firefox/options.rb +19 -0
  47. data/lib/selenium/webdriver/firefox/profile.rb +13 -6
  48. data/lib/selenium/webdriver/remote/bidi_bridge.rb +39 -12
  49. data/lib/selenium/webdriver/remote/bridge.rb +1 -1
  50. data/lib/selenium/webdriver/remote/driver.rb +3 -1
  51. data/lib/selenium/webdriver/remote/http/default.rb +1 -1
  52. data/lib/selenium/webdriver/safari/options.rb +16 -1
  53. data/lib/selenium/webdriver/support/guards/guard.rb +20 -3
  54. data/lib/selenium/webdriver/support/guards.rb +9 -3
  55. data/lib/selenium/webdriver/version.rb +1 -1
  56. metadata +6 -3
@@ -17,8 +17,8 @@
17
17
  # specific language governing permissions and limitations
18
18
  # under the License.
19
19
 
20
- # This file is automatically generated. DO NOT EDIT!
21
- # Regenerate with: bazel run //rb/lib/selenium/webdriver:bidi-generate
20
+ # DO NOT EDIT! This file is generated by rb/lib/selenium/webdriver/bidi/support/bidi_generate.rb.
21
+ # Regenerate with: `bazel run //rb/lib/selenium/webdriver:bidi-generate`
22
22
 
23
23
  module Selenium
24
24
  module WebDriver
@@ -26,6 +26,7 @@ module Selenium
26
26
  module Protocol
27
27
  # @api private
28
28
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
29
+ # @see https://w3c.github.io/webdriver-bidi/#module-network
29
30
  class Network < Domain
30
31
  EVENTS = {
31
32
  auth_required: 'network.authRequired',
@@ -35,10 +36,12 @@ module Selenium
35
36
  response_started: 'network.responseStarted'
36
37
  }.freeze
37
38
 
39
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-CollectorType
38
40
  COLLECTOR_TYPE = {
39
41
  blob: 'blob'
40
42
  }.freeze
41
43
 
44
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networksamesite
42
45
  SAME_SITE = {
43
46
  strict: 'strict',
44
47
  lax: 'lax',
@@ -46,11 +49,13 @@ module Selenium
46
49
  default: 'default'
47
50
  }.freeze
48
51
 
52
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-dataType
49
53
  DATA_TYPE = {
50
54
  request: 'request',
51
55
  response: 'response'
52
56
  }.freeze
53
57
 
58
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkinterceptphase
54
59
  INTERCEPT_PHASE = {
55
60
  before_request_sent: 'beforeRequestSent',
56
61
  response_started: 'responseStarted',
@@ -76,6 +81,7 @@ module Selenium
76
81
 
77
82
  # @api private
78
83
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
84
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-AuthChallenge
79
85
  AuthChallenge = Serialization::Record.define(
80
86
  scheme: {wire_key: 'scheme', primitive: 'string'},
81
87
  realm: {wire_key: 'realm', primitive: 'string'}
@@ -83,6 +89,7 @@ module Selenium
83
89
 
84
90
  # @api private
85
91
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
92
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-AuthCredentials
86
93
  AuthCredentials = Serialization::Record.define(
87
94
  type: {fixed: 'password'},
88
95
  username: {wire_key: 'username', primitive: 'string'},
@@ -91,29 +98,36 @@ module Selenium
91
98
 
92
99
  # @api private
93
100
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
101
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-BaseParameters
94
102
  BaseParameters = Serialization::Record.define(
95
- context: {wire_key: 'context', nullable: true},
103
+ context: {wire_key: 'context', nullable: true, primitive: 'string'},
96
104
  is_blocked: {wire_key: 'isBlocked', primitive: 'boolean'},
97
- navigation: {wire_key: 'navigation', nullable: true},
98
- redirect_count: 'redirectCount',
105
+ navigation: {wire_key: 'navigation', nullable: true, primitive: 'string'},
106
+ redirect_count: {wire_key: 'redirectCount', primitive: 'integer'},
99
107
  request: {wire_key: 'request', ref: 'Network::RequestData'},
100
- timestamp: 'timestamp',
101
- user_context: {wire_key: 'userContext', required: false, nullable: true},
108
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
109
+ user_context: {wire_key: 'userContext', required: false, nullable: true, primitive: 'string'},
102
110
  intercepts: {wire_key: 'intercepts', required: false, list: true}
103
111
  )
104
112
 
105
113
  # @api private
106
114
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
115
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-BytesValue
107
116
  class BytesValue < Serialization::Union
108
117
  discriminator 'type', {string: 'string', base64: 'base64'}
109
118
  variants(
110
119
  string: 'Network::StringValue',
111
120
  base64: 'Network::Base64Value'
112
121
  )
122
+ object_only
123
+
124
+ def self.string(**) = Network::StringValue.new(**)
125
+ def self.base64(**) = Network::Base64Value.new(**)
113
126
  end
114
127
 
115
128
  # @api private
116
129
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
130
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkstringvalue
117
131
  StringValue = Serialization::Record.define(
118
132
  type: {fixed: 'string'},
119
133
  value: {wire_key: 'value', primitive: 'string'}
@@ -121,6 +135,7 @@ module Selenium
121
135
 
122
136
  # @api private
123
137
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
138
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkbase64value
124
139
  Base64Value = Serialization::Record.define(
125
140
  type: {fixed: 'base64'},
126
141
  value: {wire_key: 'value', primitive: 'string'}
@@ -128,21 +143,23 @@ module Selenium
128
143
 
129
144
  # @api private
130
145
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
146
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-Cookie
131
147
  Cookie = Serialization::Record.define(
132
148
  name: {wire_key: 'name', primitive: 'string'},
133
149
  value: {wire_key: 'value', ref: 'Network::BytesValue'},
134
150
  domain: {wire_key: 'domain', primitive: 'string'},
135
151
  path: {wire_key: 'path', primitive: 'string'},
136
- size: 'size',
152
+ size: {wire_key: 'size', primitive: 'integer'},
137
153
  http_only: {wire_key: 'httpOnly', primitive: 'boolean'},
138
154
  secure: {wire_key: 'secure', primitive: 'boolean'},
139
155
  same_site: {wire_key: 'sameSite', enum: 'Network::SAME_SITE'},
140
- expiry: {wire_key: 'expiry', required: false},
156
+ expiry: {wire_key: 'expiry', required: false, primitive: 'integer'},
141
157
  extensible: true
142
158
  )
143
159
 
144
160
  # @api private
145
161
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
162
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-CookieHeader
146
163
  CookieHeader = Serialization::Record.define(
147
164
  name: {wire_key: 'name', primitive: 'string'},
148
165
  value: {wire_key: 'value', ref: 'Network::BytesValue'}
@@ -150,6 +167,7 @@ module Selenium
150
167
 
151
168
  # @api private
152
169
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
170
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-FetchTimingInfo
153
171
  FetchTimingInfo = Serialization::Record.define(
154
172
  time_origin: {wire_key: 'timeOrigin', primitive: 'number'},
155
173
  request_time: {wire_key: 'requestTime', primitive: 'number'},
@@ -168,6 +186,7 @@ module Selenium
168
186
 
169
187
  # @api private
170
188
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
189
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-Header
171
190
  Header = Serialization::Record.define(
172
191
  name: {wire_key: 'name', primitive: 'string'},
173
192
  value: {wire_key: 'value', ref: 'Network::BytesValue'}
@@ -175,24 +194,26 @@ module Selenium
175
194
 
176
195
  # @api private
177
196
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
197
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-Initiator
178
198
  Initiator = Serialization::Record.define(
179
- column_number: {wire_key: 'columnNumber', required: false},
180
- line_number: {wire_key: 'lineNumber', required: false},
181
- request: {wire_key: 'request', required: false},
199
+ column_number: {wire_key: 'columnNumber', required: false, primitive: 'integer'},
200
+ line_number: {wire_key: 'lineNumber', required: false, primitive: 'integer'},
201
+ request: {wire_key: 'request', required: false, primitive: 'string'},
182
202
  stack_trace: {wire_key: 'stackTrace', required: false, ref: 'Script::StackTrace'},
183
203
  type: {wire_key: 'type', required: false, enum: 'Network::INITIATOR_TYPE'}
184
204
  )
185
205
 
186
206
  # @api private
187
207
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
208
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-RequestData
188
209
  RequestData = Serialization::Record.define(
189
- request: 'request',
210
+ request: {wire_key: 'request', primitive: 'string'},
190
211
  url: {wire_key: 'url', primitive: 'string'},
191
212
  method_: {wire_key: 'method', primitive: 'string'},
192
213
  headers: {wire_key: 'headers', ref: 'Network::Header', list: true},
193
214
  cookies: {wire_key: 'cookies', ref: 'Network::Cookie', list: true},
194
- headers_size: 'headersSize',
195
- body_size: {wire_key: 'bodySize', nullable: true},
215
+ headers_size: {wire_key: 'headersSize', primitive: 'integer'},
216
+ body_size: {wire_key: 'bodySize', nullable: true, primitive: 'integer'},
196
217
  destination: {wire_key: 'destination', primitive: 'string'},
197
218
  initiator_type: {wire_key: 'initiatorType', nullable: true, primitive: 'string'},
198
219
  timings: {wire_key: 'timings', ref: 'Network::FetchTimingInfo'}
@@ -200,34 +221,37 @@ module Selenium
200
221
 
201
222
  # @api private
202
223
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
203
- ResponseContent = Serialization::Record.define(size: 'size')
224
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-ResponseContent
225
+ ResponseContent = Serialization::Record.define(size: {wire_key: 'size', primitive: 'integer'})
204
226
 
205
227
  # @api private
206
228
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
229
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-ResponseData
207
230
  ResponseData = Serialization::Record.define(
208
231
  url: {wire_key: 'url', primitive: 'string'},
209
232
  protocol: {wire_key: 'protocol', primitive: 'string'},
210
- status: 'status',
233
+ status: {wire_key: 'status', primitive: 'integer'},
211
234
  status_text: {wire_key: 'statusText', primitive: 'string'},
212
235
  from_cache: {wire_key: 'fromCache', primitive: 'boolean'},
213
236
  headers: {wire_key: 'headers', ref: 'Network::Header', list: true},
214
237
  mime_type: {wire_key: 'mimeType', primitive: 'string'},
215
- bytes_received: 'bytesReceived',
216
- headers_size: {wire_key: 'headersSize', nullable: true},
217
- body_size: {wire_key: 'bodySize', nullable: true},
238
+ bytes_received: {wire_key: 'bytesReceived', primitive: 'integer'},
239
+ headers_size: {wire_key: 'headersSize', nullable: true, primitive: 'integer'},
240
+ body_size: {wire_key: 'bodySize', nullable: true, primitive: 'integer'},
218
241
  content: {wire_key: 'content', ref: 'Network::ResponseContent'},
219
242
  auth_challenges: {wire_key: 'authChallenges', required: false, ref: 'Network::AuthChallenge', list: true}
220
243
  )
221
244
 
222
245
  # @api private
223
246
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
247
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-SetCookieHeader
224
248
  SetCookieHeader = Serialization::Record.define(
225
249
  name: {wire_key: 'name', primitive: 'string'},
226
250
  value: {wire_key: 'value', ref: 'Network::BytesValue'},
227
251
  domain: {wire_key: 'domain', required: false, primitive: 'string'},
228
252
  http_only: {wire_key: 'httpOnly', required: false, primitive: 'boolean'},
229
253
  expiry: {wire_key: 'expiry', required: false, primitive: 'string'},
230
- max_age: {wire_key: 'maxAge', required: false},
254
+ max_age: {wire_key: 'maxAge', required: false, primitive: 'integer'},
231
255
  path: {wire_key: 'path', required: false, primitive: 'string'},
232
256
  same_site: {wire_key: 'sameSite', required: false, enum: 'Network::SAME_SITE'},
233
257
  secure: {wire_key: 'secure', required: false, primitive: 'boolean'}
@@ -235,16 +259,22 @@ module Selenium
235
259
 
236
260
  # @api private
237
261
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
262
+ # @see https://w3c.github.io/webdriver-bidi/#type-network-UrlPattern
238
263
  class UrlPattern < Serialization::Union
239
264
  discriminator 'type', {pattern: 'pattern', string: 'string'}
240
265
  variants(
241
266
  pattern: 'Network::UrlPatternPattern',
242
267
  string: 'Network::UrlPatternString'
243
268
  )
269
+ object_only
270
+
271
+ def self.pattern(**) = Network::UrlPatternPattern.new(**)
272
+ def self.string(**) = Network::UrlPatternString.new(**)
244
273
  end
245
274
 
246
275
  # @api private
247
276
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
277
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkurlpatternpattern
248
278
  UrlPatternPattern = Serialization::Record.define(
249
279
  type: {fixed: 'pattern'},
250
280
  protocol: {wire_key: 'protocol', required: false, primitive: 'string'},
@@ -256,6 +286,7 @@ module Selenium
256
286
 
257
287
  # @api private
258
288
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
289
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkurlpatternstring
259
290
  UrlPatternString = Serialization::Record.define(
260
291
  type: {fixed: 'string'},
261
292
  pattern: {wire_key: 'pattern', primitive: 'string'}
@@ -263,9 +294,10 @@ module Selenium
263
294
 
264
295
  # @api private
265
296
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
297
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkadddatacollectorparameters
266
298
  AddDataCollectorParameters = Serialization::Record.define(
267
299
  data_types: {wire_key: 'dataTypes', list: true, enum: 'Network::DATA_TYPE'},
268
- max_encoded_data_size: 'maxEncodedDataSize',
300
+ max_encoded_data_size: {wire_key: 'maxEncodedDataSize', primitive: 'integer'},
269
301
  collector_type: {wire_key: 'collectorType', required: false, enum: 'Network::COLLECTOR_TYPE'},
270
302
  contexts: {wire_key: 'contexts', required: false, list: true},
271
303
  user_contexts: {wire_key: 'userContexts', required: false, list: true}
@@ -273,10 +305,12 @@ module Selenium
273
305
 
274
306
  # @api private
275
307
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
276
- AddDataCollectorResult = Serialization::Record.define(collector: 'collector')
308
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkadddatacollectorresult
309
+ AddDataCollectorResult = Serialization::Record.define(collector: {wire_key: 'collector', primitive: 'string'})
277
310
 
278
311
  # @api private
279
312
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
313
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkaddinterceptparameters
280
314
  AddInterceptParameters = Serialization::Record.define(
281
315
  phases: {wire_key: 'phases', list: true, enum: 'Network::INTERCEPT_PHASE'},
282
316
  contexts: {wire_key: 'contexts', required: false, list: true},
@@ -285,12 +319,14 @@ module Selenium
285
319
 
286
320
  # @api private
287
321
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
288
- AddInterceptResult = Serialization::Record.define(intercept: 'intercept')
322
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkaddinterceptresult
323
+ AddInterceptResult = Serialization::Record.define(intercept: {wire_key: 'intercept', primitive: 'string'})
289
324
 
290
325
  # @api private
291
326
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
327
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkcontinuerequestparameters
292
328
  ContinueRequestParameters = Serialization::Record.define(
293
- request: 'request',
329
+ request: {wire_key: 'request', primitive: 'string'},
294
330
  body: {wire_key: 'body', required: false, ref: 'Network::BytesValue'},
295
331
  cookies: {wire_key: 'cookies', required: false, ref: 'Network::CookieHeader', list: true},
296
332
  headers: {wire_key: 'headers', required: false, ref: 'Network::Header', list: true},
@@ -300,86 +336,103 @@ module Selenium
300
336
 
301
337
  # @api private
302
338
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
339
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkcontinueresponseparameters
303
340
  ContinueResponseParameters = Serialization::Record.define(
304
- request: 'request',
341
+ request: {wire_key: 'request', primitive: 'string'},
305
342
  cookies: {wire_key: 'cookies', required: false, ref: 'Network::SetCookieHeader', list: true},
306
343
  credentials: {wire_key: 'credentials', required: false, ref: 'Network::AuthCredentials'},
307
344
  headers: {wire_key: 'headers', required: false, ref: 'Network::Header', list: true},
308
345
  reason_phrase: {wire_key: 'reasonPhrase', required: false, primitive: 'string'},
309
- status_code: {wire_key: 'statusCode', required: false}
346
+ status_code: {wire_key: 'statusCode', required: false, primitive: 'integer'}
310
347
  )
311
348
 
312
349
  # @api private
313
350
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
351
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkcontinuewithauthparameters
314
352
  class ContinueWithAuthParameters < Serialization::Union
315
353
  discriminator 'action', {provide_credentials: 'provideCredentials'}
316
354
  variants(
317
355
  provide_credentials: 'Network::ContinueWithAuthParameters::Credentials'
318
356
  )
319
357
  fallback 'Network::ContinueWithAuthParameters::NoCredentials'
358
+ object_only
320
359
 
321
360
  # @api private
322
361
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
323
362
  Credentials = Serialization::Record.define(
324
363
  action: {fixed: 'provideCredentials'},
325
- request: 'request',
364
+ request: {wire_key: 'request', primitive: 'string'},
326
365
  credentials: {wire_key: 'credentials', ref: 'Network::AuthCredentials'}
327
366
  )
328
367
 
329
368
  # @api private
330
369
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
331
370
  NoCredentials = Serialization::Record.define(
332
- request: 'request',
371
+ request: {wire_key: 'request', primitive: 'string'},
333
372
  action: {wire_key: 'action', enum: 'Network::CONTINUE_WITH_AUTH_NO_CREDENTIALS_ACTION'}
334
373
  )
374
+
375
+ def self.provide_credentials(**) = Network::ContinueWithAuthParameters::Credentials.new(**)
335
376
  end
336
377
 
337
378
  # @api private
338
379
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
380
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkdisowndataparameters
339
381
  DisownDataParameters = Serialization::Record.define(
340
382
  data_type: {wire_key: 'dataType', enum: 'Network::DATA_TYPE'},
341
- collector: 'collector',
342
- request: 'request'
383
+ collector: {wire_key: 'collector', primitive: 'string'},
384
+ request: {wire_key: 'request', primitive: 'string'}
343
385
  )
344
386
 
345
387
  # @api private
346
388
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
347
- FailRequestParameters = Serialization::Record.define(request: 'request')
389
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkfailrequestparameters
390
+ FailRequestParameters = Serialization::Record.define(request: {wire_key: 'request', primitive: 'string'})
348
391
 
349
392
  # @api private
350
393
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
394
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkgetdataparameters
351
395
  GetDataParameters = Serialization::Record.define(
352
396
  data_type: {wire_key: 'dataType', enum: 'Network::DATA_TYPE'},
353
- collector: {wire_key: 'collector', required: false},
397
+ collector: {wire_key: 'collector', required: false, primitive: 'string'},
354
398
  disown: {wire_key: 'disown', required: false, primitive: 'boolean'},
355
- request: 'request'
399
+ request: {wire_key: 'request', primitive: 'string'}
356
400
  )
357
401
 
358
402
  # @api private
359
403
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
404
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkgetdataresult
360
405
  GetDataResult = Serialization::Record.define(bytes: {wire_key: 'bytes', ref: 'Network::BytesValue'})
361
406
 
362
407
  # @api private
363
408
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
409
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkprovideresponseparameters
364
410
  ProvideResponseParameters = Serialization::Record.define(
365
- request: 'request',
411
+ request: {wire_key: 'request', primitive: 'string'},
366
412
  body: {wire_key: 'body', required: false, ref: 'Network::BytesValue'},
367
413
  cookies: {wire_key: 'cookies', required: false, ref: 'Network::SetCookieHeader', list: true},
368
414
  headers: {wire_key: 'headers', required: false, ref: 'Network::Header', list: true},
369
415
  reason_phrase: {wire_key: 'reasonPhrase', required: false, primitive: 'string'},
370
- status_code: {wire_key: 'statusCode', required: false}
416
+ status_code: {wire_key: 'statusCode', required: false, primitive: 'integer'}
371
417
  )
372
418
 
373
419
  # @api private
374
420
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
375
- RemoveDataCollectorParameters = Serialization::Record.define(collector: 'collector')
421
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkremovedatacollectorparameters
422
+ RemoveDataCollectorParameters = Serialization::Record.define(
423
+ collector: {wire_key: 'collector', primitive: 'string'}
424
+ )
376
425
 
377
426
  # @api private
378
427
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
379
- RemoveInterceptParameters = Serialization::Record.define(intercept: 'intercept')
428
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkremoveinterceptparameters
429
+ RemoveInterceptParameters = Serialization::Record.define(
430
+ intercept: {wire_key: 'intercept', primitive: 'string'}
431
+ )
380
432
 
381
433
  # @api private
382
434
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
435
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networksetcachebehaviorparameters
383
436
  SetCacheBehaviorParameters = Serialization::Record.define(
384
437
  cache_behavior: {wire_key: 'cacheBehavior', enum: 'Network::SET_CACHE_BEHAVIOR_PARAMETERS_CACHE_BEHAVIOR'},
385
438
  contexts: {wire_key: 'contexts', required: false, list: true}
@@ -387,6 +440,7 @@ module Selenium
387
440
 
388
441
  # @api private
389
442
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
443
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networksetextraheadersparameters
390
444
  SetExtraHeadersParameters = Serialization::Record.define(
391
445
  headers: {wire_key: 'headers', ref: 'Network::Header', list: true},
392
446
  contexts: {wire_key: 'contexts', required: false, list: true},
@@ -395,70 +449,75 @@ module Selenium
395
449
 
396
450
  # @api private
397
451
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
452
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkauthrequiredparameters
398
453
  AuthRequiredParameters = Serialization::Record.define(
399
- context: {wire_key: 'context', nullable: true},
454
+ context: {wire_key: 'context', nullable: true, primitive: 'string'},
400
455
  is_blocked: {wire_key: 'isBlocked', primitive: 'boolean'},
401
- navigation: {wire_key: 'navigation', nullable: true},
402
- redirect_count: 'redirectCount',
456
+ navigation: {wire_key: 'navigation', nullable: true, primitive: 'string'},
457
+ redirect_count: {wire_key: 'redirectCount', primitive: 'integer'},
403
458
  request: {wire_key: 'request', ref: 'Network::RequestData'},
404
- timestamp: 'timestamp',
405
- user_context: {wire_key: 'userContext', required: false, nullable: true},
459
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
460
+ user_context: {wire_key: 'userContext', required: false, nullable: true, primitive: 'string'},
406
461
  intercepts: {wire_key: 'intercepts', required: false, list: true},
407
462
  response: {wire_key: 'response', ref: 'Network::ResponseData'}
408
463
  )
409
464
 
410
465
  # @api private
411
466
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
467
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkbeforerequestsentparameters
412
468
  BeforeRequestSentParameters = Serialization::Record.define(
413
- context: {wire_key: 'context', nullable: true},
469
+ context: {wire_key: 'context', nullable: true, primitive: 'string'},
414
470
  is_blocked: {wire_key: 'isBlocked', primitive: 'boolean'},
415
- navigation: {wire_key: 'navigation', nullable: true},
416
- redirect_count: 'redirectCount',
471
+ navigation: {wire_key: 'navigation', nullable: true, primitive: 'string'},
472
+ redirect_count: {wire_key: 'redirectCount', primitive: 'integer'},
417
473
  request: {wire_key: 'request', ref: 'Network::RequestData'},
418
- timestamp: 'timestamp',
419
- user_context: {wire_key: 'userContext', required: false, nullable: true},
474
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
475
+ user_context: {wire_key: 'userContext', required: false, nullable: true, primitive: 'string'},
420
476
  intercepts: {wire_key: 'intercepts', required: false, list: true},
421
477
  initiator: {wire_key: 'initiator', required: false, ref: 'Network::Initiator'}
422
478
  )
423
479
 
424
480
  # @api private
425
481
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
482
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkfetcherrorparameters
426
483
  FetchErrorParameters = Serialization::Record.define(
427
- context: {wire_key: 'context', nullable: true},
484
+ context: {wire_key: 'context', nullable: true, primitive: 'string'},
428
485
  is_blocked: {wire_key: 'isBlocked', primitive: 'boolean'},
429
- navigation: {wire_key: 'navigation', nullable: true},
430
- redirect_count: 'redirectCount',
486
+ navigation: {wire_key: 'navigation', nullable: true, primitive: 'string'},
487
+ redirect_count: {wire_key: 'redirectCount', primitive: 'integer'},
431
488
  request: {wire_key: 'request', ref: 'Network::RequestData'},
432
- timestamp: 'timestamp',
433
- user_context: {wire_key: 'userContext', required: false, nullable: true},
489
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
490
+ user_context: {wire_key: 'userContext', required: false, nullable: true, primitive: 'string'},
434
491
  intercepts: {wire_key: 'intercepts', required: false, list: true},
435
492
  error_text: {wire_key: 'errorText', primitive: 'string'}
436
493
  )
437
494
 
438
495
  # @api private
439
496
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
497
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkresponsecompletedparameters
440
498
  ResponseCompletedParameters = Serialization::Record.define(
441
- context: {wire_key: 'context', nullable: true},
499
+ context: {wire_key: 'context', nullable: true, primitive: 'string'},
442
500
  is_blocked: {wire_key: 'isBlocked', primitive: 'boolean'},
443
- navigation: {wire_key: 'navigation', nullable: true},
444
- redirect_count: 'redirectCount',
501
+ navigation: {wire_key: 'navigation', nullable: true, primitive: 'string'},
502
+ redirect_count: {wire_key: 'redirectCount', primitive: 'integer'},
445
503
  request: {wire_key: 'request', ref: 'Network::RequestData'},
446
- timestamp: 'timestamp',
447
- user_context: {wire_key: 'userContext', required: false, nullable: true},
504
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
505
+ user_context: {wire_key: 'userContext', required: false, nullable: true, primitive: 'string'},
448
506
  intercepts: {wire_key: 'intercepts', required: false, list: true},
449
507
  response: {wire_key: 'response', ref: 'Network::ResponseData'}
450
508
  )
451
509
 
452
510
  # @api private
453
511
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
512
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-networkresponsestartedparameters
454
513
  ResponseStartedParameters = Serialization::Record.define(
455
- context: {wire_key: 'context', nullable: true},
514
+ context: {wire_key: 'context', nullable: true, primitive: 'string'},
456
515
  is_blocked: {wire_key: 'isBlocked', primitive: 'boolean'},
457
- navigation: {wire_key: 'navigation', nullable: true},
458
- redirect_count: 'redirectCount',
516
+ navigation: {wire_key: 'navigation', nullable: true, primitive: 'string'},
517
+ redirect_count: {wire_key: 'redirectCount', primitive: 'integer'},
459
518
  request: {wire_key: 'request', ref: 'Network::RequestData'},
460
- timestamp: 'timestamp',
461
- user_context: {wire_key: 'userContext', required: false, nullable: true},
519
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
520
+ user_context: {wire_key: 'userContext', required: false, nullable: true, primitive: 'string'},
462
521
  intercepts: {wire_key: 'intercepts', required: false, list: true},
463
522
  response: {wire_key: 'response', ref: 'Network::ResponseData'}
464
523
  )
@@ -471,8 +530,20 @@ module Selenium
471
530
  'network.responseStarted' => Network::ResponseStartedParameters
472
531
  }.freeze
473
532
 
533
+ def auth_credentials(**) = AuthCredentials.new(**)
534
+ def bytes_value = BytesValue
535
+ def string_value(**) = StringValue.new(**)
536
+ def base64_value(**) = Base64Value.new(**)
537
+ def cookie_header(**) = CookieHeader.new(**)
538
+ def header(**) = Header.new(**)
539
+ def set_cookie_header(**) = SetCookieHeader.new(**)
540
+ def url_pattern = UrlPattern
541
+ def url_pattern_pattern(**) = UrlPatternPattern.new(**)
542
+ def url_pattern_string(**) = UrlPatternString.new(**)
543
+
474
544
  # @api private
475
545
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
546
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-addDataCollector
476
547
  def add_data_collector(
477
548
  data_types:,
478
549
  max_encoded_data_size:,
@@ -494,6 +565,7 @@ module Selenium
494
565
 
495
566
  # @api private
496
567
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
568
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-addIntercept
497
569
  def add_intercept(phases:, contexts: Serialization::UNSET, url_patterns: Serialization::UNSET)
498
570
  Serialization.validate!('phases', phases, Network::INTERCEPT_PHASE)
499
571
  params = AddInterceptParameters.new(phases: phases, contexts: contexts, url_patterns: url_patterns)
@@ -502,6 +574,7 @@ module Selenium
502
574
 
503
575
  # @api private
504
576
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
577
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-continueRequest
505
578
  def continue_request(
506
579
  request:,
507
580
  body: Serialization::UNSET,
@@ -523,6 +596,7 @@ module Selenium
523
596
 
524
597
  # @api private
525
598
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
599
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-continueResponse
526
600
  def continue_response(
527
601
  request:,
528
602
  cookies: Serialization::UNSET,
@@ -544,6 +618,7 @@ module Selenium
544
618
 
545
619
  # @api private
546
620
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
621
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-continueWithAuth
547
622
  def continue_with_auth(request:, action:, credentials: Serialization::UNSET)
548
623
  Serialization.validate!(
549
624
  'action',
@@ -556,6 +631,7 @@ module Selenium
556
631
 
557
632
  # @api private
558
633
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
634
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-disownData
559
635
  def disown_data(data_type:, collector:, request:)
560
636
  Serialization.validate!('dataType', data_type, Network::DATA_TYPE)
561
637
  params = DisownDataParameters.new(data_type: data_type, collector: collector, request: request)
@@ -564,6 +640,7 @@ module Selenium
564
640
 
565
641
  # @api private
566
642
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
643
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-failRequest
567
644
  def fail_request(request:)
568
645
  params = FailRequestParameters.new(request: request)
569
646
  execute(cmd: 'network.failRequest', params: params)
@@ -571,6 +648,7 @@ module Selenium
571
648
 
572
649
  # @api private
573
650
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
651
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-getData
574
652
  def get_data(data_type:, request:, collector: Serialization::UNSET, disown: Serialization::UNSET)
575
653
  Serialization.validate!('dataType', data_type, Network::DATA_TYPE)
576
654
  params = GetDataParameters.new(data_type: data_type, collector: collector, disown: disown, request: request)
@@ -579,6 +657,7 @@ module Selenium
579
657
 
580
658
  # @api private
581
659
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
660
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-provideResponse
582
661
  def provide_response(
583
662
  request:,
584
663
  body: Serialization::UNSET,
@@ -600,6 +679,7 @@ module Selenium
600
679
 
601
680
  # @api private
602
681
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
682
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-removeDataCollector
603
683
  def remove_data_collector(collector:)
604
684
  params = RemoveDataCollectorParameters.new(collector: collector)
605
685
  execute(cmd: 'network.removeDataCollector', params: params)
@@ -607,6 +687,7 @@ module Selenium
607
687
 
608
688
  # @api private
609
689
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
690
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-removeIntercept
610
691
  def remove_intercept(intercept:)
611
692
  params = RemoveInterceptParameters.new(intercept: intercept)
612
693
  execute(cmd: 'network.removeIntercept', params: params)
@@ -614,6 +695,7 @@ module Selenium
614
695
 
615
696
  # @api private
616
697
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
698
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-setCacheBehavior
617
699
  def set_cache_behavior(cache_behavior:, contexts: Serialization::UNSET)
618
700
  Serialization.validate!(
619
701
  'cacheBehavior',
@@ -626,6 +708,7 @@ module Selenium
626
708
 
627
709
  # @api private
628
710
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
711
+ # @see https://w3c.github.io/webdriver-bidi/#command-network-setExtraHeaders
629
712
  def set_extra_headers(headers:, contexts: Serialization::UNSET, user_contexts: Serialization::UNSET)
630
713
  params = SetExtraHeadersParameters.new(headers: headers, contexts: contexts, user_contexts: user_contexts)
631
714
  execute(cmd: 'network.setExtraHeaders', params: params)