mediawiki-extensions-Visual.../modules/ve
Roan Kattouw f538fcf6be mw.ViewPageTarget: Add sanity check for DOM roundtrip
The sanity check converts the linear model back to DOM, then
compares this DOM to the original DOM and rejects the deferred
if they are not equal.

The DOM creation has to be done synchronously (before we unlock
the surface), but the actual comparsion can be (and is) done
asynchronously.

To make the UI flow of the save dialog easier we just keep the
save button on the toolbar itself disabled until the sanity
check is done. Though this should finish before the user starts
editing the document (let alone start saving), we do add a class
to the button to indicate a progress cursor.

To simulate a slow sanity check, set the setTimeout in
startSanityCheck to 5000, load VE, make a change, hover the
button, and see it change from disabled + progress-cursor to
enabled after 5 seconds.

To simulate the sanity check failing, change !== to === in
the first "if" in startSanityCheck.

Bug: 47521
Bug: 50067
Change-Id: I04f71fe8e00c6257fbc953cc9de3323e24709b0f
2013-06-27 19:20:14 -07:00
..
ce Reference insertion, new and existing 2013-06-27 18:11:31 -07:00
dm Reference insertion, new and existing 2013-06-27 18:11:31 -07:00
init mw.ViewPageTarget: Add sanity check for DOM roundtrip 2013-06-27 19:20:14 -07:00
test Reference insertion, new and existing 2013-06-27 18:11:31 -07:00
ui Merge "Reference insertion, new and existing" 2013-06-28 01:13:53 +00:00
ve.BranchNode.js Kill getOffsetFromNode() with fire 2013-05-09 17:26:22 -07:00
ve.debug.js ve.debug: Document why we use global Function#apply+Function#call instead of method.apply 2013-05-30 13:03:14 +01:00
ve.Document.js Fix selectNodes() bug with empty non-content branch nodes 2013-06-17 19:09:12 +00:00
ve.Element.js Code style fix: (X) -> ( X ) 2013-06-24 18:51:59 +01:00
ve.EventEmitter.js oojs: Integrate with OOJS v1.0.0 2013-06-06 17:29:55 +02:00
ve.Factory.js Remove more periods 2013-03-20 22:55:50 +00:00
ve.js Close dialogs on escape 2013-06-27 17:00:35 -07:00
ve.LeafNode.js Bump copyright notice year range to -2013 over -2012 2013-02-19 15:37:34 -08:00
ve.NamedClassFactory.js Rename ve.NodeFactory to ve.NamedClassFactory 2013-04-09 12:05:05 -07:00
ve.Node.js ve.ce.Document: Introduce getRelativeRange method 2013-06-05 13:10:38 +01:00
ve.Range.js Clickable inline images 2013-04-08 17:58:46 -07:00
ve.Registry.js EventEmitter API cleanup 2013-05-02 15:05:59 -07:00