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