refactor: make session::browser_context_ a const raw_ref (#42728)

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
This commit is contained in:
Charles Kerr 2024-07-02 16:53:36 -05:00 committed by GitHub
parent 0a8eae9019
commit cf5fb4505e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 14 deletions

View file

@ -544,7 +544,8 @@ gin::WrapperInfo Session::kWrapperInfo = {gin::kEmbedderNativeGin};
Session::Session(v8::Isolate* isolate, ElectronBrowserContext* browser_context)
: isolate_(isolate),
network_emulation_token_(base::UnguessableToken::Create()),
browser_context_(browser_context) {
browser_context_{
raw_ref<ElectronBrowserContext>::from_ptr(browser_context)} {
// Observe DownloadManager to get download notifications.
browser_context->GetDownloadManager()->AddObserver(this);
@ -556,9 +557,8 @@ Session::Session(v8::Isolate* isolate, ElectronBrowserContext* browser_context)
std::make_unique<UserDataLink>(this));
#if BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER)
SpellcheckService* service =
SpellcheckServiceFactory::GetForContext(browser_context_);
if (service) {
if (auto* service =
SpellcheckServiceFactory::GetForContext(browser_context)) {
service->SetHunspellObserver(this);
}
#endif
@ -572,9 +572,8 @@ Session::~Session() {
browser_context()->GetDownloadManager()->RemoveObserver(this);
#if BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER)
SpellcheckService* service =
SpellcheckServiceFactory::GetForContext(browser_context_);
if (service) {
if (auto* service =
SpellcheckServiceFactory::GetForContext(browser_context())) {
service->SetHunspellObserver(nullptr);
}
#endif
@ -639,7 +638,7 @@ v8::Local<v8::Promise> Session::ResolveHost(
v8::Local<v8::Promise> handle = promise.GetHandle();
auto fn = base::MakeRefCounted<ResolveHostFunction>(
browser_context_, std::move(host),
browser_context(), std::move(host),
params ? std::move(params.value()) : nullptr,
base::BindOnce(
[](gin_helper::Promise<gin_helper::Dictionary> promise,
@ -1242,7 +1241,7 @@ void Session::Preconnect(const gin_helper::Dictionary& options,
DCHECK_GT(num_sockets_to_preconnect, 0);
content::GetUIThreadTaskRunner({})->PostTask(
FROM_HERE,
base::BindOnce(&StartPreconnectOnUI, base::Unretained(browser_context_),
base::BindOnce(&StartPreconnectOnUI, base::Unretained(browser_context()),
url, num_sockets_to_preconnect));
}
@ -1434,7 +1433,7 @@ v8::Local<v8::Promise> Session::ListWordsInSpellCheckerDictionary() {
v8::Local<v8::Promise> handle = promise.GetHandle();
SpellcheckService* spellcheck =
SpellcheckServiceFactory::GetForContext(browser_context_);
SpellcheckServiceFactory::GetForContext(browser_context());
if (!spellcheck) {
promise.RejectWithErrorMessage(
@ -1462,7 +1461,7 @@ bool Session::AddWordToSpellCheckerDictionary(const std::string& word) {
return false;
SpellcheckService* service =
SpellcheckServiceFactory::GetForContext(browser_context_);
SpellcheckServiceFactory::GetForContext(browser_context());
if (!service)
return false;
@ -1483,7 +1482,7 @@ bool Session::RemoveWordFromSpellCheckerDictionary(const std::string& word) {
return false;
SpellcheckService* service =
SpellcheckServiceFactory::GetForContext(browser_context_);
SpellcheckServiceFactory::GetForContext(browser_context());
if (!service)
return false;

View file

@ -91,7 +91,9 @@ class Session : public gin::Wrappable<Session>,
const base::FilePath& path,
base::Value::Dict options = {});
ElectronBrowserContext* browser_context() const { return browser_context_; }
ElectronBrowserContext* browser_context() const {
return &browser_context_.get();
}
// gin::Wrappable
static gin::WrapperInfo kWrapperInfo;
@ -215,7 +217,7 @@ class Session : public gin::Wrappable<Session>,
// The client id to enable the network throttler.
base::UnguessableToken network_emulation_token_;
raw_ptr<ElectronBrowserContext> browser_context_;
const raw_ref<ElectronBrowserContext> browser_context_;
};
} // namespace api