Monotonically increasing ticket taken by every ACTIVATION REQUEST reaching
setBaseLayer() — distinct from _styleGeneration, which counts style
APPLICATIONS (_applyViaStyleChange and the WMTS path).
Exists because an activation can be DEFERRED: when the style is not loaded,
setBaseLayer re-arms itself on the map's idle event, capturing its key in
the closure. Nothing made that closure notice it had been superseded, so the
boot basemap could re-apply itself on top of a basemap the user had since
chosen — measured at R.7b on the tourism profile: positron applied, then
~500 ms later the map silently snapped back to terrain-terrarium, and the
layer labels were destroyed by the round trip without being rebuilt. No error
was logged on either side.
_styleGeneration could not serve here: a deferred request that never applies
anything does not move it, so a stale deferral would still pass its own check.
Monotonically increasing ticket taken by every ACTIVATION REQUEST reaching
setBaseLayer()— distinct from_styleGeneration, which counts style APPLICATIONS (_applyViaStyleChangeand the WMTS path).Exists because an activation can be DEFERRED: when the style is not loaded,
setBaseLayerre-arms itself on the map'sidleevent, capturing its key in the closure. Nothing made that closure notice it had been superseded, so the boot basemap could re-apply itself on top of a basemap the user had since chosen — measured at R.7b on thetourismprofile:positronapplied, then ~500 ms later the map silently snapped back toterrain-terrarium, and the layer labels were destroyed by the round trip without being rebuilt. No error was logged on either side._styleGenerationcould not serve here: a deferred request that never applies anything does not move it, so a stale deferral would still pass its own check.