cool#9072 browser: better error handling when navigator.clipboard.write is advertised but fails #9073
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In case an integration doesn't allow clipboard interaction via
https://sdk.collaboraonline.com/docs/advanced_integration.html#allow-the-clipboard-permission-query,
we end up in a situation where navigator.clipboard.write is not
undefined, but is broken.
By the time navigator.clipboard.write() fails, it's too late to fall
back to the old copy code, as the security context is already gone.
Fix the problem by improving the failure handling: show the popup to try
again copying, remember that navigator.clipboard.write() failed and
prefetch the text selection, so next time a copy is tried (via the
keyboard), the selection doesn't need re-creating. (Normally the
selection change would trigger the prefetch, so select->copy->copy-again
would still fail.)
Note that paste doesn't have a similar problem, since there we always
try the old paste code first, and only use the new paste code if the old
one fails.
Signed-off-by: Miklos Vajna [email protected]
Change-Id: I12ea4810395970421000d213744d1838213c7a07