1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit;
16
17 import static org.htmlunit.javascript.configuration.SupportedBrowser.CHROME;
18 import static org.htmlunit.javascript.configuration.SupportedBrowser.EDGE;
19 import static org.htmlunit.javascript.configuration.SupportedBrowser.FF;
20 import static org.htmlunit.javascript.configuration.SupportedBrowser.FF_ESR;
21
22 import org.htmlunit.javascript.configuration.BrowserFeature;
23
24
25
26
27
28
29
30
31
32
33
34
35 public enum BrowserVersionFeatures {
36
37
38 @BrowserFeature({CHROME, EDGE})
39 ANCHOR_SEND_PING_REQUEST,
40
41
42 @BrowserFeature({CHROME, EDGE})
43 CSS_BACKGROUND_INITIAL,
44
45
46 @BrowserFeature({FF, FF_ESR})
47 CSS_BACKGROUND_RGBA,
48
49
50 @BrowserFeature(FF_ESR)
51 CSS_CSSTEXT_FF_STYLE,
52
53
54 @BrowserFeature({FF, FF_ESR})
55 CSS_DISPLAY_BLOCK,
56
57
58 @BrowserFeature({CHROME, EDGE})
59 CSS_NOSCRIPT_DISPLAY_INLINE,
60
61
62 @BrowserFeature({FF, FF_ESR})
63 CSS_RP_DISPLAY_NONE,
64
65
66 @BrowserFeature({FF, FF_ESR})
67 CSS_RT_DISPLAY_RUBY_TEXT_ALWAYS,
68
69
70 @BrowserFeature(FF)
71 EVENT_CONTEXT_MENU_HAS_DETAIL_1,
72
73
74 @BrowserFeature({FF, FF_ESR})
75 EVENT_FOCUS_ON_LOAD,
76
77
78 @BrowserFeature({FF, FF_ESR})
79 EVENT_ONANIMATION_DOCUMENT_CREATE_NOT_SUPPORTED,
80
81
82 @BrowserFeature({CHROME, EDGE, FF})
83 EVENT_ONCLICK_USES_POINTEREVENT,
84
85
86 @BrowserFeature({FF, FF_ESR})
87 EVENT_ONCLOSE_DOCUMENT_CREATE_NOT_SUPPORTED,
88
89
90 @BrowserFeature({FF, FF_ESR})
91 EVENT_ONPOPSTATE_DOCUMENT_CREATE_NOT_SUPPORTED,
92
93
94 @BrowserFeature({FF, FF_ESR})
95 EVENT_TYPE_MUTATIONEVENT,
96
97
98 @BrowserFeature({CHROME, EDGE, FF})
99 EVENT_TYPE_TEXTEVENT,
100
101
102 @BrowserFeature({CHROME, EDGE})
103 EVENT_TYPE_WHEELEVENT,
104
105
106 @BrowserFeature({CHROME, EDGE})
107 FORM_IGNORE_REL_NOREFERRER,
108
109
110 @BrowserFeature({CHROME, EDGE})
111 FORM_SUBMISSION_HEADER_CACHE_CONTROL_MAX_AGE,
112
113
114 @BrowserFeature({FF, FF_ESR})
115 HTMLBASEFONT_END_TAG_FORBIDDEN,
116
117
118 @BrowserFeature({FF, FF_ESR})
119 HTMLBUTTON_WILL_VALIDATE_IGNORES_READONLY,
120
121
122 @BrowserFeature({CHROME, EDGE})
123 HTMLCOLLECTION_NAMED_ITEM_ID_FIRST,
124
125
126 @BrowserFeature({CHROME, EDGE, FF})
127 HTMLDOCUMENT_COOKIES_IGNORE_BLANK,
128
129
130
131
132 @BrowserFeature({FF, FF_ESR})
133 HTMLDOCUMENT_ELEMENTS_BY_NAME_EMPTY,
134
135
136 @BrowserFeature({CHROME, EDGE})
137 HTMLDOCUMENT_GET_ALSO_FRAMES,
138
139
140 @BrowserFeature({CHROME, EDGE})
141 HTMLELEMENT_REMOVE_ACTIVE_TRIGGERS_BLUR_EVENT,
142
143
144 @BrowserFeature({CHROME, EDGE})
145 HTMLIMAGE_BLANK_SRC_AS_EMPTY,
146
147
148 @BrowserFeature({FF, FF_ESR})
149 HTMLIMAGE_EMPTY_SRC_DISPLAY_FALSE,
150
151
152 @BrowserFeature({FF, FF_ESR})
153 HTMLIMAGE_HTMLELEMENT,
154
155
156 @BrowserFeature({CHROME, EDGE})
157 HTMLIMAGE_HTMLUNKNOWNELEMENT,
158
159
160 @BrowserFeature({CHROME, EDGE})
161 HTMLIMAGE_NAME_VALUE_PARAMS,
162
163
164 @BrowserFeature({CHROME, EDGE})
165 HTMLINPUT_TYPE_IMAGE_IGNORES_CUSTOM_VALIDITY,
166
167
168 @BrowserFeature({CHROME, EDGE})
169 HTMLINPUT_TYPE_MONTH_SUPPORTED,
170
171
172 @BrowserFeature({CHROME, EDGE})
173 HTMLINPUT_TYPE_WEEK_SUPPORTED,
174
175
176 @BrowserFeature({CHROME, EDGE})
177 HTMLLINK_CHECK_TYPE_FOR_STYLESHEET,
178
179
180 @BrowserFeature({FF, FF_ESR})
181 HTMLSELECT_WILL_VALIDATE_IGNORES_READONLY,
182
183
184 @BrowserFeature({FF, FF_ESR})
185 HTMLTRACK_END_TAG_FORBIDDEN,
186
187
188 @BrowserFeature({CHROME, EDGE})
189 HTML_COMMAND_TAG,
190
191
192 @BrowserFeature({CHROME, EDGE})
193 HTML_LAYER_TAG,
194
195
196 @BrowserFeature({FF, FF_ESR})
197 HTTP_COOKIE_EXTENDED_DATE_PATTERNS_1,
198
199
200 @BrowserFeature({CHROME, EDGE})
201 HTTP_COOKIE_EXTENDED_DATE_PATTERNS_2,
202
203
204 @BrowserFeature({FF, FF_ESR})
205 HTTP_COOKIE_REMOVE_DOT_FROM_ROOT_DOMAINS,
206
207
208 @BrowserFeature({CHROME, EDGE})
209 HTTP_HEADER_CH_UA,
210
211
212 @BrowserFeature({FF, FF_ESR})
213 HTTP_HEADER_PRIORITY,
214
215
216 @BrowserFeature({FF, FF_ESR})
217 JS_ANCHOR_HOSTNAME_IGNORE_BLANK,
218
219
220 @BrowserFeature(FF_ESR)
221 JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL,
222
223
224
225
226 @BrowserFeature({CHROME, EDGE})
227 JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL_REPLACE,
228
229
230 @BrowserFeature({CHROME, EDGE})
231 JS_ANCHOR_PATHNAME_PREFIX_WIN_DRIVES_URL,
232
233
234 @BrowserFeature({CHROME, EDGE})
235 JS_ANCHOR_PROTOCOL_COLON_UPPER_CASE_DRIVE_LETTERS,
236
237
238 @BrowserFeature({FF, FF_ESR})
239 JS_AREA_WITHOUT_HREF_FOCUSABLE,
240
241
242 @BrowserFeature({FF, FF_ESR})
243 JS_ARRAY_SORT_ACCEPTS_INCONSISTENT_COMPERATOR,
244
245
246 @BrowserFeature({CHROME, EDGE})
247 JS_AUDIO_PROCESSING_EVENT_CTOR,
248
249
250 @BrowserFeature({CHROME, EDGE})
251 JS_CANVAS_DATA_URL_CHROME_PNG,
252
253
254 @BrowserFeature({CHROME, EDGE})
255 JS_CLIENTHEIGHT_INPUT_17,
256
257
258 @BrowserFeature({FF, FF_ESR})
259 JS_CLIENTHEIGHT_INPUT_18,
260
261
262 @BrowserFeature(FF_ESR)
263 JS_CLIENTHEIGHT_RADIO_CHECKBOX_10,
264
265
266 @BrowserFeature(FF)
267 JS_CLIENTHEIGHT_RADIO_CHECKBOX_14,
268
269
270 @BrowserFeature(FF_ESR)
271 JS_CLIENTWIDTH_INPUT_TEXT_154,
272
273
274 @BrowserFeature({CHROME, EDGE})
275 JS_CLIENTWIDTH_INPUT_TEXT_173,
276
277
278 @BrowserFeature(FF_ESR)
279 JS_CLIENTWIDTH_RADIO_CHECKBOX_10,
280
281
282 @BrowserFeature(FF)
283 JS_CLIENTWIDTH_RADIO_CHECKBOX_14,
284
285
286 @BrowserFeature({FF, FF_ESR})
287 JS_CSSRULELIST_ENUM_ITEM_LENGTH,
288
289
290 @BrowserFeature({CHROME, EDGE})
291 JS_DOCUMENT_EVALUATE_RECREATES_RESULT,
292
293
294 @BrowserFeature({FF, FF_ESR})
295 JS_DOCUMENT_SELECTION_RANGE_COUNT,
296
297
298 @BrowserFeature({CHROME, EDGE})
299 JS_ERROR_CAPTURE_STACK_TRACE,
300
301
302 @BrowserFeature({CHROME, EDGE})
303 JS_ERROR_STACK_TRACE_LIMIT,
304
305
306 @BrowserFeature({FF, FF_ESR})
307 JS_EVENT_INPUT_CTOR_INPUTTYPE,
308
309
310 @BrowserFeature({FF, FF_ESR})
311 JS_EVENT_KEYBOARD_CTOR_WHICH,
312
313
314 @BrowserFeature({FF, FF_ESR})
315 JS_FORM_DISPATCHEVENT_SUBMITS,
316
317
318 @BrowserFeature({FF, FF_ESR})
319 JS_IFRAME_ALWAYS_EXECUTE_ONLOAD,
320
321
322
323
324
325 @BrowserFeature({CHROME, EDGE})
326 JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0,
327
328
329
330
331
332 @BrowserFeature({FF, FF_ESR})
333 JS_IMAGE_WIDTH_HEIGHT_RETURNS_24x24_0x0,
334
335
336 @BrowserFeature({CHROME, EDGE})
337 JS_INNER_TEXT_SVG_NL,
338
339
340 @BrowserFeature({CHROME, EDGE})
341 JS_INPUT_CHANGE_TYPE_DROPS_VALUE_WEEK_MONTH,
342
343
344 @BrowserFeature({FF, FF_ESR})
345 JS_INPUT_NUMBER_ACCEPT_ALL,
346
347
348 @BrowserFeature({FF, FF_ESR})
349 JS_INPUT_NUMBER_DOT_AT_END_IS_DOUBLE,
350
351
352 @BrowserFeature({CHROME, EDGE})
353 JS_INTL_V8_BREAK_ITERATOR,
354
355
356 @BrowserFeature({CHROME, EDGE, FF})
357 JS_ITERATOR_VISIBLE_IN_WINDOW,
358
359
360 @BrowserFeature({FF, FF_ESR})
361 JS_LOCATION_IGNORE_QUERY_FOR_ABOUT_PROTOCOL,
362
363
364 @BrowserFeature({CHROME, EDGE})
365 JS_LOCATION_RELOAD_REFERRER,
366
367
368 @BrowserFeature({FF, FF_ESR})
369 JS_MENU_TYPE_PASS,
370
371
372 @BrowserFeature({CHROME, EDGE})
373 JS_NATIVE_FUNCTION_TOSTRING_COMPACT,
374
375
376 @BrowserFeature({FF, FF_ESR})
377 JS_NATIVE_FUNCTION_TOSTRING_NL,
378
379
380 @BrowserFeature({FF, FF_ESR})
381 JS_NAVIGATOR_DO_NOT_TRACK_UNSPECIFIED,
382
383
384 @BrowserFeature({CHROME, EDGE})
385 JS_OFFSET_PARENT_NULL_IF_FIXED,
386
387
388 @BrowserFeature({CHROME, EDGE})
389 JS_OUTER_HTML_THROWS_FOR_DETACHED,
390
391
392 @BrowserFeature({FF, FF_ESR})
393 JS_PROPERTY_DESCRIPTOR_NAME,
394
395
396 @BrowserFeature({CHROME, EDGE})
397 JS_SCRIPT_IN_TEMPLATE_EXECUTED_ON_ATTACH,
398
399
400 @BrowserFeature({CHROME, EDGE})
401 JS_SELECTOR_TEXT_LOWERCASE,
402
403
404 @BrowserFeature({FF, FF_ESR})
405 JS_SELECT_REMOVE_IGNORE_IF_INDEX_OUTSIDE,
406
407
408 @BrowserFeature({FF, FF_ESR})
409 JS_STORAGE_PRESERVED_INCLUDED,
410
411
412 @BrowserFeature({FF, FF_ESR})
413 JS_STYLE_WORD_SPACING_ACCEPTS_PERCENT,
414
415
416 @BrowserFeature({CHROME, EDGE})
417 JS_TABLE_SPAN_SET_ZERO_IF_INVALID,
418
419
420 @BrowserFeature({CHROME, EDGE})
421 JS_WINDOW_COMPUTED_STYLE_PSEUDO_ACCEPT_WITHOUT_COLON,
422
423
424 @BrowserFeature({FF, FF_ESR})
425 JS_WINDOW_INSTALL_TRIGGER_NULL,
426
427
428
429
430 @BrowserFeature(EDGE)
431 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_138,
432
433
434
435
436 @BrowserFeature(CHROME)
437 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_147,
438
439
440
441
442 @BrowserFeature(FF_ESR)
443 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_91,
444
445
446
447
448 @BrowserFeature(FF)
449 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_93,
450
451
452 @BrowserFeature({FF, FF_ESR})
453 JS_WINDOW_SELECTION_NULL_IF_INVISIBLE,
454
455
456 @BrowserFeature({CHROME, EDGE})
457 JS_XSLT_TRANSFORM_INDENT,
458
459
460 @BrowserFeature({FF, FF_ESR})
461 KEYBOARD_EVENT_SPECIAL_KEYPRESS,
462
463
464 @BrowserFeature({FF, FF_ESR})
465 XHR_ALL_RESPONSE_HEADERS_SEPARATE_BY_LF,
466
467
468
469
470 @BrowserFeature({FF, FF_ESR})
471 XHR_HANDLE_SYNC_NETWORK_ERRORS,
472
473
474 @BrowserFeature({FF, FF_ESR})
475 XHR_LOAD_ALWAYS_AFTER_DONE,
476
477
478 @BrowserFeature({FF, FF_ESR})
479 XHR_RESPONSE_TEXT_EMPTY_UNSENT,
480
481
482 @BrowserFeature({CHROME, EDGE})
483 XHR_SEND_NETWORK_ERROR_IF_ABORTED,
484 }