Include Conical Gradients on the Feature Status page.
[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 Image Values and Replaced Content Module Level 4",
20         "url": "https://www.w3.org/TR/css4-images/",
21         "keywords": ["css image values","css","image values"],
22         "category": "css"
23     },
24     {
25         "name": "CSS Inline Layout Module Level 3",
26         "status": {
27             "status": "In Development",
28             "enabled-by-default": true
29         },
30         "url": "http://dev.w3.org/csswg/css-inline/",
31         "keywords": ["css inline layout", "css inline", "inline"],
32         "category": "css"
33     },
34     {
35         "name": "CSS Media Queries Level 4",
36         "url": "http://dev.w3.org/csswg/mediaqueries-4/",
37         "keywords": ["css media queries", "media queries"],
38         "category": "css"
39     },
40     {
41         "name": "CSS Painting API Level 1",
42         "status": {
43             "status": "Under Consideration"
44         },
45         "url": "https://drafts.css-houdini.org/css-paint-api/",
46         "keywords": ["css", "houdini"],
47         "category": "css"
48     },
49     {
50         "name": "CSS Positioned Layout Module Level 3",
51         "url": "http://dev.w3.org/csswg/css-position/",
52         "keywords": ["css positioning"],
53         "category": "css"
54     },
55     {
56         "name": "CSS Properties and Values API Level 1",
57         "status": {
58             "status": "Under Consideration"
59         },
60         "url": "https://drafts.css-houdini.org/css-properties-values-api/",
61         "keywords": ["css", "houdini"],
62         "category": "css"
63     },
64     {
65         "name": "CSS Scroll Snap Points Module Level 1",
66         "status": {
67             "status": "In Development",
68             "enabled-by-default": true
69         },
70         "url": "http://dev.w3.org/csswg/css-snappoints/",
71         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=134283",
72         "keywords": ["css scroll snap points", "scroll snap", "snap points"],
73         "category": "css",
74         "contact": {
75             "name": "Brent Fulgham",
76             "email": "bfulgham@apple.com"
77         }
78     },
79     {
80         "name": "CSS Selectors Level 4",
81         "url": "http://dev.w3.org/csswg/selectors-4/",
82         "keywords": ["css selectors", "selectors"],
83         "category": "css",
84         "contact": {
85             "name": "Benjamin Poulain",
86             "twitter": "@awfulben",
87             "email": "benjamin@webkit.org"
88         }
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": "Content Security Policy Level 2",
122         "status": {
123             "status": "Done",
124             "enabled-by-default": true
125         },
126         "url": "https://w3c.github.io/webappsec-csp/2/",
127         "keywords": ["csp", "cross-site scripting", "xss", "injection", "header"],
128         "category": "webapps",
129         "description": "A mechanism that web applications can use to mitigate content injection vulnerabilities, such as cross-site scripting (XSS). Developers can declare a CSP policy to prohibit their web application from loading content or executing scripts that have not been whitelisted among other capabilities.",
130         "contact": {
131             "name": "Daniel Bates",
132             "email": "dbates@webkit.org"
133         }
134     },
135     {
136         "name": "Content Security Policy Level 3",
137         "status": {
138             "status": "Partial Support",
139             "enabled-by-default": true
140         },
141         "url": "https://w3c.github.io/webappsec-csp/",
142         "keywords": ["csp", "cross-site scripting", "xss", "injection", "header"],
143         "category": "webapps",
144         "contact": {
145             "name": "Daniel Bates",
146             "email": "dbates@webkit.org"
147         }
148     },
149     {
150         "name": "DOM",
151         "url": "https://dom.spec.whatwg.org",
152         "keywords": ["dom", "dom4"],
153         "category": "html"
154     },
155     {
156         "name": "Fetch API",
157         "status": {
158             "status": "In Development"
159         },
160         "url": "https://fetch.spec.whatwg.org",
161         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=151937",
162         "keywords": ["fetch", "http", "cors", "request", "response", "header"],
163         "category": "webapps",
164         "description": "An underlying unified architecture for making resource requests.",
165         "contact": {
166             "name": "Jon Davis",
167             "twitter": "@jonathandavis",
168             "email": "web-evangelist@apple.com"
169         }
170     },
171     {
172         "name": "Filter Effects Module Level 2",
173         "url": "http://dev.w3.org/fxtf/filters-2/",
174         "keywords": ["css filters", "filter effects", "filters"],
175         "category": "css"
176     },
177     {
178         "name": "HTML5",
179         "url": "https://html.spec.whatwg.org",
180         "keywords": ["html", "html5", "html5.1"],
181         "category": "html"
182     },
183     {
184         "name": "IndexedDB",
185         "status": {
186             "status": "In Development"
187         },
188         "url": "http://www.w3.org/TR/IndexedDB/",
189         "keywords": ["indexeddb", "index db"],
190         "description": "A standard interface to a browser database of records for simple values and objects.",
191         "contact": {
192             "name": "Jon Davis",
193             "twitter": "@jonathandavis",
194             "email": "web-evangelist@apple.com"
195         }
196     },
197     {
198         "name": "Service Workers",
199         "status": {
200             "status": "Under Consideration"
201         },
202         "url": "http://www.w3.org/TR/2015/WD-service-workers-20150625/",
203         "keywords": ["service workers"],
204         "category": "webapps",
205         "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.",
206         "contact": {
207             "name": "Jon Davis",
208             "twitter": "@jonathandavis",
209             "email": "web-evangelist@apple.com"
210         }
211     },
212     {
213         "name": "Streams",
214         "url": "https://streams.spec.whatwg.org",
215         "keywords": ["streams api"],
216         "category": "webapps"
217     },
218     {
219         "name": "WOFF File Format 2.0",
220         "status": {
221             "status": "Under Consideration"
222         },
223         "url": "https://www.w3.org/TR/WOFF2/",
224         "keywords": ["woff"],
225         "category": "css",
226         "description": "Improves compression to reduce bandwidth with content-aware preprocessing.",
227         "contact": {
228             "name": "Jonathan Davis",
229             "email": "web-evangelist@apple.com",
230             "twitter": "@jonathandavis"
231         }
232     },
233     {
234         "name": "Web Components",
235         "url": "http://www.w3.org/wiki/WebComponents/",
236         "keywords": ["web components", "shadow dom", "html imports", "custom elements", "template element"],
237         "category": "webapps",
238         "description": "A collection of technologies to improve modularization of DOM subtrees.",
239         "contact": {
240             "name": "Ryosuke Niwa",
241             "twitter": "@RyosukeNiwa",
242             "email": "rniwa@webkit.org"
243         }
244     },
245     {
246         "name": "WebCrypto",
247         "status": {
248             "status": "Partial Support",
249             "enabled-by-default": true
250         },
251         "url": "http://www.w3.org/TR/WebCryptoAPI/",
252         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=122679",
253         "keywords": ["webcrypto"],
254         "category": "webapps",
255         "description": "A JavaScript API for web applications to perform cryptographic operations.",
256         "contact": {
257             "name": "Jon Davis",
258             "twitter": "@jonathandavis",
259             "email": "web-evangelist@apple.com"
260         }
261     },
262     {
263         "name": "WebGL 1",
264         "status": {
265             "status": "Done",
266             "enabled-by-default": true
267         },
268         "url": "https://www.khronos.org/registry/webgl/specs/1.0/",
269         "keywords": ["webgl"],
270         "category": "html"
271     },
272     {
273         "name": "WebGL 2",
274         "status": {
275             "status": "In Development",
276             "enabled-by-default": true
277         },
278         "url": "https://www.khronos.org/registry/webgl/specs/latest/2.0/",
279         "keywords": ["webgl"],
280         "category": "html"
281     },
282     {
283         "name": "WebRTC",
284         "status": {
285             "status": "In Development"
286         },
287         "url": "http://www.w3.org/TR/webrtc/",
288         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=124288",
289         "keywords": ["webrtc"],
290         "category": "webapps",
291         "description": "An API to facilitate real-time communication for browser-to-browser applications.",
292         "contact": {
293             "name": "Jon Davis",
294             "twitter": "@jonathandavis",
295             "email": "web-evangelist@apple.com"
296         }
297     }
298     ],
299
300     "features": [
301     {
302         "name": "CSS Selector :any-link",
303         "status": {
304             "status": "Done",
305             "enabled-by-default": true
306         },
307         "url": "http://dev.w3.org/csswg/selectors-4/#the-any-link-pseudo",
308         "specification": "CSS Selectors Level 4",
309         "description": "The pseudo class :any-link matches any element that would match :link or :visisted.",
310         "comment": "A prefix version :-webkit-any-link has been available for a while but it was not 100% compliant to the specification.",
311         "contact": {
312             "name": "Benjamin Poulain",
313             "twitter": "@awfulben",
314             "email": "benjamin@webkit.org"
315         }
316     },
317     {
318         "name": "CSS Selector :lang() level 4",
319         "status": {
320             "status": "Done",
321             "enabled-by-default": true
322         },
323         "url": "http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo",
324         "specification": "CSS Selectors Level 4",
325         "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\")."
326     },
327     {
328         "name": "CSS Selector :matches()",
329         "status": {
330             "status": "Done",
331             "enabled-by-default": true
332         },
333         "url": "http://dev.w3.org/csswg/selectors-4/#matches",
334         "specification": "CSS Selectors Level 4",
335         "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.",
336         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :matches().",
337         "contact": {
338             "name": "Benjamin Poulain",
339             "twitter": "@awfulben",
340             "email": "benjamin@webkit.org"
341         }
342     },
343     {
344         "name": "CSS Selector :not() level 4",
345         "status": {
346             "status": "Done",
347             "enabled-by-default": true
348         },
349         "url": "http://dev.w3.org/csswg/selectors-4/#negation",
350         "specification": "CSS Selectors Level 4",
351         "description": "The selector :not() in level 4 supports full selector lists as argument. For example: :not(:any-link >> img, :any-link >> picture).",
352         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :not().",
353         "contact": {
354             "name": "Benjamin Poulain",
355             "twitter": "@awfulben",
356             "email": "benjamin@webkit.org"
357         }
358     },
359     {
360         "name": "CSS Selector :nth-child(An+B of selector list) and :nth-last-child(An+B of selector list)",
361         "status": {
362             "status": "Done",
363             "enabled-by-default": true
364         },
365         "url": "http://dev.w3.org/csswg/selectors-4/#the-nth-child-pseudo",
366         "specification": "CSS Selectors Level 4",
367         "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)\".",
368         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :nth-child() and :nth-last-child().",
369         "contact": {
370             "name": "Benjamin Poulain",
371             "twitter": "@awfulben",
372             "email": "benjamin@webkit.org"
373         }
374     },
375     {
376         "name": "CSS Selector :placeholder-shown",
377         "status": {
378             "status": "Done",
379             "enabled-by-default": true
380         },
381         "url": "http://dev.w3.org/csswg/selectors-4/#placeholder",
382         "specification": "CSS Selectors Level 4",
383         "description": "The selector :placeholder-shown matches any input element that has a visible placeholder.",
384         "comment": "Styling the placeholder can be done through the WebKit pseudo-element \"::-webkit-input-placeholder\".",
385         "contact": {
386             "name": "Benjamin Poulain",
387             "twitter": "@awfulben",
388             "email": "benjamin@webkit.org"
389         }
390     },
391     {
392         "name": "CSS Shapes Level 1",
393         "status": {
394             "status": "In Development",
395             "enabled-by-default": true
396         },
397         "url": "http://www.w3.org/TR/css-shapes-1/",
398         "description": "CSS Shapes describe geometric shapes for use in CSS. For Level 1, CSS Shapes can be applied to floats.",
399         "comment": "The implementation is feature complete and shipping, but is -webkit prefixed."
400     },
401     {
402         "name": "Case-insensitive attribute selectors",
403         "status": {
404             "status": "Done",
405             "enabled-by-default": true
406         },
407         "url": "http://dev.w3.org/csswg/selectors-4/#attribute-case",
408         "specification": "CSS Selectors Level 4",
409         "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.",
410         "contact": {
411             "name": "Benjamin Poulain",
412             "twitter": "@awfulben",
413             "email": "benjamin@webkit.org"
414         }
415     },
416     {
417         "name": "Conic Gradients",
418         "status": {
419             "status": "Under Consideration"
420         },
421         "url": "https://www.w3.org/TR/css4-images/#conic-gradients",
422         "specification": "CSS Image Values and Replaced Content Module Level 4",
423         "description": "Defines gradients wrapped around a central point.",
424         "contact": {
425             "name": "Jonathan Davis",
426             "email": "web-evangelist@apple.com",
427             "twitter": "@jonathandavis"
428         }
429     },
430     {
431         "name": "Custom Elements",
432         "status": {
433             "status": "In Development"
434         },
435         "url": "http://w3c.github.io/webcomponents/spec/custom/",
436         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=150225",
437         "specification": "Web Components",
438         "description": "Define a custom HTML tag and associate it with an ES6 class.",
439         "contact": {
440             "name": "Ryosuke Niwa",
441             "twitter": "@RyosukeNiwa",
442             "email": "rniwa@webkit.org"
443         }
444     },
445     {
446         "name": "Download Attribute",
447         "status": {
448             "status": "In Development"
449         },
450         "url": "https://html.spec.whatwg.org/multipage/semantics.html#downloading-resources",
451         "webkit-url": "https://webkit.org/b/102914",
452         "specification": "HTML5",
453         "description": "An attribute to an anchor or area element to indicate that a resource is intended to be downloaded for use later rather than immediately.",
454         "contact": {
455             "name": "Brent Fulgham",
456             "email": "bfulgham@apple.com",
457             "twitter": "@bfulgham"
458         }
459     },
460     {
461         "name": "Element.closest()",
462         "status": {
463             "status": "Done",
464             "enabled-by-default": true
465         },
466         "url": "https://dom.spec.whatwg.org/#dom-element-closest",
467         "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/API/Element/closest",
468         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=137418",
469         "specification": "DOM",
470         "description": "Find the closest ancestor matching the selector passed as argument. The element itself is returned if it matches the selector.",
471         "contact": {
472             "name": "Benjamin Poulain",
473             "twitter": "@awfulben",
474             "email": "benjamin@webkit.org"
475         }
476     },
477     {
478         "name": "Filter Effects backdrop-filter propery",
479         "status": {
480             "status": "Done",
481             "enabled-by-default": true
482         },
483         "url": "http://dev.w3.org/fxtf/filters-2/#propdef-backdrop-filter",
484         "specification": "Filter Effects Module Level 2",
485         "description": "This property specifies styling for filters applied to the backdrop of an element."
486     },
487     {
488         "name": "Force Click Events",
489         "status": {
490             "status": "Prototyping",
491             "enabled-by-default": true
492         },
493         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142836",
494         "description": "Provide the events necessary to handle force click events in the page, overriding the default behavior."
495     },
496     {
497         "name": "HTML imports",
498         "status": {
499             "status": "Not Considering"
500         },
501         "url": "http://w3c.github.io/webcomponents/spec/imports/",
502         "specification": "Web Components",
503         "description": "Includes resusable HTML documents in other HTML documents.",
504         "comment": "There are concerns about the disconnect between this specification and ES6 Modules. WebKit has no intent to support the current specification.",
505         "contact": {
506             "name": "Jon Davis",
507             "twitter": "@jonathandavis",
508             "email": "web-evangelist@apple.com"
509         }
510     },
511     {
512         "name": "Initial Letter",
513         "status": {
514             "status": "Done",
515             "enabled-by-default": true
516         },
517         "url": "http://dev.w3.org/csswg/css-inline/#propdef-initial-letter",
518         "specification": "CSS Inline Layout Module Level 3",
519         "description": "This property specifies styling for dropped, raised, and sunken initial letters."
520     },
521     {
522         "name": "Interaction Media Features (pointer, hover, any-pointer, any-hover)",
523         "status": {
524             "status": "Done",
525             "enabled-by-default": true
526         },
527         "url": "http://dev.w3.org/csswg/mediaqueries-4/#mf-interaction",
528         "specification": "CSS Media Queries Level 4",
529         "description": "The \"pointer\" media defines how percise the pointing device is. The \"hover\" media defines the ability of the poiting device to hover elements."
530     },
531     {
532         "name": "MicroData",
533         "status": {
534             "status": "Removed"
535         },
536         "url": "https://html.spec.whatwg.org/multipage/microdata.html",
537         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=119480",
538         "specification": "HTML5",
539         "comment": "WebKit used to support MicroData. The feature never gained any traction and was eventually removed to clean up the codebase."
540     },
541     {
542         "name": "Navigator.hardwareConcurrency",
543         "status": {
544             "status": "Done",
545             "enabled-by-default": true
546         },
547         "url": "https://wiki.whatwg.org/wiki/Navigator_HW_Concurrency",
548         "webkit-url": "http://trac.webkit.org/changeset/169017",
549         "description": "Navigator.hardwareConcurrency provides the total number of logical processors available to the user agent."
550     },
551     {
552         "name": "Picture element",
553         "status": {
554             "status": "In Development",
555             "enabled-by-default": false
556         },
557         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element",
558         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=116963",
559         "specification": "HTML5",
560         "description": "Enable handling the art-direction responsive images use-case by defining multiple image sources in markup",
561         "contact": {
562             "name": "Yoav Weiss",
563             "twitter": "@yoavweiss",
564             "email": "yoav@yoav.ws"
565         }
566     },
567     {
568         "name": "Position: sticky",
569         "status": {
570             "status": "Done",
571             "enabled-by-default": true
572         },
573         "url": "http://dev.w3.org/csswg/css-position/#sticky-pos",
574         "specification": "CSS Positioned Layout Module Level 3",
575         "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.",
576         "comment": "The feature is prefixed with <em>-webkit-</em>. There are some remaining issues to resolve in the specification."
577     },
578     {
579         "name": "Readable Streams",
580         "status": {
581             "status": "In Development",
582             "enabled-by-default": true
583         },
584         "url": "https://streams.spec.whatwg.org/#rs",
585         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=138967",
586         "specification": "Streams",
587         "comment": "The ReadableStream and ReadableStreamReader interfaces are available but not functional."
588     },
589     {
590         "name": "Shadow DOM",
591         "status": {
592             "status": "In Development"
593         },
594         "url": "http://w3c.github.io/webcomponents/spec/shadow/",
595         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=148695",
596         "specification": "Web Components",
597         "description": "Functional encapsulation of HTML and CSS for Web Components.",
598         "contact": {
599             "name": "Ryosuke Niwa",
600             "twitter": "@RyosukeNiwa",
601             "email": "rniwa@webkit.org"
602         }
603     },
604     {
605         "name": "Shared Web Workers",
606         "status": {
607             "status": "Removed"
608         },
609         "url": "https://html.spec.whatwg.org/multipage/workers.html#shared-workers-introduction",
610         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=140344",
611         "specification": "HTML5",
612         "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."
613     },
614     {
615         "name": "Srcset w descriptor and related sizes attribute",
616         "status": {
617             "status": "Done",
618             "enabled-by-default": true
619         },
620         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element",
621         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=133620",
622         "specification": "HTML5",
623         "description": "Enable handling the variable width responsive images use-case by defining multiple image resources in markup",
624         "contact": {
625             "name": "Yoav Weiss",
626             "twitter": "@yoavweiss",
627             "email": "yoav@yoav.ws"
628         }
629     },
630     {
631         "name": "Srcset x descriptor",
632         "status": {
633             "status": "Done",
634             "enabled-by-default": true
635         },
636         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element",
637         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=110252",
638         "specification": "HTML5",
639         "description": "Enable handling the fixed width responsive images use-case by defining multiple image resources in markup",
640         "contact": {
641             "name": "Yoav Weiss",
642             "twitter": "@yoavweiss",
643             "email": "yoav@yoav.ws"
644         }
645     },
646     {
647         "name": "Template Element",
648         "status": {
649             "status": "Done",
650             "enabled-by-default": true
651         },
652         "url": "http://www.w3.org/TR/html5/scripting-1.html#the-template-element",
653         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=124637",
654         "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template",
655         "specification": "Web Components",
656         "description": "Declares HTML fragments that can be cloned and inserted into the document by a script."
657     }
658     ]
659 }