Avoid the lag when entering/exiting fullscreen on a YouTube video - by hiding the heavy fluff while transitioning

Latest Version

Version
2.10.0
Update
April 19, 2024
Size
21.68KiB
Developer
Category
Users
2,000+
Rating
4.63291 ★
Manifest Version
3
Web Store Status
Languages Support
English (UK)
See more
Permissions
See more

YouTube Fast Fullscreen Toggle Extension

There's an annoying lag period when entering/exiting fullscreen on a YouTube video. On my machine, it's normally ~2 seconds; but with a large playlist expanded, it gets up to ~3 seconds. This extension reduces the transition time to almost nothing.

Supported fullscreen transitions:

- Clicking the fullscreen button
- Pressing the F key
- Double-clicking the video

Unsupported fullscreen transitions (still slow):

- Escape
- F11

Note that Firefox doesn't seem to have the same issue as Chrome; so in Firefox the improvement is barely noticeable.

In Vivaldi, there is unfortunately an intermediate step in the fullscreen transition, which I can't seem to do anything to avoid. It appears to be due to the toolbars being hidden/shown at a different moment to when the browser actually enters/leaves fullscreen.

Technical detail:

This bug's been present for years now, and I got so sick of it that I spent one night experimenting to find a way to avoid it - and I found one! The extra HTML content on the page (playlist, recommendations, comments, description, likes, etc.) is pretty heavy, and when you toggle fullscreen, YouTube moves it around in the DOM, which ends up incuring a fair bit of processing. I've worked out that it's significantly faster to hide that extra content before transitioning, then display it again afterwards once it's reached its new position.
Read more

Source Manifest.json

{"update_url": "https://clients2.google.com/service/update2/crx", "name": "YouTube Fast Fullscreen Toggle", "description": "Avoid the lag when entering/exiting fullscreen on a YouTube video - by hiding the heavy fluff while transitioning", "version": "2.10.0", "manifest_version": 3, "icons": { "128": "icon.png" }, "content_scripts": [ { "matches": ["https://www.youtube.com/*"], "run_at": "document_end", "js": ["contentScript.js"] } ]}
Read more