| Index: ios/web/net/cert_store_impl.h
 | 
| diff --git a/ios/web/net/cert_store_impl.h b/ios/web/net/cert_store_impl.h
 | 
| index d4da2f286c525fa173574749a25957fdc5066828..04cde7d80fe78d89b3349f9301afaed5413bc9f1 100644
 | 
| --- a/ios/web/net/cert_store_impl.h
 | 
| +++ b/ios/web/net/cert_store_impl.h
 | 
| @@ -31,7 +31,28 @@ class CertStoreImpl : public CertStore {
 | 
|   private:
 | 
|    friend struct base::DefaultSingletonTraits<CertStoreImpl>;
 | 
|  
 | 
| -  RequestTrackerDataMemoizingStore<net::X509Certificate> store_;
 | 
| +  // Utility structure that allows memoization to be based on the
 | 
| +  // hash of |cert|'s certificate chain, to avoid needing to compare
 | 
| +  // every certificate individually. This is purely an optimization.
 | 
| +  class HashAndCert : public base::RefCountedThreadSafe<HashAndCert> {
 | 
| +   public:
 | 
| +    HashAndCert();
 | 
| +
 | 
| +    // Comparator for RendererDataMemoizingStore.
 | 
| +    struct LessThan {
 | 
| +      bool operator()(const scoped_refptr<HashAndCert>& lhs,
 | 
| +                      const scoped_refptr<HashAndCert>& rhs) const;
 | 
| +    };
 | 
| +
 | 
| +    net::SHA256HashValue chain_hash;
 | 
| +    scoped_refptr<net::X509Certificate> cert;
 | 
| +
 | 
| +   private:
 | 
| +    friend class base::RefCountedThreadSafe<HashAndCert>;
 | 
| +
 | 
| +    ~HashAndCert();
 | 
| +  };
 | 
| +  RequestTrackerDataMemoizingStore<HashAndCert> store_;
 | 
|  
 | 
|    DISALLOW_COPY_AND_ASSIGN(CertStoreImpl);
 | 
|  };
 | 
| 
 |