diff --git a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx
index ca7830e87a9d0be95cda22b93f3f2840a065c7fa..1af92879bb616bd0a0c28bc20878f2ba80c26765 100644
--- a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx
+++ b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx
@@ -340,15 +340,12 @@ class DataBrowser extends React.Component {
   }
 
   async downloadFile(file) {
-    if ('showSaveFilePicker' in window) {
-      try {
-        this.setState({ loading: true, progress: 0 })
-        await this.controller.downloadAndSaveFile(file, this.updateProgress)
-      } finally {
-        this.setState({ loading: false, progress: 0 })
-      }
-    } else {
-      this.openErrorDialog(messages.get(messages.DOWNLOADS_NOT_SUPPORTED))
+    try {
+      this.setState({ loading: true, progress: 0 })
+      const blob = await this.fileToBlob(file)
+      this.downloadBlob(blob, file.name)
+    } finally {
+      this.setState({ loading: false, progress: 0 })
     }
   }
 
@@ -366,7 +363,7 @@ class DataBrowser extends React.Component {
   }
 
   async fileToBlob(file) {
-    const dataArray = await this.controller.downloadFile(file)
+    const dataArray = await this.controller.download(file)
     return new Blob(dataArray, { type: this.inferMimeType(file.path) })
   }
 
diff --git a/ui-admin/src/js/components/database/data-browser/DataBrowserController.js b/ui-admin/src/js/components/database/data-browser/DataBrowserController.js
index 693cd0da45d77d7435443247e66916d71e17e065..6ff572b5dd8a29c6c2a7dec8323121110b844850 100644
--- a/ui-admin/src/js/components/database/data-browser/DataBrowserController.js
+++ b/ui-admin/src/js/components/database/data-browser/DataBrowserController.js
@@ -217,39 +217,6 @@ export default class DataBrowserController extends ComponentController {
     return dataArray
   }
 
-  async downloadAndSaveFile(file, onProgressUpdate) {
-    try {
-      const fileHandle = await window.showSaveFilePicker(
-        {
-          startIn: 'downloads',
-          id: 'download-file-picker',
-          suggestedName: file.name
-        })
-      const writable = await fileHandle.createWritable()
-
-      try {
-        let offset = 0
-
-        const size = file.size
-        while (offset < size) {
-          const chunk = await this._download(file, offset)
-          await writable.write(chunk)
-          offset += CHUNK_SIZE
-
-          const progress = Math.round((offset / size) * 100)
-          onProgressUpdate(Math.min(progress, 100))
-        }
-      } finally {
-        onProgressUpdate(100)
-        await writable.close()
-      }
-    } catch (error) {
-      if (error.name !== 'AbortError') {
-        throw error
-      }
-    }
-  }
-
   async _download(file, offset) {
     const limit = Math.min(CHUNK_SIZE, file.size - offset)
     return await openbis.read(this.owner, file.path, offset, limit)