aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pratt <mpratt@google.com>2022-01-12 18:27:28 -0500
committerGopher Robot <gobot@golang.org>2022-04-21 21:18:18 +0000
commit889a902d215c57fe2032181370a9a2c30c531c99 (patch)
treeea702a856b71096fa73a2c3b9aa22c9b72811d13
parent430ae97a2599e840bdeb934d5be171efb4a41272 (diff)
downloadgo-889a902d215c57fe2032181370a9a2c30c531c99.tar.gz
go-889a902d215c57fe2032181370a9a2c30c531c99.zip
cmd/trace: embed static content
cmd/trace is currently somewhat painful to use in odd environments since it depends on the presence of $GOROOT/misc/trace to serve the static trace viewer content. Use //go:embed to embed this content directly into cmd/trace for easier use. Change-Id: I83b7d97dbecc9773f3b5a6b3bc4a6597473bc01a Reviewed-on: https://go-review.googlesource.com/c/go/+/378194 Run-TryBot: Michael Pratt <mpratt@google.com> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
-rwxr-xr-xsrc/bootstrap.bash2
-rw-r--r--src/cmd/trace/static/README.md (renamed from misc/trace/README.md)4
-rw-r--r--src/cmd/trace/static/trace_viewer_full.html (renamed from misc/trace/trace_viewer_full.html)0
-rw-r--r--src/cmd/trace/static/webcomponents.min.js (renamed from misc/trace/webcomponents.min.js)0
-rw-r--r--src/cmd/trace/trace.go26
5 files changed, 12 insertions, 20 deletions
diff --git a/src/bootstrap.bash b/src/bootstrap.bash
index 88c080a948..4038eaf942 100755
--- a/src/bootstrap.bash
+++ b/src/bootstrap.bash
@@ -96,7 +96,7 @@ if [ "$BOOTSTRAP_FORMAT" = "mintgz" ]; then
echo "Preparing to generate build system's ${OUTGZ}; cleaning ..."
rm -rf bin/gofmt
rm -rf src/runtime/race/race_*.syso
- rm -rf api test doc misc/cgo/test misc/trace
+ rm -rf api test doc misc/cgo/test
rm -rf pkg/tool/*_*/{addr2line,api,cgo,cover,doc,fix,nm,objdump,pack,pprof,test2json,trace,vet}
rm -rf pkg/*_*/{image,database,cmd}
rm -rf $(find . -type d -name testdata)
diff --git a/misc/trace/README.md b/src/cmd/trace/static/README.md
index 218d728546..f81c59eae5 100644
--- a/misc/trace/README.md
+++ b/src/cmd/trace/static/README.md
@@ -17,7 +17,7 @@ The file was generated by catapult's `vulcanize_trace_viewer` command.
$ git clone https://chromium.googlesource.com/catapult
$ cd catapult
$ ./tracing/bin/vulcanize_trace_viewer --config=full
-$ cp tracing/bin/trace_viewer_full.html $GOROOT/misc/trace/trace_viewer_full.html
+$ cp tracing/bin/trace_viewer_full.html $GOROOT/src/cmd/trace/static/trace_viewer_full.html
```
We are supposed to use --config=lean (produces smaller html),
@@ -31,7 +31,7 @@ to import the `trace_viewer_full.html`.
This is copied from the catapult repo.
```
-$ cp third_party/polymer/components/webcomponentsjs/webcomponents.min.js $GOROOT/misc/trace/webcomponents.min.js
+$ cp third_party/polymer/components/webcomponentsjs/webcomponents.min.js $GOROOT/src/cmd/trace/static/webcomponents.min.js
```
## Licenses
diff --git a/misc/trace/trace_viewer_full.html b/src/cmd/trace/static/trace_viewer_full.html
index ae6e35fca2..ae6e35fca2 100644
--- a/misc/trace/trace_viewer_full.html
+++ b/src/cmd/trace/static/trace_viewer_full.html
diff --git a/misc/trace/webcomponents.min.js b/src/cmd/trace/static/webcomponents.min.js
index ad8196bc30..ad8196bc30 100644
--- a/misc/trace/webcomponents.min.js
+++ b/src/cmd/trace/static/webcomponents.min.js
diff --git a/src/cmd/trace/trace.go b/src/cmd/trace/trace.go
index 0139639dae..a0d742ac54 100644
--- a/src/cmd/trace/trace.go
+++ b/src/cmd/trace/trace.go
@@ -6,6 +6,7 @@ package main
import (
"cmd/internal/traceviewer"
+ "embed"
"encoding/json"
"fmt"
"internal/trace"
@@ -13,8 +14,6 @@ import (
"log"
"math"
"net/http"
- "path/filepath"
- "runtime"
"runtime/debug"
"sort"
"strconv"
@@ -22,13 +21,16 @@ import (
"time"
)
+//go:embed static/trace_viewer_full.html static/webcomponents.min.js
+var staticContent embed.FS
+
func init() {
http.HandleFunc("/trace", httpTrace)
http.HandleFunc("/jsontrace", httpJsonTrace)
- http.HandleFunc("/trace_viewer_html", httpTraceViewerHTML)
- http.HandleFunc("/webcomponents.min.js", webcomponentsJS)
+ http.Handle("/static/", http.FileServer(http.FS(staticContent)))
}
+
// httpTrace serves either whole trace (goid==0) or trace for goid goroutine.
func httpTrace(w http.ResponseWriter, r *http.Request) {
_, err := parseTrace()
@@ -50,19 +52,19 @@ func httpTrace(w http.ResponseWriter, r *http.Request) {
var templTrace = `
<html>
<head>
-<script src="/webcomponents.min.js"></script>
+<script src="/static/webcomponents.min.js"></script>
<script>
'use strict';
function onTraceViewerImportFail() {
document.addEventListener('DOMContentLoaded', function() {
document.body.textContent =
- '/trace_viewer_full.html is missing. File a bug in https://golang.org/issue';
+ '/static/trace_viewer_full.html is missing. File a bug in https://golang.org/issue';
});
}
</script>
-<link rel="import" href="/trace_viewer_html"
+<link rel="import" href="/static/trace_viewer_full.html"
onerror="onTraceViewerImportFail(event)">
<style type="text/css">
@@ -173,16 +175,6 @@ function onTraceViewerImportFail() {
</html>
`
-// httpTraceViewerHTML serves static part of trace-viewer.
-// This URL is queried from templTrace HTML.
-func httpTraceViewerHTML(w http.ResponseWriter, r *http.Request) {
- http.ServeFile(w, r, filepath.Join(runtime.GOROOT(), "misc", "trace", "trace_viewer_full.html"))
-}
-
-func webcomponentsJS(w http.ResponseWriter, r *http.Request) {
- http.ServeFile(w, r, filepath.Join(runtime.GOROOT(), "misc", "trace", "webcomponents.min.js"))
-}
-
// httpJsonTrace serves json trace, requested from within templTrace HTML.
func httpJsonTrace(w http.ResponseWriter, r *http.Request) {
defer debug.FreeOSMemory()