[PATCH]
Bug 1346682 - Set title to document name for print to file. r?brsun
---
.../mortar/host/pdf/ppapi-content-sandbox.js | 28 ++++++++++++++--------
1 file changed, 18 insertions(+), 10 deletions(-)
MozReview-Commit-ID: 4DO3q6n0lol
--- a/browser/extensions/mortar/host/pdf/ppapi-content-sandbox.js
+++ b/browser/extensions/mortar/host/pdf/ppapi-content-sandbox.js
@@ -38,16 +38,30 @@ if (isSynthetic) {
pluginElement.ownerDocument.body.addEventListener(
"selectstart", function(event) { event.preventDefault(); });
}
function mapValue(v, instance) {
return instance.rt.toPP_Var(v, instance);
}
+function getFileName() {
+ let url = containerWindow.document.location;
+ let filename = "document.pdf";
+ let regex = /[^\/#\?]+\.pdf$/i;
+
+ let result = regex.exec(url.hash) ||
+ regex.exec(url.search) ||
+ regex.exec(url.pathname);
+ if (result) {
+ filename = result[0];
+ }
+ return filename;
+}
+
dump("<>>>>>>>>>>>>>>>>>>>> AHA <<<<<<<<<<<<<<<<<<<<<>\n");
dump(`pluginElement: ${pluginElement.toSource()}\n`);
dump(`pluginElement.frameLoader: ${pluginElement.frameLoader.toSource()}\n`);
dump(`pluginElement.frameLoader.messageManager: ${pluginElement.frameLoader.messageManager.toSource()}\n`);
dump("<>>>>>>>>>>>>>>>>>>>> AHA2 <<<<<<<<<<<<<<<<<<<<<>\n");
mm.addMessageListener("ppapi.js:frameLoaded", ({ target }) => {
let tagName = pluginElement.nodeName;
@@ -111,16 +125,19 @@ mm.addMessageListener("ppapi.js:setFulls
mm.addMessageListener("ppapipdf.js:setHash", ({ data }) => {
if (data) {
containerWindow.location.hash = data;
}
});
mm.addMessageListener("ppapipdf.js:getPrintSettings", () => {
+ // Set the title to pdf file name for the default print to file name.
+ containerWindow.document.title = getFileName();
+
let PSSVC = Cc["@mozilla.org/gfx/printsettings-service;1"].
getService(Ci.nsIPrintSettingsService);
printSettings = PSSVC.globalPrintSettings;
let webBrowserPrint =
containerWindow.QueryInterface(Ci.nsIInterfaceRequestor).
getInterface(Ci.nsIWebBrowserPrint);
let PPSVC = Cc["@mozilla.org/embedcomp/printingprompt-service;1"].
getService(Ci.nsIPrintingPromptService);
@@ -201,27 +218,18 @@ mm.addMessageListener("ppapipdf.js:openL
containerWindow.open(data.url, "",
"noopener=1,menubar=1,toolbar=1," +
"location=1,personalbar=1,status=1,resizable");
break;
}
});
mm.addMessageListener("ppapipdf.js:save", () => {
+ let filename = getFileName();
let url = containerWindow.document.location;
- let filename = "document.pdf";
- let regex = /[^\/#\?]+\.pdf$/i;
-
- let result = regex.exec(url.hash) ||
- regex.exec(url.search) ||
- regex.exec(url.pathname);
- if (result) {
- filename = result[0];
- }
-
let originalUri = NetUtil.newURI(url.href);
let extHelperAppSvc =
Cc["@mozilla.org/uriloader/external-helper-app-service;1"].
getService(Ci.nsIExternalHelperAppService);
let docIsPrivate =
PrivateBrowsingUtils.isContentWindowPrivate(containerWindow);
let netChannel = NetUtil.newChannel({