From 914f6a62a66217b3e4304fca80e64ae1baa42d04 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Mon, 25 Jan 2016 14:44:36 +1100 Subject: [PATCH] Introduce ParserOutput::getRawText() Avoid polluting the parser cache with skin-dependent output from Skin::doEditSectionLink() by introducing getRawText(), which provides access to the uncooked text. Use this in WikitextContent::fillParserOutput() which is the primary offender judging by the debug logs (see referenced bug). Bug: T124356 Change-Id: Ia9e1e4a6dc3a26f88eeebc64eed023ff20c53d58 --- includes/content/WikitextContent.php | 2 +- includes/parser/ParserOutput.php | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/includes/content/WikitextContent.php b/includes/content/WikitextContent.php index 8beae39378..89e9356052 100644 --- a/includes/content/WikitextContent.php +++ b/includes/content/WikitextContent.php @@ -338,7 +338,7 @@ class WikitextContent extends TextContent { $chain = $this->getRedirectChain(); $output->setText( Article::getRedirectHeaderHtml( $title->getPageLanguage(), $chain, false ) . - $output->getText() + $output->getRawText() ); $output->addModuleStyles( 'mediawiki.action.view.redirectPage' ); } diff --git a/includes/parser/ParserOutput.php b/includes/parser/ParserOutput.php index 72668bf68f..656e580aea 100644 --- a/includes/parser/ParserOutput.php +++ b/includes/parser/ParserOutput.php @@ -220,6 +220,17 @@ class ParserOutput extends CacheTime { $this->mTitleText = $titletext; } + /** + * Get the cacheable text with markers still in it. The + * return value is suitable for writing back via setText() but is not valid + * for display to the user. + * + * @since 1.27 + */ + public function getRawText() { + return $this->mText; + } + public function getText() { $text = $this->mText; if ( $this->mEditSectionTokens ) { -- 2.20.1