[piwik-js] Added support for registering plugins in Tracker public API #336
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.
So far adding plugins was only accessible through Piwik public API, Piwik.addPlugin.
Problem with this was that it was not possible to register plugins before any event has been handled, since Piwik singleton initialization (and any plugin registration) happens after _paq is processed and this is too late - any registered plugin will not be included in processing events fired by evaluation of _paq array items.
This patch enables registering Tracker plugins on Tracker itself, so addPlugin can be part of _paq instructions.
It is not enforced when addPlugin instructions will be processed (e.g. addPlugin is not part of alwaysFirst), for flexibility - e.g. one can have trackPageView evaluated without plugin, then addPlugin for all the next steps, or one can have addPlugin pushed first to _paq, and then trackPageView, if plugin should be applied for trackPageView as well.