aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2019-04-13 00:43:27 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2019-04-13 00:43:27 +0000
commit80a60fce7d99791637730c7705fffe8c112ff5ea (patch)
tree416dcae6b49bceeb62af68e6c900a13296364a64
parent6835e78c5cb0f74276472a06be44d2566bcfe659 (diff)
parent5e6d9340cb81d0040cbeb2371a83e884db90cd68 (diff)
downloadmediawikicore-80a60fce7d99791637730c7705fffe8c112ff5ea.tar.gz
mediawikicore-80a60fce7d99791637730c7705fffe8c112ff5ea.zip
Merge "Add vary-revision-exist flag to handle {{REVISIONID}} and parser cache"
-rw-r--r--includes/Revision/RenderedRevision.php8
-rw-r--r--includes/parser/Parser.php8
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();