Skip to content

Commit 94eb4ce

Browse files
authored
fix: hold browser_context instead of render_frame_host to fix lifetime issues (electron#23271)
1 parent c438b93 commit 94eb4ce

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

shell/browser/network_hints_handler_impl.cc

+5-4
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,20 @@ NetworkHintsHandlerImpl::NetworkHintsHandlerImpl(
2121
: network_hints::SimpleNetworkHintsHandlerImpl(
2222
frame_host->GetProcess()->GetID(),
2323
frame_host->GetRoutingID()),
24-
render_frame_host_(frame_host) {}
24+
browser_context_(frame_host->GetProcess()->GetBrowserContext()) {}
2525

2626
NetworkHintsHandlerImpl::~NetworkHintsHandlerImpl() = default;
2727

2828
void NetworkHintsHandlerImpl::Preconnect(const GURL& url,
2929
bool allow_credentials) {
3030
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
3131

32-
content::BrowserContext* browser_context =
33-
render_frame_host_->GetProcess()->GetBrowserContext();
32+
if (!browser_context_) {
33+
return;
34+
}
3435
auto* session = electron::api::Session::FromWrappedClass(
3536
v8::Isolate::GetCurrent(),
36-
static_cast<electron::ElectronBrowserContext*>(browser_context));
37+
static_cast<electron::ElectronBrowserContext*>(browser_context_));
3738
if (session) {
3839
session->Emit("preconnect", url, allow_credentials);
3940
}

shell/browser/network_hints_handler_impl.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99

1010
namespace content {
1111
class RenderFrameHost;
12-
}
12+
class BrowserContext;
13+
} // namespace content
1314

1415
class NetworkHintsHandlerImpl
1516
: public network_hints::SimpleNetworkHintsHandlerImpl {
@@ -27,7 +28,7 @@ class NetworkHintsHandlerImpl
2728
private:
2829
explicit NetworkHintsHandlerImpl(content::RenderFrameHost*);
2930

30-
content::RenderFrameHost* render_frame_host_ = nullptr;
31+
content::BrowserContext* browser_context_ = nullptr;
3132
};
3233

3334
#endif // SHELL_BROWSER_NETWORK_HINTS_HANDLER_IMPL_H_

0 commit comments

Comments
 (0)