| Index: cc/settings.cc
|
| diff --git a/cc/settings.cc b/cc/settings.cc
|
| index cfdc25835d41e13c027e763da5c089ac85b5cd52..ff514d07f3a95f956640b42ad2239b3a07faefcf 100644
|
| --- a/cc/settings.cc
|
| +++ b/cc/settings.cc
|
| @@ -9,42 +9,91 @@
|
| #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 CCSettings::perTilePaintingEnabled()
|
| +{
|
| + if (!s_settingsInitialized)
|
| + reset();
|
| + return s_perTilePaintingEnabled;
|
| +}
|
|
|
| -bool CCSettings::partialSwapEnabled() { return s_partialSwapEnabled; }
|
| -void CCSettings::setPartialSwapEnabled(bool enabled) { s_partialSwapEnabled = enabled; }
|
| +bool CCSettings::partialSwapEnabled()
|
| +{
|
| + if (!s_settingsInitialized)
|
| + reset();
|
| + return s_partialSwapEnabled;
|
| +}
|
|
|
| -bool CCSettings::acceleratedAnimationEnabled() { return s_acceleratedAnimationEnabled; }
|
| -void CCSettings::setAcceleratedAnimationEnabled(bool enabled) { s_acceleratedAnimationEnabled = enabled; }
|
| +bool CCSettings::acceleratedAnimationEnabled()
|
| +{
|
| + if (!s_settingsInitialized)
|
| + reset();
|
| + return s_acceleratedAnimationEnabled;
|
| +}
|
|
|
| -bool CCSettings::pageScalePinchZoomEnabled() { return s_pageScalePinchZoomEnabled; }
|
| -void CCSettings::setPageScalePinchZoomEnabled(bool enabled) { s_pageScalePinchZoomEnabled = enabled; }
|
| +bool CCSettings::pageScalePinchZoomEnabled()
|
| +{
|
| + if (!s_settingsInitialized)
|
| + reset();
|
| + return s_pageScalePinchZoomEnabled;
|
| +}
|
|
|
| bool CCSettings::jankInsteadOfCheckerboard()
|
| {
|
| - return CommandLine::ForCurrentProcess()->HasSwitch(switches::kJankInsteadOfCheckerboard);
|
| + if (!s_settingsInitialized)
|
| + reset();
|
| + return s_jankInsteadOfCheckerboard;
|
| }
|
|
|
| bool CCSettings::backgroundColorInsteadOfCheckerboard()
|
| {
|
| - return CommandLine::ForCurrentProcess()->HasSwitch(switches::kBackgroundColorInsteadOfCheckerboard);
|
| + if (!s_settingsInitialized)
|
| + reset();
|
| + return s_backgroundColorInsteadOfCheckerboard;
|
| +}
|
| +
|
| +void CCSettings::resetForTest()
|
| +{
|
| + reset();
|
| +}
|
| +
|
| +void CCSettings::setPartialSwapEnabledForTest(bool enabled)
|
| +{
|
| + s_partialSwapEnabled = enabled;
|
| +}
|
| +
|
| +void CCSettings::setAcceleratedAnimationEnabledForTest(bool enabled)
|
| +{
|
| + s_acceleratedAnimationEnabled = enabled;
|
| }
|
|
|
| -void CCSettings::reset()
|
| +void CCSettings::setPageScalePinchZoomEnabledForTest(bool enabled)
|
| {
|
| - s_perTilePaintingEnabled = false;
|
| - s_partialSwapEnabled = false;
|
| - s_acceleratedAnimationEnabled = false;
|
| - s_pageScalePinchZoomEnabled = false;
|
| + s_pageScalePinchZoomEnabled = enabled;
|
| }
|
|
|
| } // namespace cc
|
|
|