Skip to content

Commit 58934a8

Browse files
Clarify downstream browser support on gh-pages site (#3245)
* First pass draft at adding a statement on downstream browsers * Remove double spaces after full stops * Escape asterisks * Explain Baseline years, add link to supported browsers * Rewording gh-pages index and supported-browsers pages * code cleanup * Formatting fixes * Removes explanation of Baseline years as requested by @captainbrosset * Adds Facebook and Instagram apps to supported-browsers.html * Run prettier for formatting * Add link to KaiOS developer docs * Show the browser ID if pretty name is not available --------- Co-authored-by: Patrick Brosset <[email protected]>
1 parent 2f7b0e9 commit 58934a8

File tree

2 files changed

+47
-27
lines changed

2 files changed

+47
-27
lines changed

gh-pages/src/index.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@ Baseline is calculated using the following core browser set:
2121
- Microsoft Edge (desktop)
2222
- Mozilla Firefox (desktop and Android)
2323

24+
## What about other browsers?
25+
26+
Many browsers outside the core browser set typically support the same Baseline feature set as a browser in the core browser set.
27+
28+
For example, many browsers on Android, Windows, and macOS are built on Chromium, the open source engine underpinning Chrome and Edge. On iOS, all browsers use the same engine, WebKit, that underpins that device's Safari browser.
29+
30+
For a wider range of browsers, see [supported browsers](/supported-browsers/) to find out which minimum browser versions support different Baseline feature sets, including Newly and Widely available and Baseline years.
31+
32+
The [`baseline-browser-mapping`](https://github.com/web-platform-dx/baseline-browser-mapping) module tracks these mappings to derive the feature set for browsers outside the core browser set.
33+
2434
## How do I find the Baseline status of a feature?
2535

2636
You can find at-a-glance Baseline statuses on [Can I Use](https://caniuse.com/) feature entries, and [MDN Web Docs](https://developer.mozilla.org/) reference pages. See [Baseline in the wild](/baseline-in-the-wild/) for more examples.

gh-pages/src/supported-browsers.html

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
---
55

66
<style>
7-
#downstreamContainer,
87
#widelyAvailableOnDateLabel {
98
display: none;
109
}
@@ -107,7 +106,11 @@
107106
qq_android: "QQ Browser Mobile",
108107
uc_android: "UC Browser Mobile",
109108
ya_android: "Yandex Browser Mobile",
109+
kai_os: "KaiOS",
110+
facebook_android: "Facebook for Android",
111+
instagram_android: "Instagram for Android",
110112
};
113+
const calloutDownstreamBrowsers = ["kai_os", "webview_android"];
111114
const datePicker = document.getElementById("widelyAvailableOnDatePicker");
112115
const targetSelect = document.getElementById("targetSelect");
113116
const nextYear = new Date().getFullYear() + 1;
@@ -138,16 +141,18 @@
138141
`<tr>
139142
<th>Browser</th>
140143
<th>Version</th>
141-
<th>Chromium version</th>
144+
<th>Engine</th>
145+
<th>Version</th>
142146
<th>Release date</th>
143147
</tr>` +
144148
versions
145149
.slice(7)
146150
.map((version) => {
147151
return (
148152
`<tr view-transition-name="view-transition-${version.browser}">` +
149-
`<td>${nameMappings[version.browser]}</td>
153+
`<td>${nameMappings[version.browser] ? nameMappings[version.browser] : version.browser}${calloutDownstreamBrowsers.indexOf(version.browser) != -1 ? "*" : ""}</td>
150154
<td>${version.version}</td>
155+
<td>${version.engine}</td>
151156
<td>${version.engine_version}</td>
152157
<td>${version.release_date}</td>` +
153158
`</tr>`
@@ -162,6 +167,7 @@
162167
const versions = getCompatibleVersions({
163168
...config,
164169
includeDownstreamBrowsers: true,
170+
includeKaiOS: true,
165171
});
166172

167173
if (!document.startViewTransition) {
@@ -218,16 +224,6 @@
218224
setInputValue(datePicker, new Date().toISOString().slice(0, 10));
219225
datePicker.setAttribute("max", maxWaDate.toISOString().slice(0, 10));
220226

221-
// Set downstream browser display
222-
// NB: downstream browsers are always requested from baseline-browser-mapping
223-
const includeDownstreamFromUrl =
224-
urlParams.get("includeDownstream") === "true" ? true : false;
225-
showHideElements("downstreamContainer", includeDownstreamFromUrl);
226-
setInputValue(
227-
document.getElementById("downstreamBrowsersCheckbox"),
228-
includeDownstreamFromUrl,
229-
);
230-
231227
// Look for target year in URL
232228
if (urlParams.get("targetYear")) {
233229
configObject.targetYear = parseInt(urlParams.get("targetYear"));
@@ -259,15 +255,6 @@
259255
};
260256

261257
// Event handlers for inputs
262-
document
263-
.getElementById("downstreamBrowsersCheckbox")
264-
.addEventListener("change", (e) => {
265-
updateUrl(urlParams, {
266-
set: { includeDownstream: e.target.checked },
267-
});
268-
showHideElements("downstreamContainer", e.target.checked);
269-
return;
270-
});
271258

272259
document.getElementById("targetSelect").addEventListener("change", (e) => {
273260
e.preventDefault();
@@ -335,11 +322,6 @@
335322
<label id="widelyAvailableOnDateLabel">
336323
<input id="widelyAvailableOnDatePicker" min="2018-01-29" type="date" />
337324
</label>
338-
339-
<label id="showDownstreamLabel">
340-
<input id="downstreamBrowsersCheckbox" type="checkbox" />
341-
Show downstream browsers
342-
</label>
343325
</div>
344326

345327
<div id="loadingContainer"></div>
@@ -363,4 +345,32 @@ <h2>Downstream browsers</h2>
363345
>.
364346
</p>
365347
<table id="downstreamVersionsList"></table>
348+
<p>
349+
<strong>* NOTE:</strong> Android WebView supports the majority of Baseline
350+
features. However, there are exceptions that you should take into account if
351+
you rely heavily on webviews. For details on which APIs are unsupported in
352+
Android and iOS webviews, see
353+
<a href="https://caniwebview.com">caniwebview.com</a>.
354+
</p>
355+
<p>
356+
<strong>* NOTE:</strong> KaiOS is a feature phone operating system used for
357+
flip phones which uses the Gecko engine from Firefox. It is possible to
358+
derive feature support in KaiOS based on Gecko feature support, but please
359+
be aware that KaiOS has a significantly different set of UI limitations and
360+
interaction model compared to the other browsers on this page. For more
361+
information, see the
362+
<a href="https://developer.kaiostech.com/">KaiOS developer documentation</a
363+
>.
364+
</p>
365+
<p>
366+
Other browsers built on Chromium/Blink, Gecko, and WebKit also support
367+
Baseline features. If you work on a browser and can provide data connecting
368+
your versions back to their upstream engine for
369+
<code>baseline-browser-mapping</code>, please
370+
<a
371+
href="https://github.com/web-platform-dx/baseline-browser-mapping/issues"
372+
target="_blank"
373+
>create an issue</a
374+
>.
375+
</p>
366376
</div>

0 commit comments

Comments
 (0)