The tarball that was imported is the 3.4.1 release: https://github.com/google/protobuf/releases/tag/v3.4.1 https://github.com/google/protobuf/releases/download/v3.4.1/protobuf-cpp-3.4.1.tar.gz This drops all of the customizations that are no longer needed, which includes a few issues that were fixed upstream: - r512.patch from bug 892856: https://searchfox.org/mozilla-central/rev/bab9dbe9c4ef71f71fb07e53b701fb2dfde277d9/toolkit/components/protobuf/r512.patchb04e5cba35/src/google/protobuf/io/zero_copy_stream_impl.cc (L43)- vs2013.patch, also from bug 892856: https://searchfox.org/mozilla-central/rev/bab9dbe9c4ef71f71fb07e53b701fb2dfde277d9/toolkit/components/protobuf/vs2013.patchb04e5cba35/src/google/protobuf/wire_format_lite_inl.h (L39)- sparc64 fixes in m-c-changes.patch from bug 1275204: https://hg.mozilla.org/integration/mozilla-inbound/rev/21d692e82582b04e5cba35/src/google/protobuf/stubs/platform_macros.h (L68)The LOGLEVEL_ERROR hack in m-c-changes.patch from bug1024774and bug 1320179 was replaced by a NOGDI define in moz.build as suggested by upstream: https://github.com/google/protobuf/pull/3745/files#r144915445 The other customizations that were dropped came from bug1024774. The patch for OpenBSD/32-bit will likely be fixed upstream in a future release: https://github.com/google/protobuf/pull/3747#issuecomment-336581244 Upgrading the protobuf library also required re-generating all of the existing .pb.h and pb.cc files (they are neither forward nor backward-compatible) and making adjustments to the build config to make it compile (and silence warnings). text_format.cc can now be compiled as part of UNIFIED_SOURCES. MozReview-Commit-ID: 7F2IqFmwQnN
# Overview
'safebrowsing.proto' is modified from [1] with the following changes:
- Added "package mozilla.safebrowsing;"
- Added more threatHit information
##################################
// Client-reported identification.
optional ClientInfo client_info = 5;
// Details about the user that encountered the threat.
message UserInfo {
// The UN M.49 region code associated with the user's location.
optional string region_code = 1;
// Unique ID stable over a week or two
optional bytes user_id = 2;
}
// Details about the user that encountered the threat.
optional UserInfo user_info = 6;
####################################
to avoid naming pollution. We use this source file along with protobuf compiler (protoc) to generate safebrowsing.pb.h/cc for safebrowsing v4 update and hash completion. The current generated files are compiled by protoc 2.6.1 since the protobuf library in gecko is not upgraded to 3.0 yet.
# Update
If you want to update to the latest upstream version,
1. Checkout the latest one in [2]
2. Use protoc to generate safebrowsing.pb.h and safebrowsing.pb.cc. For example,
$ protoc -I=. --cpp_out="../protobuf/" safebrowsing.proto
(Note that we should use protoc v2.6.1 [3] to compile. You can find the compiled protoc in [4] if you don't have one.)
[1] https://chromium.googlesource.com/chromium/src.git/+/9c4485f1ce7cac7ae82f7a4ae36ccc663afe806c/components/safe_browsing_db/safebrowsing.proto
[2] https://chromium.googlesource.com/chromium/src.git/+/master/components/safe_browsing_db/safebrowsing.proto
[3] https://github.com/google/protobuf/releases/tag/v2.6.1
[4] https://repo1.maven.org/maven2/com/google/protobuf/protoc