[Maps] Apply tile styles before waiting for _tileLoadErrorTracker timer to expire #29798
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#28852 introduced a bug causing all tiles to be re-fetched. There are 2 ways to view the bug
TileLayer._tileLoadErrorTracker
timer to expire). Notice how all the tiles flicker because they are being re-fetchedgetLayerList
to return a different array soTileLayer.syncLayerWithMB
is triggered. An easy one is changing the time range. Notice how all the tiles flicker because there are being re-fetched.The bug occurs because for some unknown reason, calling
mbMap.setLayerZoomRange
with new min/max causes mapbox-gl to re-request all tiles (I opened an issue to figure out why mapbox/mapbox-gl-js#7865). In our case, we should not wait until afterthis._tileLoadErrorTracker
has fired to set the layer properties.