| Index: components/certificate_transparency/single_tree_tracker.cc
|
| diff --git a/components/certificate_transparency/single_tree_tracker.cc b/components/certificate_transparency/single_tree_tracker.cc
|
| index 547ac5885d1a7c992cf147f42d32dc73511e958e..f3d151e65b4d14373762e125b458640bd4feb90f 100644
|
| --- a/components/certificate_transparency/single_tree_tracker.cc
|
| +++ b/components/certificate_transparency/single_tree_tracker.cc
|
| @@ -218,6 +218,27 @@ struct SingleTreeTracker::EntryAuditState {
|
| explicit EntryAuditState(AuditState state) : state(state) {}
|
| };
|
|
|
| +class SingleTreeTracker::NetworkObserver
|
| + : public net::NetworkChangeNotifier::NetworkChangeObserver {
|
| + public:
|
| + explicit NetworkObserver(SingleTreeTracker* parent) : parent_(parent) {
|
| + net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
|
| + }
|
| +
|
| + ~NetworkObserver() override {
|
| + net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
|
| + }
|
| +
|
| + // net::NetworkChangeNotifier::NetworkChangeObserver implementation.
|
| + void OnNetworkChanged(
|
| + net::NetworkChangeNotifier::ConnectionType type) override {
|
| + parent_->ResetPendingQueue();
|
| + }
|
| +
|
| + private:
|
| + SingleTreeTracker* parent_;
|
| +};
|
| +
|
| // Orders entries by the SCT timestamp. In case of tie, which is very unlikely
|
| // as it requires two SCTs issued from a log at exactly the same time, order
|
| // by leaf hash.
|
| @@ -240,12 +261,13 @@ SingleTreeTracker::SingleTreeTracker(
|
| net_log_(net::NetLogWithSource::Make(
|
| net_log,
|
| net::NetLogSourceType::CT_TREE_STATE_TRACKER)),
|
| + network_observer_(new NetworkObserver(this)),
|
| weak_factory_(this) {
|
| memory_pressure_listener_.reset(new base::MemoryPressureListener(base::Bind(
|
| &SingleTreeTracker::OnMemoryPressure, base::Unretained(this))));
|
| }
|
|
|
| -SingleTreeTracker::~SingleTreeTracker() {}
|
| +SingleTreeTracker::~SingleTreeTracker() = default;
|
|
|
| void SingleTreeTracker::OnSCTVerified(net::X509Certificate* cert,
|
| const SignedCertificateTimestamp* sct) {
|
| @@ -348,6 +370,10 @@ void SingleTreeTracker::NewSTHObserved(const SignedTreeHead& sth) {
|
| ProcessPendingEntries();
|
| }
|
|
|
| +void SingleTreeTracker::ResetPendingQueue() {
|
| + pending_entries_.clear();
|
| +}
|
| +
|
| SingleTreeTracker::SCTInclusionStatus
|
| SingleTreeTracker::GetLogEntryInclusionStatus(
|
| net::X509Certificate* cert,
|
|
|