X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FRevision%2FRenderedRevision.php;h=c4a00545c4d3f4a7e7e6a323cf6bb77d60be7db0;hb=6420c79320bc099cb4ff77232beabd72040146d0;hp=094105aae8512d1bbf61105e6591a14d2cba7bc8;hpb=307c95dbcdf6cfce7fc2ee4035724ac82eb49c5e;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Revision/RenderedRevision.php b/includes/Revision/RenderedRevision.php index 094105aae8..c4a00545c4 100644 --- a/includes/Revision/RenderedRevision.php +++ b/includes/Revision/RenderedRevision.php @@ -380,9 +380,9 @@ class RenderedRevision implements SlotRenderingProvider { $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" ); @@ -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