Put the HTML attribute whitelist closer to HTML5
authorentlinkt <entlinkt@gmx-topmail.de>
Fri, 11 Oct 2013 20:04:49 +0000 (22:04 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Sat, 12 Oct 2013 11:32:32 +0000 (13:32 +0200)
commit3062f70742827293ae029cfbe30acda73e0d510a
tree065413d5ee270ce9dbea9cd3b8f6f5a672ca45ca
parent8b6be1c1ab951a71d54b950db5739625df909c23
Put the HTML attribute whitelist closer to HTML5

* Add the global attributes to <bdo> and <q> and add "cite" to <q>. This
  is to make these elements actually usable: <bdo> needs a "dir" attribute
  to be useful for anything, and the whole point of <q> compared to
  hard-coded quotation marks is its support for the "lang" and "cite"
  attributes.
* Drop the "align" attribute from <span> because it was never standards-
  compliant and does not work in browsers either, unless one constructs
  such unlikely things as <span align="center" style="display:block;">.
* Drop the obsolete "char" and "charoff" attributes from <tr>, <td>, <th>.
  These have not been implemented in browsers anyway.
* Drop the obsolete presentational attributes "align", "valign" and "width"
  from <colgroup>, <col>, <thead>, <tfoot> and <tbody>. These elements are
  currently not accepted in wikitext anyway, but removing these attributes
  from the whitelist ensures that they are not accidentally enabled in the
  future.
* Drop the obsolete presentational attributes "noshade" and "size" from <hr>.
  They have been overridden by skin-specific CSS for a long time anyway.
* Allow all global attributes on <br> and <wbr>. Not allowing "dir" and "lang"
  on <br> was a restriction in HTML 4.01, presumably copied to <wbr>, that
  has been lifted in HTML5. Allowing these may not be particularly useful,
  but simplifies the code.

Bug: 55582
Change-Id: I1c3289ef51a449a7837af28d9906701534175896
includes/Sanitizer.php
tests/phpunit/includes/SanitizerTest.php