Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1075)

Unified Diff: mojom/mojom_parser/serialization/serialization.go

Issue 1776243004: Mojom runtime type info: Use compression and base64 encoding. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebasing Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojom/mojom_parser/serialization/serialization.go
diff --git a/mojom/mojom_parser/serialization/serialization.go b/mojom/mojom_parser/serialization/serialization.go
index 498f95ab8283a7bee2fd955c9e561b4c83cd20a4..9e13b963b0d7e6fc89e4cf4fe1831e5d0e80f768 100644
--- a/mojom/mojom_parser/serialization/serialization.go
+++ b/mojom/mojom_parser/serialization/serialization.go
@@ -5,6 +5,9 @@
package serialization
import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
"fmt"
"mojo/public/go/bindings"
"mojom/mojom_parser/generated/mojom_files"
@@ -210,11 +213,23 @@ func translateMojomFile(f *mojom.MojomFile, fileGraph *mojom_files.MojomFileGrap
encoder := bindings.NewEncoder()
encoder.SetDeterministic(true)
typeInfo.Encode(encoder)
- bytes, _, err := encoder.Data()
+ byteSlice, _, err := encoder.Data()
if err != nil {
panic(fmt.Sprintf("Error while serializing runtimeTypeInfo: %s", err.Error()))
}
- file.SerializedRuntimeTypeInfo = &bytes
+ var compressedBytes bytes.Buffer
+ gzipWriter, _ := gzip.NewWriterLevel(&compressedBytes, gzip.BestCompression)
+ _, err = gzipWriter.Write(byteSlice)
+ if err != nil {
+ panic(fmt.Sprintf("Error while gzipping runtimeTypeInfo: %s", err.Error()))
+ }
+ err = gzipWriter.Close()
+ if err != nil {
+ panic(fmt.Sprintf("Error while gzipping runtimeTypeInfo: %s", err.Error()))
+ }
+ byteSlice = compressedBytes.Bytes()
+ encoded := base64.StdEncoding.EncodeToString(byteSlice)
+ file.SerializedRuntimeTypeInfo = &encoded
}
return
« no previous file with comments | « mojom/mojom_parser/generated/mojom_files/mojom_files.mojom.go ('k') | mojom/mojom_parser/serialization/serialization_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698