// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// The IE configurator mutates Internet Explorer's configuration to put it in a
// (thought to be) known good state for the Chrome Frame tests. The current
// user's IE configuration may be left in a different state than it was
// initially; see the implementation for details.
#ifndef CHROME_FRAME_TEST_IE_CONFIGURATOR_H_
#define CHROME_FRAME_TEST_IE_CONFIGURATOR_H_
#include "base/basictypes.h"
namespace chrome_frame_test {
// Abstract interface to be implemented for per-version configurators.
class IEConfigurator {
public:
virtual ~IEConfigurator();
// Initializes a configurator, causing it to cache existing configuration
// settings that it will modify.
virtual void Initialize() = 0;
// Applies all configuration settings.
virtual void ApplySettings() = 0;
// Reverts all configuration settings.
virtual void RevertSettings() = 0;
protected:
IEConfigurator();
};
// Returns a new configurator for the current configuration, or NULL if none
// applies.
IEConfigurator* CreateConfigurator();
// Installs a configurator in the Google Test unit test singleton.
void InstallIEConfigurator();
} // namespace chrome_frame_test
#endif // CHROME_FRAME_TEST_IE_CONFIGURATOR_H_