← Index
NYTProf Performance Profile   « block view • line view • sub view »
For /usr/local/src/github.com/foswiki/core/bin/view
  Run on Sun Dec 4 17:17:59 2011
Reported on Sun Dec 4 17:26:34 2011

Filename/usr/local/src/github.com/foswiki/core/lib/Foswiki/Plugins/UpdatesPlugin.pm
StatementsExecuted 12 statements in 573µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11126µs34µsFoswiki::Plugins::UpdatesPlugin::::BEGIN@18Foswiki::Plugins::UpdatesPlugin::BEGIN@18
11123µs80µsFoswiki::Plugins::UpdatesPlugin::::initPluginFoswiki::Plugins::UpdatesPlugin::initPlugin
11122µs42µsFoswiki::Plugins::UpdatesPlugin::::BEGIN@19Foswiki::Plugins::UpdatesPlugin::BEGIN@19
11110µs10µsFoswiki::Plugins::UpdatesPlugin::::BEGIN@21Foswiki::Plugins::UpdatesPlugin::BEGIN@21
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 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
18252µs242µs
# spent 34µs (26+8) within Foswiki::Plugins::UpdatesPlugin::BEGIN@18 which was called: # once (26µs+8µs) by Foswiki::Plugin::BEGIN@2.20 at line 18
use strict;
# spent 34µs making 1 call to Foswiki::Plugins::UpdatesPlugin::BEGIN@18 # spent 8µs making 1 call to strict::import
19251µs262µs
# spent 42µs (22+20) within Foswiki::Plugins::UpdatesPlugin::BEGIN@19 which was called: # once (22µs+20µs) by Foswiki::Plugin::BEGIN@2.20 at line 19
use warnings;
# spent 42µs making 1 call to Foswiki::Plugins::UpdatesPlugin::BEGIN@19 # spent 20µs making 1 call to warnings::import
20
212441µs110µs
# spent 10µs within Foswiki::Plugins::UpdatesPlugin::BEGIN@21 which was called: # once (10µs+0s) by Foswiki::Plugin::BEGIN@2.20 at line 21
use Foswiki::Func ();
# spent 10µs making 1 call to Foswiki::Plugins::UpdatesPlugin::BEGIN@21
22
2312µsour $VERSION = '$Rev$';
2411µsour $RELEASE = '0.10';
2511µsour $SHORTDESCRIPTION = 'Checks Foswiki.org for updates';
2611µsour $NO_PREFS_IN_TOPIC = 1;
27
28
# spent 80µs (23+57) within Foswiki::Plugins::UpdatesPlugin::initPlugin which was called: # once (23µs+57µs) by Foswiki::Plugin::__ANON__[/usr/local/src/github.com/foswiki/core/lib/Foswiki/Plugin.pm:235] at line 228 of /usr/local/src/github.com/foswiki/core/lib/Foswiki/Plugin.pm
sub initPlugin {
29
30 # bail out if not an admin and not in view mode
31116µs157µs return 1 unless Foswiki::Func::isAnAdmin() && Foswiki::Func::getContext()->{view};
# spent 57µs making 1 call to Foswiki::Func::isAnAdmin
32
33 my $request = Foswiki::Func::getRequestObject();
34 my $cookie = $request->cookie("FOSWIKI_UPDATESPLUGIN");
35
36 return 1 if defined($cookie) && $cookie <= 0; # 0: DoNothing
37
38 Foswiki::Func::readTemplate("updatesplugin");
39
40 my $installedPlugins = '';
41
42 # we already know that the admin has to do something. so don't search again.
43 # this happens when the admin continues to click around but did not action
44 # on the info banner.
45 $installedPlugins = Foswiki::Func::expandTemplate("installedplugins")
46 unless defined($cookie);
47
48 my $css = Foswiki::Func::expandTemplate("css");
49 my $messageTmpl = Foswiki::Func::expandTemplate("messagetmpl");
50
51 require Foswiki::Plugins::JQueryPlugin;
52
53 Foswiki::Plugins::JQueryPlugin::createPlugin("cookie");
54 Foswiki::Plugins::JQueryPlugin::createPlugin("tmpl");
55
56 # SMELL read Foswiki::cfg{ExtensionsRepositories} and generate the report url on its base
57 my $reportUrl = $Foswiki::cfg{UpdatesPlugin}{ReportUrl}
58 || "http://foswiki.org/Extensions/UpdatesPluginReport";
59
60 my $configureUrl = $Foswiki::cfg{UpdatesPlugin}{ConfigureUrl}
61 || Foswiki::Func::getScriptUrl(undef, undef, "configure");
62
63 Foswiki::Func::addToZone("head", "UPDATESPLUGIN::META", <<META);
64<meta name="foswiki.UPDATESPLUGIN::REPORTURL" content="$reportUrl" />
65<meta name="foswiki.UPDATESPLUGIN::CONFIGUREURL" content="$configureUrl" />
66$css
67$messageTmpl
68META
69
70 Foswiki::Func::addToZone( "script", "UPDATESPLUGIN::JS", <<JS, "JQUERYPLUGIN::FOSWIKI, JQUERYPLUGIN::COOKIE, JQUERYPLUGIN::TMPL" );
71$installedPlugins
72<script src="%PUBURLPATH%/%SYSTEMWEB%/UpdatesPlugin/jquery.updates.js"></script>
73JS
74
75 return 1;
76}
77
7816µs1;