fix: crash when loadExtension fails (#27561)
This commit is contained in:
parent
20a71be849
commit
b6df7cd327
3 changed files with 29 additions and 15 deletions
|
@ -112,22 +112,22 @@ void ElectronExtensionLoader::FinishExtensionLoad(
|
|||
scoped_refptr<const Extension> extension = result.first;
|
||||
if (extension) {
|
||||
extension_registrar_.AddExtension(extension);
|
||||
}
|
||||
|
||||
// Write extension install time to ExtensionPrefs. This is required by
|
||||
// WebRequestAPI which calls extensions::ExtensionPrefs::GetInstallTime.
|
||||
//
|
||||
// Implementation for writing the pref was based on
|
||||
// PreferenceAPIBase::SetExtensionControlledPref.
|
||||
{
|
||||
ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(browser_context_);
|
||||
ExtensionPrefs::ScopedDictionaryUpdate update(
|
||||
extension_prefs, extension.get()->id(),
|
||||
extensions::pref_names::kPrefPreferences);
|
||||
auto preference = update.Create();
|
||||
const base::Time install_time = base::Time().Now();
|
||||
preference->SetString("install_time",
|
||||
base::NumberToString(install_time.ToInternalValue()));
|
||||
// Write extension install time to ExtensionPrefs. This is required by
|
||||
// WebRequestAPI which calls extensions::ExtensionPrefs::GetInstallTime.
|
||||
//
|
||||
// Implementation for writing the pref was based on
|
||||
// PreferenceAPIBase::SetExtensionControlledPref.
|
||||
{
|
||||
ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(browser_context_);
|
||||
ExtensionPrefs::ScopedDictionaryUpdate update(
|
||||
extension_prefs, extension.get()->id(),
|
||||
extensions::pref_names::kPrefPreferences);
|
||||
auto preference = update.Create();
|
||||
const base::Time install_time = base::Time().Now();
|
||||
preference->SetString(
|
||||
"install_time", base::NumberToString(install_time.ToInternalValue()));
|
||||
}
|
||||
}
|
||||
|
||||
std::move(cb).Run(extension.get(), result.second);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue