Improve the feature.json files
[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 Media Queries Level 4",
20         "url": "http://dev.w3.org/csswg/mediaqueries-4/",
21         "keywords": ["css media queries", "media queries"],
22         "category": "css"
23     },
24     {
25         "name": "CSS Positioned Layout Module Level 3",
26         "url": "http://dev.w3.org/csswg/css-position/",
27         "keywords": ["css positioning"],
28         "category": "css"
29     },
30     {
31         "name": "CSS Selectors Level 4",
32         "url": "http://dev.w3.org/csswg/selectors-4/",
33         "keywords": ["css selectors", "selectors"],
34         "category": "css",
35         "contact": {
36             "name": "Benjamin Poulain",
37             "twitter": "@awfulben",
38             "email": "benjamin@webkit.org"
39         }
40     },
41     {
42         "name": "CSS Shapes Level 1",
43         "url": "http://www.w3.org/TR/css-shapes-1/",
44         "keywords": ["css shapes", "shapes"],
45         "category": "css"
46     },
47     {
48         "name": "DOM",
49         "url": "https://dom.spec.whatwg.org",
50         "keywords": ["dom", "dom4"],
51         "category": "html"
52     },
53     {
54         "name": "HTML5",
55         "url": "https://html.spec.whatwg.org",
56         "keywords": ["html", "html5", "html5.1"],
57         "category": "html"
58     },
59     {
60         "name": "Streams",
61         "url": "https://streams.spec.whatwg.org",
62         "keywords": ["streams api"],
63         "category": "webapps"
64     }
65     ],
66
67     "features": [
68     {
69         "name": "CSS Selector :any-link",
70         "status": {
71             "status": "Done",
72             "enabled-by-default": true
73         },
74         "url": "http://dev.w3.org/csswg/selectors-4/#the-any-link-pseudo",
75         "specification": "CSS Selectors Level 4",
76         "description": "The pseudo class :any-link matches any element that would match :link or :visisted.",
77         "comment": "A prefix version :-webkit-any-link has been available for a while but it was not 100% compliant to the specification.",
78         "contact": {
79             "name": "Benjamin Poulain",
80             "twitter": "@awfulben",
81             "email": "benjamin@webkit.org"
82         }
83     },
84     {
85         "name": "CSS Selector :lang() level 4",
86         "status": {
87             "status": "Done",
88             "enabled-by-default": true
89         },
90         "url": "http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo",
91         "specification": "CSS Selectors Level 4",
92         "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\")."
93     },
94     {
95         "name": "CSS Selector :matches()",
96         "status": {
97             "status": "Done",
98             "enabled-by-default": true
99         },
100         "url": "http://dev.w3.org/csswg/selectors-4/#matches",
101         "specification": "CSS Selectors Level 4",
102         "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.",
103         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :matches().",
104         "contact": {
105             "name": "Benjamin Poulain",
106             "twitter": "@awfulben",
107             "email": "benjamin@webkit.org"
108         }
109     },
110     {
111         "name": "CSS Selector :not() level 4",
112         "status": {
113             "status": "Done",
114             "enabled-by-default": true
115         },
116         "url": "http://dev.w3.org/csswg/selectors-4/#negation",
117         "specification": "CSS Selectors Level 4",
118         "description": "The selector :not() in level 4 supports full selector lists as argument. For example: :not(:any-link >> img, :any-link >> picture).",
119         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :not().",
120         "contact": {
121             "name": "Benjamin Poulain",
122             "twitter": "@awfulben",
123             "email": "benjamin@webkit.org"
124         }
125     },
126     {
127         "name": "CSS Selector :nth-child(An+B of selector list) and :nth-last-child(An+B of selector list)",
128         "status": {
129             "status": "Done",
130             "enabled-by-default": true
131         },
132         "url": "http://dev.w3.org/csswg/selectors-4/#the-nth-child-pseudo",
133         "specification": "CSS Selectors Level 4",
134         "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)\".",
135         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :nth-child() and :nth-last-child().",
136         "contact": {
137             "name": "Benjamin Poulain",
138             "twitter": "@awfulben",
139             "email": "benjamin@webkit.org"
140         }
141     },
142     {
143         "name": "CSS Selector :placeholder-shown",
144         "status": {
145             "status": "Done",
146             "enabled-by-default": true
147         },
148         "url": "http://dev.w3.org/csswg/selectors-4/#placeholder",
149         "specification": "CSS Selectors Level 4",
150         "description": "The selector :placeholder-shown matches any input element that has a visible placeholder.",
151         "comment": "Styling the placeholder can be done through the WebKit pseudo-element \"::-webkit-input-placeholder\".",
152         "contact": {
153             "name": "Benjamin Poulain",
154             "twitter": "@awfulben",
155             "email": "benjamin@webkit.org"
156         }
157     },
158     {
159         "name": "Case-insensitive attribute selectors",
160         "status": {
161             "status": "Done",
162             "enabled-by-default": true
163         },
164         "url": "http://dev.w3.org/csswg/selectors-4/#attribute-case",
165         "specification": "CSS Selectors Level 4",
166         "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.",
167         "contact": {
168             "name": "Benjamin Poulain",
169             "twitter": "@awfulben",
170             "email": "benjamin@webkit.org"
171         }
172     },
173     {
174         "name": "Element.closest()",
175         "status": {
176             "status": "Done",
177             "enabled-by-default": true
178         },
179         "url": "https://dom.spec.whatwg.org/#dom-element-closest",
180         "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/API/Element/closest",
181         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=137418",
182         "specification": "DOM",
183         "description": "Find the closest ancestor matching the selector passed as argument. The element itself is returned if it matches the selector.",
184         "contact": {
185             "name": "Benjamin Poulain",
186             "twitter": "@awfulben",
187             "email": "benjamin@webkit.org"
188         }
189     },
190     {
191         "name": "Force Click Events",
192         "status": {
193             "status": "Prototyping",
194             "enabled-by-default": true
195         },
196         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142836",
197         "description": "Provide the events necessary to handle force click events in the page, overriding the default behavior."
198     },
199     {
200         "name": "Interaction Media Features (pointer, hover, any-pointer, any-hover)",
201         "status": {
202             "status": "Done",
203             "enabled-by-default": true
204         },
205         "url": "http://dev.w3.org/csswg/mediaqueries-4/#mf-interaction",
206         "specification": "CSS Media Queries Level 4",
207         "description": "The \"pointer\" media defines how percise the pointing device is. The \"hover\" media defines the ability of the poiting device to hover elements."
208     },
209     {
210         "name": "MicroData",
211         "status": {
212             "status": "Removed"
213         },
214         "url": "https://html.spec.whatwg.org/multipage/microdata.html",
215         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=119480",
216         "specification": "HTML5",
217         "comment": "WebKit used to support MicroData. The feature never gained any traction and was eventually removed to clean up the codebase."
218     },
219     {
220         "name": "Navigator.hardwareConcurrency",
221         "status": {
222             "status": "Done",
223             "enabled-by-default": true
224         },
225         "url": "https://wiki.whatwg.org/wiki/Navigator_HW_Concurrency",
226         "webkit-url": "http://trac.webkit.org/changeset/169017",
227         "description": "Navigator.hardwareConcurrency provides the total number of logical processors available to the user agent."
228     },
229     {
230         "name": "Position: sticky",
231         "status": {
232             "status": "Done",
233             "enabled-by-default": true
234         },
235         "url": "http://dev.w3.org/csswg/css-position/#sticky-pos",
236         "specification": "CSS Positioned Layout Module Level 3",
237         "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.",
238         "comment": "The feature is prefixed with <em>-webkit-</em>. There are some remaining issues to resolve in the specification."
239     },
240     {
241         "name": "Readable Streams",
242         "status": {
243             "status": "In Development",
244             "enabled-by-default": true
245         },
246         "url": "https://streams.spec.whatwg.org/#rs",
247         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=138967",
248         "specification": "Streams",
249         "comment": "The ReadableStream and ReadableStreamReader interfaces are available but not functional."
250     },
251     {
252         "name": "Shape outside for floats",
253         "status": {
254             "status": "In Development",
255             "enabled-by-default": true
256         },
257         "url": "http://www.w3.org/TR/css-shapes-1/",
258         "specification": "CSS Shapes Level 1",
259         "description": "CSS Shapes describe geometric shapes for use in CSS. For Level 1, CSS Shapes can be applied to floats.",
260         "comment": "The implementation is feature complete and shipping, but is -webkit prefixed."
261     },
262     {
263         "name": "Shared Web Workers",
264         "status": {
265             "status": "Removed"
266         },
267         "url": "https://html.spec.whatwg.org/multipage/workers.html#shared-workers-introduction",
268         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=140344",
269         "specification": "HTML5",
270         "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."
271     }
272     ]
273 }