diff options
author | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-17 15:49:47 +0000 |
---|---|---|
committer | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-17 15:49:47 +0000 |
commit | 06bd1504b1fb39e954815ad8bfd2c0903b2d0d18 (patch) | |
tree | c48eeac2b3eee5e344effbb2093d0fc2f2537785 /chrome_frame | |
parent | 605851c73ec62266084b26be8c588539b7a5b257 (diff) | |
download | chromium_src-06bd1504b1fb39e954815ad8bfd2c0903b2d0d18.zip chromium_src-06bd1504b1fb39e954815ad8bfd2c0903b2d0d18.tar.gz chromium_src-06bd1504b1fb39e954815ad8bfd2c0903b2d0d18.tar.bz2 |
Configure IE 10 for the various Chrome Frame tests.
BUG=155501
TEST=none
Review URL: https://chromiumcodereview.appspot.com/11149009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162416 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r-- | chrome_frame/test/ie_configurator.cc | 107 |
1 files changed, 80 insertions, 27 deletions
diff --git a/chrome_frame/test/ie_configurator.cc b/chrome_frame/test/ie_configurator.cc index 10c445f..d68818dd 100644 --- a/chrome_frame/test/ie_configurator.cc +++ b/chrome_frame/test/ie_configurator.cc @@ -42,6 +42,8 @@ const wchar_t kValueIE9Completed[] = L"IE9RunOncePerInstallCompleted"; const wchar_t kValueIE9CompletionTime[] = L"IE9RunOnceCompletionTime"; const wchar_t kValueIE9LastShown[] = L"IE9RunOnceLastShown"; const wchar_t kValueIE9TourNoShow[] = L"IE9TourNoShow"; +const wchar_t kValueIE10Completed[] = L"IE10RunOncePerInstallCompleted"; +const wchar_t kValueIE10CompletionTime[] = L"IE10RunOnceCompletionTime"; const wchar_t kValueIgnoreFrameApprovalCheck[] = L"IgnoreFrameApprovalCheck"; const wchar_t kValueMSCompatibilityMode[] = L"MSCompatibilityMode"; @@ -140,24 +142,39 @@ class IE7Configurator : public IEConfigurator { DISALLOW_COPY_AND_ASSIGN(IE7Configurator); }; -// A configurator for Internet Explorer 9. -class IE9Configurator : public IEConfigurator { +// A configurator for Internet Explorer 9 and 10. +class ModernIEConfigurator : public IEConfigurator { public: - IE9Configurator(); - virtual ~IE9Configurator(); + explicit ModernIEConfigurator(IEVersion ie_version); + virtual ~ModernIEConfigurator(); virtual void Initialize() OVERRIDE; virtual void ApplySettings() OVERRIDE; virtual void RevertSettings() OVERRIDE; private: - static bool IsPerUserSetupComplete(); + // The names of the registry values used to determine if IE's one-time + // initialization has been completed. + struct RunOnceValueNames { + // This DWORD value is non-zero once initialization has been completed. + const wchar_t* completed; + // This 8-byte binary value is the FILETIME of completion. + const wchar_t* completion_time; + }; + + static const RunOnceValueNames kIE9ValueNames; + static const RunOnceValueNames kIE10ValueNames; + + static const RunOnceValueNames* RunOnceNamesForVersion(IEVersion ie_version); + bool IsPerUserSetupComplete(); static string16 GetChromeFrameBHOCLSID(); static bool IsAddonPromptDisabledForChromeFrame(); + const IEVersion ie_version_; + const RunOnceValueNames* run_once_value_names_; RegistrySetter setter_; - DISALLOW_COPY_AND_ASSIGN(IE9Configurator); + DISALLOW_COPY_AND_ASSIGN(ModernIEConfigurator); }; // RegistrySetter implementation. @@ -334,17 +351,47 @@ void IE7Configurator::RevertSettings() { setter_.Revert(); } -// IE9Configurator implementation +// ModernIEConfigurator implementation + +const ModernIEConfigurator::RunOnceValueNames + ModernIEConfigurator::kIE9ValueNames = { + kValueIE9Completed, + kValueIE9CompletionTime, +}; -IE9Configurator::IE9Configurator() { +const ModernIEConfigurator::RunOnceValueNames + ModernIEConfigurator::kIE10ValueNames = { + kValueIE10Completed, + kValueIE10CompletionTime, +}; + +ModernIEConfigurator::ModernIEConfigurator(IEVersion ie_version) + : ie_version_(ie_version), + run_once_value_names_(RunOnceNamesForVersion(ie_version)) { } -IE9Configurator::~IE9Configurator() { +ModernIEConfigurator::~ModernIEConfigurator() { } -// Returns true if the per-user setup is complete. // static -bool IE9Configurator::IsPerUserSetupComplete() { +const ModernIEConfigurator::RunOnceValueNames* + ModernIEConfigurator::RunOnceNamesForVersion( + IEVersion ie_version) { + switch (ie_version) { + case IE_9: + return &kIE9ValueNames; + break; + case IE_10: + return &kIE10ValueNames; + break; + default: + NOTREACHED(); + } + return NULL; +} + +// Returns true if the per-user setup is complete. +bool ModernIEConfigurator::IsPerUserSetupComplete() { bool is_complete = false; base::win::RegKey key_main; @@ -354,11 +401,11 @@ bool IE9Configurator::IsPerUserSetupComplete() { FILETIME completion_time = {}; DWORD size = sizeof(completion_time); - if (key_main.ReadValueDW(kValueIE9Completed, + if (key_main.ReadValueDW(run_once_value_names_->completed, &completed) == ERROR_SUCCESS && completed != 0 && - key_main.ReadValue(kValueIE9CompletionTime, &completion_time, - &size, NULL) == ERROR_SUCCESS && + key_main.ReadValue(run_once_value_names_->completion_time, + &completion_time, &size, NULL) == ERROR_SUCCESS && size == sizeof(completion_time)) { is_complete = true; } @@ -369,7 +416,7 @@ bool IE9Configurator::IsPerUserSetupComplete() { // Returns the path to the IE9 Approved Extensions key for Chrome Frame. // static -string16 IE9Configurator::GetChromeFrameBHOCLSID() { +string16 ModernIEConfigurator::GetChromeFrameBHOCLSID() { string16 bho_guid(39, L'\0'); int guid_len = StringFromGUID2(CLSID_ChromeFrameBHO, &bho_guid[0], bho_guid.size()); @@ -380,7 +427,7 @@ string16 IE9Configurator::GetChromeFrameBHOCLSID() { // Returns true if the add-on enablement prompt is disabled by Group Policy. // static -bool IE9Configurator::IsAddonPromptDisabledForChromeFrame() { +bool ModernIEConfigurator::IsAddonPromptDisabledForChromeFrame() { bool is_disabled = false; base::win::RegKey key; @@ -411,17 +458,21 @@ bool IE9Configurator::IsAddonPromptDisabledForChromeFrame() { return is_disabled; } -void IE9Configurator::Initialize() { +void ModernIEConfigurator::Initialize() { // Check for per-user IE setup. if (!IsPerUserSetupComplete()) { const HKEY root = HKEY_CURRENT_USER; - // Suppress the "Set up Internet Explorer 9" dialog. - setter_.AddDWORDValue(root, kKeyIEMain, kValueIE9Completed, 1); - setter_.AddFILETIMEValue(root, kKeyIEMain, kValueIE9CompletionTime, + // Suppress the "Set up Internet Explorer" dialog. + setter_.AddDWORDValue(root, kKeyIEMain, run_once_value_names_->completed, + 1); + setter_.AddFILETIMEValue(root, kKeyIEMain, + run_once_value_names_->completion_time, base::Time::Now().ToFileTime()); - setter_.AddDWORDValue(root, kKeyIEMain, kValueIE9LastShown, 1); - // Don't show a tour of IE 9. - setter_.AddDWORDValue(root, kKeyIEMain, kValueIE9TourNoShow, 1); + if (ie_version_ == IE_9) { + setter_.AddDWORDValue(root, kKeyIEMain, kValueIE9LastShown, 1); + // Don't show a tour of IE 9. + setter_.AddDWORDValue(root, kKeyIEMain, kValueIE9TourNoShow, 1); + } // Turn off the phishing filter. setter_.AddDWORDValue(root, kKeyIEPhishingFilter, kValueEnabledV9, 0); // Don't download compatibility view lists. @@ -437,11 +488,11 @@ void IE9Configurator::Initialize() { } } -void IE9Configurator::ApplySettings() { +void ModernIEConfigurator::ApplySettings() { setter_.Apply(); } -void IE9Configurator::RevertSettings() { +void ModernIEConfigurator::RevertSettings() { setter_.Revert(); } @@ -458,12 +509,14 @@ IEConfigurator::~IEConfigurator() { IEConfigurator* CreateConfigurator() { IEConfigurator* configurator = NULL; - switch (GetInstalledIEVersion()) { + IEVersion ie_version = GetInstalledIEVersion(); + switch (ie_version) { case IE_7: configurator = new IE7Configurator(); break; case IE_9: - configurator = new IE9Configurator(); + case IE_10: + configurator = new ModernIEConfigurator(ie_version); break; default: break; |