diff --git a/shell/browser/electron_browser_context.cc b/shell/browser/electron_browser_context.cc index eff399c8f851..fd89254e23b3 100644 --- a/shell/browser/electron_browser_context.cc +++ b/shell/browser/electron_browser_context.cc @@ -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(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(new_context); - return new_context; + return context.get(); } } // namespace electron