refactor: add ElectronBrowserContext::GetDefaultBrowserContext()
(#46086)
* refactor: add ElectronBrowserContext::DestroyAllContexts() Simpler semantics than previous implementation; also hides the "default context must be destroyed last" implementation detail. Co-authored-by: Charles Kerr <charles@charleskerr.com> * refactor: add ElectronBrowserContext::GetDefaultBrowserContext() clearer semantics than everyone calling From("", false) Co-authored-by: Charles Kerr <charles@charleskerr.com> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com>
This commit is contained in:
parent
bc9389df9a
commit
7ea2daf456
8 changed files with 26 additions and 11 deletions
|
@ -318,6 +318,14 @@ ElectronBrowserContext::browser_context_map() {
|
|||
return *browser_context_map;
|
||||
}
|
||||
|
||||
// static
|
||||
void ElectronBrowserContext::DestroyAllContexts() {
|
||||
auto& map = browser_context_map();
|
||||
// Avoid UAF by destroying the default context last. See ba629e3 for info.
|
||||
const auto extracted = map.extract(PartitionKey{"", false});
|
||||
map.clear();
|
||||
}
|
||||
|
||||
ElectronBrowserContext::ElectronBrowserContext(
|
||||
const PartitionOrPath partition_location,
|
||||
bool in_memory,
|
||||
|
@ -841,6 +849,12 @@ ElectronBrowserContext* ElectronBrowserContext::From(
|
|||
return context.get();
|
||||
}
|
||||
|
||||
// static
|
||||
ElectronBrowserContext* ElectronBrowserContext::GetDefaultBrowserContext(
|
||||
base::Value::Dict options) {
|
||||
return ElectronBrowserContext::From("", false, std::move(options));
|
||||
}
|
||||
|
||||
ElectronBrowserContext* ElectronBrowserContext::FromPath(
|
||||
const base::FilePath& path,
|
||||
base::Value::Dict options) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue