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