mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	- Remove |accept_lang| parameter from CefJSDialogHandler::OnJSDialog and CefFormatUrlForSecurityDisplay (see https://crbug.com/336973#c36). - Remove remaining NPAPI-related code including functions from cef_web_plugin.h (see https://crbug.com/493212#c55). - Mac: 10.7+ deployment target is now required for client applications. - Mac: Remove CefBrowserHost::SetWindowVisibility (issue #1375). No replacement is required for windowed rendering. Use WasHidden for off-screen rendering. - Windows: Visual Studio 2015 Update 2 is now required when building CEF/Chromium.
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2015 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.
 | |
| 
 | |
| #include "libcef/browser/resource_context.h"
 | |
| 
 | |
| #include "libcef/browser/net/url_request_context_getter.h"
 | |
| 
 | |
| #include "base/logging.h"
 | |
| #include "content/public/browser/browser_thread.h"
 | |
| 
 | |
| #if defined(USE_NSS_CERTS)
 | |
| #include "net/ssl/client_cert_store_nss.h"
 | |
| #endif
 | |
| 
 | |
| #if defined(OS_WIN)
 | |
| #include "net/ssl/client_cert_store_win.h"
 | |
| #endif
 | |
| 
 | |
| #if defined(OS_MACOSX)
 | |
| #include "net/ssl/client_cert_store_mac.h"
 | |
| #endif
 | |
| 
 | |
| CefResourceContext::CefResourceContext(
 | |
|     bool is_off_the_record,
 | |
|     extensions::InfoMap* extension_info_map,
 | |
|     CefRefPtr<CefRequestContextHandler> handler)
 | |
|     : is_off_the_record_(is_off_the_record),
 | |
|       extension_info_map_(extension_info_map),
 | |
|       handler_(handler) {
 | |
| }
 | |
| 
 | |
| CefResourceContext::~CefResourceContext() {
 | |
|   if (getter_.get()) {
 | |
|     // When the parent object (ResourceContext) destructor executes all
 | |
|     // associated URLRequests should be destroyed. If there are no other
 | |
|     // references it should then be safe to destroy the URLRequestContextGetter
 | |
|     // which owns the URLRequestContext.
 | |
|     getter_->AddRef();
 | |
|     CefURLRequestContextGetter* raw_getter = getter_.get();
 | |
|     getter_ = NULL;
 | |
|     content::BrowserThread::ReleaseSoon(
 | |
|           content::BrowserThread::IO, FROM_HERE, raw_getter);
 | |
|   }
 | |
| }
 | |
| 
 | |
| net::HostResolver* CefResourceContext::GetHostResolver() {
 | |
|   CHECK(getter_.get());
 | |
|   return getter_->GetHostResolver();
 | |
| }
 | |
| 
 | |
| net::URLRequestContext* CefResourceContext::GetRequestContext() {
 | |
|   CHECK(getter_.get());
 | |
|   return getter_->GetURLRequestContext();
 | |
| }
 | |
| 
 | |
| std::unique_ptr<net::ClientCertStore> CefResourceContext::CreateClientCertStore() {
 | |
| #if defined(USE_NSS_CERTS)
 | |
|   return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreNSS(
 | |
|       net::ClientCertStoreNSS::PasswordDelegateFactory()));
 | |
| #elif defined(OS_WIN)
 | |
|   return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreWin());
 | |
| #elif defined(OS_MACOSX)
 | |
|   return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreMac());
 | |
| #elif defined(USE_OPENSSL)
 | |
|   // OpenSSL does not use the ClientCertStore infrastructure. On Android client
 | |
|   // cert matching is done by the OS as part of the call to show the cert
 | |
|   // selection dialog.
 | |
|   return std::unique_ptr<net::ClientCertStore>();
 | |
| #else
 | |
| #error Unknown platform.
 | |
| #endif
 | |
| }
 | |
| 
 | |
| void CefResourceContext::set_url_request_context_getter(
 | |
|     scoped_refptr<CefURLRequestContextGetter> getter) {
 | |
|   DCHECK(!getter_.get());
 | |
|   getter_ = getter;
 | |
| }
 |