Index: chrome/browser/ui/panels/display_settings_provider.cc |
diff --git a/chrome/browser/ui/panels/display_settings_provider.cc b/chrome/browser/ui/panels/display_settings_provider.cc |
index adf5ff25e896fd588a77bc83935ffb96f47e0838..42d76cc0ebceb78088f8641ab0f4e6edd2cc9af5 100644 |
--- a/chrome/browser/ui/panels/display_settings_provider.cc |
+++ b/chrome/browser/ui/panels/display_settings_provider.cc |
@@ -43,9 +43,10 @@ void DisplaySettingsProvider::RemoveDesktopBarObserver( |
void DisplaySettingsProvider::AddFullScreenObserver( |
FullScreenObserver* observer) { |
is_full_screen_ = IsFullScreen(); |
+ bool already_started = full_screen_observers_.might_have_observers(); |
full_screen_observers_.AddObserver(observer); |
- if (full_screen_observers_.size() == 1 && NeedsPeriodicFullScreenCheck()) { |
+ if (!already_started && NeedsPeriodicFullScreenCheck()) { |
full_screen_mode_timer_.Start(FROM_HERE, |
base::TimeDelta::FromMilliseconds(kFullScreenModeCheckIntervalMs), |
base::Bind(&DisplaySettingsProvider::CheckFullScreenMode, |
@@ -58,7 +59,7 @@ void DisplaySettingsProvider::RemoveFullScreenObserver( |
FullScreenObserver* observer) { |
full_screen_observers_.RemoveObserver(observer); |
- if (full_screen_observers_.size() == 0) |
+ if (!full_screen_observers_.might_have_observers()) |
full_screen_mode_timer_.Stop(); |
} |