Bug 1353029 - Pass PdfJs.enabled into child on change.
This commit is contained in:
parent
e696589a09
commit
5834ef6ff2
@ -67,10 +67,11 @@ function getIntPref(aPref, aDefaultValue) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isDefaultHandler() {
|
function isDefaultHandler() {
|
||||||
if (Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_CONTENT) {
|
if (Services.appinfo.processType !== Services.appinfo.PROCESS_TYPE_DEFAULT) {
|
||||||
return PdfjsContentUtils.isDefaultHandlerApp();
|
throw new Error("isDefaultHandler should only get called in the parent " +
|
||||||
}
|
"process.");
|
||||||
return PdfjsChromeUtils.isDefaultHandlerApp();
|
}
|
||||||
|
return PdfjsChromeUtils.isDefaultHandlerApp();
|
||||||
}
|
}
|
||||||
|
|
||||||
function initializeDefaultPreferences() {
|
function initializeDefaultPreferences() {
|
||||||
@ -251,13 +252,16 @@ var PdfJs = {
|
|||||||
|
|
||||||
// nsIObserver
|
// nsIObserver
|
||||||
observe: function observe(aSubject, aTopic, aData) {
|
observe: function observe(aSubject, aTopic, aData) {
|
||||||
this.updateRegistration();
|
if (Services.appinfo.processType !==
|
||||||
if (Services.appinfo.processType ===
|
|
||||||
Services.appinfo.PROCESS_TYPE_DEFAULT) {
|
Services.appinfo.PROCESS_TYPE_DEFAULT) {
|
||||||
let jsm = "resource://pdf.js/PdfjsChromeUtils.jsm";
|
throw new Error("Only the parent process should be observing PDF " +
|
||||||
let PdfjsChromeUtils = Components.utils.import(jsm, {}).PdfjsChromeUtils;
|
"handler changes.");
|
||||||
PdfjsChromeUtils.notifyChildOfSettingsChange();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.updateRegistration();
|
||||||
|
let jsm = "resource://pdf.js/PdfjsChromeUtils.jsm";
|
||||||
|
let PdfjsChromeUtils = Components.utils.import(jsm, {}).PdfjsChromeUtils;
|
||||||
|
PdfjsChromeUtils.notifyChildOfSettingsChange(this.enabled);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -117,7 +117,7 @@ var PdfjsChromeUtils = {
|
|||||||
* instruct the child to refresh its configuration and (possibly)
|
* instruct the child to refresh its configuration and (possibly)
|
||||||
* the module's registration.
|
* the module's registration.
|
||||||
*/
|
*/
|
||||||
notifyChildOfSettingsChange() {
|
notifyChildOfSettingsChange(enabled) {
|
||||||
if (Services.appinfo.processType ===
|
if (Services.appinfo.processType ===
|
||||||
Services.appinfo.PROCESS_TYPE_DEFAULT && this._ppmm) {
|
Services.appinfo.PROCESS_TYPE_DEFAULT && this._ppmm) {
|
||||||
// XXX kinda bad, we want to get the parent process mm associated
|
// XXX kinda bad, we want to get the parent process mm associated
|
||||||
@ -125,7 +125,8 @@ var PdfjsChromeUtils = {
|
|||||||
// manager, which means this is going to fire to every child process
|
// manager, which means this is going to fire to every child process
|
||||||
// we have open. Unfortunately I can't find a way to get at that
|
// we have open. Unfortunately I can't find a way to get at that
|
||||||
// process specific mm from js.
|
// process specific mm from js.
|
||||||
this._ppmm.broadcastAsyncMessage("PDFJS:Child:refreshSettings", {});
|
this._ppmm.broadcastAsyncMessage("PDFJS:Child:updateSettings",
|
||||||
|
{ enabled, });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ var PdfjsContentUtils = {
|
|||||||
if (!this._mm) {
|
if (!this._mm) {
|
||||||
this._mm = Cc["@mozilla.org/childprocessmessagemanager;1"].
|
this._mm = Cc["@mozilla.org/childprocessmessagemanager;1"].
|
||||||
getService(Ci.nsISyncMessageSender);
|
getService(Ci.nsISyncMessageSender);
|
||||||
this._mm.addMessageListener("PDFJS:Child:refreshSettings", this);
|
this._mm.addMessageListener("PDFJS:Child:updateSettings", this);
|
||||||
|
|
||||||
//#if !MOZCENTRAL
|
//#if !MOZCENTRAL
|
||||||
// The signature of `Services.obs.addObserver` changed in Firefox 55,
|
// The signature of `Services.obs.addObserver` changed in Firefox 55,
|
||||||
@ -62,7 +62,7 @@ var PdfjsContentUtils = {
|
|||||||
|
|
||||||
uninit() {
|
uninit() {
|
||||||
if (this._mm) {
|
if (this._mm) {
|
||||||
this._mm.removeMessageListener("PDFJS:Child:refreshSettings", this);
|
this._mm.removeMessageListener("PDFJS:Child:updateSettings", this);
|
||||||
Services.obs.removeObserver(this, "quit-application");
|
Services.obs.removeObserver(this, "quit-application");
|
||||||
}
|
}
|
||||||
this._mm = null;
|
this._mm = null;
|
||||||
@ -108,14 +108,6 @@ var PdfjsContentUtils = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
|
||||||
* Forwards default app query to the parent where we check various
|
|
||||||
* handler app settings only available in the parent process.
|
|
||||||
*/
|
|
||||||
isDefaultHandlerApp() {
|
|
||||||
return this._mm.sendSyncMessage("PDFJS:Parent:isDefaultHandlerApp")[0];
|
|
||||||
},
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Request the display of a notification warning in the associated window
|
* Request the display of a notification warning in the associated window
|
||||||
* when the renderer isn't sure a pdf displayed correctly.
|
* when the renderer isn't sure a pdf displayed correctly.
|
||||||
@ -145,13 +137,17 @@ var PdfjsContentUtils = {
|
|||||||
|
|
||||||
receiveMessage(aMsg) {
|
receiveMessage(aMsg) {
|
||||||
switch (aMsg.name) {
|
switch (aMsg.name) {
|
||||||
case "PDFJS:Child:refreshSettings":
|
case "PDFJS:Child:updateSettings":
|
||||||
// Only react to this if we are remote.
|
// Only react to this if we are remote.
|
||||||
if (Services.appinfo.processType ===
|
if (Services.appinfo.processType ===
|
||||||
Services.appinfo.PROCESS_TYPE_CONTENT) {
|
Services.appinfo.PROCESS_TYPE_CONTENT) {
|
||||||
let jsm = "resource://pdf.js/PdfJs.jsm";
|
let jsm = "resource://pdf.js/PdfJs.jsm";
|
||||||
let pdfjs = Components.utils.import(jsm, {}).PdfJs;
|
let pdfjs = Components.utils.import(jsm, {}).PdfJs;
|
||||||
pdfjs.updateRegistration();
|
if (aMsg.data.enabled) {
|
||||||
|
pdfjs.ensureRegistered();
|
||||||
|
} else {
|
||||||
|
pdfjs.ensureUnregistered();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user