Bug 1152219 - make reader mode node limit a pref, turn off entirely for desktop because of isProbablyReaderable, r=margaret
This commit is contained in:
@@ -1887,3 +1887,6 @@ pref("browser.readinglist.sidebarEverOpened", false);
|
||||
// Enable the readinglist engine by default.
|
||||
pref("readinglist.scheduler.enabled", true);
|
||||
pref("readinglist.server", "https://readinglist.services.mozilla.com/v1");
|
||||
|
||||
// Don't limit how many nodes we care about on desktop:
|
||||
pref("reader.parse-node-limit", 0);
|
||||
|
||||
@@ -4672,6 +4672,10 @@ pref("media.gmp-manager.certs.2.commonName", "aus4.mozilla.org");
|
||||
// If this pref is disabled, we will never show a reader mode icon in the toolbar.
|
||||
pref("reader.parse-on-load.enabled", true);
|
||||
|
||||
// After what size document we don't bother running Readability on it
|
||||
// because it'd slow things down too much
|
||||
pref("reader.parse-node-limit", 3000);
|
||||
|
||||
// Force-enables reader mode parsing, even on low-memory platforms, where it
|
||||
// is disabled by default.
|
||||
pref("reader.parse-on-load.force-enabled", false);
|
||||
|
||||
@@ -32,7 +32,12 @@ this.ReaderMode = {
|
||||
|
||||
// Don't try to parse the page if it has too many elements (for memory and
|
||||
// performance reasons)
|
||||
MAX_ELEMS_TO_PARSE: 3000,
|
||||
get maxElemsToParse() {
|
||||
delete this.parseNodeLimit;
|
||||
|
||||
Services.prefs.addObserver("reader.parse-node-limit", this, false);
|
||||
return this.parseNodeLimit = Services.prefs.getIntPref("reader.parse-node-limit");
|
||||
},
|
||||
|
||||
get isEnabledForParseOnLoad() {
|
||||
delete this.isEnabledForParseOnLoad;
|
||||
@@ -62,6 +67,8 @@ this.ReaderMode = {
|
||||
case "nsPref:changed":
|
||||
if (aData.startsWith("reader.parse-on-load.")) {
|
||||
this.isEnabledForParseOnLoad = this._getStateForParseOnLoad();
|
||||
} else if (aData === "reader.parse-node-limit") {
|
||||
this.parseNodeLimit = Services.prefs.getIntPref(aData);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -256,10 +263,12 @@ this.ReaderMode = {
|
||||
* @resolves JS object representing the article, or null if no article is found.
|
||||
*/
|
||||
_readerParse: Task.async(function* (uri, doc) {
|
||||
let numTags = doc.getElementsByTagName("*").length;
|
||||
if (numTags > this.MAX_ELEMS_TO_PARSE) {
|
||||
this.log("Aborting parse for " + uri.spec + "; " + numTags + " elements found");
|
||||
return null;
|
||||
if (this.parseNodeLimit) {
|
||||
let numTags = doc.getElementsByTagName("*").length;
|
||||
if (numTags > this.parseNodeLimit) {
|
||||
this.log("Aborting parse for " + uri.spec + "; " + numTags + " elements found");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
let uriParam = {
|
||||
|
||||
Reference in New Issue
Block a user