Since this goes to the DOM, a webpage can listen for it, not just the extension, which means an arbitrary page could determine if the connector is installed by using `pushState` and checking whether a `ZoteroItemUpdated` event fires. This isn't the worst information disclosure, but it seems better to avoid it and just define a JS function that gets called on both `ZoteroItemUpdated` and `pageModified`.