aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lawrence <dkl@mozilla.com>2016-03-21 15:53:10 +0000
committerSam James <sam@gentoo.org>2023-01-30 21:32:37 +0000
commit3b91727edf3a546f3407d37f4ce5859e8e5609bc (patch)
tree1b0cf4dfdc97766e580ecd5536ddddad6e91666c
parentBug 919122 - support for sourceforge.net Allura bugs in see_also field. r=gerv. (diff)
downloadbugzilla-3b91727edf3a546f3407d37f4ce5859e8e5609bc.tar.gz
bugzilla-3b91727edf3a546f3407d37f4ce5859e8e5609bc.tar.bz2
bugzilla-3b91727edf3a546f3407d37f4ce5859e8e5609bc.zip
Bug 1252782 - can't add a "See Also" to a Chromium bug on bugs.chromium.orggentoo-5.0.6.23
(cherry picked from commit 3af55bfe0bd10a85b7cd69e26a19034a6d2e78f5)
-rw-r--r--Bugzilla/BugUrl.pm1
-rw-r--r--Bugzilla/BugUrl/Chromium.pm49
-rw-r--r--template/en/default/global/user-error.html.tmpl1
3 files changed, 51 insertions, 0 deletions
diff --git a/Bugzilla/BugUrl.pm b/Bugzilla/BugUrl.pm
index 9aa7ac7f5..b688c9558 100644
--- a/Bugzilla/BugUrl.pm
+++ b/Bugzilla/BugUrl.pm
@@ -57,6 +57,7 @@ use constant SUB_CLASSES => qw(
Bugzilla::BugUrl::Bugzilla::Local
Bugzilla::BugUrl::Bugzilla
Bugzilla::BugUrl::Launchpad
+ Bugzilla::BugUrl::Chromium
Bugzilla::BugUrl::Flyspray
Bugzilla::BugUrl::Google
Bugzilla::BugUrl::Debian
diff --git a/Bugzilla/BugUrl/Chromium.pm b/Bugzilla/BugUrl/Chromium.pm
new file mode 100644
index 000000000..5560df24c
--- /dev/null
+++ b/Bugzilla/BugUrl/Chromium.pm
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package Bugzilla::BugUrl::Chromium;
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use base qw(Bugzilla::BugUrl);
+
+use Bugzilla::Error;
+use Bugzilla::Util;
+
+###############################
+#### Methods ####
+###############################
+
+sub should_handle {
+ my ($class, $uri) = @_;
+ return ($uri->authority =~ /^bugs.chromium.org$/i) ? 1 : 0;
+}
+
+sub _check_value {
+ my ($class, $uri) = @_;
+
+ $uri = $class->SUPER::_check_value($uri);
+
+ my $value = $uri->as_string;
+ my $project_name;
+ if ($uri->path =~ m|^/p/([^/]+)/issues/detail$|) {
+ $project_name = $1;
+ } else {
+ ThrowUserError('bug_url_invalid', { url => $value });
+ }
+ my $bug_id = $uri->query_param('id');
+ detaint_natural($bug_id);
+ if (!$bug_id) {
+ ThrowUserError('bug_url_invalid', { url => $value, reason => 'id' });
+ }
+
+ return URI->new($value);
+}
+
+1;
diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl
index da14f55ad..d19d81f97 100644
--- a/template/en/default/global/user-error.html.tmpl
+++ b/template/en/default/global/user-error.html.tmpl
@@ -286,6 +286,7 @@
<li>A b[% %]ug on launchpad.net.</li>
<li>An issue on code.google.com.</li>
<li>A b[% %]ug on b[% %]ugs.debian.org or deb[% %]ugs.gnu.org.</li>
+ <li>An issue on b[% %]ugs.chromium.org.</li>
<li>An issue in a JIRA installation.</li>
<li>A ticket in a Trac installation.</li>
<li>A b[% %]ug in a MantisBT installation.</li>