Descriptionnet: make QUIC ProofVerifier more generic.
The QUIC ProofVerifier code is currently rather Chromium specific: it's using
weak pointers, base::Bind etc. This change wraps abstractions around things so
that the code is more portable again.
It also solves an issue where, when a QUIC connection is canceled while a
verification is running, the verification can write into free memory.
I went back and forth on this change a bit. It effectively reinvents weak
pointers and callbacks in order not to use the Chromium versions of these
things. This is unfortunate but it is desirable to minimise the amount of skew
between different copies of the QUIC code. In the end, the duplicate didn't
seem so bad to me.
Weak pointers are replaced with an explicit callback interface for the
ProofVerifier. The QUIC client stream implements a Cancel method so that it can
cope with being deleted while a proof verification is still running.
The need to store a CertVerifyDetails is taken care of with an abstract class
for wrapping "implementation specific" results from a verification. There is
still Chromium-specific code that casts it to a Chromium object, but that's
unavoidable somewhere. (Although it's not clear that the QUIC client stream is
the best place for it.)
BUG=none
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=213862
Patch Set 1 #
Total comments: 20
Patch Set 2 : Addressing rch's comments. #Patch Set 3 : ... #Patch Set 4 : Forgot proof_verifier.cc #Patch Set 5 : clang-style fixes #Patch Set 6 : Add export tag for unittest. #Patch Set 7 : Can't use a token called "ERROR" on Windows. #
Total comments: 1
Messages
Total messages: 18 (0 generated)
|