* Add key icon
* Update context icon styles
* Add permissions links
* Show warning badge if permissions are insufficient for certain settings
* Create PermissionsUtil
* Use PermissionsUtil in Backend
* Update SettingsController to use PermissionsUtil
* Update AnkiController to use getRequiredPermissionsForAnkiFieldValue
* Show the permissions buttons/links on the context page when necessary
* Update MV3 compatibility
* Update frameInformationGet to also return the tab ID
* Add tabId to Frontend
* Pass tabId/frameId to Display
* Pass ownership information using setContent
* Remove ownerFrameId for Popup classes
* Use frameId instead of ownerFrameId for screenshotting
* Use contentOrigin instead of owner
* Update _invokeContentOrigin implementation
* Validate source window before handling messages
* Add unregisterHandler to CrossFrameAPI
* Refactor the process FrameAncestryHandler uses to get ancestor frame IDs
* Store a mapping of child frame information
* Update getFrameAncestryInfo to only run once
* Add getAllPermissions function
* Add permissionsChanged event
* Update ClipboardPopupsController to show permissions validation info
* Add invalid indicator
* Display invalid indicator when permissions are not valid
* Fix border color transition not being necessary on input-suffix-button
* Update _addAnkiNote to track errors
* Change comparison
* Update anki note adding to show errors
* Fix template
* Show errors when Anki card creation behaves unexpectedly
* Update some errors related to anki media injection
* Update addAnkiNote error handling
* Improve Anki errors
* Simplify error messages related to template rendering
* Update wording to be less repetitive
* Remove the shadow theme option from the welcome page, to avoid confusion
* Update input sizes
* Update select text to not clip the triangle icon
* Update wording
* Update descriptions
* Remove "popup" to not exclude the search page
* Add autoSearchClipboardContent option
* Hide header if there is any search text
* Add setting for autoSearchClipboardContent
* Add support for autoSearchClipboardContent
* Add _getExpressionAndReading utility
* Add _getExpressionReadingKey utility
* Add _getAudioOptions
* Separate some logic into _createAudioFromInfoList
* Update cache data format so that it can be accessed synchronously
* Allow sources to be manually specified
* Add options to enable playback of a specific entry of a source
* Use a standard map
* Wrap function
* Improve cache to support multiple different source arrays
For the same reading/expression
* Rename variable
* Use null instead of an error
* Simplify details
* Simplify audio creation
* Return an array of sources instead of a single item
* Use sourceIndex instead of index
* Rename APIs
* Return more info about the source
* Return source instead of sourceIndex
* Create HotkeyHelpController
* Expose getAllTemplates
* Update hotkeys on the context page
* Update hotkeys on the display pages
* Fix display issue where a hotkey used to be defined but no longer is
* Add support for allowing TextScanner.search to force focus
* Simplify query parser searched event forwarding
* Defer fallback creation
* Simplify event listeners
* Change type to pointerType
* Change cause to eventType
* Change empty to passive; make .search function passive
* Remove unused input index