Fix URI for new UI

New UI makes opens the links relative to the page, causing incorrect
result.

Change-Id: Iec3a0ff45554b11d7a36e7fc5da50c6f76646442
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
(cherry picked from commit e2224e0eb9da755e87aa3d4b64714a980b2a6a11)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
index 61d621a..cf0e9df 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
@@ -15,6 +15,7 @@
 package com.googlesource.gerrit.plugins.gitiles;
 
 import com.google.common.base.MoreObjects;
+import com.google.gerrit.common.Nullable;
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.common.WebLinkInfo;
 import com.google.gerrit.extensions.webui.BranchWebLink;
@@ -24,9 +25,12 @@
 import com.google.gerrit.extensions.webui.PatchSetWebLink;
 import com.google.gerrit.extensions.webui.ProjectWebLink;
 import com.google.gerrit.extensions.webui.TagWebLink;
+import com.google.gerrit.server.config.CanonicalWebUrl;
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
+import java.net.MalformedURLException;
+import java.net.URL;
 import org.eclipse.jgit.lib.Config;
 
 @Singleton
@@ -43,10 +47,23 @@
   private final String target;
 
   @Inject
-  public GitilesWeblinks(@PluginName String pluginName, PluginConfigFactory configFactory) {
+  public GitilesWeblinks(
+      @PluginName String pluginName,
+      @Nullable @CanonicalWebUrl String gerritUrl,
+      PluginConfigFactory configFactory)
+      throws MalformedURLException {
+
+    String baseGerritUrl;
+    if (gerritUrl != null) {
+      URL u = new URL(gerritUrl);
+      baseGerritUrl = u.getPath();
+    } else {
+      baseGerritUrl = "/";
+    }
+
     Config config = configFactory.getGlobalPluginConfig("gitiles");
     name = MoreObjects.firstNonNull(config.getString("gerrit", null, "linkname"), "browse");
-    baseUrl = "plugins/" + pluginName;
+    baseUrl = baseGerritUrl + "plugins/" + pluginName;
 
     target = MoreObjects.firstNonNull(config.getString("gerrit", null, "target"), Target.BLANK);
   }