Merge "Some fixes to page updater docs"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 12 Jul 2019 08:40:28 +0000 (08:40 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 12 Jul 2019 08:40:28 +0000 (08:40 +0000)
1  2 
includes/Storage/DerivedPageDataUpdater.php

@@@ -79,7 -79,7 +79,7 @@@ use WikiPage
   *
   * DerivedPageDataUpdater instances are designed to be cached inside a WikiPage instance,
   * and re-used by callback code over the course of an update operation. It's a stepping stone
-  * one the way to a more complete refactoring of WikiPage.
+  * on the way to a more complete refactoring of WikiPage.
   *
   * When using a DerivedPageDataUpdater, the following life cycle must be observed:
   * grabCurrentRevision (optional), prepareContent (optional), prepareUpdate (required
@@@ -580,7 -580,6 +580,6 @@@ class DerivedPageDataUpdater implement
         */
        public function isContentDeleted() {
                if ( $this->revision ) {
-                       // XXX: if that revision is the current revision, this should be skipped
                        return $this->revision->isDeleted( RevisionRecord::DELETED_TEXT );
                } else {
                        // If the content has not been saved yet, it cannot have been deleted yet.
         *    See DataUpdate::getCauseAction(). (default 'unknown')
         *  - causeAgent: name of the user who caused the update. See DataUpdate::getCauseAgent().
         *    (string, default 'unknown')
 +       *  - known-revision-output: a combined canonical ParserOutput for the revision, perhaps
 +       *    from some cache. The caller is responsible for ensuring that the ParserOutput indeed
 +       *    matched the $rev and $options. This mechanism is intended as a temporary stop-gap,
 +       *    for the time until caches have been changed to store RenderedRevision states instead
 +       *    of ParserOutput objects. (default: null) (since 1.33)
         */
        public function prepareUpdate( RevisionRecord $revision, array $options = [] ) {
                Assert::parameter(
                if ( $this->renderedRevision ) {
                        $this->renderedRevision->updateRevision( $revision );
                } else {
 -
                        // NOTE: we want a canonical rendering, so don't pass $this->user or ParserOptions
                        // NOTE: the revision is either new or current, so we can bypass audience checks.
                        $this->renderedRevision = $this->revisionRenderer->getRenderedRevision(
                                $this->revision,
                                null,
                                null,
 -                              [ 'use-master' => $this->useMaster(), 'audience' => RevisionRecord::RAW ]
 +                              [
 +                                      'use-master' => $this->useMaster(),
 +                                      'audience' => RevisionRecord::RAW,
 +                                      'known-revision-output' => $options['known-revision-output'] ?? null
 +                              ]
                        );
  
                        // XXX: Since we presumably are dealing with the current revision,