Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
..
images 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
puffin 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
scripts 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
src 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
.clang-format 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
Android.bp 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
BUILD.gn 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
DEPS 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
LICENSE 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
METADATA 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
Makefile 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
OWNERS 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README.chromium 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README.md 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README.version 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
TEST_MAPPING 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
libpuffdiff.pc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
libpuffpatch.pc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago

README.chromium

Name: Puffin deterministic deflate recompressor
Short Name: Puffin
URL: https://android.googlesource.com/platform/external/puffin
Version: 1.0.0
Date: Tues May 10 13:55:00 2022
Revision: e0820dcfebfb4df925be2e37ad8f56c00dc624f5
License: Chromium OS BSD
License File: LICENSE
Security Critical: yes
License Android Compatible: yes

Description:
Puffin is a deterministic deflate recompressor. It is mainly used for patching
deflate compressed images (zip, gzip, etc.) because patches created from deflate
files/streams are usually large (deflate has a bit-aligned format, hence,
changing one byte in the raw data can cause the entire deflate stream to change
drastically.) Specifically in chromium/src, this library is needed in order for
Omaha, chrome's auto-updater client, to support puffin-generated diffs created
by Omaha Server.

Local Modifications:
- Updated OWNERS to reflect our team as the owners.
- Removed BUILD.gn taken from AOSP as it doesn't build in chromium.
- removed PRESUBMIT.cfg and PREUPLOAD.cfg
- Adding a DEPS file so we can pass presubmit checks.
- removed BSDiff as we only require the zucchini version of puffdiff/puffpatch
- rewrote the commandline usage for the puffin binary as we only need to support
and test puffdiff and puffpatch.
- Replaced POSIX file IO with chromium/src's base::File/base::FilePath methods
so it will build and run cross-platform.
- Removed dependence of libpuffpatch on libpuffdiff as the puffin patching
service we plant to implement only requires libpuffpatch.
- Added puffin::Status enum to help disambiguate errors from puffin::PuffPatch
- Added puffin::ApplyPuffPatch API which allows chromium libraries to call
puffin::PuffPatch without having worry about UniqueStreamPtr's and Buffer's.
- Added ApplyPuffPatchTest to patching_unittest to test the new method.
- Updated puffin/BUILD.gn to grab the new puffin_patch_test_files target under
components
- Updated puffin::ApplyPuffPatch test to use the new patch files under
components.
- Updated puffin::ApplyPuffPatch test to make sure the output files are deleted
so the tests will pass in back-to-back runs.
- Updated puffin::ApplyPuffPatch test to use base::ContentsEqual rather than
manually reading each file and comparing the results.