* Convert api.js into a class instance
* Use new api.* functions
* Fix missing binds
* Group functions with progress callbacks together
* Change style
* Fix API override not working
* Remove unnecessary load of /fg/css/client.css
* Replace dynamicLoader.loadStyles with dynamicLoader.loadStyle
* Replace Popup._injectStylesheet with dynamicLoader.loadStyle
* Remove unused global
* Update formatting
* Merge default tag color with category-less tags
* Use CSS variables for colors
* Add dark theme colors
* Move color variables into display.css
* Remove old stylesheets
* Update headings
* Bump minimum Firefox version to support CSS var()
* Revert popular kanji text color
* Update TextSourceElement API to have parity with TextSourceRange
* Make fields private
* Update equality check
* Fix "this.element" being used instead of just "element"
* Use direct message handler functions
* Remove unused targetPopupId
* Make target a member of FrontendApiSender
* Rename frameId to parentFrameId for clarity
* Remove _parentFrameId
* Rename _parentId to _parentPopupId for clarity
* wip
* add environment class
* use Environment class
* use Environment for scanning modifier options
* remove Environment in favor of API
* await promise
* use modifier symbols on macOS
* fix key separator issues
* if else to switch
* simplify variable names
* Add default
* Convert function to non-static
* Remove static for private functions
* Replace .call
* Move functions with side effects into a synchronous prepare function
* Rename variables with "container" to "frame" in _initializeFrame
* Rename variables with "container" to "frame"
* Rename getContainer to getFrame
* Rename getContainerRect to getFrameRect
* Organize and simplify
* Fix incorrect change of "popup" => "this"
* Move initial _updateVisibility into prepare()
* Fix return type
* Pass search function as a constructor argument
* Pass constructor as a details object
For consistency with other complex constructors and improved semantics.
* Convert _ignorePoints to a single optional function
* Organize functions
* Rename ignorePoints to ignorePoint
* Rename PopupProxyHost to PopupFactory
* Update FrontendApiReceiver to support non-async handlers
* Make some functions non-async
* Make setCustomCss non-async
* Make setContentScale non-async
* Remove static
* Rename variables
* Pass frameId into PopupFactory's constructor
* Change FrontendApiReceiver source from popup-proxy-host to popup-factor
* Rename _invokeHostApi to _invoke
* Rename PopupProxy.getHostUrl to getUrl
* Mark functions as private
* Mark fields as private
* Add getter/setters for publicly used fields
* Replace public static functions with private non-static functions
* Update comment
* Convert mixed japanese.js to utility class
* Copy functions from bg/js/japanese.js into mixed/js/japanese.js
* Remove bg/js/japanese.js
* Make wanakana dependency optional
* Update tests
* Remove getMouseEventListeners override
* Use this._options instead of this.options
* Make QueryParser use composition instead of inheritance for TextScanner
* Remove repeat call to document.querySelector('#query-parser-content')
* Update getProfile/getProfileFromContext to store this.options in a variable
* Add useSchema parameter to options getter functions
* Add apiModifySettings
* Use apiModifySettings instead of apiOptionsSet
* Remove apiOptionsSet
* Fix incorrect deleteCount check
* Require explicit scope for options
* Throw on invalid scope
* Update onProgress callback to handle multiple arguments
* Add apiImportDictionaryArchive
* Add apiDeleteDictionary
* Make onProgress the last argument for consistency
* Remove deprecated util functions
* Fix issue with missing progress args
* Remove function calls which modify the database from Translator
* Update tests
* Fix errors not being serialized correctly in _createActionListenerPort
* Add API function to send a message to a specific frameId in a tab
* Update _windowMessageHandlers to support additional info per handler
* Remove message token
* Add new authorization check
* Set up new initialization handler
* Update initialization
* Remove message token
* Replace 'prepare' with 'configure'
* Create new prepare function
* Change configure guard
* Log errors in onMessage
* Improve popup initialize function
* Clear secret/token in _resetFrame
* Remove backend message token
* Clear src and srcdoc attributes before loading
* Don't treat about:blank unloads as load events
* update Frontend options on modifier change
* add modifier key profile condition
* use select element for modifier condition value
* support "is" and "is not" modifier key conditions
* use plural
* remove dead null check
it's never null in that function
* pass element on rather than assigning to this
* rename event
* remove Firefox OS key to Meta detection
* hide Meta from dropdown on Firefox
* move input type
* Validate document.body before use in loadScripts
This also fixes an issue where reject wasn't being passed to loadScriptSentinel.
* Validate document nodes before use in _getSiteColor
* Validate document.body before use in _getViewport
* Validate document.body before use in setContentScale
* Validate document.body before use in docImposterCreate
* Remove and unload the popup frame if an unexpected load occurs
* Remove unused fields
* Only update _injectPromiseComplete if the promise is the most recent one
* Remove redundant this._injectPromise !== null check
* Simplify function names
* Add delete and swap functions
* Remove custom setter
Not currently part of the expected use cases.
* Add documentation
* Update tests
* Add delete test functions
* Update tests to use fresh objects
* Add swap test functions
* Add empty tests
* Disable delete on arrays
* Mark functions as private
* Remove constructor side effects
* Use safer handler invocation
* Mark functions as private
* Mark fields as private
* Update BackendApiForwarder public API
* Make Frontend use composition instead of inheritance for TextScanner
* Use push instead of concat
* Update setOptions and setEnabled APIs
* Update how onWindowMessage event listener is added/removed
* Rename options to _options
* Use bind instead of arrow function
* Fix selection being cleared due to settings changes
* Remove _getVisualViewportScale
* Use super's mouse event listener definitions
* Remove redundant override
* Remove getTouchEventListeners override
* Rename Display.onSearchClear to onEscape
* Change onSearchClear to clearSelection and use an event
* Update how text is marked for selection and deselection
* Replace onError with yomichan.logError
* Update setEnabled to refresh all event listeners
* Create new logging methods on yomichan object
* Use new yomichan.logError instead of global logError
* Remove old logError
* Handle unhandledrejection events
* Add addEventListener stub
* Update log function
* Update error conversion to support more types
* Add log event
* Add API log function
* Log errors to the backend
* Make error/warning logs update the badge
* Clear log error indicator on extension button click
* Log correct URL on the background page
* Fix incorrect error conversion
* Remove unhandledrejection handling
Firefox doesn't support it properly.
* Remove unused argument type from log function
* Improve function name
* Change console.warn to yomichan.logWarning
* Move log forwarding initialization into main scripts
* set optionsContext from Frontend
* update Popup+Display options on Frontend change
* remove popup setOptions
* only update DisplayFloat options from Frontend
* fix optionsContext usage
* fix preview frame arguments
* keep Frontend URL up to date
* cache url
* fix preview frame
* trigger modifyingProfileChange in correct places
* remove async from function not using await
* refactor optionsContext in Frontend