Catch errors during document initialization

Change-Id: I5dc29666f99ac10bbf63a56153ba9a32d3568daa
Depends-On: I57fb6319bc3a9cee347c39fc75f555543991d703
This commit is contained in:
Ed Sanders 2019-09-18 12:17:34 +01:00 committed by Esanders
parent 2c243647d3
commit 57d8e53111

View file

@ -92,7 +92,7 @@
dummySurface.createProgress( progressDeferred.promise(), ve.msg( 'visualeditor-rebase-client-connecting' ), true );
surfaceModel.synchronizer.once( 'initDoc', function () {
surfaceModel.synchronizer.once( 'initDoc', function ( error ) {
var initPromise;
progressDeferred.resolve();
@ -102,6 +102,18 @@
target.clearSurfaces();
// Don't add the surface until the history has been applied
target.addSurface( surfaceModel );
if ( error ) {
OO.ui.alert(
$( '<p>' ).append(
ve.htmlMsg( 'visualeditor-corrupted-document-error', $( '<pre>' ).text( error.stack ) )
),
{ title: ve.msg( 'visualeditor-corrupted-document-title' ), size: 'large' }
).then( function () {
// eslint-disable-next-line no-use-before-define
showForm( true );
} );
return;
}
target.once( 'surfaceReady', function () {
initPromise.then( function () {
surfaceModel.selectFirstContentOffset();
@ -184,7 +196,7 @@
} ).fail( function ( err ) {
mw.log.error( err );
// eslint-disable-next-line no-use-before-define
showForm();
showForm( true );
} );
}