blob: a774e8d9e8c9385a11749912ca1112bf9cf0327d [file] [log] [blame]
[email protected]8b03c072014-04-30 15:49:251// 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
[email protected]8b03c072014-04-30 15:49:255#import <Foundation/Foundation.h>
6
avib7348942015-12-25 20:57:107#include "base/macros.h"
8#include "content/browser/time_zone_monitor.h"
9
[email protected]8b03c072014-04-30 15:49:2510namespace content {
11
12class TimeZoneMonitorMac : public TimeZoneMonitor {
13 public:
14 TimeZoneMonitorMac() : TimeZoneMonitor() {
15 NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
16 notification_observer_ =
17 [nc addObserverForName:NSSystemTimeZoneDidChangeNotification
18 object:nil
19 queue:nil
20 usingBlock:^(NSNotification* notification) {
21 NotifyRenderers();
22 }];
23 }
24
dchengc2282aa2014-10-21 12:07:5825 ~TimeZoneMonitorMac() override {
[email protected]8b03c072014-04-30 15:49:2526 NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
27 [nc removeObserver:notification_observer_];
28 }
29
30 private:
31 id notification_observer_;
32
33 DISALLOW_COPY_AND_ASSIGN(TimeZoneMonitorMac);
34};
35
36// static
dcheng59716272016-04-09 05:19:0837std::unique_ptr<TimeZoneMonitor> TimeZoneMonitor::Create() {
38 return std::unique_ptr<TimeZoneMonitor>(new TimeZoneMonitorMac());
[email protected]8b03c072014-04-30 15:49:2539}
40
41} // namespace content