summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-05 02:19:25 +0000
committergab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-05 02:19:25 +0000
commita92fef986f4dc433fc5f60ca06ae3251743629cb (patch)
treecfe786bc6d66a60dc3e420c51b2bb55d051a3d33
parentfa66fc2c4ab301db1d974bed4b2bcb620854c82e (diff)
downloadchromium_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.cc23
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;
}