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.
|
// Enable the readinglist engine by default.
|
||||||
pref("readinglist.scheduler.enabled", true);
|
pref("readinglist.scheduler.enabled", true);
|
||||||
pref("readinglist.server", "https://readinglist.services.mozilla.com/v1");
|
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.
|
// If this pref is disabled, we will never show a reader mode icon in the toolbar.
|
||||||
pref("reader.parse-on-load.enabled", true);
|
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
|
// Force-enables reader mode parsing, even on low-memory platforms, where it
|
||||||
// is disabled by default.
|
// is disabled by default.
|
||||||
pref("reader.parse-on-load.force-enabled", false);
|
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
|
// Don't try to parse the page if it has too many elements (for memory and
|
||||||
// performance reasons)
|
// 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() {
|
get isEnabledForParseOnLoad() {
|
||||||
delete this.isEnabledForParseOnLoad;
|
delete this.isEnabledForParseOnLoad;
|
||||||
@@ -62,6 +67,8 @@ this.ReaderMode = {
|
|||||||
case "nsPref:changed":
|
case "nsPref:changed":
|
||||||
if (aData.startsWith("reader.parse-on-load.")) {
|
if (aData.startsWith("reader.parse-on-load.")) {
|
||||||
this.isEnabledForParseOnLoad = this._getStateForParseOnLoad();
|
this.isEnabledForParseOnLoad = this._getStateForParseOnLoad();
|
||||||
|
} else if (aData === "reader.parse-node-limit") {
|
||||||
|
this.parseNodeLimit = Services.prefs.getIntPref(aData);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -256,10 +263,12 @@ this.ReaderMode = {
|
|||||||
* @resolves JS object representing the article, or null if no article is found.
|
* @resolves JS object representing the article, or null if no article is found.
|
||||||
*/
|
*/
|
||||||
_readerParse: Task.async(function* (uri, doc) {
|
_readerParse: Task.async(function* (uri, doc) {
|
||||||
let numTags = doc.getElementsByTagName("*").length;
|
if (this.parseNodeLimit) {
|
||||||
if (numTags > this.MAX_ELEMS_TO_PARSE) {
|
let numTags = doc.getElementsByTagName("*").length;
|
||||||
this.log("Aborting parse for " + uri.spec + "; " + numTags + " elements found");
|
if (numTags > this.parseNodeLimit) {
|
||||||
return null;
|
this.log("Aborting parse for " + uri.spec + "; " + numTags + " elements found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let uriParam = {
|
let uriParam = {
|
||||||
|
|||||||
Reference in New Issue
Block a user