Merge "PageIssues should use new standard pageToken getter"

This commit is contained in:
jenkins-bot 2018-08-17 18:06:55 +00:00 committed by Gerrit Code Review
commit 8d9ed2ac28
2 changed files with 19 additions and 13 deletions

View File

@ -266,7 +266,7 @@
} }
if ( isLoggingRequired( getIssues( KEYWORD_ALL_SECTIONS ) ) ) { if ( isLoggingRequired( getIssues( KEYWORD_ALL_SECTIONS ) ) ) {
// Enable logging. // Enable logging of the PageIssues schema, setting up defaults.
pageIssuesLogger.subscribe( pageIssuesLogger.subscribe(
newTreatmentEnabled, newTreatmentEnabled,
pageIssuesLogger.newPageIssueSchemaData( pageIssuesLogger.newPageIssueSchemaData(

View File

@ -1,9 +1,10 @@
( function ( M, mwConfig, mwNow, mwTrack, mwTrackSubscribe, mwUser ) { ( function ( M, mwConfig, mwTrack, mwTrackSubscribe, mwUser, mwLoader ) {
var var
util = M.require( 'mobile.startup/util' ), util = M.require( 'mobile.startup/util' ),
EVENT_PAGE_ISSUE_LOG = 'minerva.PageIssuesAB'; EVENT_PAGE_ISSUE_LOG = 'minerva.PageIssuesAB';
/** /**
* Defines default data for Schema:PageIssues that will be recorded with every event.
* @param {boolean} newTreatmentEnabled * @param {boolean} newTreatmentEnabled
* @param {number} namespaceId The namespace for the page that has issues. * @param {number} namespaceId The namespace for the page that has issues.
* @param {string[]} pageIssueSeverities An array of PageIssue severities. * @param {string[]} pageIssueSeverities An array of PageIssue severities.
@ -18,28 +19,33 @@
issuesSeverity: pageIssueSeverities, issuesSeverity: pageIssueSeverities,
isAnon: mwUser.isAnon(), isAnon: mwUser.isAnon(),
editCountBucket: getUserEditBuckets(), editCountBucket: getUserEditBuckets(),
pageToken: mwUser.generateRandomSessionId() + Math.floor( mwNow() ).toString(),
sessionToken: mwUser.sessionId() sessionToken: mwUser.sessionId()
}; };
} }
/** /**
* Enable tracking. * Enable tracking and add page token to every logged event.
* @param {boolean} newTreatmentEnabled * @param {boolean} newTreatmentEnabled
* @param {Object} pageIssueSchemaData A Partial<Schema:PageIssues> Object that will be mixed with * @param {Object} pageIssueSchemaData A Partial<Schema:PageIssues> Object that will be mixed with
* with track data. * with track data.
* @return {void} * @return {void}
*/ */
function subscribe( newTreatmentEnabled, pageIssueSchemaData ) { function subscribe( newTreatmentEnabled, pageIssueSchemaData ) {
// intermediary event bus that extends the event data before being passed to event-logging. // this is wrapped inside a mw.loader call given the need to access mw.eventLog.getPageviewToken
mwTrackSubscribe( EVENT_PAGE_ISSUE_LOG, function ( topic, data ) { // which may or may not be defined. If EventLogging is not installed, so logging will occur.
var mixedData = util.extend( {}, pageIssueSchemaData, data ); mwLoader.using( 'ext.eventLogging.subscriber' ).then( function () {
// set the page token on the request.
pageIssueSchemaData.pageToken = mw.eventLog.getPageviewToken();
// Log readingDepth schema.(ReadingDepth is guarded against multiple enables). // intermediary event bus that extends the event data before being passed to event-logging.
// See https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/WikimediaEvents/+/437686/ mwTrackSubscribe( EVENT_PAGE_ISSUE_LOG, function ( topic, data ) {
mwTrack( 'wikimedia.event.ReadingDepthSchema.enable', bucketToGroup( newTreatmentEnabled ) ); var mixedData = util.extend( {}, pageIssueSchemaData, data );
// Log PageIssues schema. // Log readingDepth schema.(ReadingDepth is guarded against multiple enables).
mwTrack( 'wikimedia.event.PageIssues', mixedData ); // See https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/WikimediaEvents/+/437686/
mwTrack( 'wikimedia.event.ReadingDepthSchema.enable', bucketToGroup( newTreatmentEnabled ) );
// Log PageIssues schema.
mwTrack( 'wikimedia.event.PageIssues', mixedData );
} );
} ); } );
} }
@ -94,4 +100,4 @@
subscribe: subscribe, subscribe: subscribe,
log: log log: log
} ); } );
}( mw.mobileFrontend, mw.config, mw.now, mw.track, mw.trackSubscribe, mw.user ) ); }( mw.mobileFrontend, mw.config, mw.track, mw.trackSubscribe, mw.user, mw.loader ) );