*/
use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
/**
* The MediaWiki class is the helper class for the index.php entry point.
// isLoggedIn() will do all sorts of weird stuff.
if (
$request->getProtocol() == 'http' &&
+ // switch to HTTPS only when supported by the server
+ preg_match( '#^https://#', wfExpandUrl( $request->getRequestURL(), PROTO_HTTPS ) ) &&
(
$request->getSession()->shouldForceHTTPS() ||
// Check the cookie manually, for paranoia
* @param string $mode Use 'fast' to always skip job running
*/
public function restInPeace( $mode = 'fast' ) {
+ $factory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
// Assure deferred updates are not in the main transaction
- wfGetLBFactory()->commitMasterChanges( __METHOD__ );
+ $factory->commitMasterChanges( __METHOD__ );
- // Ignore things like master queries/connections on GET requests
- // as long as they are in deferred updates (which catch errors).
- Profiler::instance()->getTransactionProfiler()->resetExpectations();
+ // Loosen DB query expectations since the HTTP client is unblocked
+ $trxProfiler = Profiler::instance()->getTransactionProfiler();
+ $trxProfiler->resetExpectations();
+ $trxProfiler->setExpectations(
+ $this->config->get( 'TrxProfilerLimits' )['PostSend'],
+ __METHOD__
+ );
// Do any deferred jobs
DeferredUpdates::doUpdates( 'enqueue' );
wfLogProfilingData();
// Commit and close up!
- $factory = wfGetLBFactory();
$factory->commitMasterChanges( __METHOD__ );
$factory->shutdown( LBFactory::SHUTDOWN_NO_CHRONPROT );