ThomazPom / Moz-Ext-UltimaDark

Web Extension that uses agressive technique to get dark mode everywhere
12 stars 3 forks source link

[NOT AN ISSUE] Directions to take, discussion about versions #53

Open ThomazPom opened 6 months ago

ThomazPom commented 6 months ago

Sometimes UltimaDark has to block a resource untill until editing it while browser is able to load big resources in chunks.

This causes slow loading times on websites with moderate to big resources because they ends up chunked, and UD - (UltimaDark) delays them until resource integrity is complete

1.5.21 was about an internal feature called "LiveChunkRepair" which aim to detect where the chunk integrity ends instead of rejecting it as a whole. 1.5.22 is a rollback 1.5.23 is a comeback

ThomazPom commented 6 months ago

@Vintagemotors

ThomazPom commented 6 months ago

1.5.23 has been published ! It brings back the LiveChunkRepair internal feature which improves a lot page load speed and feel, now working

Vintagemotors commented 6 months ago

Sounds good! I will test and report back. As far as feature priorities go I would focus on maximizing how many sites can be darkened first and then add user defined global and per page link colors (unless link colors are comparatively easy to implement) Broader browser compatibility would be nice but I wouldn't consider it a priority. However, testing on older browsers can reveal issues that are hiding in newer browsers since they don't have nearly as robust of error handling - you never really know what current browsers are doing in the background to keep things working.

ThomazPom commented 6 months ago

Maximizing compatibility with various websites is indeed a priority, but you guessed right, implement general overriden colors is very easy to do as it is not "outside the tracks" like all specials methods explained in the readme. Let's take few next days having a great settings panel, with great options and an intuitive user experience !

Vintagemotors commented 6 months ago

I'm thinking something along the lines of

On / Off

Recolor Images ☑

Enable Cache ☑ (May improve performance)

Included sites

 
 

Excluded sites

 
 
 

Report Broken Site (button)

Global Link color override (color picker box)

Global Background color override (color picker box)

Global Text color override (color picker box)

Global Accent color override (color picker box)

Override This site's Link color (color picker box)

Override This site's Background color (color picker box)

Override This site's Text color (color picker box)

Override This site's Accent color (color picker box)

Source Code (Hyperlinked button)

Donate (Hyperlinked button)

ThomazPom commented 6 months ago

I'm grateful for your labeling and other contributions in this issues section!

ThomazPom commented 6 months ago

I just released version 1.5.24, and there's a non functional settings page showing my initial ideas. Feel free to drop any suggestions!

Vintagemotors commented 6 months ago

I would like a "Report site" button at the bottom of the normal extension options along with the "This site" color overrides, if you feel that "Global Overrides" would clutter the main settings that's fair enough.

ThomazPom commented 6 months ago

Happy New year @Vintagemotors ! I plan to integrate the 'This Site' option into the popup, but I haven't created a mockup for it yet, as it will be a very visible yet non-functional feature. Same for 'Report This Site' option. I believe both are valuable ideas that I intend to retain. 👍

ThomazPom commented 6 months ago

Version 1.5.26 doesn't introduce new features, but it addresses structural issues and resolves theorized bugs, enhancing overall consistency, stability, and flexibility. These improvements were essential to incorporate user settings, ensuring a more robust and user-friendly experience.

ThomazPom commented 6 months ago

1.5.27:

  1. New method (idk_twice) for restoring colors on items which uses variable in element style ( note how tags colors are now working on https://github.com/ThomazPom/Moz-Ext-UltimaDark/issues )
  2. Speed improvement
  3. Bug fixes on regexpes
  4. Better variables isolation technique,
  5. Fixed some backgrounds being transparents
  6. Fixed liveChunkEditor random behaviour
  7. Fixed a loop which could occur and literraly hangs the page forever and the browser
  8. Found out polyfills might could mess up my own code, fixed a bug with shorthand properties

Was a hard one !

ThomazPom commented 6 months ago

Current versions, particularly 1.5.28 (yet to be released), aim to enhance speed and stability due to my dissatisfaction with blinking page items during prolonged loading times. The implementation involves challenging code development, causing a significant delay between versions. These improvements are essential to address critical issues before finalising the options page. I am well aware of organisational work and labelling you did and very grateful about it.

ThomazPom commented 6 months ago

Version 1.5.28 is now online.

And it's all about enhancing speed, stability, and preventing certain page elements from blinking during loading.

Vintagemotors commented 6 months ago

https://github.com/ThomazPom/Moz-Ext-UltimaDark/issues/57#issuecomment-1880217327

ThomazPom commented 6 months ago

1.5.29 (yet to be released) is about

  1. Handling websites using web workers

  2. Avoiding white flashing when loading an iframe

ThomazPom commented 6 months ago

1.5.29 (yet to be released) includes a significant leap in the underpinnings of UltimaDark code. An extensive restructuring of the code was necessary, and it's fascinating to observe how each part of the code gradually finds its proper place. These improvements were essential to correctly handle websites using web workers and address some theorised structural issues. I can't overstate how much work has been done since 1.5.28 and how much time it takes but we might expect more site coverage, more speed, more reliability , more stability and quicker future fixes after that.

https://github.com/ThomazPom/Moz-Ext-UltimaDark/commit/c7310e4dc263f47e13a25fd9fcdde252c61e661d

ThomazPom commented 6 months ago

Version 1.5.29 is now live.

While it doesn't include all I had planned, enough has been achieved for a release.

  1. Significantly improved the UltimaDark code. I'm hopeful it won't introduce regressions, as I've taken care to restore every functionality. I hope I haven't missed any.
  2. Now handles websites using service workers, but a more understanding is needed : Functionality is optimal for https://soundcloud.com/helious-music and less effective for https://developer.chrome.com/docs/extensions/reference/api/webRequest?hl=en.
  3. Achieved more speed, reliability, and stability and the feeling is great.

Interestingly, I discovered a new darkening method with the same results. Initially, I thought this approach would be better, but it proved otherwise: Link to performance comparison (Note: This link may only work with version 1.5.29, as the function will be deleted in future versions).

Vintagemotors commented 6 months ago

I rolled my production browser back to 1.5.28 for now. I will continue to monitor for updates. Edit: confirmed performance and coloring regression in Floorp as well: White flashing prior to elements loading was corrected but some elements which were being recolored previously are no longer changing.

ThomazPom commented 6 months ago

Confirmed 1.5.29 : https://jsben.ch/4pkmK

ThomazPom commented 6 months ago

I'll restore the "Direct window" system.

image

Vintagemotors commented 6 months ago

I do not see 1.5.30 in the versions listing.

ThomazPom commented 6 months ago

Version 1.5.33 is now live.

The "Direct Window Export" system is activated for enhanced performance.

This release reinstates and enhances the functionality that addresses non-resolvable colors at level 3. I've categorized color resolution into four levels:

ThomazPom commented 6 months ago

Version 1.5.34 is now live.

Fixed colourisation bugs, added scrollbar as discussed in #42 ( Not as option yet ), fixed page breakage in a very specific case

Vintagemotors commented 6 months ago

Consider updating the hard minimum version from 48 to 57 in AMO as this is when the WebExtension APIs were introduced. It would be an unreasonable amount of work to back port UltimaDark beyond that point.

ThomazPom commented 6 months ago

Consider updating the hard minimum version from 48 to 57 in AMO as this is when the WebExtension APIs were introduced. It would be an unreasonable amount of work to back port UltimaDark beyond that point.

Done in 1.5.35 yet to be released

ThomazPom commented 6 months ago

Version 1.5.35 is now live.

Darkening randomly not applying fix & bugfixes, probable speed enhancement

ThomazPom commented 6 months ago

Version 1.5.36 is now live.

Fixing another case of darkening not applying, and again probable speed enhancement.

ThomazPom commented 5 months ago

Version 1.5.37 is now live.

Required Image edition core rewrite. Fixing image bugs is now easier.

ThomazPom commented 5 months ago

Version 1.5.38 is now live.

Fixing bugs, restored HTML4 edition feature disabled since 1.5.11

ThomazPom commented 5 months ago

Version 1.5.39 is now live.

I fixed a lot of underlying bugs

Version 1.5.40 is now live.

Fixed a bug with images introduced in previous version

ThomazPom commented 5 months ago

Version 1.5.42 is now live.

Fixed bugs

ThomazPom commented 5 months ago

Version 1.5.43 is now live.

Fixed bugs in image edition including it not properly disabling

ThomazPom commented 5 months ago

Version 1.5.44 is now live.

Fixed Meta , https://gearvr.net/wanted and related issues websites

ThomazPom commented 5 months ago

Version 1.5.45 is now live.

Fixed CSS parsing issues & some svg image with complex behaviour

ThomazPom commented 5 months ago

Hi @Vintagemotors UltimaDark has reached a critical point where making certain edits for optimal rendering on a website will impact other websites. An illustrative example (among others) is when websites incorporate shapes like circles or rectangles as logos parts or backgrounds for other elems. In such instances, determining the appropriate adjustment for color, whether to darken or lighten, becomes not possible, as either choice will impact a portion of websites.

Vintagemotors commented 5 months ago

@ThomazPom I still think that being able to detect the color of the background that text is being rendered over would help with contrast text issues. A site does not have to be 100% perfect or completely true to its intended design as long as it is not broken to the extent that it is no longer usable. Currently we still have various breaking issues on the sites mentioned in #6 once the more straightforward ones are resolved then you may consider including static changes for parts of some sites (like site logos and which icons to recolor) to ensure they are readable (this is something DarkReader does).

Vintagemotors commented 5 months ago

As to sites like manjaro.org with weird gradient shape backgrounds, frankly it isn't very readable with or without any page darkening extension so it may be best to just have an option to disable stylized background entirely on a per-site basis.

ThomazPom commented 5 months ago

Update 1.5.46 (not yet released) deliberately divides images into segments to better analyze individual parts, aiming to detect and preserve photos that should remain unaltered, whether by brightening or darkening. While this brings improvements for https://www.adele.com/Munich/, there are refinements required due to regressions observed on https://www.eevblog.com/forum/index.php.

ThomazPom commented 5 months ago

Hi @Vintagemotors

I hope you're doing well. I wanted to take a moment to apologize for any inconvenience caused by the delays in our releases. Currently, I'm juggling multiple commitments, including a paid project for a client and my daily job. I truly appreciate your enthusiasm and would love to stay connected more directly. Could we exchange WhatsApp or Signal information?

Looking forward to continuing our collaboration. Thomas

Vintagemotors commented 4 months ago

@ThomazPom Oh, sure! I have been working on some offline commitments also - so I didn't see this until now. I made a WhatsApp for this: I invalidated the link because it shows my phone number which I don't like. How about Telegram?

ThomazPom commented 4 months ago

@Vintagemotors, I've just established a WhatsApp Community dedicated to UltimaDark, aiming to facilitate efficient communication among us. Through this platform, we can seamlessly share announcements, form groups, accept member access either manually (current setting) or automatically, generate invitation links, and 'ive seen other functionalities. The versatility of WhatsApp offers us other possibilities, but does not (and must not) replaces of traditional GitHub issue comments. The chat format proves to be considerably quicker and more conducive to our discussions, enhancing our collaboration and productivity significantly.

Here is the link of the community ( Announcements ) https://chat.whatsapp.com/IImHAKJx8xMClvDfXEv1vA

Here is the link of the General discussions channel: https://chat.whatsapp.com/KnMmziA1dr1CaKG6snagiT

Vintagemotors commented 4 months ago

Joined.