X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FOutputPage.php;h=1c2c29dca330fedfd54ee3c4c6ca73905b41af92;hb=3351894705fa0b910106659e02883d6782fca955;hp=7a2b7dfe1a4a9b51395bd23cf3e83090c140745a;hpb=a15bb6bb4fbc7617ed58e0bb9b73172f45b4e437;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/OutputPage.php b/includes/OutputPage.php index 7a2b7dfe1a..1c2c29dca3 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -1573,10 +1573,14 @@ class OutputPage extends ContextSource { * Get/set the ParserOptions object to use for wikitext parsing * * @param ParserOptions|null $options Either the ParserOption to use or null to only get the - * current ParserOption object + * current ParserOption object. This parameter is deprecated since 1.31. * @return ParserOptions */ public function parserOptions( $options = null ) { + if ( $options !== null ) { + wfDeprecated( __METHOD__ . ' with non-null $options', '1.31' ); + } + if ( $options !== null && !empty( $options->isBogus ) ) { // Someone is trying to set a bogus pre-$wgUser PO. Check if it has // been changed somehow, and keep it if so. @@ -1779,7 +1783,9 @@ class OutputPage extends ContextSource { $popts->setTidy( $oldTidy ); - $this->addParserOutput( $parserOutput ); + $this->addParserOutput( $parserOutput, [ + 'enableSectionEditLinks' => false, + ] ); } /** @@ -1864,9 +1870,10 @@ class OutputPage extends ContextSource { * * @since 1.24 * @param ParserOutput $parserOutput + * @param array $poOptions Options to ParserOutput::getText() */ - public function addParserOutputContent( $parserOutput ) { - $this->addParserOutputText( $parserOutput ); + public function addParserOutputContent( $parserOutput, $poOptions = [] ) { + $this->addParserOutputText( $parserOutput, $poOptions ); $this->addModules( $parserOutput->getModules() ); $this->addModuleScripts( $parserOutput->getModuleScripts() ); @@ -1880,9 +1887,10 @@ class OutputPage extends ContextSource { * * @since 1.24 * @param ParserOutput $parserOutput + * @param array $poOptions Options to ParserOutput::getText() */ - public function addParserOutputText( $parserOutput ) { - $text = $parserOutput->getText(); + public function addParserOutputText( $parserOutput, $poOptions = [] ) { + $text = $parserOutput->getText( $poOptions ); // Avoid PHP 7.1 warning of passing $this by reference $outputPage = $this; Hooks::runWithoutAbort( 'OutputPageBeforeHTML', [ &$outputPage, &$text ] ); @@ -1893,16 +1901,22 @@ class OutputPage extends ContextSource { * Add everything from a ParserOutput object. * * @param ParserOutput $parserOutput + * @param array $poOptions Options to ParserOutput::getText() */ - function addParserOutput( $parserOutput ) { + function addParserOutput( $parserOutput, $poOptions = [] ) { $this->addParserOutputMetadata( $parserOutput ); // Touch section edit links only if not previously disabled if ( $parserOutput->getEditSectionTokens() ) { $parserOutput->setEditSectionTokens( $this->mEnableSectionEditLinks ); } + if ( !$this->mEnableSectionEditLinks + && !array_key_exists( 'enableSectionEditLinks', $poOptions ) + ) { + $poOptions['enableSectionEditLinks'] = false; + } - $this->addParserOutputText( $parserOutput ); + $this->addParserOutputText( $parserOutput, $poOptions ); } /** @@ -1953,7 +1967,9 @@ class OutputPage extends ContextSource { $popts->setTargetLanguage( $oldLang ); } - return $parserOutput->getText(); + return $parserOutput->getText( [ + 'enableSectionEditLinks' => false, + ] ); } /** @@ -1976,6 +1992,7 @@ class OutputPage extends ContextSource { * @deprecated since 1.27 Use setCdnMaxage() instead */ public function setSquidMaxage( $maxage ) { + wfDeprecated( __METHOD__, '1.27' ); $this->setCdnMaxage( $maxage ); } @@ -3226,6 +3243,8 @@ class OutputPage extends ContextSource { && ( $relevantTitle->exists() || $relevantTitle->quickUserCan( 'create', $user ) ); foreach ( $title->getRestrictionTypes() as $type ) { + // Following keys are set in $vars: + // wgRestrictionCreate, wgRestrictionEdit, wgRestrictionMove, wgRestrictionUpload $vars['wgRestriction' . ucfirst( $type )] = $title->getRestrictions( $type ); } @@ -3314,10 +3333,14 @@ class OutputPage extends ContextSource { ] ); if ( $config->get( 'ReferrerPolicy' ) !== false ) { - $tags['meta-referrer'] = Html::element( 'meta', [ - 'name' => 'referrer', - 'content' => $config->get( 'ReferrerPolicy' ) - ] ); + // Per https://w3c.github.io/webappsec-referrer-policy/#unknown-policy-values + // fallbacks should come before the primary value so we need to reverse the array. + foreach ( array_reverse( (array)$config->get( 'ReferrerPolicy' ) ) as $i => $policy ) { + $tags["meta-referrer-$i"] = Html::element( 'meta', [ + 'name' => 'referrer', + 'content' => $policy, + ] ); + } } $p = "{$this->mIndexPolicy},{$this->mFollowPolicy}"; @@ -3952,6 +3975,7 @@ class OutputPage extends ContextSource { * Enables/disables section edit links, doesn't override __NOEDITSECTION__ * @param bool $flag * @since 1.23 + * @deprecated since 1.31, use $poOptions to addParserOutput() instead. */ public function enableSectionEditLinks( $flag = true ) { $this->mEnableSectionEditLinks = $flag; @@ -3960,6 +3984,7 @@ class OutputPage extends ContextSource { /** * @return bool * @since 1.23 + * @deprecated since 1.31, use $poOptions to addParserOutput() instead. */ public function sectionEditLinksEnabled() { return $this->mEnableSectionEditLinks; @@ -4021,6 +4046,13 @@ class OutputPage extends ContextSource { return; } + if ( isset( $logo['svg'] ) ) { + // No media queries required if we only have a 1x and svg variant + // because all preload-capable browsers support SVGs + $this->addLinkHeader( '<' . $logo['svg'] . '>;rel=preload;as=image' ); + return; + } + foreach ( $logo as $dppx => $src ) { // Keys are in this format: "1.5x" $dppx = substr( $dppx, 0, -1 );