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