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