perf: avoid redundant map lookup in ElectronBrowserContext::From() (#46062)
perf: avoid redundant map lookup in ElectronBrowserContext::FromPath() 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
463e0d0ab7
commit
3faedae91c
1 changed files with 10 additions and 21 deletions
|
@ -833,34 +833,23 @@ ElectronBrowserContext* ElectronBrowserContext::From(
|
|||
const std::string& partition,
|
||||
bool in_memory,
|
||||
base::Value::Dict options) {
|
||||
PartitionKey key(partition, in_memory);
|
||||
ElectronBrowserContext* browser_context = browser_context_map()[key].get();
|
||||
if (browser_context) {
|
||||
return browser_context;
|
||||
auto& context = browser_context_map()[PartitionKey(partition, in_memory)];
|
||||
if (!context) {
|
||||
context.reset(new ElectronBrowserContext{std::cref(partition), in_memory,
|
||||
std::move(options)});
|
||||
}
|
||||
|
||||
auto* new_context = new ElectronBrowserContext(std::cref(partition),
|
||||
in_memory, std::move(options));
|
||||
browser_context_map()[key] =
|
||||
std::unique_ptr<ElectronBrowserContext>(new_context);
|
||||
return new_context;
|
||||
return context.get();
|
||||
}
|
||||
|
||||
ElectronBrowserContext* ElectronBrowserContext::FromPath(
|
||||
const base::FilePath& path,
|
||||
base::Value::Dict options) {
|
||||
PartitionKey key(path);
|
||||
|
||||
ElectronBrowserContext* browser_context = browser_context_map()[key].get();
|
||||
if (browser_context) {
|
||||
return browser_context;
|
||||
auto& context = browser_context_map()[PartitionKey(path)];
|
||||
if (!context) {
|
||||
context.reset(
|
||||
new ElectronBrowserContext{std::cref(path), false, std::move(options)});
|
||||
}
|
||||
|
||||
auto* new_context =
|
||||
new ElectronBrowserContext(std::cref(path), false, std::move(options));
|
||||
browser_context_map()[key] =
|
||||
std::unique_ptr<ElectronBrowserContext>(new_context);
|
||||
return new_context;
|
||||
return context.get();
|
||||
}
|
||||
|
||||
} // namespace electron
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue