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