feat(widevine): add CDM download splash screen with i18n support#8
Merged
flexiondotorg merged 5 commits intomainfrom Mar 21, 2026
Merged
feat(widevine): add CDM download splash screen with i18n support#8flexiondotorg merged 5 commits intomainfrom
flexiondotorg merged 5 commits intomainfrom
Conversation
- Add shx dev dependency for cross-platform build tasks - Update build script to copy splash.html to dist directory - Create frameless splash window during CDM initialization with 500ms minimum display time - Style splash with dark maroon background, centred 256x256px icon, and gold spinner - Scope logging output for clarity during initialization sequence Signed-off-by: Martin Wimpress <code@wimpress.io>
Add WaylandWpColorManagerV1 to the disable-features switch to reduce console clutter when the compositor doesn't fully implement wp_image_description_v1 protocol. Signed-off-by: Martin Wimpress <code@wimpress.io>
…SS injection complete - Move minDisplay and cssReady promise declarations to top level - Resolve cssReady only on first page load via did-finish-load - Coordinate splash.close() and win.show() with Promise.all() Ensures clean transition from splash to fully-styled Apple Music without unrendered flash. Signed-off-by: Martin Wimpress <code@wimpress.io>
…age support - Add LOADING_TEXT lookup table covering 31 languages - Implement getLoadingText() to match system language with fallback to English - Apply RTL text direction for Arabic and Hebrew - Pass text and lang query parameters to splash HTML - Maintain hardcoded English fallback for direct browser preview Signed-off-by: Martin Wimpress <code@wimpress.io>
Contributor
There was a problem hiding this comment.
1 issue found across 4 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/main.ts">
<violation number="1" location="src/main.ts:215">
P1: The splash can hang indefinitely because `cssReady` is only resolved on `did-finish-load` while `win.show()` is gated behind that promise.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
Add did-fail-load event handler to resolve the cssReady promise when the Apple Music page fails to load due to network errors, DNS failures, or service outages. This prevents the splash screen from hanging indefinitely; it now closes and the main window shows the load error state instead. Signed-off-by: Martin Wimpress <code@wimpress.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a Widevine CDM download splash screen that displays whilst the native Widevine module is being fetched. The splash includes localised loading text in 31 languages with right-to-left support for Arabic and Hebrew. Lifecycle coordination ensures the splash remains visible until both a minimum display duration has elapsed and the app's main CSS has been injected.
Changes
Testing
Related Issues
Resolves Widevine CDM download user experience requirements from sprint planning