Merge "ve.dm.MWMediaResourceProvider: Use mw.ForeignApi rather than JSONP"

This commit is contained in:
jenkins-bot 2016-11-02 20:07:06 +00:00 committed by Gerrit Code Review
commit c62e71f44d

View file

@ -27,25 +27,13 @@ ve.dm.MWMediaResourceProvider = function VeDmMWMediaResourceProvider( apiurl, co
this.isLocal = config.local !== undefined; this.isLocal = config.local !== undefined;
if ( this.isLocal ) { if ( this.isLocal ) {
this.setAjaxSettings( { this.setAPIurl( mw.util.wikiScript( 'api' ) );
url: mw.util.wikiScript( 'api' ),
// If the url is local use json
dataType: 'json'
} );
} else { } else {
this.setAjaxSettings( { // If 'apiurl' is set, use that. Otherwise, build the url
// If 'apiurl' is set, use that. Otherwise, build the url // from scriptDirUrl and /api.php suffix
// from scriptDirUrl and /api.php suffix this.setAPIurl( this.getAPIurl() || ( this.scriptDirUrl + '/api.php' ) );
url: this.getAPIurl() || ( this.scriptDirUrl + '/api.php' ),
// If the url is not the same origin use jsonp
dataType: 'jsonp',
// JSON-P requests are not cached by default and get a &_=random trail.
// While setting cache=true will still bypass cache in most case due to the
// callback parameter, at least drop the &_=random trail which triggers
// an API warning (invalid parameter).
cache: true
} );
} }
this.siteInfoPromise = null; this.siteInfoPromise = null;
this.thumbSizes = []; this.thumbSizes = [];
this.imageSizes = []; this.imageSizes = [];
@ -180,17 +168,15 @@ ve.dm.MWMediaResourceProvider.prototype.sort = function ( results ) {
* the fetched data. * the fetched data.
*/ */
ve.dm.MWMediaResourceProvider.prototype.fetchAPIresults = function ( howMany ) { ve.dm.MWMediaResourceProvider.prototype.fetchAPIresults = function ( howMany ) {
var xhr, var xhr, api,
ajaxOptions = {},
provider = this; provider = this;
if ( !this.isValid() ) { if ( !this.isValid() ) {
return $.Deferred().reject().promise( { abort: $.noop } ); return $.Deferred().reject().promise( { abort: $.noop } );
} }
ajaxOptions = this.getAjaxSettings(); api = this.isLocal ? new mw.Api() : new mw.ForeignApi( this.getAPIurl(), { anonymous: true } );
xhr = api.get( $.extend( {}, this.getStaticParams(), this.getUserParams(), this.getContinueData( howMany ) ) );
xhr = new mw.Api().get( $.extend( {}, this.getStaticParams(), this.getUserParams(), this.getContinueData( howMany ) ), ajaxOptions );
return xhr return xhr
.then( function ( data ) { .then( function ( data ) {
var page, newObj, raw, var page, newObj, raw,