- add sources.
[platform/framework/web/crosswalk.git] / src / chrome_frame / test / ie_configurator.h
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_