Browse Source

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

modern browser features are required
 * simplify browser startup feature check a bit
master
Andrew Dolgov 1 year ago
parent
commit
143617afb1
  1. 11
      js/App.js
  2. 7
      js/Feeds.js
  3. 9
      js/Headlines.js
  4. 8
      js/PrefHelpers.js

11
js/App.js

@ -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 == "";

7
js/Feeds.js

@ -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;

9
js/Headlines.js

@ -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 = [];

8
js/PrefHelpers.js

@ -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");

Loading…
Cancel
Save