title: How to set the file download location for chrome extension Using JavaScript?
body: <p>Hi i am downloading selected links using chrome extension  but I can't set downloads location. All the urls downloaded to default location of chrome. i know we can't do it because of security reason. can we prompt directory chooser dialog in chrome extension popup from here user can select the Download path.Need any information from my side let me know.</p>
  
  <p>Is this possible at all? Any suggestions on how to go about it?</p>
  
  <p>Thanks in advance
  My code</p>
  
  <pre><code>function downloadFile(url, onSuccess,arrayOfUrl,zip) {
      var xhr = new XMLHttpRequest();
      xhr.open('GET', url, true);
      xhr.responseType = "blob";
      xhr.onreadystatechange = function () {
  
          if (xhr.readyState == 4) {
              if (onSuccess)
              {
              onDownloadComplete(xhr.response, arrayOfUrl,zip)
               }
  }
  }
  xhr.send("null");
  }
  function onDownloadComplete(blobData,urls,zip ){
      if (count &lt; urls.length) {
          blobToBase64(blobData, function(binaryData){
                  var fileName = urls[count].substring(urls[count].lastIndexOf('/')+1);
                   zip.file(fileName+".docx", binaryData, {base64: true}); 
                  if (count &lt; urls.length -1){
                      count++;
                      downloadFile(urls[count], onDownloadComplete, urls,zip);
  
                  }
                  else {
  
                      var content = zip.generate();
  
                       var zipName = 'download.zip';
                  var a = document.createElement('a'); 
                  a.href = "data:application/zip;base64," + content;
                  a.download = zipName;
                  a.click();
                    count = 0;
  
                  }
              });
      }
  }
  </code></pre>
  
  <p><strong>popup.js</strong></p>
  
  <pre><code>function onDownloadComplete(blobData,urls,zip ){
  
  
      if (count &lt; urls.length) {
          blobToBase64(blobData, function(binaryData){
                  // add downloaded file to zip:
                  var fileName = urls[count].substring(urls[count].lastIndexOf('/')+1);
                 // zip.file(fileName, binaryData, {base64: true});
                   zip.file(fileName+".docx", binaryData, {base64: true}); //file"+count+".docx"
                  if (count &lt; urls.length -1){
                      count++;
                      downloadFile(urls[count], onDownloadComplete, urls,zip);
  
                  }
                  else {
                  chrome.runtime.getBackgroundPage(function () {
              zipAndSaveFiles(zip);});
  
  
  
              }
  
              });
      }
  }
  
  **background.js**
  
  function zipAndSaveFiles(zip)
  {
      var content = zip.generate(zip);
                     var zipName = 'download.zip';
                     var dataURL = 'data:application/zip;base64,' + content;
                     chrome.downloads.download({
                     url:      dataURL,
                     filename: zipName,
                      saveAs:   true
                      });
  }
  </code></pre>