X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FOutputPage.php;h=c57e219f8c39dd6e8d00deea9ac61d0064b03318;hb=e3f6c10d87732c0c8a9bbd7bb57b6c964b92e29a;hp=9b2d8da7af24bdbfe02c0ec67e01122ff32b1e1c;hpb=8e22988441ced6876f7854cd4c746ee9ae970c30;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/OutputPage.php b/includes/OutputPage.php index 9b2d8da7af..c57e219f8c 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -67,13 +67,6 @@ class OutputPage extends ContextSource { */ public $mBodytext = ''; - /** - * Holds the debug lines that will be output as comments in page source if - * $wgDebugComments is enabled. See also $wgShowDebug. - * @deprecated since 1.20; use MWDebug class instead. - */ - public $mDebugtext = ''; - /** @var string Stores contents of "" tag */ private $mHTMLtitle = ''; @@ -2214,10 +2207,16 @@ class OutputPage extends ContextSource { /** * Finally, all the text has been munged and accumulated into * the object, let's actually output it: + * + * @param bool $return Set to true to get the result as a string rather than sending it + * @return string|null + * @throws Exception + * @throws FatalError + * @throws MWException */ - public function output() { + public function output( $return = false ) { if ( $this->mDoNothing ) { - return; + return $return ? '' : null; } $response = $this->getRequest()->response(); @@ -2253,7 +2252,7 @@ class OutputPage extends ContextSource { } } - return; + return $return ? '' : null; } elseif ( $this->mStatusCode ) { $response->statusHeader( $this->mStatusCode ); } @@ -2262,7 +2261,7 @@ class OutputPage extends ContextSource { ob_start(); $response->header( 'Content-type: ' . $config->get( 'MimeType' ) . '; charset=UTF-8' ); - $response->header( 'Content-language: ' . $config->get( 'LanguageCode' ) ); + $response->header( 'Content-language: ' . $config->get( 'ContLang' )->getHtmlCode() ); // Avoid Internet Explorer "compatibility view" in IE 8-10, so that // jQuery etc. can work correctly. @@ -2322,8 +2321,12 @@ class OutputPage extends ContextSource { $this->sendCacheControl(); - ob_end_flush(); - + if ( $return ) { + return ob_get_clean(); + } else { + ob_end_flush(); + return null; + } } /** @@ -2716,12 +2719,17 @@ class OutputPage extends ContextSource { ); $this->rlExemptStyleModules = $exemptGroups; - // Manually handled by getBottomScripts() - $userModule = $rl->getModule( 'user' ); - $userState = $userModule->isKnownEmpty( $context ) && !$this->isUserJsPreview() - ? 'ready' - : 'loading'; - $this->rlUserModuleState = $exemptStates['user'] = $userState; + $isUserModuleFiltered = !$this->filterModules( [ 'user' ] ); + // If this page filters out 'user', makeResourceLoaderLink will drop it. + // Avoid indefinite "loading" state or untrue "ready" state (T145368). + if ( !$isUserModuleFiltered ) { + // Manually handled by getBottomScripts() + $userModule = $rl->getModule( 'user' ); + $userState = $userModule->isKnownEmpty( $context ) && !$this->isUserJsPreview() + ? 'ready' + : 'loading'; + $this->rlUserModuleState = $exemptStates['user'] = $userState; + } $rlClient = new ResourceLoaderClientHtml( $context, $this->getTarget() ); $rlClient->setConfig( $this->getJSVars() );