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