refactor how scraping tab events are handled. fixes possible multiple data extraction callbacks. #32