Bug 1264869 - Request STORAGE permission before downloading images. r?liuche draft
authorSebastian Kaspari <s.kaspari@gmail.com>
Fri, 15 Apr 2016 10:22:22 +0200
changeset 351990 6a57d50b274de666de60db29b2ddfc3db5e38590
parent 351989 4646acc6df79b29e504d0fe43fef4e014b9164cb
child 518546 eff556cd9187438bd64ddf3fe11ffbc1b2b26b06
push id15578
push users.kaspari@gmail.com
push dateFri, 15 Apr 2016 12:14:54 +0000
reviewersliuche
bugs1264869
milestone48.0a1
Bug 1264869 - Request STORAGE permission before downloading images. r?liuche MozReview-Commit-ID: KJGugrRw5iI
mobile/android/chrome/content/browser.js
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -872,19 +872,25 @@ var BrowserApp = {
     });
 
     NativeWindow.contextmenus.add(stringGetter("contextmenu.saveImage"),
       NativeWindow.contextmenus.imageSaveableContext,
       function(aTarget) {
         UITelemetry.addEvent("action.1", "contextmenu", null, "web_save_image");
         UITelemetry.addEvent("save.1", "contextmenu", null, "image");
 
-        ContentAreaUtils.saveImageURL(aTarget.currentURI.spec, null, "SaveImageTitle",
-                                      false, true, aTarget.ownerDocument.documentURIObject,
-                                      aTarget.ownerDocument);
+        RuntimePermissions.waitForPermissions(RuntimePermissions.WRITE_EXTERNAL_STORAGE).then(function(permissionGranted) {
+            if (!permissionGranted) {
+                return;
+            }
+
+            ContentAreaUtils.saveImageURL(aTarget.currentURI.spec, null, "SaveImageTitle",
+                                          false, true, aTarget.ownerDocument.documentURIObject,
+                                          aTarget.ownerDocument);
+        });
       });
 
     NativeWindow.contextmenus.add(stringGetter("contextmenu.setImageAs"),
       NativeWindow.contextmenus._disableRestricted("SET_IMAGE", NativeWindow.contextmenus.imageSaveableContext),
       function(aTarget) {
         UITelemetry.addEvent("action.1", "contextmenu", null, "web_background_image");
 
         let src = aTarget.src;