On Tue, Sep 6, 2016 at 7:43 PM, Vincent Massol <[email protected]> wrote:

>
> > On 06 Sep 2016, at 16:59, Caleb James DeLisle <[email protected]> wrote:
> >
> > Hello all,
> >
> > Recently we discovered that in XWiki 8.2 the {{html}} macro cleaner now
> removes <video>
> > tag whereas in 7.4 it did not and this has unfortunately caused problems
> for the {{video}}
> > macro.
> >
> > 1. After some helpful investigation by a few XWiki developers, we have
> found that in fact
> > the {{html}} macro is cleaning for XHTML and not for HTML5 which is what
> XWiki uses and the
> > change has seemingly gone unnoticed since the upgrade to 8.0M1.
>
> The HTML macro has always been cleaning to generate clean XHTML 1.0. This
> hasn’t changed. We do need to make it generate HTML5 for skins that output
> HTML5 but this hasn’t been done yet (see http://jira.xwiki.org/browse/
> XCOMMONS-901).
>
> What has happened (most likely) is that the HTML Cleaner library was
> updated from version 2.10 to 2.16 in 8.0M1 and somewhere in there the HTML
> Cleaner project must have fixed a bug where previously they were not
> stripping the video tag when they should have (since it’s not valid XHTML
> 1.0 probably).
>
> > 2. After some conversation with developers, I have observed that it is
> rare for an application
> > developer to *intend* to have their HTML cleaned. In the XWiki
> repositories we find that
> > amongst non-one-liner {{html}} macro invocations, 109 out of 292 (37%)
> of the invocations
> > explicitly request clean=false [1].
>
> Yes, developers should always use clean=false for 2 reasons:
> * performance
> * get an HTML validation error so that the error can be noticed and fixed
> in the HTML. Note: I hope that our validation tests are able to notice all
> the HTML errors and that as a consequence we won’t generate invalid X(HTML).
>
> FTR I wasn’t initially in agreement but got convinced by Marius, see
> https://github.com/xwiki-contrib/macro-video/commit/
> d986b8346a4c21d55472dd85e41a96d27f24680f#commitcomment-18260475
>
> I even mentioned introducing a new {{rawhtml}} macro or something like
> this ({{cleanhtml}}, {{validhtml}}, …) if we want to avoid having to write
> clean=false.
>
> > 3. Nowhere is clean="true" specified and though one might think it
> obvious as it is a default,
> > we find that wiki="false" (also default) is indeed specified 28 times
> [2].
>
> That’s normal because you’re looking at development code and this code is
> supposed to generate valid HTML by default so there’s no need to clean it :)
>
> > 4. We see also that the HTML macro proves to be quite slow. During an
> investigation of SOLR
> > performance Thomas found that "about 23% of the request is spend
> executing html macros" [3].
> > I suppose it should be obvious that without the cleaner, the {{html}}
> macro should not cause
> > any significant performance degradation.
> >
> >
> > Given the status of this feature, I would like to propose that we make
> an intentional change
> > of behavior and change the default to clean=false. This way we
> application developers will not
> > need to type it all of the time and XWiki will become measurably faster.
> >
> > Here is my +1 for changing the default.
>
> We should not forget that the HTML macro is also meant to be used by users
> of the wiki (and not only by developers).
>
> BTW we even said in the past that we should try to avoid using the
> {{html}} macro at all in our code so that it can be disabled as a macro,
> see http://jira.xwiki.org/browse/XRENDERING-27 and even
> http://jira.xwiki.org/browse/XWIKI-7894
>
> And most users don’t set the clean=false parameter.
>
> So I guess the question is whether we want to protect an XWiki instance
> against to generate invalid (X)HTML by default when the HTML macro is used
> by users, or whether we don’t care.
>
>

> TBH I don’t remember exactly why we introduced the HTML Cleaner but we
> probably had issues at some point. Anyone remembers?
>

The main reason for me is because we don't want simple users to break the
XWiki page layout when they copy & paste HTML from the web: "I pasted this
content, saved and now the edit button doesn't work anymore..". As Vincent
said, the HTML macro is not intended only for developers. So I'm -0, close
to -1.

Thanks,
Marius


>
> Thanks
> -Vincent
>
> > Thanks,
> > Caleb
> >
> >
> >
> > [1]:
> > $ grep -nr '{{html' | grep '.xml:' | grep 'clean=['\''"]*false' | grep
> -v '{{/html}}' | wc -l
> > 109
> > $ grep -nr '{{html' | grep '.xml:' | grep -v 'clean=['\''"]*false' |
> grep -v '{{/html}}' | wc -l
> > 183
> >
> > [2]:
> > $ grep -nr '{{html' | grep '.xml:' | grep 'wiki=['\''"]*false' | wc -l
> > 28
> >
> > [3]: https://jira.xwiki.org/browse/XWIKI-12043
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to