mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-15 02:23:58 +00:00
mw.trackSubscriber: Remove action.init.timing value
In Schema:Edit, all action timing durations (ready, loaded, saveAttempt etc.) are defined as "time since the editor was initialised", which is internally stored as the timestamp for the "init" action. The 'init' action itself does not have a timing duratation, but the Edit schema has a special case for it, definining it as "time since the page was loaded". In actually, it isn't actually implemented as "time since the page loaded", and I suspect that as such, this value is probably not used by EventLogging consumers of the Edit schema. Or, it might be used, but doesn't represent what the consumers think it does. Presently, it uses the init time now() - mediaWikiLoadStart, which basically means the time between the random point at which MediaWiki core JavaScript finished executing which is quite variable in practice due to the race between <script async> and browssing parsing/rendering of HTML. That is by design, and is also why mediaWikiLoadStart is undocumented and internal, and actually in the process of being removed. After many iterations on this patch to try and approximate an alternative to this undocumented variable, I came up with an alternative approach with DLynch at the Hackathon, which is to simply not record this one timing value, but preserve the behaviour of all the other timing values exactly as-is. That is, keep the behaviour of storing `now()` as "init" when the editor activates, and keep the behaviour of substracting "init" from all other action times, but only don't report "init" itself to EventLogging (given its value would be 0, which isn't useful). Bug: T160315 Change-Id: I778234efe40dde8ff30333339335be1c3910a4e0
This commit is contained in:
parent
725adb2ae3
commit
21f526bffe
|
@ -25,13 +25,6 @@
|
|||
}
|
||||
|
||||
switch ( action ) {
|
||||
case 'init':
|
||||
// Account for second opening
|
||||
return timeStamp - Math.max(
|
||||
window.mediaWikiLoadStart,
|
||||
timing.saveSuccess || 0,
|
||||
timing.abort || 0
|
||||
);
|
||||
case 'ready':
|
||||
return timeStamp - timing.init;
|
||||
case 'loaded':
|
||||
|
@ -124,7 +117,9 @@
|
|||
|
||||
event[ 'action.' + action + '.type' ] = event.type;
|
||||
event[ 'action.' + action + '.mechanism' ] = event.mechanism;
|
||||
event[ 'action.' + action + '.timing' ] = Math.round( computeDuration( action, event, timeStamp ) );
|
||||
if ( action !== 'init' ) {
|
||||
event[ 'action.' + action + '.timing' ] = Math.round( computeDuration( action, event, timeStamp ) );
|
||||
}
|
||||
event[ 'action.' + action + '.message' ] = event.message;
|
||||
|
||||
// Remove renamed properties
|
||||
|
|
Loading…
Reference in a new issue