Commit Graph

96 Commits

Author SHA1 Message Date
Ingan121
92bca46aee * Implement proper support for 'webm' initDataType instead of relying on previously logged PSSH with same KID
* Still prefer saved logs from same-origin to prevent duplicate entries
* Fix remove individual log button not working with new logs with origin data
2025-08-31 14:38:41 +09:00
Ingan121
658fad9a6b * Isolate incognito logs to incognito windows
* Use an array instead of an object with useless and duplicate internal log identifier keys, when exporting log JSON
2025-08-31 12:59:09 +09:00
Ingan121
1a03a7e484 Use temp storage for logs from incognito windows 2025-08-30 23:58:41 +09:00
Ingan121
721d964c5c Disable persistence for incognito windows 2025-08-30 23:46:04 +09:00
Ingan121
de8ce64157 Fix persistent randomly failing 2025-08-30 23:31:04 +09:00
Ingan121
26653092b9 Misc 2025-08-30 21:23:31 +09:00
Ingan121
5d7991f9fa Check sessionTypes instead of persistentState when denying, just like the real CDM 2025-08-30 20:44:07 +09:00
Ingan121
11637a784f * Fix the collapse button bar in dark mode
* Fix mks.remove() and the session remover in panel UI ignoring the origin
* Misc logic changes
2025-08-30 19:56:39 +09:00
Ingan121
55a910e4fe * Refactor the persistent log saving logic to use one log entry for all sessions associated with a pssh on a specific origin
* 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
2025-08-30 19:30:45 +09:00
Ingan121
19d14fb28b * Small redesign after the merge
* 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
2025-08-30 15:34:10 +09:00
Ingan121
43274a6115 Merge pull request #10 from SunilPrasadRegmi/master
Please Merge this Brother!!!
2025-08-30 14:20:33 +09:00
Sunil Prasad Regmi
f79b9652b5 Merge branch 'Ingan121:master' into master 2025-08-29 20:25:19 +05:45
Sunil Prasad Regmi
312fa127e2 Update README.md 2025-08-29 20:21:36 +05:45
Sunil Prasad Regmi
a4976332b8 Update README.md 2025-08-29 20:20:37 +05:45
Sunil Prasad Regmi
4837d3a87a Fixup Yeah! 2025-08-29 20:16:29 +05:45
Sunil Prasad Regmi
af64409715 Added More Functionality So Users Can Have Less Annoy
yes! i mean that
2025-08-29 20:09:26 +05:45
Sunil Prasad Regmi
242c329b22 Update panel.css 2025-08-29 19:59:03 +05:45
Sunil Prasad Regmi
6de5c7b2c4 Update panel.js To Support New Handy Features 2025-08-29 19:57:34 +05:45
Sunil Prasad Regmi
39653dfd8a Prepare for saving commands and not limiting to Shaka Packager
yeah, i am saying that.!
2025-08-29 19:49:28 +05:45
Ingan121
d563b48912 Misc 2025-08-29 23:02:06 +09:00
Ingan121
e4eff06567 * Support removing individual log entries
* Fix scrolling to top when clicking the copy links
2025-08-29 22:58:18 +09:00
Ingan121
c856ab9d07 Support persistence regardless of browser CK handler's persistence support 2025-08-29 22:33:35 +09:00
Ingan121
a10eef88bf * Add a separate error viewer popup for long errors
* 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
2025-08-29 20:22:15 +09:00
Ingan121
7bb893e31e * Some refactor for persistent license support
* 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
2025-08-28 23:51:14 +09:00
Ingan121
bbd73bd587 * Prefer decoded WRM Header instead of raw base64 initData on PlayReady remote, unless sg_api_conf.prPsshAsIs: true
* It is always used for logging regardless of that SG conf, to prevent duplicate log entries when switching PR local and remote
2025-08-28 12:49:05 +09:00
Ingan121
ea549d7d9a Add getStatusForPolicy hook 2025-08-27 23:31:30 +09:00
Ingan121
0749632fa4 Misc optimization 2025-08-27 20:59:55 +09:00
Ingan121
6a41be227d * Omit {secret} header if it's not provided in JSON
* Allow SuperGeneric devices to be imported without having a base URL set ('host' key)
* Abort remote requests if expected key is not found
* Prevent duplicate log entries if a entry was added while the panel was open
2025-08-27 20:56:51 +09:00
Ingan121
9e429479d1 Misc 2025-08-27 00:41:28 +09:00
Ingan121
1c48859e90 * Misc panel UI change
* Remove old dark mode config leftover
2025-08-26 22:52:33 +09:00
Ingan121
0e9486393a * New dark mode styles bcs why not
* Partly inspired by ingan121.com/index.css
2025-08-26 22:33:43 +09:00
Ingan121
7309882004 * Add newline to exported remote devices
* Fix the toggle switch (to remove profile) not getting enabled when switching from <no origin> to a overridden origin
2025-08-26 20:57:39 +09:00
Ingan121
ca90cbac2a * Don't show the reload button when editing profiles of another site
* Fix typo in the codebase
2025-08-26 20:17:48 +09:00
Ingan121
88f743d5a5 * Allow putting device names dynamically in the SuperGeneric API URL field
* 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
2025-08-26 20:09:35 +09:00
Ingan121
4254856826 Ignore invalid serverCert config 2025-08-25 23:19:00 +09:00
Ingan121
b4726880f1 * Fix Local Widevine not actually setting the server certificate
* Fix keys from Bitmovin demo mistakenly being included in hardcoded.js (in contradiction of the comments above)
2025-08-25 23:17:44 +09:00
Ingan121
a249a8d6ae Misc consistency 2025-08-25 22:26:02 +09:00
Ingan121
aa1b0ff95e Misc 2025-08-25 20:52:44 +09:00
Ingan121
e262977381 Fix server certificates not being used with "webm" initType in Widevine Remote 2025-08-25 20:48:00 +09:00
Ingan121
706310c25b Fix borked manifest combobox 2025-08-25 20:27:53 +09:00
Ingan121
4e9e7cf7ba * Add support for forced client ID encryption mode
* One more refactor to remove redundancy
2025-08-25 20:15:11 +09:00
Ingan121
0a69dc3204 * More friendly error messages for remote failures
* Prevent error message showing when a page calls close() on unload
* Add support for server certificates for Widevine remote
2025-08-24 22:56:14 +09:00
Ingan121
330988d926 Misc 2025-08-23 22:56:57 +09:00
Ingan121
2c51730486 Misc design change 2025-08-23 22:53:46 +09:00
Ingan121
ba9d4c6a52 * Better error notification (prevent unnecessary multiple notifs, etc.)
* Add support for overwriting devices
2025-08-23 22:47:08 +09:00
Ingan121
7797ebf6b3 * Update HardcodedDevice to reflect the code change that mandated returning sessionKey 2025-08-23 21:01:56 +09:00
Ingan121
665853f6da * Refactor to use the same device interface when parsing license (attempt to make it survive config changes mid-run)
* 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
2025-08-23 20:32:28 +09:00
Ingan121
6cabc3c1ce Remove remote workflow queueing that is indeed useless and impossible to fix 2025-08-23 15:42:33 +09:00
Ingan121
460b1d4546 * Remove unused argument
* Temp commit that adds queueing for remote requests (attempt to fix CDRM invalidating second sessions)
  * Will be removed in the next commit cuz I realized queueing the whole workflow (getReq+parseLic) is not possible if webpage generateRequests in parallel
2025-08-23 15:41:29 +09:00
Ingan121
f19ecf5fc1 Add support for intercepting ClearKey EME requested with decodingInfo 2025-08-23 01:10:23 +09:00