jenkins-bot has submitted this change and it was merged.
Change subject: Followup 8a4058584: use a single media source for rerendering
images
......................................................................
Followup 8a4058584: use a single media source for rerendering images
The code asked all media sources for a rerender and used whichever one
came in first, which meant that it might potentially render the wrong
image, or reject the promise if one source served an error response
before a good response from another source arrived.
Also reject the promise if we can't find an image source in the response.
Change-Id: I6b516ad41b8a9e2abd440625bb76f3e1abb54520
(cherry picked from commit 7035c8de01738fa45003b46d70bd7fbe3b48f097)
---
M modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
1 file changed, 20 insertions(+), 28 deletions(-)
Approvals:
Catrope: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
b/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
index e33d8a2..859fefd 100644
--- a/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
+++ b/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
@@ -5,6 +5,8 @@
* @license The MIT License (MIT); see LICENSE.txt
*/
+/*global mw */
+
/**
* ContentEditable MediaWiki image node.
*
@@ -52,35 +54,23 @@
/** */
ve.ce.MWImageNode.prototype.generateContents = function () {
- var i, len, source,
- sources = ve.copy( ve.init.platform.getMediaSources() ),
- deferred = $.Deferred();
+ var xhr, deferred = $.Deferred();
- for ( i = 0, len = sources.length; i < len; i++ ) {
- source = sources[i];
- source.request = $.ajax( {
- 'url': source.url,
- 'data': {
- 'action': 'query',
- 'prop': 'imageinfo',
- 'iiprop': 'url',
- 'iiurlwidth': this.model.getAttribute( 'width'
),
- 'iiurlheight': this.model.getAttribute(
'height' ),
- 'titles': this.model.getAttribute( 'resource'
).replace( /^(.+\/)*/, '' ),
- 'format': 'json'
- },
- // This request won't be cached since the JSON-P
callback is unique. However make sure
- // to allow jQuery to cache otherwise so it won't e.g.
add "&_=(random)" which will
- // trigger a MediaWiki API error for invalid parameter
"_".
- 'cache': true,
- // TODO: Only use JSON-P for cross-domain.
- // jQuery has this logic built-in (if url is not
same-origin ..)
- // but isn't working for some reason.
- 'dataType': 'jsonp',
- 'success': ve.bind( this.onParseSuccess, this, deferred
),
- 'error': ve.bind( this.onParseError, this, deferred )
- } );
- }
+ xhr = $.ajax( {
+ 'url': mw.util.wikiScript( 'api' ),
+ 'data': {
+ 'action': 'query',
+ 'prop': 'imageinfo',
+ 'iiprop': 'url',
+ 'iiurlwidth': this.model.getAttribute( 'width' ),
+ 'iiurlheight': this.model.getAttribute( 'height' ),
+ 'titles': this.model.getAttribute( 'resource'
).replace( /^(.+\/)*/, '' ),
+ 'format': 'json'
+ },
+ 'cache': 'false',
+ 'success': ve.bind( this.onParseSuccess, this, deferred ),
+ 'error': ve.bind( this.onParseError, this, deferred )
+ } );
return deferred.promise();
};
@@ -100,6 +90,8 @@
}
if ( src ) {
deferred.resolve( src );
+ } else {
+ deferred.reject();
}
};
--
To view, visit https://gerrit.wikimedia.org/r/90372
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I6b516ad41b8a9e2abd440625bb76f3e1abb54520
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: wmf/1.22wmf22
Gerrit-Owner: Jforrester <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits