fixes bug 20388; follow up r60216. Make sure ProfilerSimpleText output only appears on templated/html output, not action=raw or atom output
This commit is contained in:
parent
267bcb1ba9
commit
c6bb90b4c7
3 changed files with 24 additions and 12 deletions
|
|
@ -16,6 +16,7 @@ if ( !class_exists( 'Profiler' ) ) {
|
|||
class ProfilerSimple extends Profiler {
|
||||
var $mMinimumTime = 0;
|
||||
var $mProfileID = false;
|
||||
var $mTemplated = false;
|
||||
|
||||
function __construct() {
|
||||
global $wgRequestTime, $wgRUstart;
|
||||
|
|
@ -54,6 +55,14 @@ class ProfilerSimple extends Profiler {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark this call as templated or not
|
||||
* @param boolean $t
|
||||
*/
|
||||
function setTemplated( $t ) {
|
||||
$this->mTemplated = $t;
|
||||
}
|
||||
|
||||
function profileIn($functionname) {
|
||||
global $wgDebugFunctionEntry;
|
||||
if ($wgDebugFunctionEntry) {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ require_once( dirname( __FILE__ ) . '/ProfilerSimple.php' );
|
|||
/**
|
||||
* The least sophisticated profiler output class possible, view your source! :)
|
||||
*
|
||||
* Put it to StartProfiler.php like this:
|
||||
* Put the following 3 lines in StartProfiler.php:
|
||||
*
|
||||
* require_once( dirname( __FILE__ ) . '/includes/ProfilerSimpleText.php' );
|
||||
* $wgProfiler = new ProfilerSimpleText;
|
||||
|
|
@ -19,21 +19,23 @@ require_once( dirname( __FILE__ ) . '/ProfilerSimple.php' );
|
|||
*/
|
||||
class ProfilerSimpleText extends ProfilerSimple {
|
||||
public $visible=false; /* Show as <PRE> or <!-- ? */
|
||||
static private $out;
|
||||
|
||||
function getFunctionReport() {
|
||||
global $wgRequest;
|
||||
if ( $wgRequest->getVal( 'action' ) == 'raw' ) # bug 20388
|
||||
return;
|
||||
global $wgRequest, $wgOut;
|
||||
|
||||
if ($this->visible) print "<pre>";
|
||||
else print "<!--\n";
|
||||
uasort($this->mCollated,array('self','sort'));
|
||||
array_walk($this->mCollated,array('self','format'));
|
||||
if ($this->visible) print "</pre>\n";
|
||||
else print "-->\n";
|
||||
if($this->mTemplated) {
|
||||
uasort($this->mCollated,array('self','sort'));
|
||||
array_walk($this->mCollated,array('self','format'));
|
||||
if ($this->visible) {
|
||||
print '<pre>'.self::$out.'</pre>';
|
||||
} else {
|
||||
print '<!--\n'.self::$out.'\n-->\n';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* dense is good */
|
||||
static function sort($a,$b) { return $a['real']<$b['real']; /* sort descending by time elapsed */ }
|
||||
static function format($item,$key) { printf("%3.6f %6d - %s\n",$item['real'],$item['count'], $key); }
|
||||
static function format($item,$key) { self::$out .= sprintf("%3.6f %6d - %s\n",$item['real'],$item['count'], $key); }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,9 +134,10 @@ class SkinTemplate extends Skin {
|
|||
global $wgMaxCredits, $wgShowCreditsIfMax;
|
||||
global $wgPageShowWatchingUsers;
|
||||
global $wgUseTrackbacks, $wgUseSiteJs, $wgDebugComments;
|
||||
global $wgArticlePath, $wgScriptPath, $wgServer;
|
||||
global $wgArticlePath, $wgScriptPath, $wgServer, $wgProfiler;
|
||||
|
||||
wfProfileIn( __METHOD__ );
|
||||
$wgProfiler->setTemplated(true);
|
||||
|
||||
$oldid = $wgRequest->getVal( 'oldid' );
|
||||
$diff = $wgRequest->getVal( 'diff' );
|
||||
|
|
|
|||
Loading…
Reference in a new issue