* Add a new "<meta>" tag
* To add an http-equiv meta tag, precede the name with "http:"
*
- * @param string $name Tag name
- * @param string $val Tag value
+ * @param string $name Name of the meta tag
+ * @param string $val Value of the meta tag
*/
function addMeta( $name, $val ) {
array_push( $this->mMetatags, [ $name, $val ] );
* 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.
$popts->setTidy( $oldTidy );
- $this->addParserOutput( $parserOutput );
+ $this->addParserOutput( $parserOutput, [
+ 'enableSectionEditLinks' => false,
+ ] );
}
/**
*
* @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() );
*
* @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 ] );
* 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 );
}
/**
$popts->setTargetLanguage( $oldLang );
}
- return $parserOutput->getText();
+ return $parserOutput->getText( [
+ 'enableSectionEditLinks' => false,
+ ] );
}
/**
* @deprecated since 1.27 Use setCdnMaxage() instead
*/
public function setSquidMaxage( $maxage ) {
+ wfDeprecated( __METHOD__, '1.27' );
$this->setCdnMaxage( $maxage );
}
&& ( $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 );
}
] );
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}";
* 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;
/**
* @return bool
* @since 1.23
+ * @deprecated since 1.31, use $poOptions to addParserOutput() instead.
*/
public function sectionEditLinksEnabled() {
return $this->mEnableSectionEditLinks;
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 );