$method = __METHOD__;
if ( $out->getFlag( 'vary-revision' ) ) {
- // XXX: Would be just keep the output if the speculative revision ID was correct,
- // but that can go wrong for some edge cases, like {{PAGEID}} during page creation.
- // For that specific case, it would perhaps nice to have a vary-page flag.
+ // If {{PAGEID}} resolved to 0 or {{REVISIONTIMESTAMP}} used the current
+ // timestamp rather than that of an actual revision, then those words need
+ // to resolve to the actual page ID or revision timestamp, respectively.
$this->saveParseLogger->info(
"$method: Prepared output has vary-revision...\n"
);
"$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