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_SCROLL_UIEVENT,
96
97
98 @BrowserFeature({FF, FF_ESR})
99 EVENT_TYPE_MUTATIONEVENT,
100
101
102 @BrowserFeature({CHROME, EDGE, FF})
103 EVENT_TYPE_TEXTEVENT,
104
105
106 @BrowserFeature({CHROME, EDGE})
107 EVENT_TYPE_WHEELEVENT,
108
109
110 @BrowserFeature({CHROME, EDGE})
111 FORM_IGNORE_REL_NOREFERRER,
112
113
114 @BrowserFeature({CHROME, EDGE})
115 FORM_SUBMISSION_HEADER_CACHE_CONTROL_MAX_AGE,
116
117
118 @BrowserFeature({FF, FF_ESR})
119 HTMLBASEFONT_END_TAG_FORBIDDEN,
120
121
122 @BrowserFeature({FF, FF_ESR})
123 HTMLBUTTON_WILL_VALIDATE_IGNORES_READONLY,
124
125
126 @BrowserFeature({CHROME, EDGE})
127 HTMLCOLLECTION_NAMED_ITEM_ID_FIRST,
128
129
130 @BrowserFeature({CHROME, EDGE, FF})
131 HTMLDOCUMENT_COOKIES_IGNORE_BLANK,
132
133
134
135
136 @BrowserFeature({FF, FF_ESR})
137 HTMLDOCUMENT_ELEMENTS_BY_NAME_EMPTY,
138
139
140 @BrowserFeature({CHROME, EDGE})
141 HTMLDOCUMENT_GET_ALSO_FRAMES,
142
143
144 @BrowserFeature({CHROME, EDGE})
145 HTMLELEMENT_REMOVE_ACTIVE_TRIGGERS_BLUR_EVENT,
146
147
148 @BrowserFeature({CHROME, EDGE})
149 HTMLIMAGE_BLANK_SRC_AS_EMPTY,
150
151
152 @BrowserFeature({FF, FF_ESR})
153 HTMLIMAGE_EMPTY_SRC_DISPLAY_FALSE,
154
155
156 @BrowserFeature({FF, FF_ESR})
157 HTMLIMAGE_HTMLELEMENT,
158
159
160 @BrowserFeature({CHROME, EDGE})
161 HTMLIMAGE_HTMLUNKNOWNELEMENT,
162
163
164 @BrowserFeature({CHROME, EDGE})
165 HTMLIMAGE_NAME_VALUE_PARAMS,
166
167
168 @BrowserFeature({CHROME, EDGE})
169 HTMLINPUT_TYPE_IMAGE_IGNORES_CUSTOM_VALIDITY,
170
171
172 @BrowserFeature({CHROME, EDGE})
173 HTMLINPUT_TYPE_MONTH_SUPPORTED,
174
175
176 @BrowserFeature({CHROME, EDGE})
177 HTMLINPUT_TYPE_WEEK_SUPPORTED,
178
179
180 @BrowserFeature({CHROME, EDGE})
181 HTMLLINK_CHECK_TYPE_FOR_STYLESHEET,
182
183
184 @BrowserFeature({FF, FF_ESR})
185 HTMLSELECT_WILL_VALIDATE_IGNORES_READONLY,
186
187
188 @BrowserFeature({FF, FF_ESR})
189 HTMLTRACK_END_TAG_FORBIDDEN,
190
191
192 @BrowserFeature({CHROME, EDGE})
193 HTML_COMMAND_TAG,
194
195
196 @BrowserFeature({CHROME, EDGE})
197 HTML_LAYER_TAG,
198
199
200 @BrowserFeature({FF, FF_ESR})
201 HTTP_COOKIE_EXTENDED_DATE_PATTERNS_1,
202
203
204 @BrowserFeature({CHROME, EDGE})
205 HTTP_COOKIE_EXTENDED_DATE_PATTERNS_2,
206
207
208 @BrowserFeature({FF, FF_ESR})
209 HTTP_COOKIE_REMOVE_DOT_FROM_ROOT_DOMAINS,
210
211
212 @BrowserFeature({CHROME, EDGE})
213 HTTP_HEADER_CH_UA,
214
215
216 @BrowserFeature({FF, FF_ESR})
217 HTTP_HEADER_PRIORITY,
218
219
220 @BrowserFeature({FF, FF_ESR})
221 JS_ANCHOR_HOSTNAME_IGNORE_BLANK,
222
223
224 @BrowserFeature(FF_ESR)
225 JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL,
226
227
228
229
230 @BrowserFeature({CHROME, EDGE})
231 JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL_REPLACE,
232
233
234 @BrowserFeature({CHROME, EDGE})
235 JS_ANCHOR_PATHNAME_PREFIX_WIN_DRIVES_URL,
236
237
238 @BrowserFeature({CHROME, EDGE})
239 JS_ANCHOR_PROTOCOL_COLON_UPPER_CASE_DRIVE_LETTERS,
240
241
242 @BrowserFeature({FF, FF_ESR})
243 JS_AREA_WITHOUT_HREF_FOCUSABLE,
244
245
246 @BrowserFeature({FF, FF_ESR})
247 JS_ARRAY_SORT_ACCEPTS_INCONSISTENT_COMPERATOR,
248
249
250 @BrowserFeature({CHROME, EDGE})
251 JS_AUDIO_PROCESSING_EVENT_CTOR,
252
253
254 @BrowserFeature({CHROME, EDGE})
255 JS_CANVAS_DATA_URL_CHROME_PNG,
256
257
258 @BrowserFeature({CHROME, EDGE})
259 JS_CLIENTHEIGHT_INPUT_17,
260
261
262 @BrowserFeature({FF, FF_ESR})
263 JS_CLIENTHEIGHT_INPUT_18,
264
265
266 @BrowserFeature(FF_ESR)
267 JS_CLIENTHEIGHT_RADIO_CHECKBOX_10,
268
269
270 @BrowserFeature(FF)
271 JS_CLIENTHEIGHT_RADIO_CHECKBOX_14,
272
273
274 @BrowserFeature({FF, FF_ESR})
275 JS_CLIENTHEIGHT_RB_17,
276
277
278 @BrowserFeature({FF, FF_ESR})
279 JS_CLIENTHEIGHT_RT_9,
280
281
282 @BrowserFeature({FF, FF_ESR})
283 JS_CLIENTHEIGHT_RUBY_17,
284
285
286 @BrowserFeature(FF_ESR)
287 JS_CLIENTWIDTH_INPUT_TEXT_154,
288
289
290 @BrowserFeature({CHROME, EDGE})
291 JS_CLIENTWIDTH_INPUT_TEXT_173,
292
293
294 @BrowserFeature(FF_ESR)
295 JS_CLIENTWIDTH_RADIO_CHECKBOX_10,
296
297
298 @BrowserFeature(FF)
299 JS_CLIENTWIDTH_RADIO_CHECKBOX_14,
300
301
302 @BrowserFeature({FF, FF_ESR})
303 JS_CSSRULELIST_ENUM_ITEM_LENGTH,
304
305
306 @BrowserFeature({CHROME, EDGE})
307 JS_DOCUMENT_EVALUATE_RECREATES_RESULT,
308
309
310 @BrowserFeature({FF, FF_ESR})
311 JS_DOCUMENT_SELECTION_RANGE_COUNT,
312
313
314 @BrowserFeature({CHROME, EDGE})
315 JS_ERROR_CAPTURE_STACK_TRACE,
316
317
318 @BrowserFeature({CHROME, EDGE})
319 JS_ERROR_STACK_TRACE_LIMIT,
320
321
322 @BrowserFeature({FF, FF_ESR})
323 JS_EVENT_INPUT_CTOR_INPUTTYPE,
324
325
326 @BrowserFeature({FF, FF_ESR})
327 JS_EVENT_KEYBOARD_CTOR_WHICH,
328
329
330 @BrowserFeature({FF, FF_ESR})
331 JS_FORM_DISPATCHEVENT_SUBMITS,
332
333
334 @BrowserFeature({FF, FF_ESR})
335 JS_IFRAME_ALWAYS_EXECUTE_ONLOAD,
336
337
338
339
340
341 @BrowserFeature({CHROME, EDGE})
342 JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0,
343
344
345
346
347
348 @BrowserFeature({FF, FF_ESR})
349 JS_IMAGE_WIDTH_HEIGHT_RETURNS_24x24_0x0,
350
351
352 @BrowserFeature({CHROME, EDGE})
353 JS_INNER_TEXT_SVG_NL,
354
355
356 @BrowserFeature({CHROME, EDGE})
357 JS_INPUT_CHANGE_TYPE_DROPS_VALUE_WEEK_MONTH,
358
359
360 @BrowserFeature({FF, FF_ESR})
361 JS_INPUT_NUMBER_ACCEPT_ALL,
362
363
364 @BrowserFeature({FF, FF_ESR})
365 JS_INPUT_NUMBER_DOT_AT_END_IS_DOUBLE,
366
367
368 @BrowserFeature({CHROME, EDGE})
369 JS_INTL_V8_BREAK_ITERATOR,
370
371
372 @BrowserFeature({CHROME, EDGE, FF})
373 JS_ITERATOR_VISIBLE_IN_WINDOW,
374
375
376 @BrowserFeature({FF, FF_ESR})
377 JS_LOCATION_IGNORE_QUERY_FOR_ABOUT_PROTOCOL,
378
379
380 @BrowserFeature({CHROME, EDGE})
381 JS_LOCATION_RELOAD_REFERRER,
382
383
384 @BrowserFeature({FF, FF_ESR})
385 JS_MENU_TYPE_PASS,
386
387
388 @BrowserFeature({CHROME, EDGE})
389 JS_NATIVE_FUNCTION_TOSTRING_COMPACT,
390
391
392 @BrowserFeature({FF, FF_ESR})
393 JS_NATIVE_FUNCTION_TOSTRING_NL,
394
395
396 @BrowserFeature({FF, FF_ESR})
397 JS_NAVIGATOR_DO_NOT_TRACK_UNSPECIFIED,
398
399
400 @BrowserFeature({CHROME, EDGE})
401 JS_OFFSET_PARENT_NULL_IF_FIXED,
402
403
404 @BrowserFeature({CHROME, EDGE})
405 JS_OUTER_HTML_THROWS_FOR_DETACHED,
406
407
408 @BrowserFeature({FF, FF_ESR})
409 JS_PROPERTY_DESCRIPTOR_NAME,
410
411
412 @BrowserFeature({CHROME, EDGE})
413 JS_SCRIPT_IN_TEMPLATE_EXECUTED_ON_ATTACH,
414
415
416 @BrowserFeature({CHROME, EDGE})
417 JS_SELECTOR_TEXT_LOWERCASE,
418
419
420 @BrowserFeature({FF, FF_ESR})
421 JS_SELECT_REMOVE_IGNORE_IF_INDEX_OUTSIDE,
422
423
424 @BrowserFeature({FF, FF_ESR})
425 JS_STORAGE_PRESERVED_INCLUDED,
426
427
428 @BrowserFeature(FF)
429 JS_STYLE_LETTER_SPACING_ACCEPTS_PERCENT,
430
431
432 @BrowserFeature({FF, FF_ESR})
433 JS_STYLE_WORD_SPACING_ACCEPTS_PERCENT,
434
435
436 @BrowserFeature({CHROME, EDGE})
437 JS_WINDOW_COMPUTED_STYLE_PSEUDO_ACCEPT_WITHOUT_COLON,
438
439
440 @BrowserFeature({FF, FF_ESR})
441 JS_WINDOW_INSTALL_TRIGGER_NULL,
442
443
444
445
446 @BrowserFeature(EDGE)
447 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_138,
448
449
450
451
452 @BrowserFeature(CHROME)
453 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_147,
454
455
456
457
458 @BrowserFeature(FF_ESR)
459 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_91,
460
461
462
463
464 @BrowserFeature(FF)
465 JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_93,
466
467
468 @BrowserFeature({FF, FF_ESR})
469 JS_WINDOW_SELECTION_NULL_IF_INVISIBLE,
470
471
472 @BrowserFeature({CHROME, EDGE})
473 JS_XSLT_TRANSFORM_INDENT,
474
475
476 @BrowserFeature({FF, FF_ESR})
477 KEYBOARD_EVENT_SPECIAL_KEYPRESS,
478
479
480 @BrowserFeature({FF, FF_ESR})
481 XHR_ALL_RESPONSE_HEADERS_SEPARATE_BY_LF,
482
483
484
485
486 @BrowserFeature({FF, FF_ESR})
487 XHR_HANDLE_SYNC_NETWORK_ERRORS,
488
489
490 @BrowserFeature({FF, FF_ESR})
491 XHR_LOAD_ALWAYS_AFTER_DONE,
492
493
494 @BrowserFeature({FF, FF_ESR})
495 XHR_RESPONSE_TEXT_EMPTY_UNSENT,
496
497
498 @BrowserFeature({CHROME, EDGE})
499 XHR_SEND_NETWORK_ERROR_IF_ABORTED,
500 }