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;
if ( this.isLocal ) {
this.setAjaxSettings( {
url: mw.util.wikiScript( 'api' ),
// If the url is local use json
dataType: 'json'
} );
this.setAPIurl( mw.util.wikiScript( 'api' ) );
} else {
this.setAjaxSettings( {
// If 'apiurl' is set, use that. Otherwise, build the url
// from scriptDirUrl and /api.php suffix
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
} );
// If 'apiurl' is set, use that. Otherwise, build the url
// from scriptDirUrl and /api.php suffix
this.setAPIurl( this.getAPIurl() || ( this.scriptDirUrl + '/api.php' ) );
}
this.siteInfoPromise = null;
this.thumbSizes = [];
this.imageSizes = [];
@ -180,17 +168,15 @@ ve.dm.MWMediaResourceProvider.prototype.sort = function ( results ) {
* the fetched data.
*/
ve.dm.MWMediaResourceProvider.prototype.fetchAPIresults = function ( howMany ) {
var xhr,
ajaxOptions = {},
var xhr, api,
provider = this;
if ( !this.isValid() ) {
return $.Deferred().reject().promise( { abort: $.noop } );
}
ajaxOptions = this.getAjaxSettings();
xhr = new mw.Api().get( $.extend( {}, this.getStaticParams(), this.getUserParams(), this.getContinueData( howMany ) ), ajaxOptions );
api = this.isLocal ? new mw.Api() : new mw.ForeignApi( this.getAPIurl(), { anonymous: true } );
xhr = api.get( $.extend( {}, this.getStaticParams(), this.getUserParams(), this.getContinueData( howMany ) ) );
return xhr
.then( function ( data ) {
var page, newObj, raw,