From 4740ce685f3bb38bc1d12b14ec0db8d52d8790c5 Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Thu, 4 May 2023 10:33:13 -0400 Subject: [PATCH] Redefine browser requirements for legacy (ES5) builds (#16384) --- .browserslistrc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.browserslistrc b/.browserslistrc index 88ed1c7316..86481f8e08 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -14,8 +14,20 @@ not iOS < 13 not dead [legacy] -# Legacy builds are transpiled to ES5 (strict mode) but also must support some features that cannot be polyfilled: +# Legacy builds are served when modern requirements are not met and support browsers: +# - released in the last 7 years + current alpha/beta versionss +# - with global utilization above 0.05% +# The lattermost query ensures that support for popular old browsers is not dropped too early +# (e.g. IE 11, Android 4.4, or Samsung 4). +# +# In addition, legacy browsers must support some minimum features that cannot be polyfilled: +# - ES5 (strict mode) # - web sockets to communicate with backend # - inline SVG used widely in buttons, widgets, etc. # - custom events used for most user interactions -supports use-strict and supports websockets and supports svg-html5 and supports customevent +# - CSS flexbox used in the majority of the layout +# Nearly all of these are redundant with the above rules. +# As of May 2023, only web sockets must be added to the query. +unreleased versions +last 7 years +> 0.05% and supports websockets