Bug 1320900 - Do not show Reader View icon on error pages. r?sebastian draft
authorNevin Chen <cnevinchen@gmail.com>
Fri, 30 Dec 2016 11:11:09 +0800
changeset 463218 2c979e6b8c031a47b0770352049243957227d53c
parent 463197 b3774461acc6bee2216c5f57e167f9e5795fb09d
child 542606 2837af1d68cbfcbc0f6f989dfadfa115192a703e
push id41988
push userbmo:cnevinchen@gmail.com
push dateWed, 18 Jan 2017 17:50:31 +0000
reviewerssebastian
bugs1320900
milestone53.0a1
Bug 1320900 - Do not show Reader View icon on error pages. r?sebastian MozReview-Commit-ID: GrQqKqccicf
mobile/android/chrome/content/content.js
--- a/mobile/android/chrome/content/content.js
+++ b/mobile/android/chrome/content/content.js
@@ -51,16 +51,22 @@ var AboutReaderListener = {
         break;
     }
   },
 
   get isAboutReader() {
     return content.document.documentURI.startsWith("about:reader");
   },
 
+  get isErrorPage() {
+    return content.document.documentURI.startsWith("about:neterror") ||
+        content.document.documentURI.startsWith("about:certerror") ||
+        content.document.documentURI.startsWith("about:blocked");
+  },
+
   handleEvent: function(aEvent) {
     if (aEvent.originalTarget.defaultView != content) {
       return;
     }
 
     switch (aEvent.type) {
       case "AboutReaderContentLoaded":
         if (!this.isAboutReader) {
@@ -95,23 +101,26 @@ var AboutReaderListener = {
         }
         break;
       case "DOMContentLoaded":
         this.updateReaderButton();
         break;
     }
   },
   updateReaderButton: function(forceNonArticle) {
-    if (!ReaderMode.isEnabledForParseOnLoad || this.isAboutReader ||
+    // Do not show Reader View icon on error pages (bug 1320900)
+    if (this.isErrorPage) {
+        sendAsyncMessage("Reader:UpdateReaderButton", { isArticle: false });
+    } else if (!ReaderMode.isEnabledForParseOnLoad || this.isAboutReader ||
         !(content.document instanceof content.HTMLDocument) ||
         content.document.mozSyntheticDocument) {
       return;
+    } else {
+        this.scheduleReadabilityCheckPostPaint(forceNonArticle);
     }
-
-    this.scheduleReadabilityCheckPostPaint(forceNonArticle);
   },
 
   cancelPotentialPendingReadabilityCheck: function() {
     if (this._pendingReadabilityCheck) {
       removeEventListener("MozAfterPaint", this._pendingReadabilityCheck);
       delete this._pendingReadabilityCheck;
     }
   },