Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Side by Side Diff: chrome/browser/chrome_content_browser_client.cc

Issue 18121007: *WIP* Store NSS slots per profile. Move keygen to chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cert manager basics working Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chrome_content_browser_client.h" 5 #include "chrome/browser/chrome_content_browser_client.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 #include "chrome/browser/guestview/adview/adview_guest.h" 46 #include "chrome/browser/guestview/adview/adview_guest.h"
47 #include "chrome/browser/guestview/guestview_constants.h" 47 #include "chrome/browser/guestview/guestview_constants.h"
48 #include "chrome/browser/guestview/webview/webview_guest.h" 48 #include "chrome/browser/guestview/webview/webview_guest.h"
49 #include "chrome/browser/media/media_capture_devices_dispatcher.h" 49 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
50 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" 50 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h"
51 #include "chrome/browser/nacl_host/nacl_browser.h" 51 #include "chrome/browser/nacl_host/nacl_browser.h"
52 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h" 52 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h"
53 #include "chrome/browser/nacl_host/nacl_host_message_filter.h" 53 #include "chrome/browser/nacl_host/nacl_host_message_filter.h"
54 #include "chrome/browser/nacl_host/nacl_process_host.h" 54 #include "chrome/browser/nacl_host/nacl_process_host.h"
55 #include "chrome/browser/net/chrome_net_log.h" 55 #include "chrome/browser/net/chrome_net_log.h"
56 #include "chrome/browser/net/keygen_handler.h"
56 #include "chrome/browser/notifications/desktop_notification_service.h" 57 #include "chrome/browser/notifications/desktop_notification_service.h"
57 #include "chrome/browser/notifications/desktop_notification_service_factory.h" 58 #include "chrome/browser/notifications/desktop_notification_service_factory.h"
58 #include "chrome/browser/platform_util.h" 59 #include "chrome/browser/platform_util.h"
59 #include "chrome/browser/plugins/plugin_info_message_filter.h" 60 #include "chrome/browser/plugins/plugin_info_message_filter.h"
60 #include "chrome/browser/prefs/scoped_user_pref_update.h" 61 #include "chrome/browser/prefs/scoped_user_pref_update.h"
61 #include "chrome/browser/prerender/prerender_final_status.h" 62 #include "chrome/browser/prerender/prerender_final_status.h"
62 #include "chrome/browser/prerender/prerender_manager.h" 63 #include "chrome/browser/prerender/prerender_manager.h"
63 #include "chrome/browser/prerender/prerender_manager_factory.h" 64 #include "chrome/browser/prerender/prerender_manager_factory.h"
64 #include "chrome/browser/prerender/prerender_message_filter.h" 65 #include "chrome/browser/prerender/prerender_message_filter.h"
65 #include "chrome/browser/prerender/prerender_tracker.h" 66 #include "chrome/browser/prerender/prerender_tracker.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 #include "content/public/common/url_utils.h" 132 #include "content/public/common/url_utils.h"
132 #include "extensions/browser/view_type_utils.h" 133 #include "extensions/browser/view_type_utils.h"
133 #include "extensions/common/constants.h" 134 #include "extensions/common/constants.h"
134 #include "extensions/common/switches.h" 135 #include "extensions/common/switches.h"
135 #include "grit/generated_resources.h" 136 #include "grit/generated_resources.h"
136 #include "grit/ui_resources.h" 137 #include "grit/ui_resources.h"
137 #include "net/base/escape.h" 138 #include "net/base/escape.h"
138 #include "net/base/mime_util.h" 139 #include "net/base/mime_util.h"
139 #include "net/cookies/canonical_cookie.h" 140 #include "net/cookies/canonical_cookie.h"
140 #include "net/cookies/cookie_options.h" 141 #include "net/cookies/cookie_options.h"
142 #include "net/ssl/client_cert_store_impl.h"
141 #include "net/ssl/ssl_cert_request_info.h" 143 #include "net/ssl/ssl_cert_request_info.h"
142 #include "ppapi/host/ppapi_host.h" 144 #include "ppapi/host/ppapi_host.h"
143 #include "ui/base/l10n/l10n_util.h" 145 #include "ui/base/l10n/l10n_util.h"
144 #include "ui/base/resource/resource_bundle.h" 146 #include "ui/base/resource/resource_bundle.h"
145 #include "ui/message_center/message_center_util.h" 147 #include "ui/message_center/message_center_util.h"
146 #include "webkit/browser/fileapi/external_mount_points.h" 148 #include "webkit/browser/fileapi/external_mount_points.h"
147 #include "webkit/common/webpreferences.h" 149 #include "webkit/common/webpreferences.h"
148 150
149 #if defined(OS_WIN) 151 #if defined(OS_WIN)
150 #include "chrome/browser/chrome_browser_main_win.h" 152 #include "chrome/browser/chrome_browser_main_win.h"
151 #include "sandbox/win/src/sandbox_policy.h" 153 #include "sandbox/win/src/sandbox_policy.h"
152 #elif defined(OS_MACOSX) 154 #elif defined(OS_MACOSX)
153 #include "chrome/browser/chrome_browser_main_mac.h" 155 #include "chrome/browser/chrome_browser_main_mac.h"
154 #include "chrome/browser/spellchecker/spellcheck_message_filter_mac.h" 156 #include "chrome/browser/spellchecker/spellcheck_message_filter_mac.h"
155 #include "components/breakpad/breakpad_mac.h" 157 #include "components/breakpad/breakpad_mac.h"
156 #elif defined(OS_CHROMEOS) 158 #elif defined(OS_CHROMEOS)
157 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h" 159 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h"
158 #include "chrome/browser/chromeos/drive/file_system_backend_delegate.h" 160 #include "chrome/browser/chromeos/drive/file_system_backend_delegate.h"
159 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" 161 #include "chrome/browser/chromeos/fileapi/file_system_backend.h"
160 #include "chrome/browser/chromeos/login/startup_utils.h" 162 #include "chrome/browser/chromeos/login/startup_utils.h"
161 #include "chrome/browser/chromeos/login/user_manager.h" 163 #include "chrome/browser/chromeos/login/user_manager.h"
164 #include "chrome/browser/chromeos/net/client_cert_store_cros.h"
162 #include "chrome/browser/chromeos/system/input_device_settings.h" 165 #include "chrome/browser/chromeos/system/input_device_settings.h"
163 #include "chromeos/chromeos_switches.h" 166 #include "chromeos/chromeos_switches.h"
164 #elif defined(OS_LINUX) 167 #elif defined(OS_LINUX)
165 #include "chrome/browser/chrome_browser_main_linux.h" 168 #include "chrome/browser/chrome_browser_main_linux.h"
166 #elif defined(OS_ANDROID) 169 #elif defined(OS_ANDROID)
167 #include "chrome/browser/android/crash_dump_manager.h" 170 #include "chrome/browser/android/crash_dump_manager.h"
168 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h" 171 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h"
169 #include "chrome/browser/chrome_browser_main_android.h" 172 #include "chrome/browser/chrome_browser_main_android.h"
170 #include "chrome/browser/media/encrypted_media_message_filter_android.h" 173 #include "chrome/browser/media/encrypted_media_message_filter_android.h"
171 #include "chrome/common/descriptors_android.h" 174 #include "chrome/common/descriptors_android.h"
(...skipping 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after
1756 captive_portal::CaptivePortalTabHelper::FromWebContents(tab); 1759 captive_portal::CaptivePortalTabHelper::FromWebContents(tab);
1757 if (captive_portal_tab_helper) 1760 if (captive_portal_tab_helper)
1758 captive_portal_tab_helper->OnSSLCertError(ssl_info); 1761 captive_portal_tab_helper->OnSSLCertError(ssl_info);
1759 #endif 1762 #endif
1760 1763
1761 // Otherwise, display an SSL blocking page. 1764 // Otherwise, display an SSL blocking page.
1762 new SSLBlockingPage(tab, cert_error, ssl_info, request_url, overridable, 1765 new SSLBlockingPage(tab, cert_error, ssl_info, request_url, overridable,
1763 strict_enforcement, callback); 1766 strict_enforcement, callback);
1764 } 1767 }
1765 1768
1769 scoped_ptr<net::ClientCertStore> ChromeContentBrowserClient::GetClientCertStore(
1770 content::ResourceContext* context) {
1771 #if defined(OS_CHROMEOS)
1772 return scoped_ptr<net::ClientCertStore>(
1773 new chromeos::ClientCertStoreCros(context));
1774 #elif !defined(USE_OPENSSL)
1775 return scoped_ptr<net::ClientCertStore>(new net::ClientCertStoreImpl());
1776 #else
1777 return scoped_ptr<net::ClientCertStore>();
1778 #endif
1779 }
1780
1766 void ChromeContentBrowserClient::SelectClientCertificate( 1781 void ChromeContentBrowserClient::SelectClientCertificate(
1767 int render_process_id, 1782 int render_process_id,
1768 int render_view_id, 1783 int render_view_id,
1769 const net::HttpNetworkSession* network_session, 1784 const net::HttpNetworkSession* network_session,
1770 net::SSLCertRequestInfo* cert_request_info, 1785 net::SSLCertRequestInfo* cert_request_info,
1771 const base::Callback<void(net::X509Certificate*)>& callback) { 1786 const base::Callback<void(net::X509Certificate*)>& callback) {
1772 WebContents* tab = tab_util::GetWebContentsByID( 1787 WebContents* tab = tab_util::GetWebContentsByID(
1773 render_process_id, render_view_id); 1788 render_process_id, render_view_id);
1774 if (!tab) { 1789 if (!tab) {
1775 NOTREACHED(); 1790 NOTREACHED();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1824 net::URLRequest* request, 1839 net::URLRequest* request,
1825 net::CertificateMimeType cert_type, 1840 net::CertificateMimeType cert_type,
1826 const void* cert_data, 1841 const void* cert_data,
1827 size_t cert_size, 1842 size_t cert_size,
1828 int render_process_id, 1843 int render_process_id,
1829 int render_view_id) { 1844 int render_view_id) {
1830 chrome::SSLAddCertificate(request, cert_type, cert_data, cert_size, 1845 chrome::SSLAddCertificate(request, cert_type, cert_data, cert_size,
1831 render_process_id, render_view_id); 1846 render_process_id, render_view_id);
1832 } 1847 }
1833 1848
1849 void ChromeContentBrowserClient::GenerateKey(
1850 content::ResourceContext* context,
1851 int key_size_in_bits,
1852 const std::string& challenge,
1853 const GURL& url,
1854 const base::Callback<void(const std::string*)>& callback) {
1855 chrome_browser_net::GenerateKey(
1856 context, key_size_in_bits, challenge, url, true, callback);
1857 }
1858
1834 content::MediaObserver* ChromeContentBrowserClient::GetMediaObserver() { 1859 content::MediaObserver* ChromeContentBrowserClient::GetMediaObserver() {
1835 return MediaCaptureDevicesDispatcher::GetInstance(); 1860 return MediaCaptureDevicesDispatcher::GetInstance();
1836 } 1861 }
1837 1862
1838 void ChromeContentBrowserClient::RequestDesktopNotificationPermission( 1863 void ChromeContentBrowserClient::RequestDesktopNotificationPermission(
1839 const GURL& source_origin, 1864 const GURL& source_origin,
1840 int callback_context, 1865 int callback_context,
1841 int render_process_id, 1866 int render_process_id,
1842 int render_view_id) { 1867 int render_view_id) {
1843 #if defined(ENABLE_NOTIFICATIONS) 1868 #if defined(ENABLE_NOTIFICATIONS)
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
2578 result = policy->AddRule(sandbox::TargetPolicy::SUBSYS_HANDLES, 2603 result = policy->AddRule(sandbox::TargetPolicy::SUBSYS_HANDLES,
2579 sandbox::TargetPolicy::HANDLES_DUP_ANY, 2604 sandbox::TargetPolicy::HANDLES_DUP_ANY,
2580 L"File"); 2605 L"File");
2581 if (result != sandbox::SBOX_ALL_OK) { 2606 if (result != sandbox::SBOX_ALL_OK) {
2582 *success = false; 2607 *success = false;
2583 return; 2608 return;
2584 } 2609 }
2585 } 2610 }
2586 #endif 2611 #endif
2587 2612
2588 #if defined(USE_NSS)
2589 crypto::CryptoModuleBlockingPasswordDelegate*
2590 ChromeContentBrowserClient::GetCryptoPasswordDelegate(
2591 const GURL& url) {
2592 return chrome::NewCryptoModuleBlockingDialogDelegate(
2593 chrome::kCryptoModulePasswordKeygen, url.host());
2594 }
2595 #endif
2596
2597 bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle( 2613 bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle(
2598 content::BrowserContext* browser_context, 2614 content::BrowserContext* browser_context,
2599 const GURL& url) { 2615 const GURL& url) {
2600 #if defined(ENABLE_PLUGINS) 2616 #if defined(ENABLE_PLUGINS)
2601 Profile* profile = Profile::FromBrowserContext(browser_context); 2617 Profile* profile = Profile::FromBrowserContext(browser_context);
2602 const ExtensionSet* extension_set = NULL; 2618 const ExtensionSet* extension_set = NULL;
2603 if (profile) { 2619 if (profile) {
2604 extension_set = extensions::ExtensionSystem::Get(profile)-> 2620 extension_set = extensions::ExtensionSystem::Get(profile)->
2605 extension_service()->extensions(); 2621 extension_service()->extensions();
2606 } 2622 }
2607 // TODO(teravest): Populate allowed_file_handle_origins_ when FileIO is moved 2623 // TODO(teravest): Populate allowed_file_handle_origins_ when FileIO is moved
2608 // from the renderer to the browser. 2624 // from the renderer to the browser.
2609 return IsExtensionOrSharedModuleWhitelisted(url, extension_set, 2625 return IsExtensionOrSharedModuleWhitelisted(url, extension_set,
2610 allowed_file_handle_origins_) || 2626 allowed_file_handle_origins_) ||
2611 IsHostAllowedByCommandLine(url, extension_set, 2627 IsHostAllowedByCommandLine(url, extension_set,
2612 switches::kAllowNaClFileHandleAPI); 2628 switches::kAllowNaClFileHandleAPI);
2613 #else 2629 #else
2614 return false; 2630 return false;
2615 #endif 2631 #endif
2616 } 2632 }
2617 2633
2618 } // namespace chrome 2634 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/chrome_content_browser_client.h ('k') | chrome/browser/chromeos/net/client_cert_store_cros.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698