use MediaWiki\MediaWikiServices;
use Wikimedia\ScopedCallback;
use MediaWiki\Logger\LoggerFactory;
+use Wikimedia\Rdbms\Database;
/**
* MediaWiki message cache structure version.
$po = ParserOptions::newFromAnon();
$po->setEditSection( false );
$po->setAllowUnsafeRawHtml( false );
+ $po->setWrapOutputClass( false );
return $po;
}
// from malicious sources. As a precaution, disable
// the <html> parser tag when parsing messages.
$this->mParserOptions->setAllowUnsafeRawHtml( false );
+ // Wrapping messages in an extra <div> is probably not expected. If
+ // they're outside the content area they probably shouldn't be
+ // targeted by CSS that's targeting the parser output, and if
+ // they're inside they already are from the outer div.
+ $this->mParserOptions->setWrapOutputClass( false );
}
return $this->mParserOptions;
# Conditions to load the remaining pages with their contents
$smallConds = $conds;
- $smallConds[] = 'page_latest=rev_id';
- $smallConds[] = 'rev_text_id=old_id';
$smallConds[] = 'page_len <= ' . intval( $wgMaxMsgCacheEntrySize );
$res = $dbr->select(
[ 'page', 'revision', 'text' ],
[ 'page_title', 'old_id', 'old_text', 'old_flags' ],
$smallConds,
- __METHOD__ . "($code)-small"
+ __METHOD__ . "($code)-small",
+ [],
+ [
+ 'revision' => [ 'JOIN', 'page_latest=rev_id' ],
+ 'text' => [ 'JOIN', 'rev_text_id=old_id' ],
+ ]
);
foreach ( $res as $row ) {