Vary cog click behavior
The behavior of the cog varies when:
- The user is logged in/out.
- Page Previews is enabled as a beta feature.
Since the behavior of the cog doesn't vary per-preview, it can be
determined at boot time and passed to the renderer. However, in order to
keep the renderer stateless, we pass the behavior to it when a preview
is added to the DOM.
- Add the mw.popups.createPreviewBehavior factory function, which returns an object that encapsulates how a preview responds to the user dwelling on it, abandoning it, and clicking on the cog.
- Invoke mw.popups.createPreviewBehavior at boot time and pass it to the mw.popups.changeListeners.render change listener, which then passes it to mw.popups.Preview#show.
- Make mw.popups.Preview#show responsible for binding event handlers and configuring the cog based on the behavior.