Support disabling `suspendTabsUntilReady` in Firefox

The value of `suspendTabsUntilReady` was disregarded in Firefox and
uBO defaulted to always defer tab loading until it was ready.

This commit allows to disable the deferring of tab loading in
Firefox. The new valid values for `suspendTabsUntilReady` are:
- `unset`: leave it to the platform to pick the optimal
  behavior (default)
- `no`: do no suspend tab loading at launch time
- `yes`: suspend tab loading at launch time
This commit is contained in:
Raymond Hill 2019-02-19 12:30:37 -05:00
parent 928ab91ab8
commit 87feb47b51
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2
3 changed files with 16 additions and 3 deletions

View File

@ -53,7 +53,7 @@ const µBlock = (function() { // jshint ignore:line
requestJournalProcessPeriod: 1000,
selfieAfter: 11,
strictBlockingBypassDuration: 120,
suspendTabsUntilReady: false,
suspendTabsUntilReady: 'unset',
userResourcesLocation: 'unset'
};
@ -104,6 +104,11 @@ const µBlock = (function() { // jshint ignore:line
if ( out.hasOwnProperty(k) ) { out[k] = o[k]; }
}
self.log.verbosity = out.consoleLogLevel;
if ( typeof out.suspendTabsUntilReady === 'boolean' ) {
out.suspendTabsUntilReady = out.suspendTabsUntilReady
? 'yes'
: 'unset';
}
}
}
catch(ex) {

View File

@ -110,6 +110,12 @@
this.hiddenSettings[key] = hs[key];
}
}
if ( typeof this.hiddenSettings.suspendTabsUntilReady === 'boolean' ) {
this.hiddenSettings.suspendTabsUntilReady =
this.hiddenSettings.suspendTabsUntilReady
? 'yes'
: 'unset';
}
}
if ( vAPI.localStorage.getItem('immediateHiddenSettings') === null ) {
this.saveImmediateHiddenSettings();

View File

@ -1002,8 +1002,10 @@ return {
if (
vAPI.net.onBeforeReady instanceof Object &&
(
vAPI.net.onBeforeReady.experimental !== true ||
µBlock.hiddenSettings.suspendTabsUntilReady
vAPI.net.onBeforeReady.experimental !== true &&
µBlock.hiddenSettings.suspendTabsUntilReady !== 'no' ||
vAPI.net.onBeforeReady.experimental &&
µBlock.hiddenSettings.suspendTabsUntilReady === 'yes'
)
) {
vAPI.net.onBeforeReady.start();