-
Notifications
You must be signed in to change notification settings - Fork 0
Refactor and Enhancement of Settings, Features and Codebase #53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
Introduces EscapeShellArg to safely escape shell arguments by wrapping them in single quotes and handling embedded single quotes. Updates Utils.h to declare the new function.
Replaces usage of const_cast for calling Decrypt on encrypted passwords with direct calls to Decrypt. This improves code clarity and avoids unnecessary casting in several methods of PasswordManager.
The DRMSettings::ResetToDefaults method now sets 'enabled_' to false by default, requiring users to opt-in. This change improves user control over DRM activation.
Replaces manual quoting with util::EscapeShellArg for file and folder paths in shell commands on Apple and Linux platforms. This improves security and correctness when opening or revealing downloads with potentially unsafe characters in paths.
Added checks to ensure manifest.json and content.js are successfully created in CreateExtensionTemplate. If file creation fails, an error is logged and the function returns false to prevent further issues.
Replaces strncmp with std::string_view logic to more reliably skip internal file:/// URLs when injecting content scripts.
Replaces strncmp-based URL scheme checks with std::string_view for improved readability and safety. Removes temporary debug logging from OnAddressBarNavigate and adds a file open check when importing passwords.
Updated the downloads page styles to use a dark purple theme consistent with Passwords & Settings. Improved button, card, and status styling, enhanced empty state messaging, and added custom scrollbar styles for a more modern UI.
Refactored CSS variables and styles in extensions.html to use a dark purple color scheme, matching the Passwords & Settings pages. Improved button, card, modal, and footer styling for better visual consistency and modern appearance.
Updated the .modal-body CSS to include a max-height and vertical scrolling. This ensures modal content remains accessible and scrollable when it exceeds the viewport.
Updated the menu to display the Ctrl+P shortcut for the Passwords item and added the corresponding shortcut mapping in shortcuts.json.
Changed the keyboard shortcut for opening extensions from Ctrl+Shift+E to Ctrl+E in both the menu and shortcuts configuration for consistency and easier access.
Menu items now display keyboard shortcuts in separate, styled badges for better readability and visual consistency. Updated HTML structure and added CSS for the new shortcut-badge element.
Replaces the placeholder call to OnRequestNewTab with OnRequestNewWindow when the 'new-window' menu item is selected, enabling proper handling of new window requests.
Added 'Ctrl+N' to shortcuts.json to support opening a new window.
Implemented 'new-window' and 'open-passwords' actions in RunShortcutAction. Added OnRequestNewWindow handler to launch a new application instance on both Windows and non-Windows platforms. Exposed OnRequestNewWindow to JavaScript.
Introduces the OnRequestNewWindow method to handle new window requests in the UI class interface.
Added a check to prevent dark mode styling from being applied to internal browser pages such as settings, passwords, extensions, and others, as these pages have their own dark styling.
Introduces a new UI section in settings for specifying URL patterns where the dark theme should be disabled. Includes related styles, textarea input, help text, and JavaScript logic for hydrating, tracking, and saving the excluded sites list.
Introduces several new settings to settings_catalog.json, including options for dark theme exclusions, vibrant window theme, compact tabs, accessibility features, privacy controls (JavaScript, web security, cookies, Do Not Track, custom user agent), download preferences, performance options (smooth scrolling, hardware acceleration, storage), and developer tools (remote inspector, performance overlay). These additions enhance user customization, privacy, accessibility, and developer support.
Introduces support for the dark_theme_excluded_sites setting in both loading and saving user settings, ensuring this value is persisted and restored alongside other settings.
Introduces a new setting, dark_theme_excluded_sites, allowing users to specify newline-separated URL patterns where dark mode should not be applied. Updates the settings payload, UI handling, and dark mode application logic to respect these exclusions.
Implements CSS injection methods for reduce motion, high contrast, smooth scrolling, and transparent toolbar features. Adds vibrant window theme support for Windows using DWM API. Updates ApplySettings to apply these features based on user settings, improving accessibility and UI customization.
Adds logic to apply reduce motion, high contrast, and smooth scrolling CSS to the view when the DOM is ready, based on UI settings. Improves accessibility support for users with these preferences enabled.
Moved browser internal page detection from JavaScript to a fast C++ check in ApplyDarkModeToView, reducing unnecessary JS execution for internal pages with their own dark styling. Added static IsBrowserInternalPage method to centralize internal page checks.
CSS injections for dark mode, reduce motion, and high contrast are now skipped for internal browser pages to improve their loading speed and avoid overriding their native styling.
Adds caching of start page and internal browser pages HTML to memory for instant loading, reducing file I/O delays and eliminating white flashes when opening new tabs. Refactors tab creation and shortcut actions to use cached HTML when available, streamlining new tab and internal page display.
Replaced or added custom SVG favicons with updated colors for downloads, extensions, history, new tab, passwords, release notes, and settings HTML pages to improve visual consistency and branding.
Added favicon.webp and logo.png to the project to provide branding and improve site appearance.
Replaces inline SVG favicon strings with base64-encoded SVGs for browser internal pages to improve CSS compatibility and consistency. Also updates some icon choices and descriptions for clarity.
Changed the SVG favicon fill color from #7c6aef to #c2bce8 in downloads.html for improved visual consistency.
Introduces UpdateTabFavicon to update a tab's favicon using a data URL. The favicon cache logic now checks a disk cache first and returns an empty string instead of a default /favicon.ico URL, improving favicon handling and display reliability.
Adds a script to fetch favicons from web pages and a callback to process the fetched favicon data. The callback forwards the favicon to the UI for caching and updates the tab's favicon display.
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.
This pull request updates the visual design and theme of both the
downloads.htmlandextensions.htmlpages to create a unified dark purple appearance that matches the Passwords & Settings section. The changes focus on consistent color schemes, improved UI elements, and enhanced user experience through refined styling and component layouts, refactors code and makes more settings working properly.Theme and Color Consistency
assets/downloads.html,assets/extensions.html) [1] [2] [3]assets/downloads.html,assets/extensions.html) [1] [2]UI Component Styling
assets/downloads.html,assets/extensions.html) [1] [2] [3] [4] [5]assets/extensions.html) [1] [2]Layout and Structure Enhancements
assets/downloads.html,assets/extensions.html) [1] [2] [3]assets/downloads.html)Status and Progress Indicators
assets/downloads.html) [1] [2] [3]Usability Improvements
assets/downloads.html)assets/extensions.html)These changes collectively modernize the look and feel of the downloads and extensions pages, providing a more cohesive, visually appealing, and user-friendly experience, and much more under the hood.