Avoid loading plugin bundles when running locally
When using run-server.sh (server.go) and you provide a plugins command
line parameter, then the plugin bundle should not be loaded from the
server. So when rewriting the host page let's remove URLs pointing to
polygerrit_assets on the CDN host. Thus loading the bundle will fail
with 404 and normal plugin loading and rewriting kicks in.
Bug: Issue 11274
Change-Id: If62f1d677a11cca2373ae1d45b0d6023f5b35726
diff --git a/polygerrit-ui/server.go b/polygerrit-ui/server.go
index 305a6b8..1a2d299 100644
--- a/polygerrit-ui/server.go
+++ b/polygerrit-ui/server.go
@@ -38,11 +38,12 @@
)
var (
- plugins = flag.String("plugins", "", "comma seperated plugin paths to serve")
- port = flag.String("port", ":8081", "Port to serve HTTP requests on")
- host = flag.String("host", "gerrit-review.googlesource.com", "Host to proxy requests to")
- scheme = flag.String("scheme", "https", "URL scheme")
- cdnPattern = regexp.MustCompile("https://cdn.googlesource.com/polygerrit_ui/[0-9.]*")
+ plugins = flag.String("plugins", "", "comma seperated plugin paths to serve")
+ port = flag.String("port", ":8081", "Port to serve HTTP requests on")
+ host = flag.String("host", "gerrit-review.googlesource.com", "Host to proxy requests to")
+ scheme = flag.String("scheme", "https", "URL scheme")
+ cdnPattern = regexp.MustCompile("https://cdn.googlesource.com/polygerrit_ui/[0-9.]*")
+ bundledPluginsPattern = regexp.MustCompile("https://cdn.googlesource.com/polygerrit_assets/[0-9.]*")
)
func main() {
@@ -192,6 +193,9 @@
// contains window.INITIAL_DATA=...
// Here we rely on the fact that the <script> snippet that we want to append to is the first one.
if len(*plugins) > 0 {
+ // If the host page contains a reference to a plugin bundle that would be preloaded, then remove it.
+ replaced = bundledPluginsPattern.ReplaceAllString(replaced, "")
+
insertionPoint := strings.Index(replaced, "</script>")
builder := new(strings.Builder)
builder.WriteString(