Add rel=nofollow parameter to links in comments
Spamming a Gerrit site is a real issue:
https://groups.google.com/d/msg/repo-discuss/Q9x23wnOQXg/aAtXSGqNAwAJ
Google recommends adding rel="nofollow"[1] to links on comments:
"This can discourage spammers from targeting your site, and will help
keep your site from inadvertently passing PageRank to bad neighborhoods
on the web".
[1] https://support.google.com/webmasters/answer/96569?hl=en
Change-Id: I17c2c6f009d31db1c91b39d37227edebf923373a
diff --git a/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java
index b8f0800..10c2a78 100644
--- a/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java
+++ b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java
@@ -138,7 +138,7 @@
"(?:[(]" + part + "*" + "[)])*" +
part + "*" +
")",
- "<a href=\"$1\" target=\"_blank\">$1</a>");
+ "<a href=\"$1\" target=\"_blank\" rel=\"nofollow\">$1</a>");
}
/**
diff --git a/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_LinkifyTest.java b/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_LinkifyTest.java
index bf96d77..8fe743e 100644
--- a/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_LinkifyTest.java
+++ b/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_LinkifyTest.java
@@ -25,7 +25,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a> B");
+ "A <a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a> B");
}
@Test
@@ -34,7 +35,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <a href=\"https://go.here/\" target=\"_blank\">https://go.here/</a> B");
+ "A <a href=\"https://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">https://go.here/</a> B");
}
@Test
@@ -43,7 +45,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A (<a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a>) B");
+ "A (<a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a>) B");
}
@Test
@@ -52,7 +55,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <a href=\"http://go.here/#m()\" target=\"_blank\">http://go.here/#m()</a> B");
+ "A <a href=\"http://go.here/#m()\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/#m()</a> B");
}
@Test
@@ -61,7 +65,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <<a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a>> B");
+ "A <<a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a>> B");
}
@Test
@@ -70,7 +75,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <a href=\"http://go.here/foo\" target=\"_blank\">http://go.here/foo</a> B");
+ "A <a href=\"http://go.here/foo\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/foo</a> B");
}
@Test
@@ -79,7 +85,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a>. B");
+ "A <a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a>. B");
}
@Test
@@ -88,7 +95,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a>, B");
+ "A <a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a>, B");
}
@Test
@@ -97,7 +105,8 @@
final SafeHtml n = o.linkify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "A <a href=\"http://go.here/.\" target=\"_blank\">http://go.here/.</a>. B");
+ "A <a href=\"http://go.here/.\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/.</a>. B");
}
private static SafeHtml html(String text) {
diff --git a/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_WikifyTest.java b/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_WikifyTest.java
index 41d6f37..8f6ff8d 100644
--- a/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_WikifyTest.java
+++ b/gerrit-gwtexpui/src/test/java/com/google/gwtexpui/safehtml/client/SafeHtml_WikifyTest.java
@@ -65,7 +65,8 @@
final SafeHtml n = o.wikify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "<p>A <a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a> B</p>");
+ "<p>A <a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a> B</p>");
}
@Test
@@ -74,7 +75,8 @@
final SafeHtml n = o.wikify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "<p>A <a href=\"https://go.here/\" target=\"_blank\">https://go.here/</a> B</p>");
+ "<p>A <a href=\"https://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">https://go.here/</a> B</p>");
}
@Test
@@ -83,7 +85,8 @@
final SafeHtml n = o.wikify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "<p>A (<a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a>) B</p>");
+ "<p>A (<a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a>) B</p>");
}
@Test
@@ -92,7 +95,8 @@
final SafeHtml n = o.wikify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "<p>A <a href=\"http://go.here/#m()\" target=\"_blank\">http://go.here/#m()</a> B</p>");
+ "<p>A <a href=\"http://go.here/#m()\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/#m()</a> B</p>");
}
@Test
@@ -101,7 +105,8 @@
final SafeHtml n = o.wikify();
assertThat(o).isNotSameAs(n);
assertThat(n.asString()).isEqualTo(
- "<p>A <<a href=\"http://go.here/\" target=\"_blank\">http://go.here/</a>> B</p>");
+ "<p>A <<a href=\"http://go.here/\" target=\"_blank\" rel=\"nofollow\""
+ + ">http://go.here/</a>> B</p>");
}
private static SafeHtml html(String text) {