jenkins-bot has submitted this change and it was merged.
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(-)
Approvals:
Mooeypoo: 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 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: merged
Gerrit-Change-Id: I20e1d37c913522eafc45a9a2e263051322b9b083
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Mooeypoo <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits