Nowadays, base::Clipboard offers only synchronous APIs, which forces clipboard_aurax11 [1] and clipboard_ozone [2] to use nested run loops to communicate with asynchronous system clipboards.
This may cause blocks of the whole ui thread.
To resolve this, a big refactor is needed: fix base::Clipboard and fix all the clients, which use these APIs.
[1]
[2]
Nowadays, base::Clipboard offers only synchronous APIs, which forces clipboard_aurax11 [1] and clipboard_ozone [2] to use nested run loops to communicate with asynchronous system clipboards.
This may cause blocks of the whole ui thread.
To resolve this, a big refactor is needed: fix base::Clipboard and fix all the clients, which use these APIs.
[1] https://cs.chromium.org/chromium/src/ui/base/clipboard/clipboard_aurax11.cc?dr&g=0&l=414
[2]
Comment 1 by msi...@igalia.com
, Dec 10