forked from mirrors/gecko-dev
Bug 1824610 - EMSification of pdf.js r=Standard8,pdfjs-reviewers,geckoview-reviewers,marco,m_kato
Differential Revision: https://phabricator.services.mozilla.com/D173674
This commit is contained in:
parent
7a338578a5
commit
fefd92b8e9
18 changed files with 43 additions and 114 deletions
|
|
@ -103,7 +103,7 @@ const startupPhases = {
|
|||
"resource://gre/modules/AsyncPrefs.sys.mjs",
|
||||
"resource://gre/modules/LoginManagerContextMenu.jsm",
|
||||
"resource://gre/modules/osfile.jsm",
|
||||
"resource://pdf.js/PdfStreamConverter.jsm",
|
||||
"resource://pdf.js/PdfStreamConverter.sys.mjs",
|
||||
]),
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
|||
NewTabUtils: "resource://gre/modules/NewTabUtils.sys.mjs",
|
||||
OsEnvironment: "resource://gre/modules/OsEnvironment.sys.mjs",
|
||||
PageDataService: "resource:///modules/pagedata/PageDataService.sys.mjs",
|
||||
PdfJs: "resource://pdf.js/PdfJs.sys.mjs",
|
||||
PermissionUI: "resource:///modules/PermissionUI.sys.mjs",
|
||||
PlacesBackups: "resource://gre/modules/PlacesBackups.sys.mjs",
|
||||
PlacesDBUtils: "resource://gre/modules/PlacesDBUtils.sys.mjs",
|
||||
|
|
@ -98,7 +99,6 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
|
|||
|
||||
PageActions: "resource:///modules/PageActions.jsm",
|
||||
PageThumbs: "resource://gre/modules/PageThumbs.jsm",
|
||||
PdfJs: "resource://pdf.js/PdfJs.jsm",
|
||||
PluralForm: "resource://gre/modules/PluralForm.jsm",
|
||||
ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm",
|
||||
SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm",
|
||||
|
|
@ -646,10 +646,10 @@ let JSWINDOWACTORS = {
|
|||
|
||||
Pdfjs: {
|
||||
parent: {
|
||||
moduleURI: "resource://pdf.js/PdfjsParent.jsm",
|
||||
esModuleURI: "resource://pdf.js/PdfjsParent.sys.mjs",
|
||||
},
|
||||
child: {
|
||||
moduleURI: "resource://pdf.js/PdfjsChild.jsm",
|
||||
esModuleURI: "resource://pdf.js/PdfjsChild.sys.mjs",
|
||||
},
|
||||
allFrames: true,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ XPCOMUtils.defineLazyServiceGetters(lazy, {
|
|||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
BookmarksPolicies: "resource:///modules/policies/BookmarksPolicies.sys.mjs",
|
||||
FileUtils: "resource://gre/modules/FileUtils.sys.mjs",
|
||||
PdfJsDefaultPreferences: "resource://pdf.js/PdfJsDefaultPreferences.sys.mjs",
|
||||
ProxyPolicies: "resource:///modules/policies/ProxyPolicies.sys.mjs",
|
||||
WebsiteFilter: "resource:///modules/policies/WebsiteFilter.sys.mjs",
|
||||
});
|
||||
|
|
@ -31,7 +32,6 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
|||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
AddonManager: "resource://gre/modules/AddonManager.jsm",
|
||||
CustomizableUI: "resource:///modules/CustomizableUI.jsm",
|
||||
PdfJsDefaultPreferences: "resource://pdf.js/PdfJsDefaultPreferences.jsm",
|
||||
});
|
||||
|
||||
const PREF_LOGLEVEL = "browser.policies.loglevel";
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ const lazy = {};
|
|||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
ActorManagerParent: "resource://gre/modules/ActorManagerParent.sys.mjs",
|
||||
EventDispatcher: "resource://gre/modules/Messaging.sys.mjs",
|
||||
PdfJs: "resource://pdf.js/PdfJs.sys.mjs",
|
||||
Preferences: "resource://gre/modules/Preferences.sys.mjs",
|
||||
});
|
||||
|
||||
|
|
@ -21,10 +22,6 @@ const { XPCOMUtils } = ChromeUtils.importESModule(
|
|||
"resource://gre/modules/XPCOMUtils.sys.mjs"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
PdfJs: "resource://pdf.js/PdfJs.jsm",
|
||||
});
|
||||
|
||||
const { debug, warn } = GeckoViewUtils.initLogging("Startup");
|
||||
|
||||
var { DelayedInit } = ChromeUtils.import(
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Classes = [
|
|||
'@mozilla.org/streamconv;1?from=application/octet-stream&to=*/*',
|
||||
'@mozilla.org/streamconv;1?from=application/octet-stream&to=text/html',
|
||||
],
|
||||
'jsm': 'resource://gre/modules/pdfjs.js',
|
||||
'esModule': 'resource://gre/modules/pdfjs.sys.mjs',
|
||||
'constructor': 'StreamConverterFactory',
|
||||
},
|
||||
]
|
||||
|
|
|
|||
|
|
@ -13,10 +13,6 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["PdfJs"];
|
||||
|
||||
const PREF_PREFIX = "pdfjs";
|
||||
const PREF_DISABLED = PREF_PREFIX + ".disabled";
|
||||
const PREF_MIGRATION_VERSION = PREF_PREFIX + ".migrationVersion";
|
||||
|
|
@ -27,9 +23,7 @@ const PREF_ISDEFAULT_CACHE_STATE = PREF_PREFIX + ".enabledCache.state";
|
|||
const TOPIC_PDFJS_HANDLER_CHANGED = "pdfjs:handlerChanged";
|
||||
const PDF_CONTENT_TYPE = "application/pdf";
|
||||
|
||||
const { XPCOMUtils } = ChromeUtils.importESModule(
|
||||
"resource://gre/modules/XPCOMUtils.sys.mjs"
|
||||
);
|
||||
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||
|
||||
var Svc = {};
|
||||
XPCOMUtils.defineLazyServiceGetter(
|
||||
|
|
@ -45,11 +39,9 @@ XPCOMUtils.defineLazyServiceGetter(
|
|||
"nsIHandlerService"
|
||||
);
|
||||
const lazy = {};
|
||||
ChromeUtils.defineModuleGetter(
|
||||
lazy,
|
||||
"PdfJsDefaultPreferences",
|
||||
"resource://pdf.js/PdfJsDefaultPreferences.jsm"
|
||||
);
|
||||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
PdfJsDefaultPreferences: "resource://pdf.js/PdfJsDefaultPreferences.sys.mjs",
|
||||
});
|
||||
|
||||
function initializeDefaultPreferences() {
|
||||
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + ".");
|
||||
|
|
@ -96,7 +88,7 @@ const gPdfFakeHandlerInfo = {
|
|||
type: PDF_CONTENT_TYPE,
|
||||
};
|
||||
|
||||
var PdfJs = {
|
||||
export var PdfJs = {
|
||||
QueryInterface: ChromeUtils.generateQI(["nsIObserver"]),
|
||||
_initialized: false,
|
||||
_cachedIsDefault: true,
|
||||
|
|
@ -19,9 +19,7 @@
|
|||
// THIS FILE IS GENERATED AUTOMATICALLY, DO NOT EDIT MANUALLY!
|
||||
//
|
||||
|
||||
"use strict";
|
||||
var EXPORTED_SYMBOLS = ["PdfJsDefaultPreferences"];
|
||||
var PdfJsDefaultPreferences = Object.freeze({
|
||||
export const PdfJsDefaultPreferences = Object.freeze({
|
||||
"annotationEditorMode": 0,
|
||||
"annotationMode": 2,
|
||||
"cursorToolOnLoad": 0,
|
||||
|
|
@ -13,10 +13,6 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["NetworkManager"];
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function log(aMsg) {
|
||||
var msg = "PdfJsNetwork.jsm: " + (aMsg.join ? aMsg.join("") : aMsg);
|
||||
|
|
@ -31,7 +27,7 @@ function getTypedArray(xhr) {
|
|||
return Uint8Array.from(data, ch => ch.charCodeAt(0) & 0xff);
|
||||
}
|
||||
|
||||
var NetworkManager = (function NetworkManagerClosure() {
|
||||
export var NetworkManager = (function NetworkManagerClosure() {
|
||||
const OK_RESPONSE = 200;
|
||||
const PARTIAL_CONTENT_RESPONSE = 206;
|
||||
|
||||
|
|
@ -14,11 +14,7 @@
|
|||
*/
|
||||
/* eslint max-len: ["error", 100] */
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["PdfJsTelemetry"];
|
||||
|
||||
var PdfJsTelemetry = {
|
||||
export var PdfJsTelemetry = {
|
||||
onViewerIsUsed() {
|
||||
Glean.pdfjs.used.add(1);
|
||||
},
|
||||
|
|
@ -13,13 +13,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
const { SandboxSupportBase } = ChromeUtils.import(
|
||||
"resource://pdf.js/build/pdf.sandbox.external.js"
|
||||
);
|
||||
|
||||
const EXPORTED_SYMBOLS = ["PdfSandbox"];
|
||||
import { SandboxSupportBase } from "resource://pdf.js/build/pdf.sandbox.external.sys.mjs";
|
||||
|
||||
class SandboxSupport extends SandboxSupportBase {
|
||||
constructor(win, sandbox) {
|
||||
|
|
@ -39,7 +33,7 @@ class SandboxSupport extends SandboxSupportBase {
|
|||
}
|
||||
}
|
||||
|
||||
class PdfSandbox {
|
||||
export class PdfSandbox {
|
||||
constructor(window, data) {
|
||||
this.window = window;
|
||||
const sandbox = Cu.Sandbox(null, {
|
||||
|
|
@ -13,10 +13,6 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["PdfStreamConverter"];
|
||||
|
||||
const PDFJS_EVENT_ID = "pdf.js.message";
|
||||
const PREF_PREFIX = "pdfjs";
|
||||
const PDF_VIEWER_ORIGIN = "resource://pdf.js";
|
||||
|
|
@ -25,17 +21,16 @@ const MAX_NUMBER_OF_PREFS = 50;
|
|||
const MAX_STRING_PREF_LENGTH = 128;
|
||||
const PDF_CONTENT_TYPE = "application/pdf";
|
||||
|
||||
const { XPCOMUtils } = ChromeUtils.importESModule(
|
||||
"resource://gre/modules/XPCOMUtils.sys.mjs"
|
||||
);
|
||||
const { AppConstants } = ChromeUtils.importESModule(
|
||||
"resource://gre/modules/AppConstants.sys.mjs"
|
||||
);
|
||||
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||
import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs";
|
||||
|
||||
const lazy = {};
|
||||
|
||||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
AsyncPrefs: "resource://gre/modules/AsyncPrefs.sys.mjs",
|
||||
NetworkManager: "resource://pdf.js/PdfJsNetwork.sys.mjs",
|
||||
PdfJs: "resource://pdf.js/PdfJs.sys.mjs",
|
||||
PdfJsTelemetry: "resource://pdf.js/PdfJsTelemetry.sys.mjs",
|
||||
PdfSandbox: "resource://pdf.js/PdfSandbox.sys.mjs",
|
||||
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs",
|
||||
});
|
||||
ChromeUtils.defineModuleGetter(
|
||||
|
|
@ -44,26 +39,6 @@ ChromeUtils.defineModuleGetter(
|
|||
"resource://gre/modules/NetUtil.jsm"
|
||||
);
|
||||
|
||||
ChromeUtils.defineModuleGetter(
|
||||
lazy,
|
||||
"NetworkManager",
|
||||
"resource://pdf.js/PdfJsNetwork.jsm"
|
||||
);
|
||||
|
||||
ChromeUtils.defineModuleGetter(
|
||||
lazy,
|
||||
"PdfJsTelemetry",
|
||||
"resource://pdf.js/PdfJsTelemetry.jsm"
|
||||
);
|
||||
|
||||
ChromeUtils.defineModuleGetter(lazy, "PdfJs", "resource://pdf.js/PdfJs.jsm");
|
||||
|
||||
ChromeUtils.defineModuleGetter(
|
||||
lazy,
|
||||
"PdfSandbox",
|
||||
"resource://pdf.js/PdfSandbox.jsm"
|
||||
);
|
||||
|
||||
var Svc = {};
|
||||
XPCOMUtils.defineLazyServiceGetter(
|
||||
Svc,
|
||||
|
|
@ -861,7 +836,7 @@ class RequestListener {
|
|||
}
|
||||
}
|
||||
|
||||
function PdfStreamConverter() {}
|
||||
export function PdfStreamConverter() {}
|
||||
|
||||
PdfStreamConverter.prototype = {
|
||||
QueryInterface: ChromeUtils.generateQI([
|
||||
|
|
@ -13,11 +13,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["PdfjsChild"];
|
||||
|
||||
class PdfjsChild extends JSWindowActorChild {
|
||||
export class PdfjsChild extends JSWindowActorChild {
|
||||
init(supportsFind) {
|
||||
if (supportsFind) {
|
||||
this.sendAsyncMessage("PDFJS:Parent:addEventListener");
|
||||
|
|
@ -13,13 +13,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["PdfjsParent"];
|
||||
|
||||
const { XPCOMUtils } = ChromeUtils.importESModule(
|
||||
"resource://gre/modules/XPCOMUtils.sys.mjs"
|
||||
);
|
||||
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||
|
||||
const lazy = {};
|
||||
|
||||
|
|
@ -51,7 +45,7 @@ let gFindTypes = [
|
|||
"finddiacriticmatchingchange",
|
||||
];
|
||||
|
||||
class PdfjsParent extends JSWindowActorParent {
|
||||
export class PdfjsParent extends JSWindowActorParent {
|
||||
constructor() {
|
||||
super();
|
||||
this._boundToFindbar = null;
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
class SandboxSupportBase {
|
||||
export class SandboxSupportBase {
|
||||
constructor(win) {
|
||||
this.win = win;
|
||||
this.timeoutIds = new Map();
|
||||
|
|
@ -138,7 +138,4 @@ class SandboxSupportBase {
|
|||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
{
|
||||
var EXPORTED_SYMBOLS = ["SandboxSupportBase"];
|
||||
}
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
pdfjs.jar:
|
||||
% resource pdf.js %content/
|
||||
content/PdfJs.jsm (content/PdfJs.jsm)
|
||||
content/PdfJsDefaultPreferences.jsm (content/PdfJsDefaultPreferences.jsm)
|
||||
content/PdfJsNetwork.jsm (content/PdfJsNetwork.jsm)
|
||||
content/PdfJsTelemetry.jsm (content/PdfJsTelemetry.jsm)
|
||||
content/PdfSandbox.jsm (content/PdfSandbox.jsm)
|
||||
content/PdfStreamConverter.jsm (content/PdfStreamConverter.jsm)
|
||||
content/PdfJs.sys.mjs (content/PdfJs.sys.mjs)
|
||||
content/PdfJsDefaultPreferences.sys.mjs (content/PdfJsDefaultPreferences.sys.mjs)
|
||||
content/PdfJsNetwork.sys.mjs (content/PdfJsNetwork.sys.mjs)
|
||||
content/PdfJsTelemetry.sys.mjs (content/PdfJsTelemetry.sys.mjs)
|
||||
content/PdfSandbox.sys.mjs (content/PdfSandbox.sys.mjs)
|
||||
content/PdfStreamConverter.sys.mjs (content/PdfStreamConverter.sys.mjs)
|
||||
content/build/ (content/build/*)
|
||||
content/web/cmaps/ (content/web/cmaps/*)
|
||||
content/web/standard_fonts/ (content/web/standard_fonts/*)
|
||||
|
|
@ -18,8 +18,8 @@ pdfjs.jar:
|
|||
content/web/viewer.css (content/web/viewer-geckoview.css)
|
||||
content/web/viewer.js (content/web/viewer-geckoview.js)
|
||||
#else
|
||||
content/PdfjsParent.jsm (content/PdfjsParent.jsm)
|
||||
content/PdfjsChild.jsm (content/PdfjsChild.jsm)
|
||||
content/PdfjsParent.sys.mjs (content/PdfjsParent.sys.mjs)
|
||||
content/PdfjsChild.sys.mjs (content/PdfjsChild.sys.mjs)
|
||||
content/web/viewer.html (content/web/viewer.html)
|
||||
content/web/viewer.css (content/web/viewer.css)
|
||||
content/web/viewer.js (content/web/viewer.js)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ MOCHITEST_MANIFESTS += ["test/mochitest.ini"]
|
|||
JAR_MANIFESTS += ["jar.mn"]
|
||||
|
||||
EXTRA_JS_MODULES += [
|
||||
"pdfjs.js",
|
||||
"pdfjs.sys.mjs",
|
||||
]
|
||||
|
||||
XPCOM_MANIFESTS += [
|
||||
|
|
|
|||
|
|
@ -13,22 +13,16 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
const lazy = {};
|
||||
|
||||
ChromeUtils.defineModuleGetter(
|
||||
lazy,
|
||||
"PdfStreamConverter",
|
||||
"resource://pdf.js/PdfStreamConverter.jsm"
|
||||
);
|
||||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
PdfStreamConverter: "resource://pdf.js/PdfStreamConverter.sys.mjs",
|
||||
});
|
||||
|
||||
// Register/unregister a constructor as a factory.
|
||||
function StreamConverterFactory() {
|
||||
export function StreamConverterFactory() {
|
||||
if (!Services.prefs.getBoolPref("pdfjs.disabled", false)) {
|
||||
return new lazy.PdfStreamConverter();
|
||||
}
|
||||
throw Components.Exception("", Cr.NS_ERROR_FACTORY_NOT_REGISTERED);
|
||||
}
|
||||
|
||||
var EXPORTED_SYMBOLS = ["StreamConverterFactory"];
|
||||
|
|
@ -19,8 +19,8 @@ add_task(async function test_js_sandbox() {
|
|||
]);
|
||||
|
||||
await SpecialPowers.spawn(browser, [], async () => {
|
||||
const { PdfSandbox } = ChromeUtils.import(
|
||||
"resource://pdf.js/PdfSandbox.jsm"
|
||||
const { PdfSandbox } = ChromeUtils.importESModule(
|
||||
"resource://pdf.js/PdfSandbox.sys.mjs"
|
||||
);
|
||||
|
||||
let sandboxDestroyCount = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue