Go to file
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
.docs splitClusters uses Grapheme Cluster Boundary rules 2013-06-16 21:46:02 +01:00
demos Reference insertion, new and existing 2013-06-27 18:11:31 -07:00
maintenance splitClusters uses Grapheme Cluster Boundary rules 2013-06-16 21:46:02 +01:00
modules mw.ViewPageTarget: Add sanity check for DOM roundtrip 2013-06-27 19:20:14 -07:00
.csslintrc Add .csslintrc file and fix remaining warnings 2013-06-05 11:07:00 +00:00
.gitignore Implement Grunt support (grunt jshint,csslint,qunit,watch) 2013-06-05 11:10:23 +00:00
.gitreview Set defaultrebase=0 2012-06-20 16:27:40 -07:00
.jshintignore Implement Grunt support (grunt jshint,csslint,qunit,watch) 2013-06-05 11:10:23 +00:00
.jshintrc oojs: Integrate with OOJS v1.0.0 2013-06-06 17:29:55 +02:00
ApiVisualEditor.php mw.ViewPageTarget: Add sanity check for DOM roundtrip 2013-06-27 19:20:14 -07:00
AUTHORS.txt Add Matma Rex to AUTHORS.txt 2013-04-26 16:13:58 -07:00
CODING.md Document and clean up events in all the things 2013-03-20 09:58:27 -07:00
Gruntfile.js grunt: Also delete QUnit temp files when test fails 2013-06-17 11:27:52 -07:00
LICENSE.txt Bump copyright year range to 2013 in the licence file 2013-03-18 09:55:57 -07:00
package.json Implement Grunt support (grunt jshint,csslint,qunit,watch) 2013-06-05 11:10:23 +00:00
README.txt Remove trailing whitespace everywhere 2013-05-25 15:04:11 +00:00
VisualEditor.hooks.php mw.ViewPageTarget: Add sanity check for DOM roundtrip 2013-06-27 19:20:14 -07:00
VisualEditor.i18n.php mw.ViewPageTarget: Add sanity check for DOM roundtrip 2013-06-27 19:20:14 -07:00
VisualEditor.php Reference insertion, new and existing 2013-06-27 18:11:31 -07:00
VisualEditorMessagesModule.php mw.ViewPageTarget: Add sanity check for DOM roundtrip 2013-06-27 19:20:14 -07:00

VisualEditor provides a visual editor for wiki pages. It is written in
JavaScript and runs in a web browser.

It uses the Parsoid parser to convert wikitext documents to annotated HTML
which the VisualEditor is able to load, modify and emit back to Parsoid at
which point it is converted back into wikitext.

For more information about these projects, check out the wiki:

	* http://www.mediawiki.org/wiki/VisualEditor
	* http://www.mediawiki.org/wiki/Parsoid