Implement scoped storage with API 29
According to the android documentation it should be possible to provide all necessary storage functions without 'storage' permission by using the Storage Access Framework(SAF).
I think using the ACTION_CREATE_DOCUMENT & ACTION_OPEN_DOCUMENT intents should provide all required functionality.
I've never seen a browser that uses ACTION_CREATE_DOCUMENT for downloads, all require storage permission to download files, which I find disappointing.
It may be necessary to keep storage permission for support of versions earlier than Android 4.4, but ideally the app would never ask users for storage permission when using newer versions.
Android Q brings scoped storage which gives big improvements for shared storage privacy. It will be compulsory in R. Apps which use SAF will have smooth integration.