* Do not change selection if user selected text manually
* Remove capture argument for selectionchange listener
It is not applicable
* Make a note of user selection when Yomichan is enabled
User might have some text selected on a page prior to enabling Yomichan
via the toolbar icon; let it stay intact.
* Extract selection change by user listener into a method
* Remove unnecessary return
* Move touch start input filtering
* Refactor
* Add scanOnTouchPress
* Add preventPenScrolling
* Rename scanOnPenPress to scanOnPenMove
* Rename scanOnPenRelease to scanOnPenReleaseHover
* Simplify
* Refactor _searchAtFromPen early exit
* Merge _penPointerPressed and _penPointerReleased into a single variable
* Add more options
* Simplify pen pointer coordinates
* Implement scanOnPenPress and scanOnPenRelease
* Implement scanOnTouchRelease
* Fix tests
* Don't search on touch cancel
* Cancel touch if the touch action is used for scrolling or other gestures
* Fix incorrect scroll prevention options being used
* Organize options
* Fix typos
* Update DictionaryDatabase._findMultiBulk's createResult callback signature
* Simplify _splitField use
* Update sequence
* Expose new fields 'matchType' and 'matchSource' as part of term data
* Expose matchType and matchSource as part of TermSource
* Update sourceTermExactMatchCount calculation
* Update test data
* Expose matchType and matchSource info in HTML attributes
* Add primaryMatchTypes attribute
* Restore support for string frequency values
* Add support for {value, displayValue} frequencies
* Update test data
* Improve number parsing of string frequencies
* Improve reading detection
* Expose a displayValue property for frequency information
* Update docs
* Expose displayValue to Anki note data
* Fix translator
* Update display generation
* Update test data
* Update counts
* Add type property to TextSource* classes
* Use type property rather than instanceof
* Expose a sentence offset value
* Use offset added to URL
* Improve fallback sentence for Anki note context
* Add base64ToArrayBuffer to StringUtil
* Remove unnecessary media-util.js import
* Run async requirements in serial rather than parallel
* Update API.getMedia handler to convert ArrayBuffer content to base64
* Rename getImageResolution to getImageDetails
* Change parameter order of getImageDetails
* Pre-process and store media as an ArrayBuffer
* Remove MediaUtil.createBlobFromBase64Content
* Fix Anki media injection
* Add support for running getDictionaryCounts via DictionaryWorker
* Run dictionary integrity checks on a separate thread
* Remove api.getDictionaryCounts
* Move function implementations
* Use file() instead of files[]
* Move functionality into local functions
* Simplify
* Pass dictionary title to conversion functions
* Update how legacy tags are added
* Rename param for consistency
* Move media loading functionality into DictionaryImporterMediaLoader
* Create test class for media loading
* Remove unnecessary Blob/Image/URL functionality
* Organize
* Add utility to get diacritic information about a character
* Show mora without diacritic
* Add a hidden handakuten for copy-paste purposes
* Update schema to support information about nasal and devoiced mora
* Expose nasalPositions and devoicePositions in dictionary entry data
* Expose nasalPositions, devoicePositions in grouped pitch info
* Update display generator
* Update test dictionary data
* Update test data
* Expose more settings to QueryParser
* Rename textParse to parseText
* Refactor
* Convert reading inside QueryParser rather than Backend
* Remove use of readingMode from backend
* Rename
* Update parseText args
* Simplify
* Update results
* Move use of optionsContext
* Run mecab and internal parser in parallel
* Added "dictionary-reading" reading mode
* Update romaji conversion case