Legoktm has uploaded a new change for review. https://gerrit.wikimedia.org/r/225224
Change subject: [WIP] mediawiki.api: Make it easy to set the Api-user-agent header ...................................................................... [WIP] mediawiki.api: Make it easy to set the Api-user-agent header The API supports a custom 'Api-user-agent' header for situations when the 'User-agent' header cannot be overridden, like in browsers. This makes it easier for various modules and gadgets to set this header: var api = new mw.Api( { useragent: 'my.cool.module' } ); Compared to: var api = new mw.Api( { ajax: { headers: { 'Api-user-agent': 'my.cool.module' } } } ); which will make the entries in the ApiFeatureUsage log more useful. Change-Id: I28bbe751a671dbb8469f392fff1392eb35f17c3e --- M resources/src/mediawiki.api/mediawiki.api.js 1 file changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/24/225224/1 diff --git a/resources/src/mediawiki.api/mediawiki.api.js b/resources/src/mediawiki.api/mediawiki.api.js index 0b57907..1cd9adc 100644 --- a/resources/src/mediawiki.api/mediawiki.api.js +++ b/resources/src/mediawiki.api/mediawiki.api.js @@ -17,8 +17,15 @@ timeout: 30 * 1000, // 30 seconds - dataType: 'json' - } + dataType: 'json', + + headers: {} + }, + + // Will be set as the 'Api-user-agent' header + // Should be set to something that will make it easy to identify + // the caller + useragent: 'mediawiki.api' }, // Keyed by ajax url and symbolic name for the individual request @@ -78,6 +85,13 @@ options.parameters = $.extend( {}, defaultOptions.parameters, options.parameters ); options.ajax = $.extend( {}, defaultOptions.ajax, options.ajax ); + if ( !options.ajax.headers['Api-user-agent'] ) { + if ( options.useragent && !/^[!#$%&'*+\-.0-9A-Za-z^_`|~]+$/.test( options.useragent ) ) { + // FIXME this regex doesn't allow spaces + throw new Error( 'Invalid useragent provided, only 0-9, A-z, !#$%&\'*+-.^_|~` allowed' ); + } + options.ajax.headers['Api-user-agent'] = options.useragent || defaultOptions.useragent; + } this.defaults = options; }; -- To view, visit https://gerrit.wikimedia.org/r/225224 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I28bbe751a671dbb8469f392fff1392eb35f17c3e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Legoktm <legoktm.wikipe...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits