зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 4 changesets (bug 1351690
) for failing browser chrome at e.g. browser/extensions/pdfjs/test/browser_pdfjs_zoom.js
Backed out changeset 8def346f7119 (bug1351690
) Backed out changeset 64082649b185 (bug1351690
) Backed out changeset 64d513f3c02b (bug1351690
) Backed out changeset 4219d3de5e8b (bug1351690
)
This commit is contained in:
Родитель
ea0d874fa8
Коммит
5798120b15
|
@ -119,7 +119,6 @@ const startupPhases = {
|
|||
"resource://gre/modules/AsyncPrefs.jsm",
|
||||
"resource://gre/modules/LoginManagerContextMenu.jsm",
|
||||
"resource://gre/modules/Task.jsm",
|
||||
"resource://pdf.js/PdfStreamConverter.jsm",
|
||||
]),
|
||||
}},
|
||||
};
|
||||
|
|
|
@ -29,8 +29,6 @@ const blacklist = {
|
|||
"resource://gre/modules/Promise.jsm",
|
||||
"resource://gre/modules/Task.jsm",
|
||||
"resource://gre/modules/osfile.jsm",
|
||||
"resource://pdf.js/PdfJs.jsm",
|
||||
"resource://pdf.js/PdfStreamConverter.jsm",
|
||||
]),
|
||||
services: new Set([
|
||||
"@mozilla.org/base/telemetry-startup;1",
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
var EXPORTED_SYMBOLS = ["PdfJs"];
|
||||
|
||||
const Cm = Components.manager;
|
||||
|
||||
const PREF_PREFIX = "pdfjs";
|
||||
const PREF_DISABLED = PREF_PREFIX + ".disabled";
|
||||
const PREF_MIGRATION_VERSION = PREF_PREFIX + ".migrationVersion";
|
||||
|
@ -49,8 +51,6 @@ ChromeUtils.defineModuleGetter(this, "PdfjsContentUtils",
|
|||
"resource://pdf.js/PdfjsContentUtils.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "PdfJsDefaultPreferences",
|
||||
"resource://pdf.js/PdfJsDefaultPreferences.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "PdfJsRegistration",
|
||||
"resource://pdf.js/PdfJsRegistration.jsm");
|
||||
|
||||
function getBoolPref(aPref, aDefaultValue) {
|
||||
try {
|
||||
|
@ -95,8 +95,40 @@ function initializeDefaultPreferences() {
|
|||
}
|
||||
}
|
||||
|
||||
// Register/unregister a constructor as a factory.
|
||||
function Factory() {}
|
||||
Factory.prototype = {
|
||||
register: function register(targetConstructor) {
|
||||
var proto = targetConstructor.prototype;
|
||||
this._classID = proto.classID;
|
||||
|
||||
var factory = XPCOMUtils._getFactory(targetConstructor);
|
||||
this._factory = factory;
|
||||
|
||||
var registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
registrar.registerFactory(proto.classID, proto.classDescription,
|
||||
proto.contractID, factory);
|
||||
|
||||
if (proto.classID2) {
|
||||
this._classID2 = proto.classID2;
|
||||
registrar.registerFactory(proto.classID2, proto.classDescription,
|
||||
proto.contractID2, factory);
|
||||
}
|
||||
},
|
||||
|
||||
unregister: function unregister() {
|
||||
var registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
registrar.unregisterFactory(this._classID, this._factory);
|
||||
if (this._classID2) {
|
||||
registrar.unregisterFactory(this._classID2, this._factory);
|
||||
}
|
||||
this._factory = null;
|
||||
},
|
||||
};
|
||||
|
||||
var PdfJs = {
|
||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver]),
|
||||
_registered: false,
|
||||
_initialized: false,
|
||||
|
||||
init: function init(remote) {
|
||||
|
@ -301,11 +333,25 @@ var PdfJs = {
|
|||
},
|
||||
|
||||
ensureRegistered: function ensureRegistered() {
|
||||
PdfJsRegistration.ensureRegistered();
|
||||
if (this._registered) {
|
||||
return;
|
||||
}
|
||||
this._pdfStreamConverterFactory = new Factory();
|
||||
ChromeUtils.import("resource://pdf.js/PdfStreamConverter.jsm");
|
||||
this._pdfStreamConverterFactory.register(PdfStreamConverter);
|
||||
|
||||
this._registered = true;
|
||||
},
|
||||
|
||||
ensureUnregistered: function ensureUnregistered() {
|
||||
PdfJsRegistration.ensureUnregistered();
|
||||
if (!this._registered) {
|
||||
return;
|
||||
}
|
||||
this._pdfStreamConverterFactory.unregister();
|
||||
Cu.unload("resource://pdf.js/PdfStreamConverter.jsm");
|
||||
delete this._pdfStreamConverterFactory;
|
||||
|
||||
this._registered = false;
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,92 +0,0 @@
|
|||
/* Copyright 2018 Mozilla Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ["PdfJsRegistration"];
|
||||
|
||||
const Cm = Components.manager;
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
ChromeUtils.defineModuleGetter(this, "PdfStreamConverter",
|
||||
"resource://pdf.js/PdfStreamConverter.jsm");
|
||||
|
||||
// Register/unregister a constructor as a factory.
|
||||
function StreamConverterFactory() {}
|
||||
StreamConverterFactory.prototype = {
|
||||
|
||||
// properties required for XPCOM registration:
|
||||
_classID: Components.ID("{d0c5195d-e798-49d4-b1d3-9324328b2291}"),
|
||||
_classDescription: "pdf.js Component",
|
||||
_contractID: "@mozilla.org/streamconv;1?from=application/pdf&to=*/*",
|
||||
|
||||
_classID2: Components.ID("{d0c5195d-e798-49d4-b1d3-9324328b2292}"),
|
||||
_contractID2: "@mozilla.org/streamconv;1?from=application/pdf&to=text/html",
|
||||
|
||||
register: function register() {
|
||||
var factory = {
|
||||
createInstance(outer, iid) {
|
||||
if (outer)
|
||||
throw Cr.NS_ERROR_NO_AGGREGATION;
|
||||
return (new PdfStreamConverter()).QueryInterface(iid);
|
||||
},
|
||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIFactory])
|
||||
};
|
||||
|
||||
this._factory = factory;
|
||||
|
||||
var registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
registrar.registerFactory(this._classID, this._classDescription,
|
||||
this._contractID, factory);
|
||||
registrar.registerFactory(this._classID2, this._classDescription,
|
||||
this._contractID2, factory);
|
||||
},
|
||||
|
||||
unregister: function unregister() {
|
||||
var registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
registrar.unregisterFactory(this._classID, this._factory);
|
||||
if (this._classID2) {
|
||||
registrar.unregisterFactory(this._classID2, this._factory);
|
||||
}
|
||||
this._factory = null;
|
||||
},
|
||||
};
|
||||
|
||||
var PdfJsRegistration = {
|
||||
_registered: false,
|
||||
|
||||
ensureRegistered: function ensureRegistered() {
|
||||
if (this._registered) {
|
||||
return;
|
||||
}
|
||||
this._pdfStreamConverterFactory = new StreamConverterFactory();
|
||||
this._pdfStreamConverterFactory.register();
|
||||
|
||||
this._registered = true;
|
||||
},
|
||||
|
||||
ensureUnregistered: function ensureUnregistered() {
|
||||
if (!this._registered) {
|
||||
return;
|
||||
}
|
||||
this._pdfStreamConverterFactory.unregister();
|
||||
Cu.unload("resource://pdf.js/PdfStreamConverter.jsm");
|
||||
delete this._pdfStreamConverterFactory;
|
||||
|
||||
this._registered = false;
|
||||
},
|
||||
|
||||
};
|
|
@ -800,6 +800,15 @@ function PdfStreamConverter() {
|
|||
}
|
||||
|
||||
PdfStreamConverter.prototype = {
|
||||
|
||||
// properties required for XPCOM registration:
|
||||
classID: Components.ID("{d0c5195d-e798-49d4-b1d3-9324328b2291}"),
|
||||
classDescription: "pdf.js Component",
|
||||
contractID: "@mozilla.org/streamconv;1?from=application/pdf&to=*/*",
|
||||
|
||||
classID2: Components.ID("{d0c5195d-e798-49d4-b1d3-9324328b2292}"),
|
||||
contractID2: "@mozilla.org/streamconv;1?from=application/pdf&to=text/html",
|
||||
|
||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIStreamConverter, Ci.nsIStreamListener, Ci.nsIRequestObserver]),
|
||||
|
||||
/*
|
||||
|
|
|
@ -118,12 +118,12 @@ var PdfjsContentUtils = {
|
|||
// Only react to this if we are remote.
|
||||
if (Services.appinfo.processType ===
|
||||
Services.appinfo.PROCESS_TYPE_CONTENT) {
|
||||
let jsm = "resource://pdf.js/PdfJsRegistration.jsm";
|
||||
let pdfjsr = ChromeUtils.import(jsm, {}).PdfJsRegistration;
|
||||
let jsm = "resource://pdf.js/PdfJs.jsm";
|
||||
let pdfjs = ChromeUtils.import(jsm, {}).PdfJs;
|
||||
if (aMsg.data.enabled) {
|
||||
pdfjsr.ensureRegistered();
|
||||
pdfjs.ensureRegistered();
|
||||
} else {
|
||||
pdfjsr.ensureUnregistered();
|
||||
pdfjs.ensureUnregistered();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
*/
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
ChromeUtils.import("resource://pdf.js/PdfJsRegistration.jsm");
|
||||
ChromeUtils.import("resource://pdf.js/PdfJs.jsm");
|
||||
|
||||
if (Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_CONTENT) {
|
||||
// register various pdfjs factories that hook us into content loading.
|
||||
PdfJsRegistration.ensureRegistered();
|
||||
PdfJs.ensureRegistered();
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче