diff options
author | gab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-05 02:19:25 +0000 |
---|---|---|
committer | gab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-05 02:19:25 +0000 |
commit | a92fef986f4dc433fc5f60ca06ae3251743629cb (patch) | |
tree | cfe786bc6d66a60dc3e420c51b2bb55d051a3d33 | |
parent | fa66fc2c4ab301db1d974bed4b2bcb620854c82e (diff) | |
download | chromium_src-a92fef986f4dc433fc5f60ca06ae3251743629cb.zip chromium_src-a92fef986f4dc433fc5f60ca06ae3251743629cb.tar.gz chromium_src-a92fef986f4dc433fc5f60ca06ae3251743629cb.tar.bz2 |
Support DelegateExecute verb handler for Chromium on Win8.
V2 of https://chromiumcodereview.appspot.com/10095025/
BUG=123727
TEST=none
Review URL: http://codereview.chromium.org/10378013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135517 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/installer/util/browser_distribution.cc | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/chrome/installer/util/browser_distribution.cc b/chrome/installer/util/browser_distribution.cc index a441d65..f34df7c 100644 --- a/chrome/installer/util/browser_distribution.cc +++ b/chrome/installer/util/browser_distribution.cc @@ -15,6 +15,7 @@ #include "base/path_service.h" #include "base/logging.h" #include "base/win/registry.h" +#include "base/win/windows_version.h" #include "chrome/common/env_vars.h" #include "chrome/installer/util/chrome_frame_distribution.h" #include "chrome/installer/util/chromium_binaries_distribution.h" @@ -30,6 +31,15 @@ using installer::MasterPreferences; namespace { + +const wchar_t kCommandExecuteImplUuid[] = + L"{A2DF06F9-A21A-44A8-8A99-8B9C84F29160}"; +const wchar_t kDelegateExecuteLibUuid[] = + L"{7779FB70-B399-454A-AA1A-BAA850032B10}"; +const wchar_t kDelegateExecuteLibVersion[] = L"1.0"; +const wchar_t kICommandExecuteImplUuid[] = + L"{0BA0D4E9-2259-4963-B9AE-A839F7CB7544}"; + // The BrowserDistribution objects are never freed. BrowserDistribution* g_browser_distribution = NULL; BrowserDistribution* g_chrome_frame_distribution = NULL; @@ -234,7 +244,18 @@ bool BrowserDistribution::GetDelegateExecuteHandlerData( string16* type_lib_uuid, string16* type_lib_version, string16* interface_uuid) { - // TODO(grt): http://crbug.com/123727 Return values for Chromium. + // Chrome's DelegateExecute verb handler is only used for Windows 8 and up. + if (base::win::GetVersion() >= base::win::VERSION_WIN8) { + if (handler_class_uuid) + *handler_class_uuid = kCommandExecuteImplUuid; + if (type_lib_uuid) + *type_lib_uuid = kDelegateExecuteLibUuid; + if (type_lib_version) + *type_lib_version = kDelegateExecuteLibVersion; + if (interface_uuid) + *interface_uuid = kICommandExecuteImplUuid; + return true; + } return false; } |