From 01c2b6d10545f74bf88dd2fdbfb6f0c49a2cb9a9 Mon Sep 17 00:00:00 2001 From: Fredrik Nicol Date: Fri, 27 Apr 2018 15:45:13 +0200 Subject: [PATCH] Complete flexbox support for Chrome (#1945) * Complete flexbox support for Chrome * Add version for full Chrome implementation of flexbox * Follow Chrome version for flexbox in Webview * Revert Flex type * Remove partial implementation from `order` --- css/properties/align-content.json | 26 ++++++++++---- css/properties/align-items.json | 54 +++++++++++++++++++++++------ css/properties/align-self.json | 41 ++++++++++++++++++---- css/properties/flex-basis.json | 33 +++++++++++++++--- css/properties/flex-direction.json | 33 +++++++++++++++--- css/properties/flex-flow.json | 18 ++++++++++ css/properties/flex-grow.json | 33 +++++++++++++++--- css/properties/flex-shrink.json | 33 +++++++++++++++--- css/properties/flex-wrap.json | 35 +++++++++++++++---- css/properties/flex.json | 22 +++++++----- css/properties/justify-content.json | 43 ++++++++++++++++++----- css/properties/order.json | 26 ++++++++++---- 12 files changed, 321 insertions(+), 76 deletions(-) diff --git a/css/properties/align-content.json b/css/properties/align-content.json index 4858f77e7916aa..b16c96934eb391 100644 --- a/css/properties/align-content.json +++ b/css/properties/align-content.json @@ -5,9 +5,6 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/align-content", "support": { - "webview_android": { - "version_added": "4.4" - }, "chrome": [ { "version_added": "29" @@ -17,9 +14,15 @@ "version_added": "21" } ], - "chrome_android": { - "version_added": true - }, + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": [ { "version_added": "12" @@ -107,7 +110,16 @@ ], "samsunginternet_android": { "version_added": true - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/align-items.json b/css/properties/align-items.json index 6d8b8e2cff564e..049441acd54b55 100644 --- a/css/properties/align-items.json +++ b/css/properties/align-items.json @@ -5,16 +5,34 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/align-items", "support": { - "webview_android": { - "version_added": "4.4" - }, - "chrome": { - "version_added": "21", - "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." - }, - "chrome_android": { - "version_added": null - }, + "chrome": [ + { + "version_added": "52" + }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "52" + }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": [ { "version_added": "12" @@ -117,7 +135,21 @@ }, "samsunginternet_android": { "version_added": null - } + }, + "webview_android": [ + { + "version_added": "52" + }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/align-self.json b/css/properties/align-self.json index a57c70294693ab..b90b3ed6644bad 100644 --- a/css/properties/align-self.json +++ b/css/properties/align-self.json @@ -5,21 +5,34 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/align-self", "support": { - "webview_android": { - "version_added": null - }, "chrome": [ { "version_added": "36" }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "36" + }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, { "prefix": "-webkit-", "version_added": "21" } ], - "chrome_android": { - "version_added": null - }, "edge": { "version_added": "12" }, @@ -84,7 +97,21 @@ }, "samsunginternet_android": { "version_added": null - } + }, + "webview_android": [ + { + "version_added": "36" + }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/flex-basis.json b/css/properties/flex-basis.json index 7abd1457806bc2..bc131b9f6aeb50 100644 --- a/css/properties/flex-basis.json +++ b/css/properties/flex-basis.json @@ -5,10 +5,24 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/flex-basis", "support": { - "chrome": { - "prefix": "-webkit-", - "version_added": "21" - }, + "chrome": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": [ { "version_added": "12" @@ -124,7 +138,16 @@ ], "safari_ios": { "version_added": "9.2" - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/flex-direction.json b/css/properties/flex-direction.json index fdb79bbe21eab8..c168aea0ffb837 100644 --- a/css/properties/flex-direction.json +++ b/css/properties/flex-direction.json @@ -5,10 +5,24 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/flex-direction", "support": { - "chrome": { - "prefix": "-webkit-", - "version_added": "21" - }, + "chrome": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": [ { "version_added": "12" @@ -97,7 +111,16 @@ ], "safari_ios": { "version_added": null - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/flex-flow.json b/css/properties/flex-flow.json index 5f0e0a5a878df6..8372e8c44686f8 100644 --- a/css/properties/flex-flow.json +++ b/css/properties/flex-flow.json @@ -14,6 +14,15 @@ "version_added": "21" } ], + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": { "version_added": "12" }, @@ -98,6 +107,15 @@ "prefix": "-webkit-", "version_added": "7.1" } + ], + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } ] }, "status": { diff --git a/css/properties/flex-grow.json b/css/properties/flex-grow.json index e533dcb8bf3cdb..18f1f2327660c5 100644 --- a/css/properties/flex-grow.json +++ b/css/properties/flex-grow.json @@ -5,10 +5,24 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/flex-grow", "support": { - "chrome": { - "prefix": "-webkit-", - "version_added": "21" - }, + "chrome": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": [ { "version_added": "12" @@ -89,7 +103,16 @@ }, "safari_ios": { "version_added": null - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/flex-shrink.json b/css/properties/flex-shrink.json index dbaabdc8983a3b..c082050a2ebb48 100644 --- a/css/properties/flex-shrink.json +++ b/css/properties/flex-shrink.json @@ -5,10 +5,24 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/flex-shrink", "support": { - "chrome": { - "prefix": "-webkit-", - "version_added": "21" - }, + "chrome": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": [ { "version_added": "12" @@ -125,7 +139,16 @@ }, "safari_ios": { "version_added": null - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/flex-wrap.json b/css/properties/flex-wrap.json index 6cfd141842261e..6d20cad55e5d8b 100644 --- a/css/properties/flex-wrap.json +++ b/css/properties/flex-wrap.json @@ -5,12 +5,24 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/flex-wrap", "support": { - "webview_android": { - "version_added": "4.4" - }, - "chrome": { - "version_added": "29" - }, + "chrome": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": { "version_added": "12" }, @@ -39,7 +51,16 @@ }, "safari_ios": { "version_added": "9.2" - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/flex.json b/css/properties/flex.json index 7d2c4594a7dbfa..5e0333da3b880d 100644 --- a/css/properties/flex.json +++ b/css/properties/flex.json @@ -5,16 +5,16 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/flex", "support": { - "webview_android": [ + "chrome": [ { - "version_added": "4.4" + "version_added": "29" }, { "prefix": "-webkit-", - "version_added": true + "version_added": "21" } ], - "chrome": [ + "chrome_android": [ { "version_added": "29" }, @@ -23,9 +23,6 @@ "version_added": "21" } ], - "chrome_android": { - "version_added": null - }, "edge": [ { "version_added": "12" @@ -122,7 +119,16 @@ ], "samsunginternet_android": { "version_added": null - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/justify-content.json b/css/properties/justify-content.json index 2171d77425ccd6..2c8333dba26840 100644 --- a/css/properties/justify-content.json +++ b/css/properties/justify-content.json @@ -5,23 +5,34 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/justify-content", "support": { - "webview_android": { - "version_added": true, - "notes": "Older versions of the specification treat absolutely positioned children as though they are 0 by 0 flex items. Later versions of the specification take them out of the flow and set their positions based on align and justify properties. Versions 52 and later implement the new behavior." - }, "chrome": [ + { + "version_added": "52" + }, { "version_added": "29", - "notes": "Older versions of the specification treat absolutely positioned children as though they are 0 by 0 flex items. Later versions of the specification take them out of the flow and set their positions based on align and justify properties. Versions 52 and later implement the new behavior." + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], + "chrome_android": [ + { + "version_added": "52" + }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." }, { "prefix": "-webkit-", "version_added": "21" } ], - "chrome_android": { - "version_added": true - }, "edge": [ { "version_added": "12" @@ -92,7 +103,21 @@ }, "samsunginternet_android": { "version_added": true - } + }, + "webview_android": [ + { + "version_added": "52" + }, + { + "version_added": "29", + "partial_implementation": true, + "notes": "Older versions of the specification treat absolute positioned children as though they are a 0 by 0 flex item. Later specification versions take the children out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52." + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false, diff --git a/css/properties/order.json b/css/properties/order.json index 0af3a7e8ebb913..7e3ea1835c3952 100644 --- a/css/properties/order.json +++ b/css/properties/order.json @@ -5,9 +5,6 @@ "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/CSS/order", "support": { - "webview_android": { - "version_added": null - }, "chrome": [ { "version_added": "29" @@ -17,9 +14,15 @@ "version_added": "21" } ], - "chrome_android": { - "version_added": null - }, + "chrome_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ], "edge": [ { "version_added": "12" @@ -137,7 +140,16 @@ ], "samsunginternet_android": { "version_added": null - } + }, + "webview_android": [ + { + "version_added": "29" + }, + { + "prefix": "-webkit-", + "version_added": "21" + } + ] }, "status": { "experimental": false,