Esanders has uploaded a new change for review.
https://gerrit.wikimedia.org/r/187967
Change subject: Only re-render if the images is larger than the last rendering
......................................................................
Only re-render if the images is larger than the last rendering
Means we don't make unnecessary requests to the image API
and make the server side image resizer do extra work.
Bug: T88248
Change-Id: I20e1d37c913522eafc45a9a2e263051322b9b083
---
M modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
1 file changed, 20 insertions(+), 6 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/67/187967/1
diff --git a/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
b/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
index c61e439..eacc7c1 100644
--- a/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
+++ b/modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js
@@ -25,11 +25,14 @@
minDimensions: { width: 1, height: 1 }
}, config );
- // Parent constructor
- ve.ce.GeneratedContentNode.call( this );
-
+ // Properties
this.$figure = $figure;
this.$image = $image;
+ // Parent constructor triggers render so this must preceed it
+ this.renderedDimensions = null;
+
+ // Parent constructor
+ ve.ce.GeneratedContentNode.call( this );
// Mixin constructors
ve.ce.FocusableNode.call( this, this.$figure, config );
@@ -79,14 +82,22 @@
/** */
ve.ce.MWImageNode.prototype.generateContents = function () {
- var xhr, deferred = $.Deferred();
+ var xhr,
+ width = this.getModel().getAttribute( 'width' ),
+ height = this.getModel().getAttribute( 'height' ),
+ deferred = $.Deferred();
+
+ // If the current rendering is larger don't fetch a new image, just let
the browser resize
+ if ( this.renderedDimensions && this.renderedDimensions.width > width )
{
+ return deferred.reject().promise();
+ }
xhr = ve.init.target.constructor.static.apiRequest( {
action: 'query',
prop: 'imageinfo',
iiprop: 'url',
- iiurlwidth: this.getModel().getAttribute( 'width' ),
- iiurlheight: this.getModel().getAttribute( 'height' ),
+ iiurlwidth: width,
+ iiurlheight: height,
titles: this.getModel().getFilename()
} )
.done( this.onParseSuccess.bind( this, deferred ) )
@@ -118,6 +129,9 @@
/** */
ve.ce.MWImageNode.prototype.render = function ( generatedContents ) {
this.$image.attr( 'src', generatedContents );
+ // As we only re-render when the image is larger than last renedered
size
+ // this will always be the largest ever rendering
+ this.renderedDimensions = ve.copy(
this.model.getScalable().getCurrentDimensions() );
if ( this.live ) {
this.afterRender();
}
--
To view, visit https://gerrit.wikimedia.org/r/187967
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I20e1d37c913522eafc45a9a2e263051322b9b083
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits