@@ -369,14 +369,16 @@ export function checkTrojanSource(content, isPasteEvent) {
369369 }
370370}
371371
372- export function downloadBlob ( blob , fileName ) {
373- if ( getBrowser ( ) == 'IE' && window . navigator . msSaveBlob ) {
372+ export async function downloadBlob ( blob , fileName ) {
373+ const { open_file_after_download, show_save_prompt} = usePreferences . getState ( ) . getPreferencesForModule ( 'misc' ) ;
374+ const urlCreator = window . URL || window . webkitURL ;
375+ const downloadUrl = urlCreator . createObjectURL ( blob ) ;
376+ if ( getBrowser ( ) . name == 'IE' && window . navigator . msSaveBlob ) {
374377 // IE10+ : (has Blob, but not a[download] or URL)
375378 window . navigator . msSaveBlob ( blob , fileName ) ;
379+ } else if ( getBrowser ( ) . name == 'Electron' ) {
380+ await window . electronUI . downloadFile ( { downloadUrl, fileName, open_file_after_download, show_save_prompt} ) ;
376381 } else {
377- const urlCreator = window . URL || window . webkitURL ;
378- const downloadUrl = urlCreator . createObjectURL ( blob ) ;
379-
380382 const link = document . createElement ( 'a' ) ;
381383 link . setAttribute ( 'href' , downloadUrl ) ;
382384 link . setAttribute ( 'download' , fileName ) ;
@@ -388,6 +390,19 @@ export function downloadBlob(blob, fileName) {
388390 }
389391}
390392
393+ export async function downloadUrlData ( downloadUrl , fileName ) {
394+ const { open_file_after_download, show_save_prompt} = usePreferences . getState ( ) . getPreferencesForModule ( 'misc' ) ;
395+ if ( getBrowser ( ) . name == 'Electron' ) {
396+ window . electronUI . downloadFile ( { downloadUrl, fileName, open_file_after_download, show_save_prompt} ) ;
397+ } else {
398+ let link = document . createElement ( 'a' ) ;
399+ link . setAttribute ( 'href' , downloadUrl ) ;
400+ link . setAttribute ( 'download' , fileName ) ;
401+ link . click ( ) ;
402+ link . remove ( ) ;
403+ }
404+ }
405+
391406export function downloadFile ( textData , fileName , fileType ) {
392407 const respBlob = new Blob ( [ textData ] , { type : fileType } ) ;
393408 downloadBlob ( respBlob , fileName ) ;
0 commit comments