Vincent Massol wrote: > On Jan 29, 2010, at 3:33 PM, Jerome Velociter wrote: > >> Vincent Massol wrote: >>> On Jan 29, 2010, at 3:04 PM, Marius Dumitru Florea wrote: >>> >>>> Hi devs, >>>> >>>> Right now JavaScript extensions are included when a document is rendered >>>> in WYSIWYG edit mode. This has both advantages and disadvantages. >>>> >>>> Pro: If the output of a macro depends on a JavaScript extension, then >>>> the result of rendering that macro will be the same in view mode and >>>> (WYSIWYG) edit mode. >>>> >>>> Con: If the JavaScript extension is not aware of the edit mode then it >>>> can modify the DOM document outside of the read-only macro markers which >>>> leads to unwanted changes in the content of the edited document (i.e. >>>> the modifications done by the JavaScript extension are saved). Such an >>>> example is http://jira.xwiki.org/jira/browse/XWIKI-4665 . >>> Before deciding isn't there a possibility to protect the DOM? Is there no >>> way to do that? >> What do you mean protect the DOM ? >> >> If you mean prevent DOM modifications by the extensions, I think it is a >> hard problem, and it does not really make sense (what the point of >> including extensions to not discriminate vs. view mode if in the end >> they cannot affect the DOM ?) >> >> But maybe that's not what you mean. > > No I meant protect the DOM when in wysiwyg edit mode. > > I have no idea if it's possible. We have the same issue for the XDOM when a > transformation makes a change in other parts of the XDOM and we need to > protect it (by adding markers around the changes). The way I plan to > implement this is to implement a TransformationXDOM which is an extension of > the default XOM implementation and that automatically adds markers when a > change is done outside of its zone.
I don't think this is possible. DOM changes can come from different places: the editor, in-line JavaScript, JavaScript extensions (including third-party JavaScript libraries). Catching DOM mutations is not possible in IE, and how can we detect the entity behind the DOM mutation (especially when it's a third-party JavaScript library)? Moreover, I'm not sure it's possible to wrap all the JavaScript DOM API to be able to detect for instance when a DOM node is added to the document. Note that a macro would still be able to generate in-line JavaScript (though the best practice is to have this code in a JavaScript extension). Thanks, Marius > > Thanks > -Vincent > >> Jerome. >> >>> We're going to do something a little similar for the rendering is there's >>> invalid HTML entered: >>> http://jira.xwiki.org/jira/browse/XWIKI-3782 >>> >>> Thanks >>> -Vincent >>> >>>> WDYT? Should we limit the WYSIWYG in order to make the editing safer? >>>> >>>> I'm +0. >>>> >>>> Thanks, >>>> Marius > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

