Catrope has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/200649

Change subject: Don't break the editor if paste handling fails
......................................................................

Don't break the editor if paste handling fails

Wrap the code re-enabling the SurfaceObserver and re-enabling
pasting in try-finally so it runs even if afterPaste failed.

Also call beforePaste() earlier so that if it fails, we won't
already have disabled the SurfaceObserver and disabled pasting.

Bug: T68229
Change-Id: I02b6df232853178d63c737eb90026175d31233e7
---
M src/ce/ve.ce.Surface.js
1 file changed, 13 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/49/200649/1

diff --git a/src/ce/ve.ce.Surface.js b/src/ce/ve.ce.Surface.js
index 418ad12..a19a303 100644
--- a/src/ce/ve.ce.Surface.js
+++ b/src/ce/ve.ce.Surface.js
@@ -1668,20 +1668,23 @@
        if ( this.pasting ) {
                return false;
        }
+       this.beforePaste( e );
        this.surfaceObserver.disable();
        this.pasting = true;
-       this.beforePaste( e );
        setTimeout( function () {
-               if ( !e.isDefaultPrevented() ) {
-                       surface.afterPaste( e );
-               }
-               surface.surfaceObserver.clear();
-               surface.surfaceObserver.enable();
+               try {
+                       if ( !e.isDefaultPrevented() ) {
+                               surface.afterPaste( e );
+                       }
+               } finally {
+                       surface.surfaceObserver.clear();
+                       surface.surfaceObserver.enable();
 
-               // Allow pasting again
-               surface.pasting = false;
-               surface.pasteSpecial = false;
-               surface.beforePasteData = null;
+                       // Allow pasting again
+                       surface.pasting = false;
+                       surface.pasteSpecial = false;
+                       surface.beforePasteData = null;
+               }
        } );
 };
 

-- 
To view, visit https://gerrit.wikimedia.org/r/200649
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I02b6df232853178d63c737eb90026175d31233e7
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to