Fix random crash on app quit.

Move AtomCTDelegate to brightray as RequireCTDelegate and transfer ownership to
brightray::URLRequestContextGetter. This fixes the wrong lifetime assumptions
that result in AtomCTDelegate being used after free in some scenarios.

Close #10051
This commit is contained in:
Thiago de Arruda 2017-11-15 10:09:22 -03:00
parent aaae1bb176
commit a9a9e58b68
10 changed files with 49 additions and 50 deletions

View file

@ -33,6 +33,7 @@ class URLRequestJobFactory;
namespace brightray {
class RequireCTDelegate;
class DevToolsNetworkControllerHandle;
class MediaDeviceIDSalt;
class NetLog;
@ -53,13 +54,10 @@ class URLRequestContextGetter : public net::URLRequestContextGetter {
CreateURLRequestJobFactory(content::ProtocolHandlerMap* protocol_handlers);
virtual net::HttpCache::BackendFactory* CreateHttpCacheBackendFactory(
const base::FilePath& base_path);
virtual std::unique_ptr<net::CertVerifier> CreateCertVerifier();
virtual std::unique_ptr<net::CertVerifier> CreateCertVerifier(
RequireCTDelegate* ct_delegate);
virtual net::SSLConfigService* CreateSSLConfigService();
virtual std::vector<std::string> GetCookieableSchemes();
virtual net::TransportSecurityState::RequireCTDelegate*
GetRequireCTDelegate() {
return nullptr;
}
virtual MediaDeviceIDSalt* GetMediaDeviceIDSalt() { return nullptr; }
};
@ -98,6 +96,7 @@ class URLRequestContextGetter : public net::URLRequestContextGetter {
std::string user_agent_;
std::unique_ptr<RequireCTDelegate> ct_delegate_;
std::unique_ptr<net::ProxyConfigService> proxy_config_service_;
std::unique_ptr<net::NetworkDelegate> network_delegate_;
std::unique_ptr<net::URLRequestContextStorage> storage_;