Rollup merge of #81964 - lovasoa:patch-1, r=GuillaumeGomez

Fix documentation not showing on localStorage error

Fixes https://github.com/rust-lang/rust/issues/81928

The [documentation for setItem](https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem) specifies:

> developers should make sure to always catch possible exceptions from setItem()
This commit is contained in:
Yuki Okushi 2021-02-12 19:32:13 +09:00 committed by GitHub
commit 0f47e192bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -89,35 +89,20 @@ function hasOwnProperty(obj, property) {
return Object.prototype.hasOwnProperty.call(obj, property);
}
function usableLocalStorage() {
// Check if the browser supports localStorage at all:
if (typeof Storage === "undefined") {
return false;
}
// Check if we can access it; this access will fail if the browser
// preferences deny access to localStorage, e.g., to prevent storage of
// "cookies" (or cookie-likes, as is the case here).
try {
return window.localStorage !== null && window.localStorage !== undefined;
} catch(err) {
// Storage is supported, but browser preferences deny access to it.
return false;
}
}
function updateLocalStorage(name, value) {
if (usableLocalStorage()) {
localStorage[name] = value;
} else {
// No Web Storage support so we do nothing
try {
window.localStorage.setItem(name, value);
} catch(e) {
// localStorage is not accessible, do nothing
}
}
function getCurrentValue(name) {
if (usableLocalStorage() && localStorage[name] !== undefined) {
return localStorage[name];
try {
return window.localStorage.getItem(name);
} catch(e) {
return null;
}
return null;
}
function switchTheme(styleElem, mainStyleElem, newTheme, saveTheme) {