| OLD | NEW | 
|    1 package main |    1 package main | 
|    2  |    2  | 
|    3 import ( |    3 import ( | 
|    4         "bytes" |    4         "bytes" | 
|    5         "crypto/md5" |    5         "crypto/md5" | 
|    6         "database/sql" |    6         "database/sql" | 
|    7         "encoding/base64" |    7         "encoding/base64" | 
|    8         "encoding/binary" |    8         "encoding/binary" | 
|    9         "encoding/json" |    9         "encoding/json" | 
|   10         "flag" |   10         "flag" | 
| (...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  365         return writeTemplate(filename, t, userCode{Code: code, Titlebar: Titleba
     r{GitHash: gitHash, GitInfo: gitInfo}}) |  365         return writeTemplate(filename, t, userCode{Code: code, Titlebar: Titleba
     r{GitHash: gitHash, GitInfo: gitInfo}}) | 
|  366 } |  366 } | 
|  367  |  367  | 
|  368 // expandCode expands the template into a file and calculates the MD5 hash. |  368 // expandCode expands the template into a file and calculates the MD5 hash. | 
|  369 func expandCode(code string, source int) (string, error) { |  369 func expandCode(code string, source int) (string, error) { | 
|  370         // in order to support fonts in the chroot jail, we need to make sure |  370         // in order to support fonts in the chroot jail, we need to make sure | 
|  371         // we're using portable typefaces. |  371         // we're using portable typefaces. | 
|  372         // TODO(humper):  Make this more robust, supporting things like setTypef
     ace |  372         // TODO(humper):  Make this more robust, supporting things like setTypef
     ace | 
|  373  |  373  | 
|  374         inputCodeLines := strings.Split(code, "\n") |  374         inputCodeLines := strings.Split(code, "\n") | 
|  375 »       outputCodeLines := []string{} |  375 »       outputCodeLines := []string{"DECLARE_bool(portableFonts);"} | 
|  376         for _, line := range inputCodeLines { |  376         for _, line := range inputCodeLines { | 
|  377                 outputCodeLines = append(outputCodeLines, line) |  377                 outputCodeLines = append(outputCodeLines, line) | 
|  378 »       »       if strings.HasPrefix(strings.TrimSpace(line), "SkPaint ") { |  378 »       »       if strings.HasPrefix(strings.TrimSpace(line), "SkPaint p") { | 
|  379 »       »       »       outputCodeLines = append(outputCodeLines, "sk_tool_utils
     ::set_portable_typeface(&p);") |  379 »       »       »       outputCodeLines = append(outputCodeLines, "FLAGS_portabl
     eFonts = true;") | 
 |  380 »       »       »       outputCodeLines = append(outputCodeLines, "sk_tool_utils
     ::set_portable_typeface(&p, \"Helvetica\", SkTypeface::kNormal);") | 
|  380                 } |  381                 } | 
|  381         } |  382         } | 
|  382  |  383  | 
|  383         fontFriendlyCode := strings.Join(outputCodeLines, "\n") |  384         fontFriendlyCode := strings.Join(outputCodeLines, "\n") | 
|  384  |  385  | 
|  385         h := md5.New() |  386         h := md5.New() | 
|  386         h.Write([]byte(fontFriendlyCode)) |  387         h.Write([]byte(fontFriendlyCode)) | 
|  387         binary.Write(h, binary.LittleEndian, int64(source)) |  388         binary.Write(h, binary.LittleEndian, int64(source)) | 
|  388         hash := fmt.Sprintf("%x", h.Sum(nil)) |  389         hash := fmt.Sprintf("%x", h.Sum(nil)) | 
|  389         // At this point we are running in skia/experimental/webtry, making cach
     e a |  390         // At this point we are running in skia/experimental/webtry, making cach
     e a | 
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  872         http.HandleFunc("/sources/", autogzip.HandleFunc(sourcesHandler)) |  873         http.HandleFunc("/sources/", autogzip.HandleFunc(sourcesHandler)) | 
|  873  |  874  | 
|  874         // Resources are served directly |  875         // Resources are served directly | 
|  875         // TODO add support for caching/etags/gzip |  876         // TODO add support for caching/etags/gzip | 
|  876         http.Handle("/res/", autogzip.Handle(http.FileServer(http.Dir("./")))) |  877         http.Handle("/res/", autogzip.Handle(http.FileServer(http.Dir("./")))) | 
|  877  |  878  | 
|  878         // TODO Break out /c/ as it's own handler. |  879         // TODO Break out /c/ as it's own handler. | 
|  879         http.HandleFunc("/", autogzip.HandleFunc(mainHandler)) |  880         http.HandleFunc("/", autogzip.HandleFunc(mainHandler)) | 
|  880         log.Fatal(http.ListenAndServe(*port, nil)) |  881         log.Fatal(http.ListenAndServe(*port, nil)) | 
|  881 } |  882 } | 
| OLD | NEW |