Hey @magic-peach
Bug description
The application crashes and fails to copy the share link if the user has added a Text Overlay containing an emoji or any non-ASCII character. The "Copy Link" function uses the native browser btoa() method to base64-encode the recipe JSON. Because btoa() only accepts Latin1 characters, an emoji in the JSON string throws an Uncaught DOMException: String contains an invalid character.
Steps to reproduce
Steps to reproduce the behavior:
- Go to the Reframe editor page
- Upload video (any format)
- Click on the 'Text Overlay' tool and add a new text overlay
- Edit the text to include an emoji (e.g., "Hello 🐶")
- Click on the 'Copy Link' button below the preview canvas
- See error (UI does not respond, link is not copied, and a
DOMException appears in the browser console)
Expected behavior
The application should safely encode the text (including emojis/UTF-8 characters) into base64, copy the link to the clipboard, and display a "Copied!" confirmation in the UI.
Actual behavior
The application throws a fatal DOMException in the background. The link is not generated or copied, and the user receives no feedback.
Browser and OS info
- OS: macOS 14 / Windows 11
- Browser: Chrome / Firefox / Safari
- Version: Latest
I am an open-source contributor participating in GSSoC '26 and would love to work on this issue!
Hey @magic-peach
Bug description
The application crashes and fails to copy the share link if the user has added a Text Overlay containing an emoji or any non-ASCII character. The "Copy Link" function uses the native browser
btoa()method to base64-encode the recipe JSON. Becausebtoa()only accepts Latin1 characters, an emoji in the JSON string throws an UncaughtDOMException: String contains an invalid character.Steps to reproduce
Steps to reproduce the behavior:
DOMExceptionappears in the browser console)Expected behavior
The application should safely encode the text (including emojis/UTF-8 characters) into base64, copy the link to the clipboard, and display a "Copied!" confirmation in the UI.
Actual behavior
The application throws a fatal
DOMExceptionin the background. The link is not generated or copied, and the user receives no feedback.Browser and OS info
I am an open-source contributor participating in GSSoC '26 and would love to work on this issue!