This is a roadmap/to-do list of things that are planned to be fixed or developed for Page Shadow.
- Update the UI ? (update to Bootstrap 5 ?)
- Advanced settings design with tabs
- Interface dark mode
- Update popup design (icons, etc.) -> improve popup design: icons for option + settings ?
- Alternative popup design ?
- Option to attenuate the color of the images for the "Increase contrast" mode (see https://web.dev/prefers-color-scheme/#dark-mode-best-practices)
- Import Font Awesome with npm
- Filters: don't update if file "Last-modified" header from server has not changed compared to the local version and last update
- Show update available for filters (check last-modified header)
- Display a warning after a certain time to ask the user to archive their settings
- Auto backup to Cloud option
- Settings for developpers in the advanced settings page
- User suggestion: It would be great if the brightness reduction without night mode and the brightness reduction with night mode could be combined.
- Separate brightness reduction and night mode settings (renamed "Blue-light reduction filter")
- When selecting a custom theme and then choosing a classic theme, the other tabs keep the custom theme
- Bug with some websites (Github) : Increase contrast setting cannot be applied -> classes on body element are removed
- Other bug: the settings are not working when changing of a page on Github -> document.body changes between page refreshing
- (Minor) Background image on body element is not detected
- (Minor) SVG with use element is not working with Invert colors function (see Leroy Merlin website)
- Optimize background detection (method "detectBackground" of PageAnalyzer class)
- Preserve bright colors
- Option in popup to enable/disable this detection
- Keep good text color contrast
- Bright color detection: fix text color?
- Further optimize content.js code
- Enhance UX of Modern popup theme
- Attenuate the "flash" when navigating between pages
- The slowdown process have been identified: getSettings -> cache system to implement for settings
- Increase contrast : use only one stylesheet + CSS variable to apply default themes
- Same with custom themes -> use CSS variables
- Try to simplify the code of content.js
- Rework the Mutation Observers to simplify the code and fix somes issues (see the mutation-observers-reworking branch) -> Wrapper class
- Attenuate the "flash" when changing settings
- waitAndApply... -> class
- Logging ? -> No
- (Minor) Texts with gradient are not visible (example on frandroid.com)
- (Minor) Changing custom theme settings should apply in real-time to websites using the theme
- (Medium) Issue on Firefox with Mutation Observer (Invert colors)
- (Medium) Firefox bug: Page Color inversion - broken float: https://stackoverflow.com/questions/52937708/why-does-applying-a-css-filter-on-the-parent-break-the-child-positioning (difficult to fix)
- Seems to be fixed on latest Firefox versions
- (Medium) On Github, when navigating between pages and going back with the browser back button and using the "Decrease brightness" or "Blue light reduction filter", sometimes the effect is increased (double)
- (Important) Update to Manifest v3 (check manifestv3 branch)
- Bugs linked to MV3 migration:
- Filters don't update on the first install of the extension (update also broken ?)
- Auto cloud backup doesn't work: error with window.navigator.platform not available in Background Service Worker
- Bugs linked to MV3 migration:
- Option to attenuate color of Preserve color function
- (Minor) Performance issue on Firefox when loading a preset or restoring setting archive -> small optimization have already been made
- (Medium) Fix Preserve bright color on some website (wrong background detection)
- The function detects extension's theme background color and not actual background colors of some elements, randomly
- (Minor) When dark mode is enabled in the OS, the Readme file in the settings appear inverted (black text on white background when Dark theme is enabled)
- Manifestv3 for Firefox
- Display an information popup to inform users to allow the permission "Access data on all websites" for the extension to work properly
- Only display confirmation on Advanced settings page reload/exit when a change of the settings is unsaved (uses existing code for displaying icon)
- Use SHA-256 to exchange URLs between background script and content script
- (Medium) Fix Preserve bright color white text on white background/black text on black background
- Similar to the issue of wrong background detection
- (Minor) When using the Modern popup theme, if the features Invert colors or Blue light reduction filter are not enabled, when opening the options of these features, the options displayed are not the stored options (no checkbox checked, default color temperature)
- (Medium) Fix displaying of settings with the popup theme "Modern"
- (Minor) User bug: button to validate the hour of auto enable/disable (popup) for the extension is not displayed and it's not possible to scroll to access it (only on Firefox)
- (Minor) Page Shadow filters: seem to flood HEAD request
- Limit flashing when opening a website and detecting colored elements?
- Experimental - Test needed. Sometimes the "preApplySettings" message is randomly not received
- Not working with custom themes - fixed: cache custom themes settings
- Add border radius to select/inputs
- Merge utils/filterProcessor.js and FilterProcessor class
- Auto cloud saving/backup: don't save the date when an error occurred
- Auto cloud saving/backup: display an alert window in the popup if there was an error when auto saving in the cloud + save date/hour when a saving error occurs
- Compact popup theme
- Automatic selective invert image color (for logos and black text images)
- Don't work when the image is not yet loaded (reproduced on this page: https://tungmphung.com/reinforcement-learning-q-learning-deep-q-learning-introduction-with-tensorflow/)
- (Very minor) Fix icon on "Missing permission" popup
- (Medium) Some websites reset the style attribute of the html, which force the default theme for the Increase contrast feature by deleting the CSS variables
- Reproduced on this website (very random, Maj+F5 to reproduce): https://formation.lefebvre-dalloz.fr/actualite/scrum-comment-animer-la-retrospective-du-sprint
- (Very minor) When classic popup theme is enabled, the help tooltip for the feature "Attenuate colors" is wrong (not complete)
- (Medium) Auto cloud saving/backup: fails when there is a long blacklist/whitelist (maybe also for the list of websites for presets?)
- (Very minor) Some websites causes an error in the console "e.parentNode.closest is not a function", without visible impacts
- (Medium) Filters for body element not working, add possibility to invert body background image?
- (Medium) Website: webdeveloper.beehiiv.com/p/build-react-400-lines-code - text color not applied when Increase page contrast is enabled -> fixed "forceDisableDefaultFontColor" filter
- (Minor) Bug with error in filters: open errors from a built-in filter, then the errors from custom filter: the window will be blank (random)
- (Minor) Transition background color (background white) blink when Increase page contrast is enabled - Exemple: https://iq.opengenus.org/lstopo-in-linux/
- Reduce delay applying reduce brightness/blue light reduction filter + invert entire page
- Detect bright color text + enable for bright color inversion/color reduction?
- Optimize performance
- Debug mode
- Fix dark image detection (using contours detection?) + enable by default?
- Optimize by reducing size of the image before analyze
- Finalization: continue to test and adjust advanced settings for: performance optimizations and dark image detection
- Add advanced settings for dark image detection?
- Optimize performance settings, dynamic throttling?
- Prepare release 2.11: Readme, Changelog, etc...
- Filters module improving
- Filters: UI to report a website problem
- Release 2.11 - don't forget to change version date
- Adjust throttling algorithm, and performance settings
- Bug with iframes => example comments on Franceinfo website
- Bug with invert entire page when the extension is built in prod mode => was caused by the gulp-clean-css plugin
- Process pseudo elements
- More optimizations - test
- Final tests (Chrome/Firefox)
- When releasing: update version date, update changelog (last bugfixes), compare code between MV2 and MV3 versions
- (Minor) On local opened page, the right click actions doesn't work (Chrome only) -> seems OK, nothing fixed
- (Medium) HTML class used by Page Shadow to invert entire page is reseted on some websites. Exemple: https://spring.io/tools
- (Minor) Issues with Shadow DOM: Google Earth broken with "Increase page contrast" mode -> fixed by disabling auto override with filter rules ; to definitely fix: detection of transparent backgrounds in Shadow Roots
- (Very minor) Sometimes when opening custom themes settings, the link color of the custom theme 1 is copied to the text color randomly + edit icon displayed
- (Minor) Shadow DOM is not always detected => example comments on Franceinfo website
- (Medium) Dark image detection not working on image from cross-origin domain (cf Wikipedia articles)
- (Major) Still some errors with QUOTA_BYTES_PER_ITEM in cloud archive. The chunk method need to be fixed
- (Medium) Bug with fast apply mode and iframes + preset: iframe use global settings instead of preset settings from parent page
- (Minor) Background gradient not detected as bright colors
- (Minor) Fix transition white that disable some transitions? -> no, seems OK
- (Minor) Filter: disable class for matched filter on an element but no longer matched following changes in the element -> disabled by default
- Add possibility to change the filter intensity for the Attenuate colors feature?
- Add possibility to not invert bright color for the Invert colors features?
- Increase the number of presets/custom themes?
- Publish Manifestv3 for Firefox - check Cloud backup working on Firefox
- (Medium) Some images are ignored by the dark image detection due to CORS restriction
- (Minor) Logo not detected as dark image when increase contrast is enabled (still detect with invert entire page) on: https://www.fastmail.com/blog/why-we-use-our-own-hardware/
- Due to the path sub-element with fill = "currentcolor" and a style stating fill = "inherit"
- FAQ for common questions?
- Improving codebase
- Comment the code: doc for methods/functions
- Simplify code applying Shadow Roots styles?
- Separate code treating mutations of page elements to a separate class?
- Separate method applying mutation observers to another class?
- Modularize content.js classes with less dependencies between classes?
- Separate each filter (increase contrast, reduce brightness etc.) into a class?
- Filters module improving
- Filters: UI to report a website problem
- Others :
- Ignore get parameters (after ? character) in URL for preset list and whitelist/blacklist list?
- Auto detect website already having a dark mode to auto disable Increase contrast and Invert entire page?
- Prevent the attenuation of subelements (when enabling Colored elements attenuation)?
- Several "shades" of background color for the themes? -> detect element with lightness < 0.05 (use existing hsl code)
- No longer rely on classes for styling (filter rules and background detection) -> auto generation of a CSS style sheet? (see https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/insertCSS)
- Filters module improving
- Filters: Element picker to create custom rule easily
- Filters: match if an element is present in the page -> to match sites based on Medium/Gitlab/other types (conditional filter)
- Store filters on a Github repository?