* 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
* 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 badge indications to be based off current profile
* Update warning badge to display when no dictionaries are enabled
* Show how many dictionaries are enabled
* 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
* Add popupWindow options
* Add toBoolean converter
* Add settings
* Use new options
* Add test link
* Fix window state not working
* Make the window section advanced only
* Refactor note adding/viewing functions
* Move _addDefinition
* Update where anki field templates are assigned
* Update _createNote to not include options/templates arguments
* Simplify getAnkiNoteInfo to not require duplicateScope
* Copy set intersection functions
* Remove unused functions
* Simplify url check
* Remove parseUrl
* Simplify stringReverse
* Remove hasOwn due to infrequent use
* Rename errorToJson/jsonToError to de/serializeError
For clarity on intended use.
* Fix time argument on timeout
* Add missing return value
* Throw an error for unexpected argument values
* Add documentation comments
* Add support for regex replacements during the translation process
* Allow assignment of textReplacements
* Rename
* Set up test data
* Write expected data
* Set up options
* Prevent infinite loop if regex matches empty string
* Implement setting controller
* Add support for testing pattern replacements
* Make storage controller optional
* Make more elements optional
* Update styles
* Create new welcome page
* Update URL for welcome guide
* Remove old guide
* Fix unused global
* Add api.getAnkiConnectVersion
* Enable basic functionality when certain features/elements aren't present
* Add info page
* Update information links
* Update info link on the settings v2 page
* Update translator to flag redundant tags instead of remove
* Update how compact tags are shown in the popup
* Pass compactTags option to note builder
* Update options templates
* Add options upgrade
* Add options upgrade test
* Refactor internal options for findTerms to not use the settings object
* Move findTerms/findKanji options creation
* Deconstruct used options values to variables before any await calls
* Rename findTermsOptions to just options
* Add documentation comments
* Add type information about definitions
* Use _sendMessageTab
* Move _sendMessageAllTabs next to _sendMessageTab
* Rename function
* Add and use _sendMessageTabIgnoreResponse
* Add and use _sendMessageIgnoreResponse
* Always include params
* Update function consistency
* Move loadImageBase64 into DictionaryImporter
* Convert mediaUtility to a class
* Add getFileExtensionFromImageMediaType to MediaUtility
* Use MediaUtility instead of _getImageExtensionFromMediaType
* Use MediaUtility in ClipboardReader to validate images before reading
* Create ClipboardReader class
* Use ClipboardReader in Backend
* Update ClipboardMonitor to use ClipboardReader
* Replace _onApiClipboardImageGet call
* Assign clipboard reader browser
* Add _getTemplates function
* Add template renderer to display pages
* Add AnkiNoteBuilder to Display
* Update AnkiTemplatesController to directly use TemplateRenderer
* Remove old APIs