* it feels weird for requireIdleCallback() to be optional while more

modern browser features are required
 * simplify browser startup feature check a bit
This commit is contained in:
Andrew Dolgov 2021-03-10 19:53:09 +03:00
parent 84fe383ed4
commit 143617afb1
4 changed files with 14 additions and 21 deletions

View File

@ -688,15 +688,16 @@ const App = {
checkBrowserFeatures: function() {
let errorMsg = "";
['MutationObserver'].forEach(function(wf) {
if (!(wf in window)) {
errorMsg = `Browser feature check failed: <code>window.${wf}</code> not found.`;
['MutationObserver', 'requestIdleCallback'].forEach((t) => {
if (!(t in window)) {
errorMsg = `Browser check failed: <code>window.${t}</code> not found.`;
throw new Error(errorMsg);
}
});
if (errorMsg) {
this.Error.fatal(errorMsg, {info: navigator.userAgent});
if (typeof Promise.allSettled == "undefined") {
errorMsg = `Browser check failed: <code>Promise.allSettled</code> is not defined.`;
throw new Error(errorMsg);
}
return errorMsg == "";

View File

@ -311,12 +311,9 @@ const Feeds = {
setActive: function(id, is_cat) {
console.log('setActive', id, is_cat);
if ('requestIdleCallback' in window)
window.requestIdleCallback(() => {
App.Hash.set({f: id, c: is_cat ? 1 : 0});
});
else
window.requestIdleCallback(() => {
App.Hash.set({f: id, c: is_cat ? 1 : 0});
});
this._active_feed_id = id;
this._active_feed_is_cat = is_cat;

View File

@ -76,12 +76,9 @@ const Headlines = {
Headlines.updateSelectedPrompt();
if ('requestIdleCallback' in window)
window.requestIdleCallback(() => {
Headlines.syncModified(modified);
});
else
window.requestIdleCallback(() => {
Headlines.syncModified(modified);
});
}),
syncModified: function (modified) {
const ops = {
@ -175,7 +172,7 @@ const Headlines = {
});
}
Promise.all(promises).then((results) => {
Promise.allSettled(promises).then((results) => {
let feeds = [];
let labels = [];

View File

@ -510,12 +510,10 @@ const Helpers = {
search: function() {
this.search_query = this.attr('value').search.toLowerCase();
if ('requestIdleCallback' in window)
window.requestIdleCallback(() => {
this.render_contents();
});
else
window.requestIdleCallback(() => {
this.render_contents();
});
},
render_contents: function() {
const container = dialog.domNode.querySelector(".contents");