diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2019-04-13 00:43:27 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2019-04-13 00:43:27 +0000 |
commit | 80a60fce7d99791637730c7705fffe8c112ff5ea (patch) | |
tree | 416dcae6b49bceeb62af68e6c900a13296364a64 | |
parent | 6835e78c5cb0f74276472a06be44d2566bcfe659 (diff) | |
parent | 5e6d9340cb81d0040cbeb2371a83e884db90cd68 (diff) | |
download | mediawikicore-80a60fce7d99791637730c7705fffe8c112ff5ea.tar.gz mediawikicore-80a60fce7d99791637730c7705fffe8c112ff5ea.zip |
Merge "Add vary-revision-exist flag to handle {{REVISIONID}} and parser cache"
-rw-r--r-- | includes/Revision/RenderedRevision.php | 8 | ||||
-rw-r--r-- | includes/parser/Parser.php | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/includes/Revision/RenderedRevision.php b/includes/Revision/RenderedRevision.php index 094105aae851..d3e5938c8637 100644 --- a/includes/Revision/RenderedRevision.php +++ b/includes/Revision/RenderedRevision.php @@ -395,6 +395,14 @@ class RenderedRevision implements SlotRenderingProvider { "$method: Prepared output has vary-revision-id with wrong ID...\n" ); return true; + } elseif ( $out->getFlag( 'vary-revision-exists' ) ) { + // If {{REVISIONID}} resolved to '', it now needs to resolve to '-'. + // Note that edit stashing always uses '-', which can be used for both + // edit filter checks and canonical parser cache. + $this->saveParseLogger->info( + "$method: Prepared output has vary-revision-exists...\n" + ); + return true; } else { // NOTE: In the original fix for T135261, the output was discarded if 'vary-user' was // set for a null-edit. The reason was that the original rendering in that case was diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index 9ff731d80178..91de550fad8e 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -2607,7 +2607,13 @@ class Parser { // @TODO: disallow this word on all namespaces $this->nsInfo->isContent( $this->mTitle->getNamespace() ) ) { - return $this->mRevisionId ? '-' : ''; + if ( $this->mRevisionId ) { + return '-'; + } else { + $this->mOutput->setFlag( 'vary-revision-exists' ); + + return ''; + } }; $pageLang = $this->getFunctionLang(); |