15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "content/browser/time_zone_monitor.h" 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "chromeos/settings/timezone_settings.h" 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace content { 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass TimeZoneMonitorChromeOS 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : public TimeZoneMonitor, 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public chromeos::system::TimezoneSettings::Observer { 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public: 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu TimeZoneMonitorChromeOS() : TimeZoneMonitor() { 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu chromeos::system::TimezoneSettings::GetInstance()->AddObserver(this); 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu } 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual ~TimeZoneMonitorChromeOS() { 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu chromeos::system::TimezoneSettings::GetInstance()->RemoveObserver(this); 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu } 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // chromeos::system::TimezoneSettings::Observer implementation. 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual void TimezoneChanged(const icu::TimeZone& time_zone) OVERRIDE { 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu NotifyRenderers(); 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu } 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu private: 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DISALLOW_COPY_AND_ASSIGN(TimeZoneMonitorChromeOS); 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}; 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// static 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuscoped_ptr<TimeZoneMonitor> TimeZoneMonitor::Create() { 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu return scoped_ptr<TimeZoneMonitor>(new TimeZoneMonitorChromeOS()); 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace content 38