Merge branch 'MDL-55724-master' of https://github.com/sammarshallou/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 5 Sep 2016 15:33:25 +0000 (17:33 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 5 Sep 2016 15:33:25 +0000 (17:33 +0200)
1  2 
lib/weblib.php

diff --combined lib/weblib.php
@@@ -96,8 -96,10 +96,8 @@@ function s($var) 
          return '0';
      }
  
 -    // When we move to PHP 5.4 as a minimum version, change ENT_QUOTES on the
 -    // next line to ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, and remove the
 -    // 'UTF-8' argument. Both bring a speed-increase.
 -    return preg_replace('/&amp;#(\d+|x[0-9a-f]+);/i', '&#$1;', htmlspecialchars($var, ENT_QUOTES, 'UTF-8'));
 +    return preg_replace('/&amp;#(\d+|x[0-9a-f]+);/i', '&#$1;',
 +            htmlspecialchars($var, ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE));
  }
  
  /**
@@@ -1581,6 -1583,10 +1581,10 @@@ function strip_pluginfile_content($sour
   * @return string text without legacy TRUSTTEXT marker
   */
  function trusttext_strip($text) {
+     if (!is_string($text)) {
+         // This avoids the potential for an endless loop below.
+         throw new coding_exception('trusttext_strip parameter must be a string');
+     }
      while (true) { // Removing nested TRUSTTEXT.
          $orig = $text;
          $text = str_replace('#####TRUSTTEXT#####', '', $text);
@@@ -1820,7 -1826,7 +1824,7 @@@ function purify_html($text, $options = 
  
              // Media elements.
              // https://html.spec.whatwg.org/#the-video-element
 -            $def->addElement('video', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', [
 +            $def->addElement('video', 'Block', 'Optional: #PCDATA | Flow | source | track', 'Common', [
                  'src' => 'URI',
                  'crossorigin' => 'Enum#anonymous,use-credentials',
                  'poster' => 'URI',
                  'height' => 'Length',
              ]);
              // https://html.spec.whatwg.org/#the-audio-element
 -            $def->addElement('audio', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', [
 +            $def->addElement('audio', 'Block', 'Optional: #PCDATA | Flow | source | track', 'Common', [
                  'src' => 'URI',
                  'crossorigin' => 'Enum#anonymous,use-credentials',
                  'preload' => 'Enum#auto,metadata,none',
                  'controls' => 'Bool'
              ]);
              // https://html.spec.whatwg.org/#the-source-element
 -            $def->addElement('source', 'Block', 'Flow', 'Common', [
 +            $def->addElement('source', false, 'Empty', null, [
                  'src' => 'URI',
                  'type' => 'Text'
              ]);
 +            // https://html.spec.whatwg.org/#the-track-element
 +            $def->addElement('track', false, 'Empty', null, [
 +                'src' => 'URI',
 +                'kind' => 'Enum#subtitles,captions,descriptions,chapters,metadata',
 +                'srclang' => 'Text',
 +                'label' => 'Text',
 +                'default' => 'Bool',
 +            ]);
  
              // Use the built-in Ruby module to add annotation support.
              $def->manager->addModule(new HTMLPurifier_HTMLModule_Ruby());