* Some other misc refactor
* Auto reload all command boxes when changing the command options
* Add origin isolation to prevent cross-origin fingerprinting, etc. with webm-type initData or persistent licenses
* Logs from different origins can have duplicate entries even if pssh is same
* Fix 'some' coding style inconsistencies (but there are still many)
* Also make the command options collapsible, and save the collapsed state
* Next commit: change the decision of keeping duplicate sessions for persistent sessions
* Block persistentState: required keySystemAccess if persistence is disallowed
* Finish persistent license support
* Tested on https://biograf-155113.appspot.com/ttt/episode-2/, it's a bit broken so you should put sessionId in IndexedDB manually with the console
* Always use the JS-facing sessionId for internal handling (on both WV and PR) for simplicity
* Replace dirty string-based inter-script communication with JSON one
* Not tested yet at all due to lack of functional test material
* Prevent importing invalid device files
* Misc panel UI changes
* Allow removing site profiles without actually visiting the page
* Fix special characters in the back of the site scope label going to the front of the label
* Fix encoding and formatting of the exported log JSON files
* Remove unused code
* Better error handling for the panel
* Fix error message not showing if an empty content key array is returned from the remote server
* Fix PlayReady remote not working with raw pyplayready serve
* Merge SuperGeneric with the normal remote mode
* Refactor the previous non-generic remote CDM code to use SuperGeneric with generated default API config
* Improve error handling and notification
* Fix removing a remote device of a system messing with the other system's selected remote device
* Log tab titles and use that for generating m3u8dl commands
* Return a Widevine EME disabled on Firefox+Widevine (just like the real message) when WV is blocked
* Refactor SuperGeneric to be more flexible about number of requests
* Finish SuperGeneric
* Add support for PlayReady remote device (never tested cuz I don't own one)
* Fix ClearKey not working when blockDisabled is enabled
* Notify background script failures
* Update panel icon more frequently
* Misc security improvements by preventing potential (low possibility?) xss in the panel, and blocking panel only messages sent from the content script
* Tried to add mobile browser support but turns out most of them lacks CK support
* Added feature to download and import remotely hosted CDM files, for browsers with borked file pickers
* Ignore per-site enabled config if globally disabled
* Show button to reload the current tab after changing the config
* Show active icon in the panel UI if active
* Completely disable EME hooks when disabled
* Add ClearKey toggle
* Add an option to block disabled key systems (for forcing pages to use a specific key system, without messing with the browser configs/files)
* Panel UI now follows the system/browser dark mode setting
* Show all saved logs
* Add badge text for active status indicator
* Trying to implement the "webm" type initData
* Didn't fully understand the logic yet and just made it fail for now - which works quite well for triggering fallback
* Fix logic error when comparing the key system name
* Fix for services that checks all of the availalbe kids in keyStatus
* Also work around for some services that expect flipped bytes
* Handle cases where a website sends a mixture of WV and PR PSSH
* Add handler for MediaKeySession.close