e025d85f10cbfd0d3d396232acd064e436482a40
[WebKit-https.git] / Source / WebCore / features.json
1 {
2     "specification": [
3     {
4         "name": "CSS Grid Layout Level 1",
5         "status": {
6             "status": "In Development",
7             "enabled-by-default": true
8         },
9         "url": "http://dev.w3.org/csswg/css-grid/",
10         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=60731",
11         "keywords": ["css grid layout", "css grid", "grid"],
12         "category": "css",
13         "contact": {
14             "name": "Sergio Villar Senin",
15             "email": "svillar@igalia.com"
16         }
17     },
18     {
19         "name": "CSS Inline Layout Module Level 3",
20         "status": {
21             "status": "In Development",
22             "enabled-by-default": true
23         },
24         "url": "http://dev.w3.org/csswg/css-inline/",
25         "keywords": ["css inline layout", "css inline", "inline"],
26         "category": "css"
27     },
28     {
29         "name": "CSS Media Queries Level 4",
30         "url": "http://dev.w3.org/csswg/mediaqueries-4/",
31         "keywords": ["css media queries", "media queries"],
32         "category": "css"
33     },
34     {
35         "name": "CSS Positioned Layout Module Level 3",
36         "url": "http://dev.w3.org/csswg/css-position/",
37         "keywords": ["css positioning"],
38         "category": "css"
39     },
40     {
41         "name": "CSS Scroll Snap Points Module Level 1",
42         "status": {
43             "status": "In Development",
44             "enabled-by-default": true
45         },
46         "url": "http://dev.w3.org/csswg/css-snappoints/",
47         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=134283",
48         "keywords": ["css scroll snap points", "scroll snap", "snap points"],
49         "category": "css",
50         "contact": {
51             "name": "Brent Fulgham",
52             "email": "bfulgham@apple.com"
53         }
54     },
55     {
56         "name": "CSS Selectors Level 4",
57         "url": "http://dev.w3.org/csswg/selectors-4/",
58         "keywords": ["css selectors", "selectors"],
59         "category": "css",
60         "contact": {
61             "name": "Benjamin Poulain",
62             "twitter": "@awfulben",
63             "email": "benjamin@webkit.org"
64         }
65     },
66     {
67         "name": "CSS Shapes Level 1",
68         "url": "http://www.w3.org/TR/css-shapes-1/",
69         "keywords": ["css shapes", "shapes"],
70         "category": "css"
71     },
72     {
73         "name": "CSS Will Change",
74         "status": {
75             "status": "Done",
76             "enabled-by-default": true
77         },
78         "url": "https://drafts.csswg.org/css-will-change/",
79         "keywords": ["css willchange", "css will-change"],
80         "category": "css"
81         "contact": {
82             "name": "Simon Fraser",
83             "twitter": "@smfr",
84         }
85     },
86     {
87         "name": "DOM",
88         "url": "https://dom.spec.whatwg.org",
89         "keywords": ["dom", "dom4"],
90         "category": "html"
91     },
92     {
93         "name": "Filter Effects Module Level 2",
94         "url": "http://dev.w3.org/fxtf/filters-2/",
95         "keywords": ["css filters", "filter effects", "filters"],
96         "category": "css"
97     },
98     {
99         "name": "HTML5",
100         "url": "https://html.spec.whatwg.org",
101         "keywords": ["html", "html5", "html5.1"],
102         "category": "html"
103     },
104     {
105         "name": "Service Workers",
106         "status": {
107             "status": "No active development"
108         },
109         "url": "http://www.w3.org/TR/2015/WD-service-workers-20150625/",
110         "keywords": ["service workers"],
111         "category": "webapps",
112         "description": "A method for browsers to run JavaScript in the background to handle network requests and manage cached responses. Service Workers offers a replacement for Application Cache.",
113         "contact": {
114             "name": "Jon Davis",
115             "twitter": "@jonathandavis",
116             "email": "web-evangelist@apple.com"
117         }
118     },
119     {
120         "name": "Streams",
121         "url": "https://streams.spec.whatwg.org",
122         "keywords": ["streams api"],
123         "category": "webapps"
124     },
125     {
126         "name": "Web Components",
127         "status": {
128             "status": "No active development"
129         },
130         "url": "http://www.w3.org/wiki/WebComponents/",
131         "keywords": ["web components", "shadow dom", "html imports", "custom element", "template element"],
132         "category": "webapps",
133         "description": "A collection of technologies to improve modularization of DOM subtrees.",
134         "contact": {
135             "name": "Jon Davis",
136             "twitter": "@jonathandavis",
137             "email": "web-evangelist@apple.com"
138         }
139     },
140     {
141         "name": "WebGL",
142         "status": {
143             "status": "In Development",
144             "enabled-by-default": true
145         },
146         "url": "https://www.khronos.org/registry/webgl/specs/1.0/",
147         "keywords": ["webgl"],
148         "category": "html"
149     },
150     {
151         "name": "WebRTC",
152         "status": {
153             "status": "No active development"
154         },
155         "url": "http://www.w3.org/TR/webrtc/",
156         "keywords": ["webrtc"],
157         "category": "webapps",
158         "description": "An API to facilitate real-time communication for browser-to-browser applications.",
159         "contact": {
160             "name": "Jon Davis",
161             "twitter": "@jonathandavis",
162             "email": "web-evangelist@apple.com"
163         }
164     }
165     ],
166
167     "features": [
168     {
169         "name": "CSS Selector :any-link",
170         "status": {
171             "status": "Done",
172             "enabled-by-default": true
173         },
174         "url": "http://dev.w3.org/csswg/selectors-4/#the-any-link-pseudo",
175         "specification": "CSS Selectors Level 4",
176         "description": "The pseudo class :any-link matches any element that would match :link or :visisted.",
177         "comment": "A prefix version :-webkit-any-link has been available for a while but it was not 100% compliant to the specification.",
178         "contact": {
179             "name": "Benjamin Poulain",
180             "twitter": "@awfulben",
181             "email": "benjamin@webkit.org"
182         }
183     },
184     {
185         "name": "CSS Selector :lang() level 4",
186         "status": {
187             "status": "Done",
188             "enabled-by-default": true
189         },
190         "url": "http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo",
191         "specification": "CSS Selectors Level 4",
192         "description": "The selector :lang() is extended in level 4 to support a list of language range, each range can contain a wildcard. For example: p:lang(\"*-be\", \"en\")."
193     },
194     {
195         "name": "CSS Selector :matches()",
196         "status": {
197             "status": "Done",
198             "enabled-by-default": true
199         },
200         "url": "http://dev.w3.org/csswg/selectors-4/#matches",
201         "specification": "CSS Selectors Level 4",
202         "description": "The selector :matches() takes a selector list as argument and matches an element if any of them matches (e.g. :matches(article > section, #target)). When used for styling, the specificity of :matches() is the higest specificity of all selectors in the selector list.",
203         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :matches().",
204         "contact": {
205             "name": "Benjamin Poulain",
206             "twitter": "@awfulben",
207             "email": "benjamin@webkit.org"
208         }
209     },
210     {
211         "name": "CSS Selector :not() level 4",
212         "status": {
213             "status": "Done",
214             "enabled-by-default": true
215         },
216         "url": "http://dev.w3.org/csswg/selectors-4/#negation",
217         "specification": "CSS Selectors Level 4",
218         "description": "The selector :not() in level 4 supports full selector lists as argument. For example: :not(:any-link >> img, :any-link >> picture).",
219         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :not().",
220         "contact": {
221             "name": "Benjamin Poulain",
222             "twitter": "@awfulben",
223             "email": "benjamin@webkit.org"
224         }
225     },
226     {
227         "name": "CSS Selector :nth-child(An+B of selector list) and :nth-last-child(An+B of selector list)",
228         "status": {
229             "status": "Done",
230             "enabled-by-default": true
231         },
232         "url": "http://dev.w3.org/csswg/selectors-4/#the-nth-child-pseudo",
233         "specification": "CSS Selectors Level 4",
234         "description": "The pseudo classes :nth-child() and :nth-last-child() now supports a selector list that filters what to count. For example: \":nth-child(even of .visible)\".",
235         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :nth-child() and :nth-last-child().",
236         "contact": {
237             "name": "Benjamin Poulain",
238             "twitter": "@awfulben",
239             "email": "benjamin@webkit.org"
240         }
241     },
242     {
243         "name": "CSS Selector :placeholder-shown",
244         "status": {
245             "status": "Done",
246             "enabled-by-default": true
247         },
248         "url": "http://dev.w3.org/csswg/selectors-4/#placeholder",
249         "specification": "CSS Selectors Level 4",
250         "description": "The selector :placeholder-shown matches any input element that has a visible placeholder.",
251         "comment": "Styling the placeholder can be done through the WebKit pseudo-element \"::-webkit-input-placeholder\".",
252         "contact": {
253             "name": "Benjamin Poulain",
254             "twitter": "@awfulben",
255             "email": "benjamin@webkit.org"
256         }
257     },
258     {
259         "name": "Case-insensitive attribute selectors",
260         "status": {
261             "status": "Done",
262             "enabled-by-default": true
263         },
264         "url": "http://dev.w3.org/csswg/selectors-4/#attribute-case",
265         "specification": "CSS Selectors Level 4",
266         "description": "Any attribute selector that test a value can take a flag \"i\" to use case insensitive checks. For example: input[type=number i] test the value \"number\" case-insensitively.",
267         "contact": {
268             "name": "Benjamin Poulain",
269             "twitter": "@awfulben",
270             "email": "benjamin@webkit.org"
271         }
272     },
273     {
274         "name": "Custom Elements",
275         "status": {
276             "status": "No active development"
277         },
278         "url": "http://w3c.github.io/webcomponents/spec/custom/",
279         "specification": "Web Components",
280         "description": "Define a custom HTML tag and associate it with an ES6 class.",
281         "contact": {
282             "name": "Jon Davis",
283             "twitter": "@jonathandavis",
284             "email": "web-evangelist@apple.com"
285         }
286     },
287     {
288         "name": "Element.closest()",
289         "status": {
290             "status": "Done",
291             "enabled-by-default": true
292         },
293         "url": "https://dom.spec.whatwg.org/#dom-element-closest",
294         "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/API/Element/closest",
295         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=137418",
296         "specification": "DOM",
297         "description": "Find the closest ancestor matching the selector passed as argument. The element itself is returned if it matches the selector.",
298         "contact": {
299             "name": "Benjamin Poulain",
300             "twitter": "@awfulben",
301             "email": "benjamin@webkit.org"
302         }
303     },
304     {
305         "name": "Filter Effects backdrop-filter propery",
306         "status": {
307             "status": "Done",
308             "enabled-by-default": true
309         },
310         "url": "http://dev.w3.org/fxtf/filters-2/#propdef-backdrop-filter",
311         "specification": "Filter Effects Module Level 2",
312         "description": "This property specifies styling for filters applied to the backdrop of an element."
313     },
314     {
315         "name": "Force Click Events",
316         "status": {
317             "status": "Prototyping",
318             "enabled-by-default": true
319         },
320         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142836",
321         "description": "Provide the events necessary to handle force click events in the page, overriding the default behavior."
322     },
323     {
324         "name": "HTML imports",
325         "status": {
326             "status": "No active development"
327         },
328         "url": "http://w3c.github.io/webcomponents/spec/imports/",
329         "specification": "Web Components",
330         "description": "Includes resusable HTML documents in other HTML documents.",
331         "comment": "There are concerns about the disconnect between this specification and ES6 Modules. WebKit has no intent to support the current specification.",
332         "contact": {
333             "name": "Jon Davis",
334             "twitter": "@jonathandavis",
335             "email": "web-evangelist@apple.com"
336         }
337     },
338     {
339         "name": "Initial Letter",
340         "status": {
341             "status": "Done",
342             "enabled-by-default": true
343         },
344         "url": "http://dev.w3.org/csswg/css-inline/#propdef-initial-letter",
345         "specification": "CSS Inline Layout Module Level 3",
346         "description": "This property specifies styling for dropped, raised, and sunken initial letters."
347     },
348     {
349         "name": "Interaction Media Features (pointer, hover, any-pointer, any-hover)",
350         "status": {
351             "status": "Done",
352             "enabled-by-default": true
353         },
354         "url": "http://dev.w3.org/csswg/mediaqueries-4/#mf-interaction",
355         "specification": "CSS Media Queries Level 4",
356         "description": "The \"pointer\" media defines how percise the pointing device is. The \"hover\" media defines the ability of the poiting device to hover elements."
357     },
358     {
359         "name": "MicroData",
360         "status": {
361             "status": "Removed"
362         },
363         "url": "https://html.spec.whatwg.org/multipage/microdata.html",
364         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=119480",
365         "specification": "HTML5",
366         "comment": "WebKit used to support MicroData. The feature never gained any traction and was eventually removed to clean up the codebase."
367     },
368     {
369         "name": "Navigator.hardwareConcurrency",
370         "status": {
371             "status": "Done",
372             "enabled-by-default": true
373         },
374         "url": "https://wiki.whatwg.org/wiki/Navigator_HW_Concurrency",
375         "webkit-url": "http://trac.webkit.org/changeset/169017",
376         "description": "Navigator.hardwareConcurrency provides the total number of logical processors available to the user agent."
377     },
378     {
379         "name": "Picture element",
380         "status": {
381             "status": "In development",
382             "enabled-by-default": false
383         },
384         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element",
385         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=116963",
386         "specification": "HTML5",
387         "description": "Enable handling the art-direction responsive images use-case by defining multiple image sources in markup",
388         "contact": {
389             "name": "Yoav Weiss",
390             "twitter": "@yoavweiss",
391             "email": "yoav@yoav.ws"
392         }
393     },
394     {
395         "name": "Position: sticky",
396         "status": {
397             "status": "Done",
398             "enabled-by-default": true
399         },
400         "url": "http://dev.w3.org/csswg/css-position/#sticky-pos",
401         "specification": "CSS Positioned Layout Module Level 3",
402         "description": "Sticky positioning provides a way to position element out of the normal flow when scrolling. Unlike solutions based on JavaScript, the change of position is synchronized with scrolling.",
403         "comment": "The feature is prefixed with <em>-webkit-</em>. There are some remaining issues to resolve in the specification."
404     },
405     {
406         "name": "Readable Streams",
407         "status": {
408             "status": "In Development",
409             "enabled-by-default": true
410         },
411         "url": "https://streams.spec.whatwg.org/#rs",
412         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=138967",
413         "specification": "Streams",
414         "comment": "The ReadableStream and ReadableStreamReader interfaces are available but not functional."
415     },
416     {
417         "name": "Shadow DOM",
418         "status": {
419             "status": "No active development"
420         },
421         "url": "http://w3c.github.io/webcomponents/spec/shadow/",
422         "specification": "Web Components",
423         "description": "Functional encapsulation of HTML, CSS and JavaScript for Web Components.",
424         "contact": {
425             "name": "Jon Davis",
426             "twitter": "@jonathandavis",
427             "email": "web-evangelist@apple.com"
428         }
429     },
430     {
431         "name": "Shape outside for floats",
432         "status": {
433             "status": "In Development",
434             "enabled-by-default": true
435         },
436         "url": "http://www.w3.org/TR/css-shapes-1/",
437         "specification": "CSS Shapes Level 1",
438         "description": "CSS Shapes describe geometric shapes for use in CSS. For Level 1, CSS Shapes can be applied to floats.",
439         "comment": "The implementation is feature complete and shipping, but is -webkit prefixed."
440     },
441     {
442         "name": "Shared Web Workers",
443         "status": {
444             "status": "Removed"
445         },
446         "url": "https://html.spec.whatwg.org/multipage/workers.html#shared-workers-introduction",
447         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=140344",
448         "specification": "HTML5",
449         "comment": "The implementation of Shared Web Workers was imposing undesirable constraints on the engine. The feature never gained any adoption and was eventually removed from the engine."
450     },
451     {
452         "name": "Srcset w descriptor and related sizes attribute",
453         "status": {
454             "status": "Done",
455             "enabled-by-default": true
456         },
457         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element",
458         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=133620",
459         "specification": "HTML5",
460         "description": "Enable handling the variable width responsive images use-case by defining multiple image resources in markup",
461         "contact": {
462             "name": "Yoav Weiss",
463             "twitter": "@yoavweiss",
464             "email": "yoav@yoav.ws"
465         }
466     },
467     {
468         "name": "Srcset x descriptor",
469         "status": {
470             "status": "Done",
471             "enabled-by-default": true
472         },
473         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element",
474         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=110252",
475         "specification": "HTML5",
476         "description": "Enable handling the fixed width responsive images use-case by defining multiple image resources in markup",
477         "contact": {
478             "name": "Yoav Weiss",
479             "twitter": "@yoavweiss",
480             "email": "yoav@yoav.ws"
481         }
482     },
483     {
484         "name": "Template Element",
485         "status": {
486             "status": "Done",
487             "enabled-by-default": true
488         },
489         "url": "http://www.w3.org/TR/html5/scripting-1.html#the-template-element",
490         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=124637",
491         "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template",
492         "specification": "Web Components",
493         "description": "Declares HTML fragments that can be cloned and inserted into the document by a script."
494     }
495     ]
496 }