Improve the analytics.js shim to handle more ways of using the ga API #40
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.
It turns out that a website can do something like
and the inline function should be called. That wasn't handled yet, so
let's add the necessary logic from Mozilla's shim script[1] (but
adjusted as necessary).
It also turns out that websites sometimes have their own inline
definition of ga(), that assigns any call arguments to the ga.q
queue. The calls in the queue are supposed to be made with the real
ga() function, once that has been loaded. This also wasn't handled
yet in our shim.
I notice that we still do not handle further ways of using the ga API,
in the future it might be worth just switching to Mozilla's script
entirely.
1 - https://searchfox.org/mozilla-central/source/browser/extensions/webcompat/shims/google-analytics-and-tag-manager.js