mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-23 14:06:52 +00:00
EditCheck: catch errors from TransactionSquasher
Bug: T324733
Change-Id: I5076db530fa8af72a336916f8284e6f3348cfd38
(cherry picked from commit 9d3c048785
)
This commit is contained in:
parent
7fcf674c6f
commit
0445ce2e78
|
@ -7,16 +7,22 @@ mw.editcheck.doesAddedContentNeedReference = function ( documentModel ) {
|
|||
var ranges = [];
|
||||
var offset = 0;
|
||||
var endOffset = documentModel.getDocumentRange().end;
|
||||
documentModel.completeHistory.squash().transactions[ 0 ].operations.every( function ( op ) {
|
||||
if ( op.type === 'retain' ) {
|
||||
offset += op.length;
|
||||
} else if ( op.type === 'replace' ) {
|
||||
ranges.push( new ve.Range( offset, offset + op.insert.length ) );
|
||||
offset += op.insert.length;
|
||||
}
|
||||
// Reached the end of the doc / start of internal list, stop searching
|
||||
return offset < endOffset;
|
||||
} );
|
||||
try {
|
||||
documentModel.completeHistory.squash().transactions[ 0 ].operations.every( function ( op ) {
|
||||
if ( op.type === 'retain' ) {
|
||||
offset += op.length;
|
||||
} else if ( op.type === 'replace' ) {
|
||||
ranges.push( new ve.Range( offset, offset + op.insert.length ) );
|
||||
offset += op.insert.length;
|
||||
}
|
||||
// Reached the end of the doc / start of internal list, stop searching
|
||||
return offset < endOffset;
|
||||
} );
|
||||
} catch ( e ) {
|
||||
// TransactionSquasher can sometimes throw errors; until T333710 is
|
||||
// fixed just count this as not needing a reference.
|
||||
return false;
|
||||
}
|
||||
return ranges.some( function ( range ) {
|
||||
var minimumCharacters = 50;
|
||||
// 1. Check that at least minimumCharacters characters have been inserted sequentially
|
||||
|
|
Loading…
Reference in a new issue