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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for wasm32 + web #160
base: master
Are you sure you want to change the base?
Add support for wasm32 + web #160
Changes from 1 commit
63f97a9
92a3ae9
fcb36ab
a619a48
9a973f4
7123c43
7a60092
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Check warning on line 20 in src/platform/mod.rs
GitHub Actions / rustfmt
Check warning on line 1 in src/platform/wasm.rs
GitHub Actions / rustfmt
Check warning on line 7 in src/platform/wasm.rs
GitHub Actions / rustfmt
Check warning on line 14 in src/platform/wasm.rs
GitHub Actions / rustfmt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: Can this approach work in service workers/background workers? If not we can keep this hardcoded to
window
instead ofglobal
but that should be documented in theClipboard
documentation or similar.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately web workers cannot be supported - the clipboard API is not available in web workers (see the note on this page). I will add some documentation to mention this.
Check warning on line 57 in src/platform/wasm.rs
GitHub Actions / rustfmt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the various clipboard calls failing return
Error::Unknown
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The calls with
let _ =
don't fail immediately; they return aPromise
that resolves once the browser has updated the clipboard contents. Since this is a synchronous API, I just fire and forget the promise here.The only instances in which these calls asynchronously fail (according to Mozilla docs) is if the page doesn't have permission to write to the user's clipboard. Clipboard permissions are granted with transient activation - that is, once the user interacts with the page, writing to the clipboard is allowed.
It would be nice if there was a way to report the error here. The fire and forget approach is a bit jank - but it does work for my use case, which is just handling normal copy/paste interactions with
egui
on the web.Check warning on line 73 in src/platform/wasm.rs
GitHub Actions / rustfmt
Check warning on line 80 in src/platform/wasm.rs
GitHub Actions / rustfmt
Check warning on line 88 in src/platform/wasm.rs
GitHub Actions / rustfmt
Check warning on line 97 in src/platform/wasm.rs
GitHub Actions / rustfmt
Check warning on line 104 in src/platform/wasm.rs
GitHub Actions / rustfmt