|
4 | 4 | (function() { |
5 | 5 | 'use strict'; |
6 | 6 |
|
7 | | - // Two global stylesheet rules, injected at document_start on every document: |
| 7 | + // A global cursor rule, injected at document_start on every document: |
8 | 8 | // |
9 | 9 | // 1. cursor:none — this is a touch/kiosk stream; the pointer is a server-side |
10 | 10 | // software cursor baked into the VNC framebuffer, and unclutter only hides |
11 | 11 | // it while idle (it reappears over native <select>/date pickers). cursor:none |
12 | 12 | // on page content makes Chromium report a blank cursor to X, so none is drawn. |
13 | 13 | // |
14 | | - // 2. Reduce motion — the pod renders on the CPU (SwiftShader, --disable-gpu), so |
15 | | - // a page with many infinite CSS animations (e.g. sms.ndmu.edu.ph login: ~70 |
16 | | - // infinite animations) saturates the compositor, dropping the browser to |
17 | | - // ~11fps and flooding the VNC framebuffer with repaints — a laggy stream. |
18 | | - // Collapsing duration to ~0 and forcing one iteration stops the continuous |
19 | | - // repaints (measured 14fps -> 57fps) while STILL reaching each animation's |
20 | | - // end state and firing animationend/transitionend, so entrance animations |
21 | | - // and JS flows that await those events keep working. Effect is cosmetic: |
22 | | - // spinners freeze, fades/slides become instant. |
23 | 14 | // |
24 | 15 | // Re-applies on every navigation because the content script runs per document. |
25 | 16 | try { |
26 | 17 | const cs = document.createElement('style'); |
27 | | - cs.textContent = |
28 | | - '*,*::before,*::after{cursor:none!important}' + |
29 | | - '*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}'; |
| 18 | + cs.textContent = '*,*::before,*::after{cursor:none!important}'; |
30 | 19 | (document.head || document.documentElement).appendChild(cs); |
31 | 20 | } catch (_) {} |
32 | 21 |
|
|
0 commit comments