PageIssues should use new standard pageToken getter

Rather than inventing its own page token the PageIssues
schema will rely on the standard page token.

In future when I9bb18d47e36d2d99d812e5b47ea9516d3dff3a16 is
merged this will mean that PageIssues and ReadingDepth have
consistent page tokens.

Bug: T201124
Change-Id: I19fea41e04cd792423ea9d41a673563418b69726
This commit is contained in:
jdlrobson 2018-08-16 14:59:48 -07:00
parent e9e7e8256b
commit eea19f3e18
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 ) );