Fix tab-mouseover events not being sent to other add-ons #2633
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.
Previously the array returned by
TSTAPI.getListenersForMessageType
was directly compared to 0 (instead of its length property), which always resulted in false. However due to the structure of the code (and the following expression being true for any object:undefined != [{}] > 0
), the listeners were enabled anyway, even if there wasn't any add-on listening. Recently, d2f5a42 changed the structure slightly to implement tab warming, and now the check failing actually results intab-mouseover
events no longer being sent to other add-ons.This commit switches to the
TSTAPI.hasListenerForMessageType
function, which correctly checks the length property internally.Speaking about tab warming: Could we add an option to disable it globally or alternatively add an API endpoint for other add-ons to disable it? Because quickly moving my mouse over my hundreds of tabs make my browser crawl to a halt, trying to load every hovered tab. I can also create a new issue to discuss this.