Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9930)

Unified Diff: chrome/installer/setup/install_worker.cc

Issue 10103020: Only do DelegateExecute verb handler registration for Google Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: i heart compilers Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/installer/setup/install_worker.cc
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc
index ce8a456a2d0872e619f444c9eaf34becf16eb714..c3d0c8bd61cd6a5604aedaf5bf3bc26731709e54 100644
--- a/chrome/installer/setup/install_worker.cc
+++ b/chrome/installer/setup/install_worker.cc
@@ -292,9 +292,6 @@ void AddProductSpecificWorkItems(const InstallationState& original_state,
if (p.is_chrome_frame()) {
AddChromeFrameWorkItems(original_state, installer_state, setup_path,
new_version, p, list);
- } else if (p.is_chrome()) {
- AddChromeWorkItems(original_state, installer_state, setup_path,
- new_version, p, list);
}
}
}
@@ -825,6 +822,9 @@ void AddInstallWorkItems(const InstallationState& original_state,
AddVersionKeyWorkItems(root, product->distribution(), new_version,
add_language_identifier, install_list);
+
+ AddDelegateExecuteWorkItems(original_state, installer_state, setup_path,
+ new_version, *product, install_list);
}
if (installer_state.is_multi_install()) {
@@ -1030,25 +1030,35 @@ void AddChromeFrameWorkItems(const InstallationState& original_state,
}
}
-void AddChromeWorkItems(const InstallationState& original_state,
- const InstallerState& installer_state,
- const FilePath& setup_path,
- const Version& new_version,
- const Product& product,
- WorkItemList* list) {
- // For the moment, this function adds work items to perform COM registration
- // specific to the Windows 8 delegate. If more work needs to be done in the
- // future, pull this into its own function called by AddChromeWorkItems.
- DCHECK(product.is_chrome());
+void AddDelegateExecuteWorkItems(const InstallationState& original_state,
+ const InstallerState& installer_state,
+ const FilePath& setup_path,
+ const Version& new_version,
+ const Product& product,
+ WorkItemList* list) {
+ string16 handler_class_uuid;
+ string16 type_lib_uuid;
+ string16 type_lib_version;
+ string16 interface_uuid;
+ BrowserDistribution* distribution = product.distribution();
+ if (!distribution->GetDelegateExecuteHandlerData(&handler_class_uuid,
+ &type_lib_uuid, &type_lib_version, &interface_uuid)) {
robertshield 2012/04/17 14:51:19 indent + 4
grt (UTC plus 2) 2012/04/17 15:27:33 Done.
+ VLOG(1) << "No DelegateExecute verb handler processing to do for "
+ << distribution->GetAppShortCutName();
+ return;
+ }
+
+ VLOG(1) << "DelegateExecute verb handler COM registration.";
+
HKEY root = installer_state.root_key();
const bool is_install =
(installer_state.operation() != InstallerState::UNINSTALL);
string16 delegate_execute_path(L"Software\\Classes\\CLSID\\");
- delegate_execute_path.append(kCommandExecuteImplUuid);
+ delegate_execute_path.append(handler_class_uuid);
string16 typelib_path(L"Software\\Classes\\TypeLib\\");
- typelib_path.append(kDelegateExecuteLibUuid);
+ typelib_path.append(type_lib_uuid);
string16 interface_path(L"Software\\Classes\\Interface\\");
- interface_path.append(kICommandExecuteImplUuid);
+ interface_path.append(interface_uuid);
if (is_install) {
// The path to the exe (in the version directory).
@@ -1077,22 +1087,20 @@ void AddChromeWorkItems(const InstallationState& original_state,
subkey.assign(delegate_execute_path).append(L"\\TypeLib");
list->AddCreateRegKeyWorkItem(root, subkey);
- list->AddSetRegValueWorkItem(root, subkey, L"", kDelegateExecuteLibUuid,
- true);
+ list->AddSetRegValueWorkItem(root, subkey, L"", type_lib_uuid, true);
subkey.assign(delegate_execute_path).append(L"\\Version");
list->AddCreateRegKeyWorkItem(root, subkey);
- list->AddSetRegValueWorkItem(root, subkey, L"", kDelegateExecuteLibVersion,
- true);
+ list->AddSetRegValueWorkItem(root, subkey, L"", type_lib_version, true);
// Register the DelegateExecuteLib type library at
// Software\Classes\TypeLib\{4E805ED8-EBA0-4601-9681-12815A56EBFD}
list->AddCreateRegKeyWorkItem(root, typelib_path);
string16 version_key(typelib_path);
- version_key.append(1, L'\\').append(kDelegateExecuteLibVersion);
+ version_key.append(1, L'\\').append(type_lib_version);
list->AddCreateRegKeyWorkItem(root, version_key);
- list->AddSetRegValueWorkItem(root, version_key, L"", kDelegateExecuteLib,
+ list->AddSetRegValueWorkItem(root, version_key, L"", L"DelegateExecuteLib",
true);
subkey.assign(version_key).append(L"\\FLAGS");
@@ -1117,7 +1125,7 @@ void AddChromeWorkItems(const InstallationState& original_state,
// Software\Classes\Interface\{0BA0D4E9-2259-4963-B9AE-A839F7CB7544}
list->AddCreateRegKeyWorkItem(root, interface_path);
list->AddSetRegValueWorkItem(root, interface_path, L"",
- kICommandExecuteImpl, true);
+ L"ICommandExecuteImpl", true);
subkey.assign(interface_path).append(L"\\ProxyStubClsid32");
list->AddCreateRegKeyWorkItem(root, subkey);
@@ -1125,10 +1133,9 @@ void AddChromeWorkItems(const InstallationState& original_state,
subkey.assign(interface_path).append(L"\\TypeLib");
list->AddCreateRegKeyWorkItem(root, subkey);
- list->AddSetRegValueWorkItem(root, subkey, L"", kDelegateExecuteLibUuid,
+ list->AddSetRegValueWorkItem(root, subkey, L"", type_lib_uuid, true);
+ list->AddSetRegValueWorkItem(root, subkey, L"Version", type_lib_version,
true);
- list->AddSetRegValueWorkItem(root, subkey, L"Version",
- kDelegateExecuteLibVersion, true);
} else {
list->AddDeleteRegKeyWorkItem(root, delegate_execute_path);

Powered by Google App Engine
This is Rietveld 408576698