Merge third_party/ots from https://chromium.googlesource.com/external/ots.git at b613a30b0b86e1d4ea40a83b678fbe48edac8515
This commit was generated by merge_from_chromium.py.
Change-Id: I0672f3e0aa945c9ab995a3e40f64b1a14223a3a3
diff --git a/ots.gyp b/ots.gyp
index 9baa031..288e41c 100644
--- a/ots.gyp
+++ b/ots.gyp
@@ -26,7 +26,7 @@
],
},
'dependencies': [
- '../lzma_sdk/lzma_sdk.gyp:lzma_sdk',
+ '../brotli/brotli.gyp:brotli',
'../zlib/zlib.gyp:zlib',
],
# TODO(jschuh): http://crbug.com/167187
diff --git a/src/woff2.cc b/src/woff2.cc
index 02b181e..2ab0408 100644
--- a/src/woff2.cc
+++ b/src/woff2.cc
@@ -11,7 +11,7 @@
#include <zlib.h>
-#include "third_party/lzma_sdk/LzmaLib.h"
+#include "third_party/brotli/src/brotli/dec/decode.h"
#include "opentype-sanitiser.h"
#include "ots-memory-stream.h"
@@ -49,13 +49,11 @@
const unsigned int kWoff2FlagsContinueStream = 1 << 4;
const unsigned int kWoff2FlagsTransform = 1 << 5;
-const size_t kLzmaHeaderSize = 13;
-
// Compression type values common to both short and long formats
const uint32_t kCompressionTypeMask = 0xf;
const uint32_t kCompressionTypeNone = 0;
const uint32_t kCompressionTypeGzip = 1;
-const uint32_t kCompressionTypeLzma = 2;
+const uint32_t kCompressionTypeBrotli = 2;
// This is a special value for the short format only, as described in
// "Design for compressed header format" in draft doc.
@@ -756,18 +754,11 @@
return OTS_FAILURE();
}
return true;
- } else if (compression_type == kCompressionTypeLzma) {
- if (src_size < kLzmaHeaderSize) {
- // Make sure we have at least a full Lzma header
- return OTS_FAILURE();
- }
- // TODO: check that size matches (or elide size?)
+ } else if (compression_type == kCompressionTypeBrotli) {
size_t uncompressed_size = dst_size;
- size_t compressed_size = src_size;
- int result = LzmaUncompress(dst_buf, &dst_size,
- src_buf + kLzmaHeaderSize, &compressed_size,
- src_buf, LZMA_PROPS_SIZE);
- if (result != SZ_OK || uncompressed_size != dst_size) {
+ int ok = BrotliDecompressBuffer(src_size, src_buf,
+ &uncompressed_size, dst_buf);
+ if (!ok || uncompressed_size != dst_size) {
return OTS_FAILURE();
}
return true;
@@ -802,7 +793,7 @@
} else {
if (flags == kCompressionTypeNone ||
flags == kCompressionTypeGzip ||
- flags == kCompressionTypeLzma) {
+ flags == kCompressionTypeBrotli) {
last_compression_type = flags;
} else {
return OTS_FAILURE();