1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // The IE configurator mutates Internet Explorer's configuration to put it in a 6 // (thought to be) known good state for the Chrome Frame tests. The current 7 // user's IE configuration may be left in a different state than it was 8 // initially; see the implementation for details. 9 10 #ifndef CHROME_FRAME_TEST_IE_CONFIGURATOR_H_ 11 #define CHROME_FRAME_TEST_IE_CONFIGURATOR_H_ 12 13 #include "base/basictypes.h" 14 15 namespace chrome_frame_test { 16 17 // Abstract interface to be implemented for per-version configurators. 18 class IEConfigurator { 19 public: 20 virtual ~IEConfigurator(); 21 22 // Initializes a configurator, causing it to cache existing configuration 23 // settings that it will modify. 24 virtual void Initialize() = 0; 25 26 // Applies all configuration settings. 27 virtual void ApplySettings() = 0; 28 29 // Reverts all configuration settings. 30 virtual void RevertSettings() = 0; 31 32 protected: 33 IEConfigurator(); 34 }; 35 36 // Returns a new configurator for the current configuration, or NULL if none 37 // applies. 38 IEConfigurator* CreateConfigurator(); 39 40 // Installs a configurator in the Google Test unit test singleton. 41 void InstallIEConfigurator(); 42 43 } // namespace chrome_frame_test 44 45 #endif // CHROME_FRAME_TEST_IE_CONFIGURATOR_H_ 46