We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.

Forum Discussion

hilaryhacksel's avatar
hilaryhacksel
Helpful | Level 6
8 months ago

1Password suggestion to fix file downloads

It has come to 1Password's attention that file downloads don't work in Dropbox when the 1Password extension is installed in Safari. I did a technical deep dive into the issue and found the following Dropbox code that causes this issue. As we can see in the minified code below, the W function removes an iframe from the page:

c_downloads-vflIml6Dh.js

 

When a user initiates a download, an iframe is created to handle the request and calls the destructive W 100 milliseconds after the "load" event (see last line):

 

When 1Password is present, the load event will occur before the download occurs and Dropbox does not wait long enough. I believe this is because of how Safari works under the hood, where the time it takes for it to switch between JavaScript contexts (in this case 1Password and Dropbox) is slow. Here is a screen capture of me sharing the findings with my team internally:

 

You can see that although there is almost no time taken by 1Password between START_LISTENERS and END_LISTENERS (they have the same 1700750410578 timestamp because precision isn't high enough) as well as START_INJECTION and END_INJECTION, our mere existence causes a delay of 501 ms (1701750410598 - 1701750410097). I believe this is the root of the issue: 100 ms is too short a timeout.

 

This issue would not only affect 1Password / Dropbox users, but all Dropbox users that use any extension that injects code at document_start.

 

There are many ways to fix this, here is a list I came up with when investigating this issue. They all have different tradeoffs, and some may be impossible depending on Dropbox's internal requirements, but I wanted to share them for completeness:

  • Use the download property of an anchor tag instead of dynamically creating/destroying iframes
  • Increase the destructive timeout from 100ms to 1 second
  • Rely on the iframe redirect event (ie "unload" event and not the "load" event + timeout)
  • Create the iframe before the user needs to download their file and update it on user initiation. 
  • Thanks BenDBX I've tested the drop box fix with the 1Password workaround removed and can see both the download working and the 1Password code running in the same iframe!

     

    I see the developers decided to bump the timeout to 10 seconds (`1e4`) which is ample time on my apple M1 to switch between JS contexts. Hopefully slower computers don't have issues with this!

     

  • Megan's avatar
    Megan
    Icon for Dropbox Staff rankDropbox Staff

    Hey guys! 

     

    Thanks for bringing this to our attention, and for all the efforts you put looking into this. 

     

    Your feedback regarding this has been quite helpful, and I will do everything I can to ensure that your voice is heard.

     

    I'll forward your feedback to the appropriate areas so we can continue to improve.

     

    Thank you! 

    • hilaryhacksel's avatar
      hilaryhacksel
      Helpful | Level 6

      Thanks for forwarding the suggestion along Megan ! Can you share updates here on whether or not the development team has confirmed the issue and whether or not they will be making a change to the download behaviour that works better with extensions?

  • Megan's avatar
    Megan
    Icon for Dropbox Staff rankDropbox Staff

    Hey hilaryhacksel, at the moment we don't have any concrete updates. 

     

    However, I'll make sure to update the thread if we have any additional comments, or changes on our end. 

     

    Thank you!

    • hilaryhacksel's avatar
      hilaryhacksel
      Helpful | Level 6

      Hi Megan ! Just thought I'd follow up again to keep this issue active. Have any developers at Dropbox had time to take a look at this problem?

      • BenDBX's avatar
        BenDBX
        Icon for Community Manager rankCommunity Manager

        Hi hilaryhacksel,

         

        Thanks for your patience here! Our Engineers implemented a fix last week to resolve downloads failing on Safari with 1password. Please give it a shot and let us know if everything is working for you.

         

        Thanks,

        Ben

  • Rich27182's avatar
    Rich27182
    Explorer | Level 4

    Dropbox staff, 

      Please implement a fix for this issue, whether it is one of the ones mentioned above or a different one. 

    thank you

About Integrations

Find solutions to issues with third-party integrations from the Dropbox Community. Share advice and help members with their integration questions.

Need more support

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!