> I would probably only replace partial parts of the document and not a nav with a search input in it.
agreed, but that's *not* how specs work ... these need to address all edge cases too or ... good luck
@webreflection.bsky.social
> I would probably only replace partial parts of the document and not a nav with a search input in it.
agreed, but that's *not* how specs work ... these need to address all edge cases too or ... good luck
this is *very* close to a SSR hydration concept and while I welcome this feature as I think it's awesome for HN or X like streams (or chats or list-items, or ...) I wonder what happens if the page had an input in that <nav>, somebody started typing in it (a11y tools too) and that gets replaced ... π€
20.11.2025 14:17 β π 1 π 0 π¬ 1 π 0"Let's Call The Whole Thing Off" πΆπ΅
github.com/WebReflectio...
if you use Proxies and you bind methods returned on `get` trap, please read carefully why that's a bad idea and how to avoid doing that:
es.discourse.group/t/reflect-se...
so ... TOON is basically JSONH but 14 years later? ... cool π
medium.com/medialesson/...
github.com/WebReflectio...
VPN providers being like ...
en.wikipedia.org/wiki/Sickos#...
I guess the idea that a customer might be away from home isn't intuitive to A FUCKING AIRLINE
07.11.2025 11:21 β π 103 π 3 π¬ 3 π 1A list of locations in German
Great, so www.britishairways.com
π Displays in geo language rather than user language
π The language picker is at the bottom of a long page
π The language picker is in the current language, so in order to select "United Kingdom", I need to know what that is in German
honestly, as much as I hate User Agent sniffing, whenever I travel and find unreadable websites because they decided the lang should be the one I've just travelled to upsets me every. single. time
on top of that, mapping IP to languages is a waste of money for most cases, it requires a db + it fails
cleaning up signals effects automatically on vanilla DOM cases might be tricky ... the fact an inner node contains references to its parent makes it hard to do so via FinalizationRegistry but thanks to Proxy/WeakRef it's possible to make it easy: weaky π₯³
github.com/WebReflectio...
brainstorming uhtml v5 and if you have hints/ideas/comments you are more than welcome to chime in π
github.com/WebReflectio...
a quick introduction to regurlator π
www.youtube.com/watch?v=BJKm...
regurlator is out π₯³
chromewebstore.google.com/detail/regur...
tired of looking for "Open in Browser" links ???
I did create WebJeans and Woom (local only) but the pattern is always the same so I've put an end to this pointless struggle and published regurlator extension: you are in charge, you can redirect anything!
github.com/WebReflectio...
this bug is the reason I am trying to provide a basic utility that would take care of everything out of the box as the dance to persist users' choice on local FileSystem access is nearly unbearable and convoluted in branches and operations to do ... π₯²
issues.chromium.org/issues/45453...
watch out developer.mozilla.org/en-US/docs/W... returns true while live-debugging because typing in devtools automatically activate transient mode.
This might be a huge source of confusion and WYSI-NOT-WYG π
... aaaaand it's gone!
Chromium Version 141.0.7390.108 (Official Build) (64-bit) works like a charm (and so does Edge)
Chromium Version 141.0.7390.123 (Official Build) (64-bit) wants permissions granted via a resilient user action to reuse a handler it had permissions already π€¦
TIL: if you store in IndexedDB a granted FileSystemX handler you should als store with it options because if you close and reopen the browser, or create a new session, that handler will not work unless you check again against its permissions.
Only then it prompts: once or always?
Davie504 is suing Suno AI and for very valid and good reasons: www.youtube.com/watch?v=RNHx...
22.10.2025 08:32 β π 0 π 0 π¬ 0 π 1TIL: event.intercept(...) after navigation.addEventListener('navigate', ...) π€―
developer.mozilla.org/en-US/docs/W...
best honest video I've seen around Linux as developer:
www.youtube.com/watch?v=GQJZ...
For reference: bsky.app/profile/webr...
Reads better than leaky symbols around to me
Readability is good to me (see the follow up with just static block, no need to delete) and security superior for real private fields no library can lurk around.
Iβm sold, you do whatβs best for you
it leaks the symbol at the prototype level so β¦ no? If you can host a symbol you can host a variable that wonβt leak outside the module and itβs as fast as any shared accessor, if not faster
15.10.2025 07:05 β π 0 π 0 π¬ 1 π 0it's lovely, isn't it? Although there was an even more elegant solution which doesn't require to delete anything at all π€©
I just forgot about static classes initialization blocks π₯³
bsky.app/profile/webr...
even simpler:
let a;
class A {
# a;
static {
a = self => self.#a;
}
}
thanks to static classes initialization block π₯³
developer.mozilla.org/en-US/docs/W...
a follow up post to explain:
webreflection.medium.com/javascript-p...
class A { #a; constructor(a) { this.#a = a; } // allowed to reach #a static a(self) { return self.#a; } } const a = A.a; // removed to avoid reaching #a // outside this module scope delete A.a; const ref = new A('secret'); // in here we can reach #a a(ref); // 'secret'
in which I've found a way to have "protected" properties only the class owner can handle.
these can also be orchestrated as accessor:
static a(self, ..._) {
if (_.length) [self.#a] = _;
return self.#a;
}
... and the library behind ...
github.com/WebReflectio...
Web extensions can query tabs and each tab can have a unique identifier that persist across refreshes but it's unique per tab (just like sessionStorage)
if you need similar unique identifier on the server (uid per tab persistent on refreshes) here a demo:
webreflection.github.io/session/