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