1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "DateCacheCleaner.h"
9 #include "mozilla/dom/ScriptSettings.h"
10 #include "mozilla/ClearOnShutdown.h"
11 #include "mozilla/Hal.h"
12 #include "mozilla/StaticPtr.h"
14 using namespace mozilla::hal
;
20 class DateCacheCleaner
: public SystemTimezoneChangeObserver
25 RegisterSystemTimezoneChangeObserver(this);
30 UnregisterSystemTimezoneChangeObserver(this);
32 void Notify(const SystemTimezoneChangeInformation
& aSystemTimezoneChangeInfo
)
34 mozilla::AutoSafeJSContext cx
;
35 JS_ClearDateCaches(cx
);
40 StaticAutoPtr
<DateCacheCleaner
> sDateCacheCleaner
;
43 InitializeDateCacheCleaner()
45 if (!sDateCacheCleaner
) {
46 sDateCacheCleaner
= new DateCacheCleaner();
47 ClearOnShutdown(&sDateCacheCleaner
);
53 } // namespace mozilla