fix: hold browser_context instead of render_frame_host to fix lifetime issues (#23271)

This commit is contained in:
Paul Frazee 2020-05-01 02:37:01 -05:00 committed by GitHub
parent c438b93f18
commit 94eb4ce38e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 6 deletions

View file

@ -21,7 +21,7 @@ NetworkHintsHandlerImpl::NetworkHintsHandlerImpl(
: network_hints::SimpleNetworkHintsHandlerImpl(
frame_host->GetProcess()->GetID(),
frame_host->GetRoutingID()),
render_frame_host_(frame_host) {}
browser_context_(frame_host->GetProcess()->GetBrowserContext()) {}
NetworkHintsHandlerImpl::~NetworkHintsHandlerImpl() = default;
@ -29,11 +29,12 @@ void NetworkHintsHandlerImpl::Preconnect(const GURL& url,
bool allow_credentials) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
content::BrowserContext* browser_context =
render_frame_host_->GetProcess()->GetBrowserContext();
if (!browser_context_) {
return;
}
auto* session = electron::api::Session::FromWrappedClass(
v8::Isolate::GetCurrent(),
static_cast<electron::ElectronBrowserContext*>(browser_context));
static_cast<electron::ElectronBrowserContext*>(browser_context_));
if (session) {
session->Emit("preconnect", url, allow_credentials);
}