* 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
* Refactor searchQueryUpdate action
* Use standard message handler style
* Use name "promiseOrResult" for consistency
* Use standard message handler convention for Yomichan message handlers
* Use common message handler invoker
* Remove bindings
* Fast exit if same window
* Simplify selector
* Rename functions, reuse _getFrameOffsetParent
* Update message style
* Send reply message to a specific frame
* Change getOrCreatePopup arguments to be an object
* Add ownerFrameId to popup and DisplayFloat
* Refactor DisplayFloat host action invocation
* Use CrossFrameAPI instead of window.postMessage
* Update popup closing functionality on the search page
* Add support for injecting stylesheets into a custom parent node
* Add api.getStylesheetContent
* Add support for injecting a CSS file's content
* Add usePopupShadowDom option
* Use a per-parentNode cache
* Add support for using a shadow DOM wrapper around popup iframes
* Ignore the popup container instead of the frame
* Create member functions for ignoreElements and ignorePoint
* Create addFullscreenChangeEventListener utility
* Move popup creation management into Frontend
* Move getUrl implementation
* Remove old setup
* Remove try/catch block
* Error wrap
* Add prepare call to TextScanner
* Update depth when popup changes
* Refactor how Frontend gets PopupFactory and frameId
* Update popup preview to work
* Update popup preview frame to use the frontend's popup
* Update how nested popups are set up
* Error wrap
* Update how popups are set up on the search page
* Error wrap
* Error unwrap
* Add missing prepare
* Remove use of frontendInitializationData
* Catch and log errors
* 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
* 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
* 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
* 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
* 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
* 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