From: Aaron Schulz Date: Mon, 6 Jun 2016 23:00:33 +0000 (-0700) Subject: Flag internal page retrieve/save cycles with EDIT_INTERNAL X-Git-Tag: 1.31.0-rc.0~6676^2 X-Git-Url: http://git.cyclocoop.org//%27%40script%40/%27?a=commitdiff_plain;h=ab64cd7bd44a83507de04a407c2f6f5117099543;p=lhc%2Fweb%2Fwiklou.git Flag internal page retrieve/save cycles with EDIT_INTERNAL This is used to avoid edit stash checks and stats noise. Bug: T136678 Change-Id: I6158b8b218240ef3875f2d1d2e8ca3bc2f69f980 --- diff --git a/includes/Defines.php b/includes/Defines.php index d2b3443ea1..fe5083e1be 100644 --- a/includes/Defines.php +++ b/includes/Defines.php @@ -183,6 +183,7 @@ define( 'EDIT_SUPPRESS_RC', 8 ); define( 'EDIT_FORCE_BOT', 16 ); define( 'EDIT_DEFER_UPDATES', 32 ); // Unused since 1.27 define( 'EDIT_AUTOSUMMARY', 64 ); +define( 'EDIT_INTERNAL', 128 ); /**@}*/ /**@{ diff --git a/includes/jobqueue/jobs/DoubleRedirectJob.php b/includes/jobqueue/jobs/DoubleRedirectJob.php index 617c32bfdc..c6d8ec5920 100644 --- a/includes/jobqueue/jobs/DoubleRedirectJob.php +++ b/includes/jobqueue/jobs/DoubleRedirectJob.php @@ -167,7 +167,8 @@ class DoubleRedirectJob extends Job { $reason = wfMessage( 'double-redirect-fixed-' . $this->reason, $this->redirTitle->getPrefixedText(), $newTitle->getPrefixedText() )->inContentLanguage()->text(); - $article->doEditContent( $newContent, $reason, EDIT_UPDATE | EDIT_SUPPRESS_RC, false, $user ); + $flags = EDIT_UPDATE | EDIT_SUPPRESS_RC | EDIT_INTERNAL; + $article->doEditContent( $newContent, $reason, $flags, false, $user ); $wgUser = $oldUser; return true; diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index 13e5f14d8b..a3c3ecee4a 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -1480,6 +1480,8 @@ class WikiPage implements Page, IDBAccessObject { * Mark the edit a "bot" edit regardless of user rights * EDIT_AUTOSUMMARY * Fill in blank summaries with generated text where possible + * EDIT_INTERNAL + * Signal that the page retrieve/save cycle happened entirely in this request. * * If neither EDIT_NEW nor EDIT_UPDATE is specified, the status of the * article will be detected. If EDIT_UPDATE is specified and the article @@ -1540,6 +1542,8 @@ class WikiPage implements Page, IDBAccessObject { * Mark the edit a "bot" edit regardless of user rights * EDIT_AUTOSUMMARY * Fill in blank summaries with generated text where possible + * EDIT_INTERNAL + * Signal that the page retrieve/save cycle happened entirely in this request. * * If neither EDIT_NEW nor EDIT_UPDATE is specified, the status of the * article will be detected. If EDIT_UPDATE is specified and the article @@ -1627,8 +1631,14 @@ class WikiPage implements Page, IDBAccessObject { $summary = $handler->getAutosummary( $old_content, $content, $flags ); } + // Avoid statsd noise and wasted cycles check the edit stash (T136678) + if ( ( $flags & EDIT_INTERNAL ) || ( $flags & EDIT_FORCE_BOT ) ) { + $useCache = false; + } else { + $useCache = true; + } + // Get the pre-save transform content and final parser output - $useCache = !( $flags & EDIT_FORCE_BOT ); // avoid statsd noise (T136678) $editInfo = $this->prepareContentForEdit( $content, null, $user, $serialFormat, $useCache ); $pstContent = $editInfo->pstContent; // Content object $meta = [ @@ -3142,7 +3152,7 @@ class WikiPage implements Page, IDBAccessObject { $summary = $wgContLang->truncate( $summary, 255 ); // Save - $flags = EDIT_UPDATE; + $flags = EDIT_UPDATE | EDIT_INTERNAL; if ( $guser->isAllowed( 'minoredit' ) ) { $flags |= EDIT_MINOR; diff --git a/includes/specials/SpecialChangeContentModel.php b/includes/specials/SpecialChangeContentModel.php index c7a650cca6..ccbb2752ba 100644 --- a/includes/specials/SpecialChangeContentModel.php +++ b/includes/specials/SpecialChangeContentModel.php @@ -192,6 +192,7 @@ class SpecialChangeContentModel extends FormSpecialPage { $newContent = ContentHandler::getForModelID( $data['model'] )->makeEmptyContent(); } $flags = $this->oldRevision ? EDIT_UPDATE : EDIT_NEW; + $flags |= EDIT_INTERNAL; if ( $user->isAllowed( 'bot' ) ) { $flags |= EDIT_FORCE_BOT; }