From 07446898dad05f3f0f6749df91e69157549d6295 Mon Sep 17 00:00:00 2001 From: Mark Banner Date: Thu, 23 Mar 2023 12:11:43 +0000 Subject: [PATCH] Bug 1823763 - Convert toolkit/components/reader to ES modules. r=Gijs Differential Revision: https://phabricator.services.mozilla.com/D173183 --- .eslintignore | 2 +- .../test/performance/browser_startup_content.js | 2 +- .../sessionstore/ContentSessionStore.sys.mjs | 2 +- .../{AboutReader.jsm => AboutReader.sys.mjs} | 15 +++------------ .../reader/{ReaderMode.jsm => ReaderMode.sys.mjs} | 9 ++------- .../{ReaderWorker.jsm => ReaderWorker.sys.mjs} | 6 +----- toolkit/components/reader/Readerable.js | 12 ++++++------ .../reader/{Readerable.jsm => Readerable.sys.mjs} | 5 ++--- toolkit/components/reader/moz.build | 8 ++++---- toolkit/themes/shared/aboutReader.css | 2 +- 10 files changed, 22 insertions(+), 41 deletions(-) rename toolkit/components/reader/{AboutReader.jsm => AboutReader.sys.mjs} (99%) rename toolkit/components/reader/{ReaderMode.jsm => ReaderMode.sys.mjs} (98%) rename toolkit/components/reader/{ReaderWorker.jsm => ReaderWorker.sys.mjs} (81%) rename toolkit/components/reader/{Readerable.jsm => Readerable.sys.mjs} (85%) diff --git a/.eslintignore b/.eslintignore index 9fa022ae27c1..169e70916ef7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -216,7 +216,7 @@ toolkit/components/reader/Readability-readerable.js toolkit/components/reader/JSDOMParser.js # Uses preprocessing -toolkit/components/reader/Readerable.jsm +toolkit/components/reader/Readerable.sys.mjs # Generated & special files in cld2 toolkit/components/translation/cld2/ diff --git a/browser/base/content/test/performance/browser_startup_content.js b/browser/base/content/test/performance/browser_startup_content.js index ca25789c46bb..861ba22dd717 100644 --- a/browser/base/content/test/performance/browser_startup_content.js +++ b/browser/base/content/test/performance/browser_startup_content.js @@ -35,7 +35,7 @@ const known_scripts = { "resource:///actors/LinkHandlerChild.sys.mjs", "resource:///actors/SearchSERPTelemetryChild.sys.mjs", "resource://gre/actors/ContentMetaChild.sys.mjs", - "resource://gre/modules/Readerable.jsm", + "resource://gre/modules/Readerable.sys.mjs", // Telemetry "resource://gre/modules/TelemetryControllerBase.sys.mjs", // bug 1470339 diff --git a/browser/components/sessionstore/ContentSessionStore.sys.mjs b/browser/components/sessionstore/ContentSessionStore.sys.mjs index e4d0e6e71120..8e263b03dd2f 100644 --- a/browser/components/sessionstore/ContentSessionStore.sys.mjs +++ b/browser/components/sessionstore/ContentSessionStore.sys.mjs @@ -80,7 +80,7 @@ class EventListener extends Handler { !content.document.body.classList.contains("loaded") ) { // Don't restore the scroll position of an about:reader page at this - // point; listen for the custom event dispatched from AboutReader.jsm. + // point; listen for the custom event dispatched from AboutReader.sys.mjs. content.addEventListener("AboutReaderContentReady", this); return; } diff --git a/toolkit/components/reader/AboutReader.jsm b/toolkit/components/reader/AboutReader.sys.mjs similarity index 99% rename from toolkit/components/reader/AboutReader.jsm rename to toolkit/components/reader/AboutReader.sys.mjs index c63eb432c404..b1f6aa86e6f7 100644 --- a/toolkit/components/reader/AboutReader.jsm +++ b/toolkit/components/reader/AboutReader.sys.mjs @@ -2,20 +2,11 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -"use strict"; - -var EXPORTED_SYMBOLS = ["AboutReader"]; - const { ReaderMode } = ChromeUtils.import( "resource://gre/modules/ReaderMode.jsm" ); -const { AppConstants } = ChromeUtils.importESModule( - "resource://gre/modules/AppConstants.sys.mjs" -); - -const { XPCOMUtils } = ChromeUtils.importESModule( - "resource://gre/modules/XPCOMUtils.sys.mjs" -); +import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs"; +import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; const lazy = {}; @@ -59,7 +50,7 @@ const zoomOnMeta = Services.prefs.getIntPref("mousewheel.with_meta.action", 1) == 3; const isAppLocaleRTL = Services.locale.isAppLocaleRTL; -var AboutReader = function( +export var AboutReader = function( actor, articlePromise, docContentType = "document", diff --git a/toolkit/components/reader/ReaderMode.jsm b/toolkit/components/reader/ReaderMode.sys.mjs similarity index 98% rename from toolkit/components/reader/ReaderMode.jsm rename to toolkit/components/reader/ReaderMode.sys.mjs index 8a011d054e13..4f010ae61074 100644 --- a/toolkit/components/reader/ReaderMode.jsm +++ b/toolkit/components/reader/ReaderMode.sys.mjs @@ -2,9 +2,6 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -"use strict"; - -var EXPORTED_SYMBOLS = ["ReaderMode"]; // Constants for telemetry. const DOWNLOAD_SUCCESS = 0; @@ -31,9 +28,7 @@ const CLASSES_TO_PRESERVE = [ "wp-smiley", ]; -const { XPCOMUtils } = ChromeUtils.importESModule( - "resource://gre/modules/XPCOMUtils.sys.mjs" -); +import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; const lazy = {}; @@ -57,7 +52,7 @@ const gIsFirefoxDesktop = Services.telemetry.setEventRecordingEnabled("readermode", true); -var ReaderMode = { +export var ReaderMode = { DEBUG: 0, // For time spent telemetry diff --git a/toolkit/components/reader/ReaderWorker.jsm b/toolkit/components/reader/ReaderWorker.sys.mjs similarity index 81% rename from toolkit/components/reader/ReaderWorker.jsm rename to toolkit/components/reader/ReaderWorker.sys.mjs index f70e579d7455..63688074b14f 100644 --- a/toolkit/components/reader/ReaderWorker.jsm +++ b/toolkit/components/reader/ReaderWorker.sys.mjs @@ -2,8 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -"use strict"; - /** * Interface to a dedicated thread handling readability parsing. */ @@ -12,8 +10,6 @@ const { BasePromiseWorker } = ChromeUtils.import( "resource://gre/modules/PromiseWorker.jsm" ); -var EXPORTED_SYMBOLS = ["ReaderWorker"]; - -var ReaderWorker = new BasePromiseWorker( +export var ReaderWorker = new BasePromiseWorker( "resource://gre/modules/reader/ReaderWorker.js" ); diff --git a/toolkit/components/reader/Readerable.js b/toolkit/components/reader/Readerable.js index 51e66fb3448f..e558642fe340 100644 --- a/toolkit/components/reader/Readerable.js +++ b/toolkit/components/reader/Readerable.js @@ -5,7 +5,7 @@ "use strict"; // This file and Readability-readerable.js are merged together into -// Readerable.jsm. +// Readerable.sys.mjs. /* exported Readerable */ /* import-globals-from Readability-readerable.js */ @@ -14,10 +14,6 @@ const { XPCOMUtils } = ChromeUtils.importESModule( "resource://gre/modules/XPCOMUtils.sys.mjs" ); -function isNodeVisible(node) { - return node.clientHeight > 0 && node.clientWidth > 0; -} - var Readerable = { get isEnabledForParseOnLoad() { return this.isEnabled; @@ -43,7 +39,11 @@ var Readerable = { return false; } - return isProbablyReaderable(doc, isNodeVisible); + return isProbablyReaderable(doc, this._isNodeVisible); + }, + + _isNodeVisible(node) { + return node.clientHeight > 0 && node.clientWidth > 0; }, _blockedHosts: [ diff --git a/toolkit/components/reader/Readerable.jsm b/toolkit/components/reader/Readerable.sys.mjs similarity index 85% rename from toolkit/components/reader/Readerable.jsm rename to toolkit/components/reader/Readerable.sys.mjs index 2268487e4296..5412171ae379 100644 --- a/toolkit/components/reader/Readerable.jsm +++ b/toolkit/components/reader/Readerable.sys.mjs @@ -2,9 +2,8 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -"use strict"; - -var EXPORTED_SYMBOLS = ["Readerable"]; #include Readability-readerable.js #include Readerable.js + +export { Readerable }; diff --git a/toolkit/components/reader/moz.build b/toolkit/components/reader/moz.build index 9640138c5608..e0283a28c5db 100644 --- a/toolkit/components/reader/moz.build +++ b/toolkit/components/reader/moz.build @@ -7,19 +7,19 @@ JAR_MANIFESTS += ["jar.mn"] EXTRA_JS_MODULES += [ - "AboutReader.jsm", - "ReaderMode.jsm", + "AboutReader.sys.mjs", + "ReaderMode.sys.mjs", ] EXTRA_PP_JS_MODULES += [ - "Readerable.jsm", + "Readerable.sys.mjs", ] EXTRA_JS_MODULES.reader = [ "JSDOMParser.js", "Readability.js", "ReaderWorker.js", - "ReaderWorker.jsm", + "ReaderWorker.sys.mjs", ] BROWSER_CHROME_MANIFESTS += ["test/browser.ini"] diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css index d9cc13659688..966bad06a48e 100644 --- a/toolkit/themes/shared/aboutReader.css +++ b/toolkit/themes/shared/aboutReader.css @@ -703,7 +703,7 @@ body.hcm .color-scheme-buttons { /* Article content */ /* Note that any class names from the original article that we want to match on - * must be added to CLASSES_TO_PRESERVE in ReaderMode.jsm, so that + * must be added to CLASSES_TO_PRESERVE in ReaderMode.sys.mjs, so that * Readability.js doesn't strip them out */ .container {