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

Reply via email to