Merge "Instruct stashed upload failures to reupload file"
[lhc/web/wiklou.git] / includes / skins / Skin.php
index 40905a5..8fb0d1c 100644 (file)
@@ -449,7 +449,7 @@ abstract class Skin extends ContextSource {
         * "<body>" tag, skins can override it if they have a need to add in any
         * body attributes or classes of their own.
         * @param OutputPage $out
-        * @param array $bodyAttrs
+        * @param array &$bodyAttrs
         */
        function addToBodyAttributes( $out, &$bodyAttrs ) {
                // does nothing by default
@@ -1057,10 +1057,10 @@ abstract class Skin extends ContextSource {
                        $targetUser = User::newFromId( $id );
                }
 
-               # The sending user must have a confirmed email address and the target
-               # user must have a confirmed email address and allow emails from users.
-               return $this->getUser()->canSendEmail() &&
-                       $targetUser->canReceiveEmail();
+               # The sending user must have a confirmed email address and the receiving
+               # user must accept emails from the sender.
+               return $this->getUser()->canSendEmail()
+                       && SpecialEmailUser::validateTarget( $targetUser, $this->getUser() ) === '';
        }
 
        /**
@@ -1215,7 +1215,7 @@ abstract class Skin extends ContextSource {
        /**
         * make sure we have some title to operate on
         *
-        * @param Title $title
+        * @param Title &$title
         * @param string $name
         */
        static function checkTitle( &$title, $name ) {
@@ -1251,11 +1251,10 @@ abstract class Skin extends ContextSource {
        function buildSidebar() {
                global $wgEnableSidebarCache, $wgSidebarCacheExpiry;
 
-               $that = $this;
-               $callback = function () use ( $that ) {
+               $callback = function () {
                        $bar = [];
-                       $that->addToSidebar( $bar, 'sidebar' );
-                       Hooks::run( 'SkinBuildSidebar', [ $that, &$bar ] );
+                       $this->addToSidebar( $bar, 'sidebar' );
+                       Hooks::run( 'SkinBuildSidebar', [ $this, &$bar ] );
 
                        return $bar;
                };
@@ -1286,7 +1285,7 @@ abstract class Skin extends ContextSource {
         *
         * This is just a wrapper around addToSidebarPlain() for backwards compatibility
         *
-        * @param array $bar
+        * @param array &$bar
         * @param string $message
         */
        public function addToSidebar( &$bar, $message ) {
@@ -1296,7 +1295,7 @@ abstract class Skin extends ContextSource {
        /**
         * Add content from plain text
         * @since 1.17
-        * @param array $bar
+        * @param array &$bar
         * @param string $text
         * @return array
         */
@@ -1375,8 +1374,8 @@ abstract class Skin extends ContextSource {
                                        $bar[$heading][] = array_merge( [
                                                'text' => $text,
                                                'href' => $href,
-                                               'id' => 'n-' . Sanitizer::escapeId( strtr( $line[1], ' ', '-' ), 'noninitial' ),
-                                               'active' => false
+                                               'id' => Sanitizer::escapeIdForAttribute( 'n-' . strtr( $line[1], ' ', '-' ) ),
+                                               'active' => false,
                                        ], $extraAttribs );
                                } else {
                                        continue;
@@ -1579,8 +1578,6 @@ abstract class Skin extends ContextSource {
 
                $attribs = [];
                if ( !is_null( $tooltip ) ) {
-                       # T27462: undo double-escaping.
-                       $tooltip = Sanitizer::decodeCharReferences( $tooltip );
                        $attribs['title'] = wfMessage( 'editsectionhint' )->rawParams( $tooltip )
                                ->inLanguage( $lang )->text();
                }
@@ -1612,7 +1609,7 @@ abstract class Skin extends ContextSource {
 
                $result .= implode(
                        '<span class="mw-editsection-divider">'
-                               . wfMessage( 'pipe-separator' )->inLanguage( $lang )->text()
+                               . wfMessage( 'pipe-separator' )->inLanguage( $lang )->escaped()
                                . '</span>',
                        $linksHtml
                );