| Index: cc/settings.cc | 
| diff --git a/cc/settings.cc b/cc/settings.cc | 
| index cfdc25835d41e13c027e763da5c089ac85b5cd52..5954704c2a89d8a75023dc36f77a9a98ab03a1c6 100644 | 
| --- a/cc/settings.cc | 
| +++ b/cc/settings.cc | 
| @@ -5,46 +5,108 @@ | 
| #include "config.h" | 
|  | 
| #include "base/command_line.h" | 
| -#include "CCSettings.h" | 
| +#include "cc/settings.h" | 
| #include "cc/switches.h" | 
|  | 
| namespace { | 
| +static bool s_settingsInitialized = false; | 
| + | 
| static bool s_perTilePaintingEnabled = false; | 
| static bool s_partialSwapEnabled = false; | 
| static bool s_acceleratedAnimationEnabled = false; | 
| static bool s_pageScalePinchZoomEnabled = false; | 
| -} // namespace | 
| +static bool s_jankInsteadOfCheckerboard = false; | 
| +static bool s_backgroundColorInsteadOfCheckerboard = false; | 
| + | 
| +void reset() | 
| +{ | 
| +    s_settingsInitialized = true; | 
| + | 
| +    s_perTilePaintingEnabled = CommandLine::ForCurrentProcess()->HasSwitch(cc::switches::kEnablePerTilePainting); | 
| +    s_partialSwapEnabled = CommandLine::ForCurrentProcess()->HasSwitch(cc::switches::kEnablePartialSwap); | 
| +    s_acceleratedAnimationEnabled = CommandLine::ForCurrentProcess()->HasSwitch(cc::switches::kDisableThreadedAnimation); | 
| +    s_pageScalePinchZoomEnabled = CommandLine::ForCurrentProcess()->HasSwitch(cc::switches::kEnablePinchInCompositor); | 
| +    s_jankInsteadOfCheckerboard = CommandLine::ForCurrentProcess()->HasSwitch(cc::switches::kJankInsteadOfCheckerboard); | 
| +    s_backgroundColorInsteadOfCheckerboard = CommandLine::ForCurrentProcess()->HasSwitch(cc::switches::kBackgroundColorInsteadOfCheckerboard); | 
| +} | 
| + | 
| +} | 
|  | 
| namespace cc { | 
|  | 
| -bool CCSettings::perTilePaintingEnabled() { return s_perTilePaintingEnabled; } | 
| -void CCSettings::setPerTilePaintingEnabled(bool enabled) { s_perTilePaintingEnabled = enabled; } | 
| +bool Settings::perTilePaintingEnabled() | 
| +{ | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    return s_perTilePaintingEnabled; | 
| +} | 
|  | 
| -bool CCSettings::partialSwapEnabled() { return s_partialSwapEnabled; } | 
| -void CCSettings::setPartialSwapEnabled(bool enabled) { s_partialSwapEnabled = enabled; } | 
| +bool Settings::partialSwapEnabled() | 
| +{ | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    return s_partialSwapEnabled; | 
| +} | 
|  | 
| -bool CCSettings::acceleratedAnimationEnabled() { return s_acceleratedAnimationEnabled; } | 
| -void CCSettings::setAcceleratedAnimationEnabled(bool enabled) { s_acceleratedAnimationEnabled = enabled; } | 
| +bool Settings::acceleratedAnimationEnabled() | 
| +{ | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    return s_acceleratedAnimationEnabled; | 
| +} | 
|  | 
| -bool CCSettings::pageScalePinchZoomEnabled() { return s_pageScalePinchZoomEnabled; } | 
| -void CCSettings::setPageScalePinchZoomEnabled(bool enabled) { s_pageScalePinchZoomEnabled = enabled; } | 
| +bool Settings::pageScalePinchZoomEnabled() | 
| +{ | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    return s_pageScalePinchZoomEnabled; | 
| +} | 
| + | 
| +bool Settings::jankInsteadOfCheckerboard() | 
| +{ | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    return s_jankInsteadOfCheckerboard; | 
| +} | 
| + | 
| +bool Settings::backgroundColorInsteadOfCheckerboard() | 
| +{ | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    return s_backgroundColorInsteadOfCheckerboard; | 
| +} | 
| + | 
| +void Settings::resetForTest() | 
| +{ | 
| +    reset(); | 
| +} | 
| + | 
| +void Settings::setPartialSwapEnabled(bool enabled) | 
| +{ | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    s_partialSwapEnabled = enabled; | 
| +} | 
|  | 
| -bool CCSettings::jankInsteadOfCheckerboard() | 
| +void Settings::setPerTilePaintingEnabled(bool enabled) | 
| { | 
| -    return CommandLine::ForCurrentProcess()->HasSwitch(switches::kJankInsteadOfCheckerboard); | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    s_partialSwapEnabled = enabled; | 
| } | 
|  | 
| -bool CCSettings::backgroundColorInsteadOfCheckerboard() | 
| +void Settings::setAcceleratedAnimationEnabled(bool enabled) | 
| { | 
| -    return CommandLine::ForCurrentProcess()->HasSwitch(switches::kBackgroundColorInsteadOfCheckerboard); | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    s_acceleratedAnimationEnabled = enabled; | 
| } | 
|  | 
| -void CCSettings::reset() | 
| +void Settings::setPageScalePinchZoomEnabled(bool enabled) | 
| { | 
| -    s_perTilePaintingEnabled = false; | 
| -    s_partialSwapEnabled = false; | 
| -    s_acceleratedAnimationEnabled = false; | 
| -    s_pageScalePinchZoomEnabled = false; | 
| +    if (!s_settingsInitialized) | 
| +        reset(); | 
| +    s_pageScalePinchZoomEnabled = enabled; | 
| } | 
|  | 
| } // namespace cc | 
|  |