Bug 1367334 - Use pdf name as default name of save to file in embedded pdf case. r?brsun draft
authorlochang <ghoo1125@yahoo.com.tw>
Thu, 25 May 2017 10:59:50 +0800
changeset 584264 2fef7610cef73eebeb447705b996abb689277e03
parent 584263 a0bd68f3f225914fd31cb49b0f0a30ab8f0e29fa
child 630314 1eb686c1e5a09bc585541ea66ff8abb5590ed6fc
push id60666
push userbmo:lochang@mozilla.com
push dateThu, 25 May 2017 03:46:17 +0000
reviewersbrsun
bugs1367334
milestone55.0a1
Bug 1367334 - Use pdf name as default name of save to file in embedded pdf case. r?brsun MozReview-Commit-ID: 1AZxOj5DZzC
browser/extensions/mortar/host/common/ppapi-runtime.jsm
browser/extensions/mortar/host/pdf/ppapi-content-sandbox.js
--- a/browser/extensions/mortar/host/common/ppapi-runtime.jsm
+++ b/browser/extensions/mortar/host/common/ppapi-runtime.jsm
@@ -1806,17 +1806,18 @@ class PPAPIInstance {
   }
 
   viewportActionHandler(message) {
     switch(message.type) {
       case 'setFullscreen':
         this.mm.sendAsyncMessage("ppapi.js:setFullscreen", message.fullscreen);
         break;
       case 'save':
-        this.mm.sendAsyncMessage("ppapipdf.js:save");
+        this.mm.sendAsyncMessage("ppapipdf.js:save", {
+          url: this.info.url });
         break;
       case 'setHash':
         this.mm.sendAsyncMessage("ppapipdf.js:setHash", message.hash);
         break;
       case 'startPrint':
         // We need permission for showing print dialog to get print settings
         this.mm.sendAsyncMessage("ppapipdf.js:getPrintSettings", {
           url: this.info.url });
--- a/browser/extensions/mortar/host/pdf/ppapi-content-sandbox.js
+++ b/browser/extensions/mortar/host/pdf/ppapi-content-sandbox.js
@@ -217,18 +217,18 @@ mm.addMessageListener("ppapipdf.js:openL
     case PDFIUM_WINDOW_OPEN_DISPOSITION.NEW_WINDOW:
       containerWindow.open(data.url, "",
         "noopener=1,menubar=1,toolbar=1," +
         "location=1,personalbar=1,status=1,resizable");
       break;
   }
 });
 
-mm.addMessageListener("ppapipdf.js:save", () => {
-  let url = containerWindow.document.location;
+mm.addMessageListener("ppapipdf.js:save", ({ data }) => {
+  let url = new containerWindow.URL(data.url);
   let filename = getFileName(url);
   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);