1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/browser/time_zone_monitor.h" 6 7 #include <windows.h> 8 9 #include "base/basictypes.h" 10 #include "ui/gfx/win/singleton_hwnd.h" 11 12 namespace content { 13 14 class TimeZoneMonitorWin : public TimeZoneMonitor, 15 public gfx::SingletonHwnd::Observer { 16 public: 17 TimeZoneMonitorWin() : TimeZoneMonitor() { 18 gfx::SingletonHwnd::GetInstance()->AddObserver(this); 19 } 20 21 virtual ~TimeZoneMonitorWin() { 22 gfx::SingletonHwnd::GetInstance()->RemoveObserver(this); 23 } 24 25 // gfx::SingletonHwnd::Observer implementation. 26 virtual void OnWndProc(HWND hwnd, 27 UINT message, 28 WPARAM wparam, 29 LPARAM lparam) OVERRIDE { 30 if (message != WM_TIMECHANGE) { 31 return; 32 } 33 34 NotifyRenderers(); 35 } 36 37 private: 38 DISALLOW_COPY_AND_ASSIGN(TimeZoneMonitorWin); 39 }; 40 41 // static 42 scoped_ptr<TimeZoneMonitor> TimeZoneMonitor::Create() { 43 return scoped_ptr<TimeZoneMonitor>(new TimeZoneMonitorWin()); 44 } 45 46 } // namespace content 47