Skip to content

Conversation

@ovsky
Copy link
Owner

@ovsky ovsky commented Dec 4, 2025

This pull request introduces a new Password Manager feature and updates the user interface to provide a more cohesive and modern look, especially in the settings area. The most notable changes are the addition of Password Manager source files, integration of the Passwords tab in the menu, and a comprehensive restyling of the settings page to match the new Passwords UI theme.

Password Manager Feature Integration

  • Added PasswordManager.h and PasswordManager.cpp to the build sources in CMakeLists.txt, laying the groundwork for password management functionality.
  • Added a "Passwords" menu item to assets/menu.html and implemented the corresponding handler to open the Passwords tab, integrating password management into the main browser menu. [1] [2]

Settings Page UI Redesign

  • Overhauled the CSS in assets/settings.html to introduce a dark purple theme, update colors, spacing, and typography, and align components with the Passwords UI for a consistent look and feel.
  • Refined styles for interactive elements (toggle switches, buttons, pills, chips, and input fields) to improve usability and visual clarity, including larger controls, better focus states, and more distinct accent colors. [1] [2] [3]
  • Enhanced layout and component grouping, such as headers, debug/info panels, and DRM sections, for better readability and modern appearance. [1] [2] [3] [4]

These changes collectively improve both functionality (by adding password management) and user experience (through a more attractive and unified UI).

ovsky added 19 commits December 4, 2025 14:53
Introduces PasswordManager.cpp and PasswordManager.h, providing a Chrome-like password manager with secure credential storage, autofill, password generation, import/export, blacklist management, and optional master password protection. Includes platform-specific encryption, form detection, and password strength checking.
Implements password manager callbacks and JS bindings for password form detection, autofill, save/update prompts, and password management UI. Adds support for exporting/importing passwords, password statistics, and credential CRUD operations. Integrates password manager features with the tab's lifecycle and exposes relevant JS APIs for passwords.html and page scripts.
Included PasswordManager.h and PasswordManager.cpp in the SOURCES list in CMakeLists.txt to ensure they are compiled with the project.
Integrates a password manager into the UI, including initialization, JS bindings for password management actions, and support for password save prompts. Adds methods for handling password CRUD operations, import/export, autofill suggestions, and password statistics. Updates UI.h and UI.cpp to support these new features.
Introduces a password save bar with UI, styles, and JavaScript logic for prompting users to save passwords. Includes auto-save countdown, domain extraction, and response handling for save, never, and close actions.
Introduces a new passwords.html file for Ultralight Browser, providing a UI for viewing, adding, editing, deleting, importing, and exporting saved passwords. Includes password strength checking, settings modal, and support for dark mode.
Introduces a new 'Passwords' menu item and corresponding action handler to open passwords in a new tab if available.
Enhanced the copyToClipboard function to use a fallback method with a temporary textarea when navigator.clipboard is unavailable or fails, improving compatibility across browsers and devices.
Updated CSS variables and styles for a more modern dark theme by default, refined light theme, and enhanced UI elements such as buttons, modals, and lists. Improved color palette, shadows, border radii, and transitions for better visual consistency and accessibility. Adjusted dark mode logic to default to dark unless light is explicitly requested.
Introduces a new UI element to display autosave countdown and status in the password save bar. The autosave timer is increased from 5 to 10 seconds, and related text updates are handled for improved user feedback.
Updated the CSS in settings.html to use a dark purple color scheme matching the Passwords UI. Improved layout, spacing, and component styling for better visual consistency and accessibility. Added a settings icon to the header and refined button, input, toggle, and panel styles for a more modern look.
Added !important to border-radius and set appearance to none for better cross-browser consistency in the settings search input.
Introduces a TabViewSettings struct to encapsulate settings like JavaScript and hardware acceleration for each tab. These settings are now passed at tab creation and applied to the ViewConfig, allowing new tabs to reflect current browser settings while existing tabs retain their original configuration.
Introduces a prompt bar for enabling DRM (Widevine) required for video playback. Includes UI elements, styling, and JavaScript logic to handle user responses for enabling DRM once, always, or dismissing the prompt.
Introduces the IsDrmSite method to check if a URL matches a DRM site, independent of the enabled_ flag. Updates both DRMSettings.cpp and DRMSettings.h to support this functionality.
Introduces a DRM prompt bar to allow users to enable DRM WebView temporarily or permanently when visiting DRM-protected sites. The DRM WebView setting is now disabled by default, requiring user opt-in. The MaybeOpenDrmTab logic is updated to show the prompt if DRM is required but not enabled, and new methods for showing, hiding, and handling responses from the DRM prompt bar are added.
DRM settings are now loaded and their enabled state is set based on the browser's settings.json, making browser settings the source of truth for enable_drm_webview.
Restricts cmake build parallelism to 2 jobs in the ARM64 GitHub Actions workflow to prevent compiler crashes under QEMU emulation.
Added libssl-dev to the package installation steps in both build-linux and build-linux-arm64 GitHub Actions workflows to ensure required SSL libraries are available during builds.
@ovsky ovsky merged commit e517cec into dev Dec 4, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants