← Index
NYTProf Performance Profile   « line view »
For ./view
  Run on Fri Jul 31 18:42:36 2015
Reported on Fri Jul 31 18:48:14 2015

Filename/var/www/foswikidev/core/lib/Foswiki/Plugins/UpdatesPlugin.pm
StatementsExecuted 31 statements in 482µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11170µs6.02msFoswiki::Plugins::UpdatesPlugin::::initPluginFoswiki::Plugins::UpdatesPlugin::initPlugin
11114µs28µsFoswiki::Plugins::UpdatesPlugin::::BEGIN@18Foswiki::Plugins::UpdatesPlugin::BEGIN@18
11112µs50µsFoswiki::Plugins::UpdatesPlugin::::BEGIN@29Foswiki::Plugins::UpdatesPlugin::BEGIN@29
1119µs14µsFoswiki::Plugins::UpdatesPlugin::::BEGIN@19Foswiki::Plugins::UpdatesPlugin::BEGIN@19
1114µs4µsFoswiki::Plugins::UpdatesPlugin::::BEGIN@21Foswiki::Plugins::UpdatesPlugin::BEGIN@21
0000s0sFoswiki::Plugins::UpdatesPlugin::::__ANON__[:76]Foswiki::Plugins::UpdatesPlugin::__ANON__[:76]
0000s0sFoswiki::Plugins::UpdatesPlugin::::getCoreFoswiki::Plugins::UpdatesPlugin::getCore
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# Plugin for Foswiki - The Free and Open Source Wiki, http://foswiki.org/
2#
3# UpdatesPlugin is Copyright (C) 2011-2015 Foswiki Contributors
4#
5# This program is free software; you can redistribute it and/or
6# modify it under the terms of the GNU General Public License
7# as published by the Free Software Foundation; either version 2
8# of the License, or (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details, published at
14# http://www.gnu.org/copyleft/gpl.html
15
16package Foswiki::Plugins::UpdatesPlugin;
17
18228µs242µs
# spent 28µs (14+14) within Foswiki::Plugins::UpdatesPlugin::BEGIN@18 which was called: # once (14µs+14µs) by Foswiki::Plugin::BEGIN@2.41 at line 18
use strict;
# spent 28µs making 1 call to Foswiki::Plugins::UpdatesPlugin::BEGIN@18 # spent 14µs making 1 call to strict::import
19225µs218µs
# spent 14µs (9+4) within Foswiki::Plugins::UpdatesPlugin::BEGIN@19 which was called: # once (9µs+4µs) by Foswiki::Plugin::BEGIN@2.41 at line 19
use warnings;
# spent 14µs making 1 call to Foswiki::Plugins::UpdatesPlugin::BEGIN@19 # spent 4µs making 1 call to warnings::import
20
21262µs14µs
# spent 4µs within Foswiki::Plugins::UpdatesPlugin::BEGIN@21 which was called: # once (4µs+0s) by Foswiki::Plugin::BEGIN@2.41 at line 21
use Foswiki::Func ();
# spent 4µs making 1 call to Foswiki::Plugins::UpdatesPlugin::BEGIN@21
22
231700nsour $VERSION = '1.01';
241200nsour $RELEASE = '1.01';
251200nsour $SHORTDESCRIPTION = 'Checks Foswiki.org for updates';
261100nsour $NO_PREFS_IN_TOPIC = 1;
271100nsour $core;
28
292317µs288µs
# spent 50µs (12+38) within Foswiki::Plugins::UpdatesPlugin::BEGIN@29 which was called: # once (12µs+38µs) by Foswiki::Plugin::BEGIN@2.41 at line 29
use constant TRACE => 0; # Set to 1 to enable debug mode
# spent 50µs making 1 call to Foswiki::Plugins::UpdatesPlugin::BEGIN@29 # spent 38µs making 1 call to constant::import
30
31
# spent 6.02ms (70µs+5.95) within Foswiki::Plugins::UpdatesPlugin::initPlugin which was called: # once (70µs+5.95ms) by Foswiki::Plugin::__ANON__[/var/www/foswikidev/core/lib/Foswiki/Plugin.pm:257] at line 250 of /var/www/foswikidev/core/lib/Foswiki/Plugin.pm
sub initPlugin {
32
33 # bail out if not an admin and not in view mode
3412µs11µs my $context = Foswiki::Func::getContext();
# spent 1µs making 1 call to Foswiki::Func::getContext
3513µs112µs return 1
# spent 12µs making 1 call to Foswiki::Func::isAnAdmin
36 unless Foswiki::Func::isAnAdmin()
37 && ( $context->{view} || $context->{rest} );
38
3912µs11µs my $request = Foswiki::Func::getRequestObject();
# spent 1µs making 1 call to Foswiki::Func::getRequestObject
401500ns my $cookie;
41
4213µs127µs $cookie = $request->cookie("FOSWIKI_UPDATESPLUGIN") unless TRACE;
# spent 27µs making 1 call to Foswiki::Request::cookie
43
441300ns return 1 if defined($cookie) && $cookie <= 0; # 0: DoNothing
45
4612µs14.48ms Foswiki::Func::readTemplate("updatesplugin");
# spent 4.48ms making 1 call to Foswiki::Func::readTemplate
47
48 # add stuff to page
4913µs175µs my $css = Foswiki::Func::expandTemplate("css");
# spent 75µs making 1 call to Foswiki::Func::expandTemplate
5012µs1130µs my $messageTmpl = Foswiki::Func::expandTemplate("messagetmpl");
# spent 130µs making 1 call to Foswiki::Func::expandTemplate
51
5212µs1450µs Foswiki::Plugins::JQueryPlugin::createPlugin("cookie");
# spent 450µs making 1 call to Foswiki::Plugins::JQueryPlugin::createPlugin
5311µs1667µs Foswiki::Plugins::JQueryPlugin::createPlugin("render");
# spent 667µs making 1 call to Foswiki::Plugins::JQueryPlugin::createPlugin
54
5511µs my $jsFile =
56 (TRACE) ? 'jquery.updates.uncompressed.js' : 'jquery.updates.js';
57
5814µs131µs my $configureUrl = $Foswiki::cfg{Plugins}{UpdatesPlugin}{ConfigureUrl}
# spent 31µs making 1 call to Foswiki::Func::getScriptUrl
59 || Foswiki::Func::getScriptUrl( undef, undef, "configure" );
60
6114µs131µs Foswiki::Func::addToZone( "head", "UPDATESPLUGIN::META", <<META);
# spent 31µs making 1 call to Foswiki::Func::addToZone
62<meta name="foswiki.UPDATESPLUGIN::CONFIGUREURL" content="$configureUrl" />
63$css
64$messageTmpl
65META
66
6713µs124µs Foswiki::Func::addToZone( "script", "UPDATESPLUGIN::JS",
# spent 24µs making 1 call to Foswiki::Func::addToZone
68 <<JS, "JQUERYPLUGIN::FOSWIKI, JQUERYPLUGIN::COOKIE, JQUERYPLUGIN::RENDER" );
69<script src="%PUBURLPATH%/%SYSTEMWEB%/UpdatesPlugin/$jsFile"></script>
70JS
71
72 Foswiki::Func::registerRESTHandler(
73 'check',
74 sub {
75 return getCore( shift, debug => TRACE )->handleRESTCheck(@_);
76 },
7716µs124µs authenticate => 0, # Safe. initPlugin bails if user not an admin.
# spent 24µs making 1 call to Foswiki::Func::registerRESTHandler
78 validate => 0, # Doesn't update.
79 http_allow => 'GET',
80 description => 'Check if any extensions are out-of-date',
81 );
82
8315µs return 1;
84}
85
86sub getCore {
87 unless ($core) {
88 require Foswiki::Plugins::UpdatesPlugin::Core;
89 $core = new Foswiki::Plugins::UpdatesPlugin::Core(@_);
90 }
91
92 return $core;
93}
94
9514µs1;