summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
authorgrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-12 13:05:29 +0000
committergrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-12 13:05:29 +0000
commit11eae6bb1418023c4ad81d6a7293d8a7f25bea8d (patch)
tree1b3ca58e7080b483cb40bedcc4a93a80c6ebcb5c /chrome_frame
parent06c5cfe8c446ac8b3df47b168945260a45a81c3f (diff)
downloadchromium_src-11eae6bb1418023c4ad81d6a7293d8a7f25bea8d.zip
chromium_src-11eae6bb1418023c4ad81d6a7293d8a7f25bea8d.tar.gz
chromium_src-11eae6bb1418023c4ad81d6a7293d8a7f25bea8d.tar.bz2
Fix IE version check.
BUG=155501 TEST=none Review URL: https://codereview.chromium.org/11048053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161568 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r--chrome_frame/test/chrome_frame_test_utils.cc28
1 files changed, 19 insertions, 9 deletions
diff --git a/chrome_frame/test/chrome_frame_test_utils.cc b/chrome_frame/test/chrome_frame_test_utils.cc
index d8d1e13..ecc95d5 100644
--- a/chrome_frame/test/chrome_frame_test_utils.cc
+++ b/chrome_frame/test/chrome_frame_test_utils.cc
@@ -19,6 +19,8 @@
#include "base/path_service.h"
#include "base/process.h"
#include "base/process_util.h"
+#include "base/string_number_conversions.h"
+#include "base/string_piece.h"
#include "base/string_util.h"
#include "base/stringprintf.h"
#include "base/utf_string_conversions.h"
@@ -420,19 +422,27 @@ std::wstring GetExeVersion(const std::wstring& exe_path) {
}
IEVersion GetInstalledIEVersion() {
- std::wstring path = chrome_frame_test::GetExecutableAppPath(kIEImageName);
- std::wstring version = GetExeVersion(path);
-
- switch (version[0]) {
- case '6':
+ std::wstring path(chrome_frame_test::GetExecutableAppPath(kIEImageName));
+ std::wstring version(GetExeVersion(path));
+ size_t first_dot = version.find(L'.');
+ int major_version = 0;
+ if (!base::StringToInt(base::StringPiece16(
+ version.data(),
+ first_dot == std::wstring::npos ? version.size() : first_dot),
+ &major_version)) {
+ return IE_UNSUPPORTED;
+ }
+
+ switch (major_version) {
+ case 6:
return IE_6;
- case '7':
+ case 7:
return IE_7;
- case '8':
+ case 8:
return IE_8;
- case '9':
+ case 9:
return IE_9;
- case '10':
+ case 10:
return IE_10;
default:
break;