From d11c84d08bd3ddbf0dd3ef84b249aca21f9ca319 Mon Sep 17 00:00:00 2001 From: Piotr Miazga Date: Mon, 15 Jul 2019 19:30:47 +0200 Subject: [PATCH] Remove all main_menu tracking related code. This code should live in WikimediaEvents extension, not in Minerva. Bug: T220016 Depends-On: Ic2d6d1b21b0eb72ad68b0c447bc63f7d1bb021f4 Change-Id: Iaeb12704dcd257f0783f1ebec3def01cb2848228 --- README.md | 7 --- includes/MinervaHooks.php | 2 - resources/skins.minerva.scripts/init.js | 3 -- .../skins.minerva.scripts/initLogging.js | 7 --- .../skins.minerva.scripts/menu/MainMenu.js | 18 ------- .../skins.minerva.scripts/menu/schema.js | 52 ------------------- skin.json | 6 +-- 7 files changed, 1 insertion(+), 94 deletions(-) delete mode 100644 resources/skins.minerva.scripts/initLogging.js delete mode 100644 resources/skins.minerva.scripts/menu/schema.js diff --git a/README.md b/README.md index abf61f4..ce945e4 100644 --- a/README.md +++ b/README.md @@ -237,13 +237,6 @@ Group membership can be debugged from the console via: And since session ID is an input in calculating the group, reassignment occurs when clearing it: `mw.storage.session.remove('mwuser-sessionId')`. -#### $wgMinervaSchemaMainMenuClickTrackingSampleRate - -Defines the sampling rate for the MobileWebMainMenuClickTracking schema. - -* Type: `Number` -* Default: `0` - ### Components Components may be shared between server and client. Keeping all code for a single component only in diff --git a/includes/MinervaHooks.php b/includes/MinervaHooks.php index ad6e4fc..f0df059 100644 --- a/includes/MinervaHooks.php +++ b/includes/MinervaHooks.php @@ -256,8 +256,6 @@ class MinervaHooks { $config = MediaWikiServices::getInstance()->getConfigFactory() ->makeConfig( 'minerva' ); $vars += [ - 'wgMinervaSchemaMainMenuClickTrackingSampleRate' => - $config->get( 'MinervaSchemaMainMenuClickTrackingSampleRate' ), 'wgMinervaABSamplingRate' => $config->get( 'MinervaABSamplingRate' ), 'wgMinervaCountErrors' => $config->get( 'MinervaCountErrors' ), 'wgMinervaErrorLogSamplingRate' => $config->get( 'MinervaErrorLogSamplingRate' ), diff --git a/resources/skins.minerva.scripts/init.js b/resources/skins.minerva.scripts/init.js index 6fd9bcc..8659714 100644 --- a/resources/skins.minerva.scripts/init.js +++ b/resources/skins.minerva.scripts/init.js @@ -8,7 +8,6 @@ errorLogging = require( './errorLogging.js' ), notifications = require( './notifications.js' ), preInit = require( './preInit.js' ), - initLogging = require( './initLogging.js' ), mobileRedirect = require( './mobileRedirect.js' ), search = require( './search.js' ), references = require( './references.js' ), @@ -346,8 +345,6 @@ // - main menu closes when you click outside of it // - redirects show a toast. preInit(); - // - logging - initLogging(); // - references references(); // - search diff --git a/resources/skins.minerva.scripts/initLogging.js b/resources/skins.minerva.scripts/initLogging.js deleted file mode 100644 index ceee507..0000000 --- a/resources/skins.minerva.scripts/initLogging.js +++ /dev/null @@ -1,7 +0,0 @@ -// This initialises EventLogging for main menu and some prominent links in the UI. -// This code should only be loaded on the Minerva skin, it does not apply to other skins. -var mainMenu = require( './menu.js' ); - -module.exports = function () { - mainMenu.enableLogging(); -}; diff --git a/resources/skins.minerva.scripts/menu/MainMenu.js b/resources/skins.minerva.scripts/menu/MainMenu.js index 1679472..7618c32 100644 --- a/resources/skins.minerva.scripts/menu/MainMenu.js +++ b/resources/skins.minerva.scripts/menu/MainMenu.js @@ -33,24 +33,6 @@ activator: undefined }, - /** - * Turn on event logging on the existing main menu by reading `event-name` data - * attributes on elements. - * @memberof MainMenu - * @instance - */ - enableLogging: function () { - this.$el.find( 'a' ).on( 'click', function () { - var $link = $( this ), - eventName = $link.data( 'event-name' ); - if ( eventName ) { - mw.track( 'minerva.schemaMobileWebMainMenuClickTracking', { - name: eventName, - destination: $link.attr( 'href' ) - } ); - } - } ); - }, /** * Remove the nearby menu entry if the browser doesn't support geo location * @memberof MainMenu diff --git a/resources/skins.minerva.scripts/menu/schema.js b/resources/skins.minerva.scripts/menu/schema.js deleted file mode 100644 index 61fb5d1..0000000 --- a/resources/skins.minerva.scripts/menu/schema.js +++ /dev/null @@ -1,52 +0,0 @@ -mw.loader.using( [ - 'ext.eventLogging' -] ).then( function () { - var M = mw.mobileFrontend, - user = mw.user, - editCount = mw.config.get( 'wgUserEditCount' ), - // Need to make amc default to false because it will not exist in mw.config - // if using desktop Minerva or if MobileFrontend extension is not installed. - amc = mw.config.get( 'wgMFAmc', false ), - // Schema class provided by ext.eventLogging module - Schema = mw.eventLog.Schema, // resource-modules-disable-line - context = M.require( 'mobile.startup' ).context, - DEFAULT_SAMPLING_RATE = mw.config.get( 'wgMinervaSchemaMainMenuClickTrackingSampleRate' ), - // T218627: Sampling rate should be 100% if user has amc enabled - AMC_SAMPLING_RATE = 1, - /** - * MobileWebMainMenuClickTracking schema - * https://meta.wikimedia.org/wiki/Schema:MobileWebMainMenuClickTracking - * - * @class MobileWebMainMenuClickTracking - * @singleton - */ - schemaMobileWebMainMenuClickTracking = new Schema( - 'MobileWebMainMenuClickTracking', - amc ? AMC_SAMPLING_RATE : DEFAULT_SAMPLING_RATE, - /** - * @property {Object} defaults Default options hash. - * @property {string} defaults.mode whether user is in stable, beta, or desktop - * @property {boolean} defaults.amc whether or not the user has advanced - * contributions mode enabled (true) or disabled (false) - * @property {string} [defaults.username] Username if the user is logged in, - * otherwise - undefined. - * Assigning undefined will make event logger omit this property when sending - * the data to a server. According to the schema username is optional. - * @property {number} [defaults.userEditCount] The number of edits the user has made - * if the user is logged in, otherwise - undefined. Assigning undefined will make event - * logger omit this property when sending the data to a server. According to the schema - * userEditCount is optional. - */ - { - mode: context.getMode() || 'desktop', - amc: amc, - username: user.getName() || undefined, - // FIXME: Use edit bucket here (T210106) - userEditCount: typeof editCount === 'number' ? editCount : undefined - } - ); - - mw.trackSubscribe( 'minerva.schemaMobileWebMainMenuClickTracking', function ( topic, data ) { - schemaMobileWebMainMenuClickTracking.log( data ); - } ); -} ); diff --git a/skin.json b/skin.json index bbeae61..3897084 100644 --- a/skin.json +++ b/skin.json @@ -66,7 +66,6 @@ "base": false, "beta": true }, - "MinervaSchemaMainMenuClickTrackingSampleRate": 0, "MinervaABSamplingRate": 0 }, "ValidSkinNames": { @@ -187,8 +186,7 @@ }, "EventLoggingSchemas": { "WebClientError": 18340282, - "MobileWebShareButton": 18923688, - "MobileWebMainMenuClickTracking": 18984528 + "MobileWebShareButton": 18923688 }, "ResourceModules": { "skins.minerva.base.styles": { @@ -513,7 +511,6 @@ "resources/skins.minerva.scripts/NotificationBadge.js", "resources/skins.minerva.scripts/notifications.js", "resources/skins.minerva.scripts/overlayManager.js", - "resources/skins.minerva.scripts/menu/schema.js", "resources/skins.minerva.scripts/menu/MainMenu.js", "resources/skins.minerva.scripts/menu.js", "resources/skins.minerva.scripts/errorLogging.js", @@ -532,7 +529,6 @@ "resources/skins.minerva.scripts/TitleUtil.js", "components/ToggleList/ToggleList.js", "resources/skins.minerva.scripts/Toolbar.js", - "resources/skins.minerva.scripts/initLogging.js", "resources/skins.minerva.scripts/mobileRedirect.js", "resources/skins.minerva.scripts/search.js", "resources/skins.minerva.scripts/references.js",