* 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
* Update Display.setOptionsContext to update options
* Update how options context is updated in Popup
* Omit optionsContext for some _showPopupContent calls
* Remove extension unload
* Disable modifier keys in frontend's options context
* Update how text scanner passes modifiers to options context
* Update how options context is passed to display
* Update how display uses options context
* Update event order
* Update inputs
* Add type and cause to input info
* Update input info args
* Simplify arguments
* Update argument name
* Change order
* Use same selectors
* Use consistent stylesheet declaration
* Fix query parser not being cleared
* Set property upon load
* Don't focus for Enter key press
* Update search page styles
* Update indent and nodes
* Support dark style
* Add missing var
* Add abstraction: _getDefinitionPrimaryExpressionAndReading
* Reuse existing definitions in a sequence
* Revert change to related definition source/rawSource/sourceTerm
* Update _getDefinitionPrimaryExpressionAndReading to return best match
* Add _getTemplates function
* Add template renderer to display pages
* Add AnkiNoteBuilder to Display
* Update AnkiTemplatesController to directly use TemplateRenderer
* Remove old APIs
* Add inputs to options.scanning
* Update CSS for mouse buttons
* Update list counters
* Set up HTML/CSS
* Add input controller
* Use new inputs
* Include mouse buttons
* Update how button inputs are detected
* Add index/empty fields to the input details object
* Update none check for scanning modifier
* Remove old settings
* Remove unused global
* Refactor Popup.setVisibleOverride
* Use event to observe visibility changes
* Add setAllVisibleOverride/clearAllVisibleOverride
* Add setAllVisibleOverride/clearAllVisibleOverride cross frame handlers
* Update how visibility is changed
* Wait for next frame to ensure visibility has been updated
* Refactor document.js into a class
* Move public functions first
* Rename private functions
* Rename
* Rename argument
* Use instance of DocumentUtil
* Update tests
* Refactor
* Rename (test-)document.js to (test-)document-util.js
* Add _invokeSafe function to silently ignore extension unload errors
* Remove "Api" from function names
* Add invokeSafe to Popup
* Don't redundantly set content type to 'unloaded'
* Remove some unnecessary _setQuery calls
* Add support for forcing the query parser to be visible or hidden
* Move _setEventListenersActive calls
* Remove URL for kanji links
* Refactor _setContentTermsOrKanji
* Move search query text assignment into Display
* Move title updates into Display
* Move popup close calls
* Prevent infinite loop of extension unload events
* Standardize setContent calls
* Rename _queryText to _fullQuery
* Move query parser into Display and update float.html
* Generalize params
* Add "full" parameter to maintain the original full query
* Create DisplayHistory
* Change arguments for _setContentTermsOrKanji
* Set up history-driven content updates
* Use new history only
* Load definitions if missing
* Refactor definitions getting
* Add support for wildcards
* Move definitions setup
* Add events
* Allow state change even if there is no history state
* Update search page to use history
* Fix history overwriting
* Fix search page not seeing state chang events during prepare
* Update state if necessary
* Don't reassign query text if the same
* Remove DisplayContext
* Initialize with real history state
* Track URL
* Update DisplayHistory to support pseudo-history
* Configure history settings on search page
* Fix state
* Use full URL
* Change data format of setContent
* Rename details to content
* Update event arguments
* Fix animation
* Remove old state changes
* Clear content properly
* Remove set/clear content overrides
* Fix setting up event listeners for content clear
* Make clearContent private
* Make focus opt-in
* Validate source
* Add unloaded type
* Generalize content params
* Update how extension unload content is assigned
* Restore query blurring
* Simplify invoke
* Pass isTerms instead of type
* Update DisplaySearch.setContent to pass argument array
* Simplify argument object structure for setContent
* Move focus and disableHistory level
* Always include focus and disableHistory options
* Change disableHistory to history
* Pass source text to setContent
* Use consistent argument/object field order
* Remove unused previous field
* Combine logic for forward/back navigation
* Remove unused function
* Rename field
* Change extensionUnloaded trigger function
* Update how extension unloaded content is shown
* Ignore certain errors caused by extension unload
* Add _showExtensionUnloaded function
* Wrap internals of updateOptions
* Suppress errors caued by extension unload
* Make the frontend trigger the popup's extensionUnloaded event