Cenarium has uploaded a new change for review.
https://gerrit.wikimedia.org/r/277945
Change subject: Set stable revision as cached revision for stable parser cache
......................................................................
Set stable revision as cached revision for stable parser cache
This sets the stable revision id as the revision id that gets cached by
the stable parser cache (FRParserCacheStable). Consequently, the check
for the validity of the cached revision is made against the stable
revision, not the latest revision. To avoid massive invalidation of
parser caches, the latest revision is also allowed for now.
Depends-On: I251a08cd8c7a51ad9b58234fd6e8692d40ae79d4
Change-Id: Ibb6e1c35ff08302ef7af4572010123b8caaa1980
---
M backend/FRParserCacheStable.php
1 file changed, 36 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/FlaggedRevs
refs/changes/45/277945/1
diff --git a/backend/FRParserCacheStable.php b/backend/FRParserCacheStable.php
index c3d9b03..0399e7e 100644
--- a/backend/FRParserCacheStable.php
+++ b/backend/FRParserCacheStable.php
@@ -35,4 +35,40 @@
$key = parent::getOptionsKey( $article ); // call super!
return str_replace( ':pcache:', ':stable-pcache:', $key );
}
+
+ /**
+ * @param CacheTime $optionsKey
+ * @param WikiPage $article
+ * @param int &$revId
+ * @return bool
+ */
+ protected function isInvalidRevision( CacheTime $optionsKey, WikiPage
$article, &$revId ) {
+ if ( $article instanceof FlaggableWikiPage ) {
+ $page = $article;
+ } else {
+ $page = FlaggableWikiPage::getTitleInstance(
$article->getTitle() );
+ }
+ $revId = $page->getStable();
+ return $optionsKey->isDifferentRevision( $revId ) &&
+ // avoid mass invalidation of old parser caches
+ // @todo remove this when it's safe
+ $optionsKey->isDifferentRevision( $page->getLatest() );
+ }
+
+ /**
+ * Like ParserCache::save() but saving with stable revision id by
default instead of latest
+ * @warning $page must be a FlaggableWikiPage
+ *
+ * @param ParserOutput $parserOutput
+ * @param FlaggableWikiPage $page
+ * @param ParserOptions $popts
+ * @param string $cacheTime Time when the cache was generated
+ * @param int $revId Revision ID that was parsed
+ */
+ public function save( $parserOutput, $page, $popts, $cacheTime = null,
$revId = null ) {
+ if ( $revId === null ) {
+ $revId = $page->getStable();
+ }
+ return parent::save( $parserOutput, $page, $popts, $cacheTime,
$revId );
+ }
}
--
To view, visit https://gerrit.wikimedia.org/r/277945
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibb6e1c35ff08302ef7af4572010123b8caaa1980
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/FlaggedRevs
Gerrit-Branch: master
Gerrit-Owner: Cenarium <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits