From 147f2fc9d9341e99dc17c3a267b80b7fc22a9699 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Mon, 10 Apr 2017 21:53:51 -0400 Subject: Revert "Bug 1352913 - Extensions must register for template_before_process()" This reverts commit ecbdca8c3f06dd420db6a960c8808615dae6848a. --- Bugzilla/Hook.pm | 44 ++++++++++------------------ Bugzilla/Template/Context.pm | 23 ++++----------- extensions/BMO/Extension.pm | 44 ---------------------------- extensions/BugModal/Extension.pm | 11 ------- extensions/BzAPI/Extension.pm | 4 --- extensions/ComponentWatching/Extension.pm | 6 ---- extensions/FlagDefaultRequestee/Extension.pm | 6 ---- extensions/FlagTypeComment/Extension.pm | 4 --- extensions/InlineHistory/Extension.pm | 6 ---- extensions/MozReview/Extension.pm | 10 ------- extensions/OrangeFactor/Extension.pm | 9 ------ extensions/SecureMail/Extension.pm | 7 ----- extensions/ShadowBugs/Extension.pm | 8 ----- extensions/SiteMapIndex/Extension.pm | 6 ---- extensions/TrackingFlags/Extension.pm | 11 ------- extensions/Voting/Extension.pm | 5 ---- 16 files changed, 21 insertions(+), 183 deletions(-) diff --git a/Bugzilla/Hook.pm b/Bugzilla/Hook.pm index e28c01a40..00bd316ab 100644 --- a/Bugzilla/Hook.pm +++ b/Bugzilla/Hook.pm @@ -11,42 +11,18 @@ use 5.10.1; use strict; use warnings; -use Scalar::Util qw(blessed); - sub process { - my ($name, $args, $extensions) = @_; - - $extensions //= Bugzilla->extensions; - - my $hook_stack = Bugzilla->request_cache->{hook_stack} ||= []; - push @$hook_stack, $name; - - foreach my $extension (@$extensions) { - if (my $hook = $extension->can($name)) { - $hook->($extension, $args); - } - } + my ($name, $args) = @_; - pop @$hook_stack; -} - -sub collect_wants { - my ($name) = @_; - my %result; + _entering($name); foreach my $extension (@{ Bugzilla->extensions }) { - my $hook = $extension->can($name); - if ($hook) { - my $wants = $hook->($extension); - foreach my $want (keys %$wants) { - if ($wants->{$want}) { - $result{ $want }{ blessed $extension } = 1; - } - } + if ($extension->can($name)) { + $extension->$name($args); } } - return \%result; + _leaving($name); } sub in { @@ -55,6 +31,16 @@ sub in { return $hook_name eq $currently_in ? 1 : 0; } +sub _entering { + my ($hook_name) = @_; + my $hook_stack = Bugzilla->request_cache->{hook_stack} ||= []; + push(@$hook_stack, $hook_name); +} + +sub _leaving { + pop @{ Bugzilla->request_cache->{hook_stack} }; +} + 1; __END__ diff --git a/Bugzilla/Template/Context.pm b/Bugzilla/Template/Context.pm index e78cd9806..b81e32130 100644 --- a/Bugzilla/Template/Context.pm +++ b/Bugzilla/Template/Context.pm @@ -69,24 +69,13 @@ sub stash { # template object for Throw*Error). # # Checking Bugzilla::Hook::in prevents infinite recursion on this hook. - - if ( $self->{bz_in_process} - and $name =~ /\./ - and !grep( $_ eq $name, @$pre_process ) - and !Bugzilla::Hook::in('template_before_process') ) + if ($self->{bz_in_process} and $name =~ /\./ + and !grep($_ eq $name, @$pre_process) + and !Bugzilla::Hook::in('template_before_process')) { - state $WANT = Bugzilla::Hook::collect_wants('template_before_process_wants'); - if ( $WANT->{$name} ) { - my @extensions = grep { $WANT->{$name}{ blessed $_ } } @{ Bugzilla->extensions }; - Bugzilla::Hook::process( - "template_before_process" => { - vars => $stash, - context => $self, - file => $name - }, - \@extensions - ) if @extensions; - } + Bugzilla::Hook::process("template_before_process", + { vars => $stash, context => $self, + file => $name }); } # This prevents other calls to stash() that might somehow happen diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm index 90f5ec727..40ab8424e 100644 --- a/extensions/BMO/Extension.pm +++ b/extensions/BMO/Extension.pm @@ -89,50 +89,6 @@ BEGIN { *Bugzilla::Attachment::fetch_github_pr_diff = \&_attachment_fetch_github_pr_diff; } -sub template_before_process_wants { - return { - 'bug/create/create-user-engagement.html.tmpl' => 1, - 'bug/create/create-employee-incident.html.tmpl' => 1, - 'bug/create/create-fxos-mcts-waiver.html.tmpl' => 1, - 'bug/create/create-crm.html.tmpl' => 1, - 'bug/create/create-presentation.html.tmpl' => 1, - 'bug/create/create-fxos-feature.html.tmpl' => 1, - 'bug/create/create-ipc.html.tmpl' => 1, - 'bug/create/create-ipp.html.tmpl' => 1, - 'bug/create/create-mobile-compat.html.tmpl' => 1, - 'bug/create/create-mozpr.html.tmpl' => 1, - 'bug/create/create-third-party-apps.html.tmpl' => 1, - 'bug/create/create-itrequest.html.tmpl' => 1, - 'bug/create/create-fxos-betaprogram.html.tmpl' => 1, - 'bug/create/create-trademark.html.tmpl' => 1, - 'bug/create/create-dev-engagement-event.html.tmpl' => 1, - 'bug/create/create-name-clearance.html.tmpl' => 1, - 'list/list.microsummary.tmpl' => 1, - 'bug/create/create-legal.html.tmpl' => 1, - 'bug/create/create-creative.html.tmpl' => 1, - 'bug/create/create-swag.html.tmpl' => 1, - 'bug/create/create-doc.html.tmpl' => 1, - 'bug/create/create-web-bounty.html.tmpl' => 1, - 'bug/create/create-poweredby.html.tmpl' => 1, - 'bug/create/create-fsa-budget.html.tmpl' => 1, - 'bug/create/create-automative.html.tmpl' => 1, - 'bug/create/create-data-compliance.html.tmpl' => 1, - 'bug/create/create-finance.html.tmpl' => 1, - 'bug/create/create-nda.html.tmpl' => 1, - 'bug/create/create-fxos-preload-app.html.tmpl' => 1, - 'bug/create/create-shield-studies.html.tmpl' => 1, - 'bug/create/create-mozlist.html.tmpl' => 1, - 'bug/create/create-recoverykey.html.tmpl' => 1, - 'bug/create/create-comm-newsletter.html.tmpl' => 1, - 'bug/create/create-recruiting.html.tmpl' => 1, - 'bug/create/create-intern.html.tmpl' => 1, - 'bug/create/create-screen-share-whitelist.html.tmpl' => 1, - 'bug/create/create-costume.html.tmpl' => 1, - 'bug/create/create-mdn.html.tmpl' => 1, - 'bug/create/create-fxos-partner.html.tmpl' => 1 - }; -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{'file'}; diff --git a/extensions/BugModal/Extension.pm b/extensions/BugModal/Extension.pm index dede1f0fa..90406abca 100644 --- a/extensions/BugModal/Extension.pm +++ b/extensions/BugModal/Extension.pm @@ -150,17 +150,6 @@ sub template_after_create { ); } -sub template_before_process_wants { - return { - 'bug/process/header.html.tmpl' => 1, - 'bug/create/created.html.tmpl' => 1, - 'attachment/created.html.tmpl' => 1, - 'attachment/updated.html.tmpl' => 1, - 'bug_modal/edit.html.tmpl' => 1, - 'bug/show-modal.html.tmpl' => 1, - }; -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{file}; diff --git a/extensions/BzAPI/Extension.pm b/extensions/BzAPI/Extension.pm index 474060dd7..bb9805134 100644 --- a/extensions/BzAPI/Extension.pm +++ b/extensions/BzAPI/Extension.pm @@ -46,10 +46,6 @@ sub install_filesystem { # Template Hooks # ################## -sub template_before_process_wants { - return { 'config.json.tmpl' => 1 }; -} - sub template_before_process { my ($self, $args) = @_; my $vars = $args->{'vars'}; diff --git a/extensions/ComponentWatching/Extension.pm b/extensions/ComponentWatching/Extension.pm index 00393c235..36dee0e1d 100644 --- a/extensions/ComponentWatching/Extension.pm +++ b/extensions/ComponentWatching/Extension.pm @@ -131,12 +131,6 @@ sub template_before_create { $constants->{REL_COMPONENT_WATCHER} = REL_COMPONENT_WATCHER; } -sub template_before_process_wants { - return { - 'admin/components/create.html.tmpl' => 1, - } -} - sub template_before_process { my ($self, $args) = @_; return unless $args->{file} eq 'admin/components/create.html.tmpl'; diff --git a/extensions/FlagDefaultRequestee/Extension.pm b/extensions/FlagDefaultRequestee/Extension.pm index 7d727564b..f599feac2 100644 --- a/extensions/FlagDefaultRequestee/Extension.pm +++ b/extensions/FlagDefaultRequestee/Extension.pm @@ -41,12 +41,6 @@ sub install_update_db { # Templates # ############# -sub template_before_process_wants { - return { - map { $_ => 1 } FLAGTYPE_TEMPLATES, - } -} - sub template_before_process { my ($self, $args) = @_; return unless Bugzilla->user->id; diff --git a/extensions/FlagTypeComment/Extension.pm b/extensions/FlagTypeComment/Extension.pm index e03b1d9eb..34cd4c460 100644 --- a/extensions/FlagTypeComment/Extension.pm +++ b/extensions/FlagTypeComment/Extension.pm @@ -70,10 +70,6 @@ sub db_schema_abstract_schema { # Templates # ############# -sub template_before_process_wants { - return { map { $_ => 1 } FLAGTYPE_COMMENT_TEMPLATES }; -} - sub template_before_process { my ($self, $args) = @_; my ($vars, $file) = @$args{qw(vars file)}; diff --git a/extensions/InlineHistory/Extension.pm b/extensions/InlineHistory/Extension.pm index a33168dd6..fb4a8f98f 100644 --- a/extensions/InlineHistory/Extension.pm +++ b/extensions/InlineHistory/Extension.pm @@ -36,12 +36,6 @@ sub template_before_create { }; } -sub template_before_process_wants { - return { - 'bug/edit.html.tmpl' => 1, - } -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{'file'}; diff --git a/extensions/MozReview/Extension.pm b/extensions/MozReview/Extension.pm index 8b6c3031d..907f12e56 100644 --- a/extensions/MozReview/Extension.pm +++ b/extensions/MozReview/Extension.pm @@ -42,16 +42,6 @@ BEGIN { } } -sub template_before_process_wants { - return { - 'bug/edit.html.tmpl' => 1, - 'bug_modal/header.html.tmpl' => 1, - 'bug_modal/edit.html.tmpl' => 1, - 'attachment/create.html.tmpl' => 1, - 'bug/show-header.html.tmpl' => 1 - }; -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{'file'}; diff --git a/extensions/OrangeFactor/Extension.pm b/extensions/OrangeFactor/Extension.pm index 3225939cc..ab2f1d749 100644 --- a/extensions/OrangeFactor/Extension.pm +++ b/extensions/OrangeFactor/Extension.pm @@ -19,15 +19,6 @@ use Bugzilla::Attachment; our $VERSION = '1.0'; -sub template_before_process_wants { - return { - 'bug/show-header.html.tmpl' => 1, - 'bug/edit.html.tmpl' => 1, - 'bug_modal/header.html.tmpl' => 1, - 'bug_modal/edit.html.tmpl' => 1, - }; -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{'file'}; diff --git a/extensions/SecureMail/Extension.pm b/extensions/SecureMail/Extension.pm index b48c59cd6..0219ac3ba 100644 --- a/extensions/SecureMail/Extension.pm +++ b/extensions/SecureMail/Extension.pm @@ -216,13 +216,6 @@ sub user_preferences { $$handled = 1; } -sub template_before_process_wants { - return { - 'email/bugmail.html.tmpl' => 1, - 'email/bugmail.txt.tmpl' => 1, - }; -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{'file'}; diff --git a/extensions/ShadowBugs/Extension.pm b/extensions/ShadowBugs/Extension.pm index 5d5f08d6b..a9a1e0861 100644 --- a/extensions/ShadowBugs/Extension.pm +++ b/extensions/ShadowBugs/Extension.pm @@ -45,14 +45,6 @@ sub _cf_shadow_bug_obj { return $self->{cf_shadow_bug_obj} ||= Bugzilla::Bug->new($self->cf_shadow_bug); } -sub template_before_process_wants { - return { - 'bug/edit.html.tmpl' => 1, - 'bug/show.html.tmpl' => 1, - 'bug/show-header.html.tmpl' => 1, - }; -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{'file'}; diff --git a/extensions/SiteMapIndex/Extension.pm b/extensions/SiteMapIndex/Extension.pm index c75559855..901b80092 100644 --- a/extensions/SiteMapIndex/Extension.pm +++ b/extensions/SiteMapIndex/Extension.pm @@ -45,12 +45,6 @@ use POSIX; # Pages # ######### -sub template_before_process_wants { - return { - 'global/header.html.tmpl' => 1, - } -} - sub template_before_process { my ($self, $args) = @_; my ($vars, $file) = @$args{qw(vars file)}; diff --git a/extensions/TrackingFlags/Extension.pm b/extensions/TrackingFlags/Extension.pm index ec260926e..5f6715fc8 100644 --- a/extensions/TrackingFlags/Extension.pm +++ b/extensions/TrackingFlags/Extension.pm @@ -69,17 +69,6 @@ sub page_before_template { } } -sub template_before_process_wants { - return { - 'bug/edit.html.tmpl' => 1, - 'email/bugmail.txt.tmpl' => 1, - 'email/bugmail.html.tmpl' => 1, - 'bug/show.xml.tmpl' => 1, - 'list/edit-multiple.html.tmpl' => 1, - 'bug/create/create.html.tmpl' => 1, - }; -} - sub template_before_process { my ($self, $args) = @_; my $file = $args->{'file'}; diff --git a/extensions/Voting/Extension.pm b/extensions/Voting/Extension.pm index cf4297024..25266778c 100644 --- a/extensions/Voting/Extension.pm +++ b/extensions/Voting/Extension.pm @@ -221,11 +221,6 @@ sub template_before_create { $constants->{DEFAULT_VOTES_PER_BUG} = DEFAULT_VOTES_PER_BUG; } -sub template_before_process_wants { - return { - 'admin/users/confirm-delete.html.tmpl' => 1 - } -} sub template_before_process { my ($self, $args) = @_; -- cgit v1.2.3-24-g4f1b