// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_SSL_HELPER_H_ #define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_SSL_HELPER_H_ #pragma once #include <map> #include "base/memory/linked_ptr.h" #include "content/browser/renderer_host/render_view_host_delegate.h" class SSLAddCertHandler; class SSLClientAuthHandler; class TabContents; class TabContentsSSLHelper : public RenderViewHostDelegate::SSL { public: explicit TabContentsSSLHelper(TabContents* tab_contents); virtual ~TabContentsSSLHelper(); // RenderViewHostDelegate::SSL implementation: virtual void ShowClientCertificateRequestDialog( scoped_refptr<SSLClientAuthHandler> handler); virtual void OnVerifyClientCertificateError( scoped_refptr<SSLAddCertHandler> handler, int error_code); virtual void AskToAddClientCertificate( scoped_refptr<SSLAddCertHandler> handler); virtual void OnAddClientCertificateSuccess( scoped_refptr<SSLAddCertHandler> handler); virtual void OnAddClientCertificateError( scoped_refptr<SSLAddCertHandler> handler, int error_code); virtual void OnAddClientCertificateFinished( scoped_refptr<SSLAddCertHandler> handler); private: TabContents* tab_contents_; class SSLAddCertData; std::map<int, linked_ptr<SSLAddCertData> > request_id_to_add_cert_data_; SSLAddCertData* GetAddCertData(SSLAddCertHandler* handler); DISALLOW_COPY_AND_ASSIGN(TabContentsSSLHelper); }; #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_SSL_HELPER_H_