Skip to content

Commit

Permalink
Rollup merge of rust-lang#81964 - lovasoa:patch-1, r=GuillaumeGomez
Browse files Browse the repository at this point in the history
Fix documentation not showing on localStorage error

Fixes rust-lang#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()
  • Loading branch information
JohnTitor committed Feb 11, 2021
2 parents a06ccef + 16f0ccd commit 2b19246
Showing 1 changed file with 8 additions and 23 deletions.
31 changes: 8 additions & 23 deletions src/librustdoc/html/static/storage.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 2b19246

Please sign in to comment.