Introduce an extension parameter which is used to customize the extension. It's available for external extensions on Windows by using a registry key. The installer can set this parameter per user.
BUG=267510
[email protected],[email protected]
Review URL: https://codereview.chromium.org/196663003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258919 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index a42fc1a..13defa34 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -265,6 +265,7 @@
bool ExtensionService::OnExternalExtensionUpdateUrlFound(
const std::string& id,
+ const std::string& install_parameter,
const GURL& update_url,
Manifest::Location location,
int creation_flags,
@@ -292,7 +293,12 @@
// source. In this case, signal that this extension will not be
// installed by returning false.
if (!pending_extension_manager()->AddFromExternalUpdateUrl(
- id, update_url, location, creation_flags, mark_acknowledged)) {
+ id,
+ install_parameter,
+ update_url,
+ location,
+ creation_flags,
+ mark_acknowledged)) {
return false;
}
@@ -1826,7 +1832,8 @@
AddNewOrUpdatedExtension(extension,
Extension::ENABLED_COMPONENT,
extensions::NOT_BLACKLISTED,
- syncer::StringOrdinal());
+ syncer::StringOrdinal(),
+ std::string());
return;
}
@@ -2086,6 +2093,7 @@
const std::string& id = extension->id();
bool initial_enable = ShouldEnableOnInstall(extension);
+ std::string install_parameter;
const extensions::PendingExtensionInfo* pending_extension_info = NULL;
if ((pending_extension_info = pending_extension_manager()->GetById(id))) {
if (!pending_extension_info->ShouldAllowInstall(extension)) {
@@ -2108,6 +2116,7 @@
return;
}
+ install_parameter = pending_extension_info->install_parameter();
pending_extension_manager()->Remove(id);
} else {
// We explicitly want to re-enable an uninstalled external
@@ -2173,7 +2182,8 @@
initial_state,
blacklisted_for_malware,
extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IDLE,
- page_ordinal);
+ page_ordinal,
+ install_parameter);
// Transfer ownership of |extension|.
delayed_installs_.Insert(extension);
@@ -2191,7 +2201,8 @@
initial_state,
blacklisted_for_malware,
extensions::ExtensionPrefs::DELAY_REASON_GC,
- page_ordinal);
+ page_ordinal,
+ install_parameter);
delayed_installs_.Insert(extension);
} else if (status != IMPORT_STATUS_OK) {
if (status == IMPORT_STATUS_UNSATISFIED) {
@@ -2200,14 +2211,16 @@
initial_state,
blacklisted_for_malware,
extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IMPORTS,
- page_ordinal);
+ page_ordinal,
+ install_parameter);
delayed_installs_.Insert(extension);
}
} else {
AddNewOrUpdatedExtension(extension,
initial_state,
blacklist_state,
- page_ordinal);
+ page_ordinal,
+ install_parameter);
}
}
@@ -2215,14 +2228,16 @@
const Extension* extension,
Extension::State initial_state,
extensions::BlacklistState blacklist_state,
- const syncer::StringOrdinal& page_ordinal) {
+ const syncer::StringOrdinal& page_ordinal,
+ const std::string& install_parameter) {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
const bool blacklisted_for_malware =
blacklist_state == extensions::BLACKLISTED_MALWARE;
extension_prefs_->OnExtensionInstalled(extension,
initial_state,
blacklisted_for_malware,
- page_ordinal);
+ page_ordinal,
+ install_parameter);
delayed_installs_.Remove(extension->id());
if (InstallVerifier::NeedsVerification(*extension)) {
system_->install_verifier()->Add(extension->id(),