зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 2 changesets (bug 1432271) for bustage in /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/Navigator.h:79:23 on a CLOSED TREE
Backed out changeset 7af7827525c8 (bug 1432271) Backed out changeset 79b9d49e08db (bug 1432271)
This commit is contained in:
Родитель
0fef68ce31
Коммит
97a87e010b
|
@ -62,6 +62,7 @@
|
||||||
#include "nsIStringStream.h"
|
#include "nsIStringStream.h"
|
||||||
#include "nsIHttpChannel.h"
|
#include "nsIHttpChannel.h"
|
||||||
#include "nsIHttpChannelInternal.h"
|
#include "nsIHttpChannelInternal.h"
|
||||||
|
#include "TimeManager.h"
|
||||||
#include "nsStreamUtils.h"
|
#include "nsStreamUtils.h"
|
||||||
#include "WidgetUtils.h"
|
#include "WidgetUtils.h"
|
||||||
#include "nsIPresentationService.h"
|
#include "nsIPresentationService.h"
|
||||||
|
@ -197,6 +198,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Navigator)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mStorageManager)
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mStorageManager)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mCredentials)
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mCredentials)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mMediaDevices)
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mMediaDevices)
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mTimeManager)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mServiceWorkerContainer)
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mServiceWorkerContainer)
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mWindow)
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mWindow)
|
||||||
|
@ -246,6 +248,10 @@ Navigator::Invalidate()
|
||||||
|
|
||||||
mMediaDevices = nullptr;
|
mMediaDevices = nullptr;
|
||||||
|
|
||||||
|
if (mTimeManager) {
|
||||||
|
mTimeManager = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
if (mPresentation) {
|
if (mPresentation) {
|
||||||
mPresentation = nullptr;
|
mPresentation = nullptr;
|
||||||
}
|
}
|
||||||
|
@ -1496,6 +1502,23 @@ Navigator::GetConnection(ErrorResult& aRv)
|
||||||
return mConnection;
|
return mConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MOZ_TIME_MANAGER
|
||||||
|
time::TimeManager*
|
||||||
|
Navigator::GetMozTime(ErrorResult& aRv)
|
||||||
|
{
|
||||||
|
if (!mWindow) {
|
||||||
|
aRv.Throw(NS_ERROR_UNEXPECTED);
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mTimeManager) {
|
||||||
|
mTimeManager = new time::TimeManager(mWindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
return mTimeManager;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
already_AddRefed<ServiceWorkerContainer>
|
already_AddRefed<ServiceWorkerContainer>
|
||||||
Navigator::ServiceWorker()
|
Navigator::ServiceWorker()
|
||||||
{
|
{
|
||||||
|
|
|
@ -75,8 +75,11 @@ class VRDisplay;
|
||||||
class VRServiceTest;
|
class VRServiceTest;
|
||||||
class StorageManager;
|
class StorageManager;
|
||||||
|
|
||||||
class Navigator final : public nsIDOMNavigator
|
namespace time {
|
||||||
, public nsIMozNavigatorNetwork
|
class TimeManager;
|
||||||
|
} // namespace time
|
||||||
|
|
||||||
|
class Navigator final : public nsISupports
|
||||||
, public nsWrapperCache
|
, public nsWrapperCache
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -179,6 +182,9 @@ public:
|
||||||
bool IsWebVRContentPresenting() const;
|
bool IsWebVRContentPresenting() const;
|
||||||
void RequestVRPresentation(VRDisplay& aDisplay);
|
void RequestVRPresentation(VRDisplay& aDisplay);
|
||||||
nsINetworkProperties* GetNetworkProperties();
|
nsINetworkProperties* GetNetworkProperties();
|
||||||
|
#ifdef MOZ_TIME_MANAGER
|
||||||
|
time::TimeManager* GetMozTime(ErrorResult& aRv);
|
||||||
|
#endif // MOZ_TIME_MANAGER
|
||||||
|
|
||||||
Presentation* GetPresentation(ErrorResult& aRv);
|
Presentation* GetPresentation(ErrorResult& aRv);
|
||||||
|
|
||||||
|
@ -265,6 +271,7 @@ private:
|
||||||
RefPtr<network::Connection> mConnection;
|
RefPtr<network::Connection> mConnection;
|
||||||
RefPtr<CredentialsContainer> mCredentials;
|
RefPtr<CredentialsContainer> mCredentials;
|
||||||
RefPtr<MediaDevices> mMediaDevices;
|
RefPtr<MediaDevices> mMediaDevices;
|
||||||
|
RefPtr<time::TimeManager> mTimeManager;
|
||||||
RefPtr<ServiceWorkerContainer> mServiceWorkerContainer;
|
RefPtr<ServiceWorkerContainer> mServiceWorkerContainer;
|
||||||
nsCOMPtr<nsPIDOMWindowInner> mWindow;
|
nsCOMPtr<nsPIDOMWindowInner> mWindow;
|
||||||
RefPtr<Presentation> mPresentation;
|
RefPtr<Presentation> mPresentation;
|
||||||
|
|
|
@ -426,6 +426,7 @@ LOCAL_INCLUDES += [
|
||||||
'../events',
|
'../events',
|
||||||
'../media',
|
'../media',
|
||||||
'../network',
|
'../network',
|
||||||
|
'../time',
|
||||||
'/caps',
|
'/caps',
|
||||||
'/docshell/base',
|
'/docshell/base',
|
||||||
'/dom/base',
|
'/dom/base',
|
||||||
|
|
|
@ -228,6 +228,7 @@
|
||||||
#include "mozilla/DOMEventTargetHelper.h"
|
#include "mozilla/DOMEventTargetHelper.h"
|
||||||
#include "prrng.h"
|
#include "prrng.h"
|
||||||
#include "nsSandboxFlags.h"
|
#include "nsSandboxFlags.h"
|
||||||
|
#include "TimeChangeObserver.h"
|
||||||
#include "mozilla/dom/AudioContext.h"
|
#include "mozilla/dom/AudioContext.h"
|
||||||
#include "mozilla/dom/BrowserElementDictionariesBinding.h"
|
#include "mozilla/dom/BrowserElementDictionariesBinding.h"
|
||||||
#include "mozilla/dom/cache/CacheStorage.h"
|
#include "mozilla/dom/cache/CacheStorage.h"
|
||||||
|
@ -6871,6 +6872,18 @@ nsGlobalWindowInner::IsVRContentPresenting() const
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nsGlobalWindowInner::EnableTimeChangeNotifications()
|
||||||
|
{
|
||||||
|
mozilla::time::AddWindowListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nsGlobalWindowInner::DisableTimeChangeNotifications()
|
||||||
|
{
|
||||||
|
mozilla::time::RemoveWindowListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
nsGlobalWindowInner::AddSizeOfIncludingThis(nsWindowSizes& aWindowSizes) const
|
nsGlobalWindowInner::AddSizeOfIncludingThis(nsWindowSizes& aWindowSizes) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -489,6 +489,9 @@ public:
|
||||||
virtual void DisableOrientationChangeListener() override;
|
virtual void DisableOrientationChangeListener() override;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
virtual void EnableTimeChangeNotifications() override;
|
||||||
|
virtual void DisableTimeChangeNotifications() override;
|
||||||
|
|
||||||
bool IsClosedOrClosing() {
|
bool IsClosedOrClosing() {
|
||||||
return mCleanedUp;
|
return mCleanedUp;
|
||||||
}
|
}
|
||||||
|
|
|
@ -226,6 +226,7 @@
|
||||||
#include "mozilla/DOMEventTargetHelper.h"
|
#include "mozilla/DOMEventTargetHelper.h"
|
||||||
#include "prrng.h"
|
#include "prrng.h"
|
||||||
#include "nsSandboxFlags.h"
|
#include "nsSandboxFlags.h"
|
||||||
|
#include "TimeChangeObserver.h"
|
||||||
#include "mozilla/dom/AudioContext.h"
|
#include "mozilla/dom/AudioContext.h"
|
||||||
#include "mozilla/dom/BrowserElementDictionariesBinding.h"
|
#include "mozilla/dom/BrowserElementDictionariesBinding.h"
|
||||||
#include "mozilla/dom/cache/CacheStorage.h"
|
#include "mozilla/dom/cache/CacheStorage.h"
|
||||||
|
|
|
@ -558,6 +558,9 @@ public:
|
||||||
virtual void DisableOrientationChangeListener() = 0;
|
virtual void DisableOrientationChangeListener() = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
virtual void EnableTimeChangeNotifications() = 0;
|
||||||
|
virtual void DisableTimeChangeNotifications() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tell this window that there is an observer for gamepad input
|
* Tell this window that there is an observer for gamepad input
|
||||||
*
|
*
|
||||||
|
|
|
@ -601,6 +601,10 @@ DOMInterfaces = {
|
||||||
'notflattened': True
|
'notflattened': True
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'MozTimeManager': {
|
||||||
|
'nativeType': 'mozilla::dom::time::TimeManager',
|
||||||
|
},
|
||||||
|
|
||||||
'MozStorageAsyncStatementParams': {
|
'MozStorageAsyncStatementParams': {
|
||||||
'headerFile': 'mozilla/storage/mozStorageAsyncStatementParams.h',
|
'headerFile': 'mozilla/storage/mozStorageAsyncStatementParams.h',
|
||||||
'nativeType': 'mozilla::storage::AsyncStatementParams',
|
'nativeType': 'mozilla::storage::AsyncStatementParams',
|
||||||
|
|
|
@ -211,6 +211,7 @@
|
||||||
#include "nsIPrincipal.h"
|
#include "nsIPrincipal.h"
|
||||||
#include "DomainPolicy.h"
|
#include "DomainPolicy.h"
|
||||||
#include "mozilla/dom/ipc/StructuredCloneData.h"
|
#include "mozilla/dom/ipc/StructuredCloneData.h"
|
||||||
|
#include "mozilla/dom/time/DateCacheCleaner.h"
|
||||||
#include "mozilla/ipc/CrashReporterClient.h"
|
#include "mozilla/ipc/CrashReporterClient.h"
|
||||||
#include "mozilla/net/NeckoMessageUtils.h"
|
#include "mozilla/net/NeckoMessageUtils.h"
|
||||||
#include "mozilla/widget/PuppetBidiKeyboard.h"
|
#include "mozilla/widget/PuppetBidiKeyboard.h"
|
||||||
|
@ -1221,6 +1222,9 @@ ContentChild::InitXPCOM(const XPCOMInitData& aXPCOMInit,
|
||||||
nsCOMPtr<nsIURI> ucsURL = DeserializeURI(aXPCOMInit.userContentSheetURL());
|
nsCOMPtr<nsIURI> ucsURL = DeserializeURI(aXPCOMInit.userContentSheetURL());
|
||||||
nsLayoutStylesheetCache::SetUserContentCSSURL(ucsURL);
|
nsLayoutStylesheetCache::SetUserContentCSSURL(ucsURL);
|
||||||
|
|
||||||
|
// This will register cross-process observer.
|
||||||
|
mozilla::dom::time::InitializeDateCacheCleaner();
|
||||||
|
|
||||||
GfxInfoBase::SetFeatureStatus(aXPCOMInit.gfxFeatureStatus());
|
GfxInfoBase::SetFeatureStatus(aXPCOMInit.gfxFeatureStatus());
|
||||||
|
|
||||||
DataStorage::SetCachedStorageEntries(aXPCOMInit.dataStorage());
|
DataStorage::SetCachedStorageEntries(aXPCOMInit.dataStorage());
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
#include "mozilla/dom/PPresentationParent.h"
|
#include "mozilla/dom/PPresentationParent.h"
|
||||||
#include "mozilla/dom/PushNotifier.h"
|
#include "mozilla/dom/PushNotifier.h"
|
||||||
#include "mozilla/dom/quota/QuotaManagerService.h"
|
#include "mozilla/dom/quota/QuotaManagerService.h"
|
||||||
|
#include "mozilla/dom/time/DateCacheCleaner.h"
|
||||||
#include "mozilla/dom/URLClassifierParent.h"
|
#include "mozilla/dom/URLClassifierParent.h"
|
||||||
#include "mozilla/embedding/printingui/PrintingParent.h"
|
#include "mozilla/embedding/printingui/PrintingParent.h"
|
||||||
#include "mozilla/extensions/StreamFilterParent.h"
|
#include "mozilla/extensions/StreamFilterParent.h"
|
||||||
|
@ -627,6 +628,8 @@ ContentParent::StartUp()
|
||||||
// Note: This reporter measures all ContentParents.
|
// Note: This reporter measures all ContentParents.
|
||||||
RegisterStrongMemoryReporter(new ContentParentsMemoryReporter());
|
RegisterStrongMemoryReporter(new ContentParentsMemoryReporter());
|
||||||
|
|
||||||
|
mozilla::dom::time::InitializeDateCacheCleaner();
|
||||||
|
|
||||||
BackgroundChild::Startup();
|
BackgroundChild::Startup();
|
||||||
ClientManager::Startup();
|
ClientManager::Startup();
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,7 @@ DIRS += [
|
||||||
'security',
|
'security',
|
||||||
'storage',
|
'storage',
|
||||||
'svg',
|
'svg',
|
||||||
|
'time',
|
||||||
'locales',
|
'locales',
|
||||||
'network',
|
'network',
|
||||||
'permission',
|
'permission',
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "DateCacheCleaner.h"
|
||||||
|
|
||||||
|
#include "js/Date.h"
|
||||||
|
#include "mozilla/dom/ScriptSettings.h"
|
||||||
|
#include "mozilla/ClearOnShutdown.h"
|
||||||
|
#include "mozilla/Hal.h"
|
||||||
|
#include "mozilla/StaticPtr.h"
|
||||||
|
|
||||||
|
using namespace mozilla::hal;
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
namespace time {
|
||||||
|
|
||||||
|
class DateCacheCleaner : public SystemTimezoneChangeObserver
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DateCacheCleaner()
|
||||||
|
{
|
||||||
|
RegisterSystemTimezoneChangeObserver(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
~DateCacheCleaner()
|
||||||
|
{
|
||||||
|
UnregisterSystemTimezoneChangeObserver(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Notify(const SystemTimezoneChangeInformation& aSystemTimezoneChangeInfo) override
|
||||||
|
{
|
||||||
|
JS::ResetTimeZone();
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticAutoPtr<DateCacheCleaner> sDateCacheCleaner;
|
||||||
|
|
||||||
|
void
|
||||||
|
InitializeDateCacheCleaner()
|
||||||
|
{
|
||||||
|
if (!sDateCacheCleaner) {
|
||||||
|
sDateCacheCleaner = new DateCacheCleaner();
|
||||||
|
ClearOnShutdown(&sDateCacheCleaner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace time
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
|
@ -0,0 +1,19 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* InitializeDateCacheCleaner registers DateCacheCleaner to
|
||||||
|
* SystemTimeChangeObserver. When time zone is changed, DateCacheCleaner calls
|
||||||
|
* JS::ResetTimeZone to update the time zone information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
namespace time {
|
||||||
|
void InitializeDateCacheCleaner();
|
||||||
|
} //namespace time
|
||||||
|
} //namespace dom
|
||||||
|
} //namespace mozilla
|
|
@ -0,0 +1,166 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "TimeChangeObserver.h"
|
||||||
|
#include "mozilla/Hal.h"
|
||||||
|
#include "mozilla/Observer.h"
|
||||||
|
#include "mozilla/HalTypes.h"
|
||||||
|
#include "nsWeakPtr.h"
|
||||||
|
#include "nsTObserverArray.h"
|
||||||
|
#include "mozilla/ClearOnShutdown.h"
|
||||||
|
#include "mozilla/Services.h"
|
||||||
|
#include "mozilla/StaticPtr.h"
|
||||||
|
#include "nsPIDOMWindow.h"
|
||||||
|
#include "nsContentUtils.h"
|
||||||
|
#include "nsIObserverService.h"
|
||||||
|
#include "nsIDocument.h"
|
||||||
|
|
||||||
|
using namespace mozilla;
|
||||||
|
using namespace mozilla::hal;
|
||||||
|
using namespace mozilla::services;
|
||||||
|
|
||||||
|
class nsSystemTimeChangeObserver : public SystemClockChangeObserver,
|
||||||
|
public SystemTimezoneChangeObserver
|
||||||
|
{
|
||||||
|
typedef nsTObserverArray<nsWeakPtr> ListenerArray;
|
||||||
|
public:
|
||||||
|
static nsSystemTimeChangeObserver* GetInstance();
|
||||||
|
virtual ~nsSystemTimeChangeObserver();
|
||||||
|
|
||||||
|
// Implementing hal::SystemClockChangeObserver::Notify()
|
||||||
|
void Notify(const int64_t& aClockDeltaMS) override;
|
||||||
|
|
||||||
|
// Implementing hal::SystemTimezoneChangeObserver::Notify()
|
||||||
|
void Notify(
|
||||||
|
const mozilla::hal::SystemTimezoneChangeInformation& aSystemTimezoneChangeInfo) override;
|
||||||
|
|
||||||
|
nsresult AddWindowListenerImpl(nsPIDOMWindowInner* aWindow);
|
||||||
|
nsresult RemoveWindowListenerImpl(nsPIDOMWindowInner* aWindow);
|
||||||
|
|
||||||
|
private:
|
||||||
|
nsSystemTimeChangeObserver() { };
|
||||||
|
ListenerArray mWindowListeners;
|
||||||
|
void FireMozTimeChangeEvent();
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticAutoPtr<nsSystemTimeChangeObserver> sObserver;
|
||||||
|
|
||||||
|
nsSystemTimeChangeObserver* nsSystemTimeChangeObserver::GetInstance()
|
||||||
|
{
|
||||||
|
if (!sObserver) {
|
||||||
|
sObserver = new nsSystemTimeChangeObserver();
|
||||||
|
ClearOnShutdown(&sObserver);
|
||||||
|
}
|
||||||
|
return sObserver;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsSystemTimeChangeObserver::~nsSystemTimeChangeObserver()
|
||||||
|
{
|
||||||
|
UnregisterSystemClockChangeObserver(this);
|
||||||
|
UnregisterSystemTimezoneChangeObserver(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nsSystemTimeChangeObserver::FireMozTimeChangeEvent()
|
||||||
|
{
|
||||||
|
ListenerArray::ForwardIterator iter(mWindowListeners);
|
||||||
|
while (iter.HasMore()) {
|
||||||
|
nsWeakPtr weakWindow = iter.GetNext();
|
||||||
|
nsCOMPtr<nsPIDOMWindowInner> innerWindow = do_QueryReferent(weakWindow);
|
||||||
|
nsCOMPtr<nsPIDOMWindowOuter> outerWindow;
|
||||||
|
nsCOMPtr<nsIDocument> document;
|
||||||
|
if (!innerWindow ||
|
||||||
|
!(document = innerWindow->GetExtantDoc()) ||
|
||||||
|
!(outerWindow = innerWindow->GetOuterWindow())) {
|
||||||
|
mWindowListeners.RemoveElement(weakWindow);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsContentUtils::DispatchTrustedEvent(document, outerWindow,
|
||||||
|
NS_LITERAL_STRING("moztimechange"), /* bubbles = */ true,
|
||||||
|
/* canceable = */ false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nsSystemTimeChangeObserver::Notify(const int64_t& aClockDeltaMS)
|
||||||
|
{
|
||||||
|
// Notify observers that the system clock has been adjusted.
|
||||||
|
nsCOMPtr<nsIObserverService> observerService = GetObserverService();
|
||||||
|
if (observerService) {
|
||||||
|
nsString dataStr;
|
||||||
|
dataStr.AppendFloat(static_cast<double>(aClockDeltaMS));
|
||||||
|
observerService->NotifyObservers(
|
||||||
|
nullptr, "system-clock-change", dataStr.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
FireMozTimeChangeEvent();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nsSystemTimeChangeObserver::Notify(
|
||||||
|
const SystemTimezoneChangeInformation& aSystemTimezoneChangeInfo)
|
||||||
|
{
|
||||||
|
FireMozTimeChangeEvent();
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult
|
||||||
|
mozilla::time::AddWindowListener(nsPIDOMWindowInner* aWindow)
|
||||||
|
{
|
||||||
|
return nsSystemTimeChangeObserver::GetInstance()->AddWindowListenerImpl(aWindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult
|
||||||
|
nsSystemTimeChangeObserver::AddWindowListenerImpl(nsPIDOMWindowInner* aWindow)
|
||||||
|
{
|
||||||
|
if (!aWindow) {
|
||||||
|
return NS_ERROR_ILLEGAL_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsWeakPtr windowWeakRef = do_GetWeakReference(aWindow);
|
||||||
|
NS_ASSERTION(windowWeakRef, "nsIDOMWindow implementations shuld support weak ref");
|
||||||
|
|
||||||
|
if (mWindowListeners.IndexOf(windowWeakRef) !=
|
||||||
|
ListenerArray::array_type::NoIndex) {
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mWindowListeners.IsEmpty()) {
|
||||||
|
RegisterSystemClockChangeObserver(sObserver);
|
||||||
|
RegisterSystemTimezoneChangeObserver(sObserver);
|
||||||
|
}
|
||||||
|
|
||||||
|
mWindowListeners.AppendElement(windowWeakRef);
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult
|
||||||
|
mozilla::time::RemoveWindowListener(nsPIDOMWindowInner* aWindow)
|
||||||
|
{
|
||||||
|
if (!sObserver) {
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nsSystemTimeChangeObserver::GetInstance()->RemoveWindowListenerImpl(aWindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult
|
||||||
|
nsSystemTimeChangeObserver::RemoveWindowListenerImpl(nsPIDOMWindowInner* aWindow)
|
||||||
|
{
|
||||||
|
if (!aWindow) {
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsWeakPtr windowWeakRef = do_GetWeakReference(aWindow);
|
||||||
|
mWindowListeners.RemoveElement(windowWeakRef);
|
||||||
|
|
||||||
|
if (mWindowListeners.IsEmpty()) {
|
||||||
|
UnregisterSystemClockChangeObserver(sObserver);
|
||||||
|
UnregisterSystemTimezoneChangeObserver(sObserver);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NS_OK;
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifndef _mozilla_time_change_observer_h_
|
||||||
|
#define _mozilla_time_change_observer_h_
|
||||||
|
|
||||||
|
#include "nscore.h"
|
||||||
|
|
||||||
|
class nsPIDOMWindowInner;
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace time {
|
||||||
|
|
||||||
|
nsresult AddWindowListener(nsPIDOMWindowInner* aWindow);
|
||||||
|
nsresult RemoveWindowListener(nsPIDOMWindowInner* aWindow);
|
||||||
|
|
||||||
|
} // namespace time
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
#endif //_mozilla_time_change_observer_h_
|
|
@ -0,0 +1,51 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "TimeManager.h"
|
||||||
|
|
||||||
|
#include "mozilla/dom/Date.h"
|
||||||
|
#include "mozilla/dom/MozTimeManagerBinding.h"
|
||||||
|
#include "nsITimeService.h"
|
||||||
|
#include "nsServiceManagerUtils.h"
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
namespace time {
|
||||||
|
|
||||||
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TimeManager)
|
||||||
|
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
||||||
|
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
||||||
|
NS_INTERFACE_MAP_END
|
||||||
|
|
||||||
|
NS_IMPL_CYCLE_COLLECTING_ADDREF(TimeManager)
|
||||||
|
NS_IMPL_CYCLE_COLLECTING_RELEASE(TimeManager)
|
||||||
|
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(TimeManager, mWindow)
|
||||||
|
|
||||||
|
JSObject*
|
||||||
|
TimeManager::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
|
||||||
|
{
|
||||||
|
return MozTimeManagerBinding::Wrap(aCx, this, aGivenProto);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
TimeManager::Set(Date& aDate)
|
||||||
|
{
|
||||||
|
Set(aDate.ToDouble());
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
TimeManager::Set(double aTime)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsITimeService> timeService = do_GetService(TIMESERVICE_CONTRACTID);
|
||||||
|
if (timeService) {
|
||||||
|
timeService->Set(aTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace time
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
|
@ -0,0 +1,62 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifndef mozilla_dom_time_TimeManager_h
|
||||||
|
#define mozilla_dom_time_TimeManager_h
|
||||||
|
|
||||||
|
#include "mozilla/Attributes.h"
|
||||||
|
#include "nsISupports.h"
|
||||||
|
#include "nsPIDOMWindow.h"
|
||||||
|
#include "nsWrapperCache.h"
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
|
||||||
|
class Date;
|
||||||
|
|
||||||
|
namespace time {
|
||||||
|
|
||||||
|
class TimeManager final : public nsISupports
|
||||||
|
, public nsWrapperCache
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static bool PrefEnabled(JSContext* aCx, JSObject* aGlobal)
|
||||||
|
{
|
||||||
|
#ifdef MOZ_TIME_MANAGER
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||||
|
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(TimeManager)
|
||||||
|
|
||||||
|
explicit TimeManager(nsPIDOMWindowInner* aWindow)
|
||||||
|
: mWindow(aWindow)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
nsPIDOMWindowInner* GetParentObject() const
|
||||||
|
{
|
||||||
|
return mWindow;
|
||||||
|
}
|
||||||
|
virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
|
||||||
|
|
||||||
|
void Set(Date& aDate);
|
||||||
|
void Set(double aTime);
|
||||||
|
|
||||||
|
private:
|
||||||
|
~TimeManager() {}
|
||||||
|
|
||||||
|
nsCOMPtr<nsPIDOMWindowInner> mWindow;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace time
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
#endif //mozilla_dom_time_TimeManager_h
|
|
@ -0,0 +1,40 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "base/basictypes.h"
|
||||||
|
#include "jsapi.h"
|
||||||
|
#include "mozilla/ClearOnShutdown.h"
|
||||||
|
#include "mozilla/Hal.h"
|
||||||
|
#include "TimeService.h"
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
namespace time {
|
||||||
|
|
||||||
|
NS_IMPL_ISUPPORTS(TimeService, nsITimeService)
|
||||||
|
|
||||||
|
/* static */ StaticRefPtr<TimeService> TimeService::sSingleton;
|
||||||
|
|
||||||
|
/* static */ already_AddRefed<TimeService>
|
||||||
|
TimeService::GetInstance()
|
||||||
|
{
|
||||||
|
if (!sSingleton) {
|
||||||
|
sSingleton = new TimeService();
|
||||||
|
ClearOnShutdown(&sSingleton);
|
||||||
|
}
|
||||||
|
RefPtr<TimeService> service = sSingleton.get();
|
||||||
|
return service.forget();
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
TimeService::Set(int64_t aTimeInMS) {
|
||||||
|
hal::AdjustSystemClock(aTimeInMS - (JS_Now() / PR_USEC_PER_MSEC));
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace time
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
|
@ -0,0 +1,38 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifndef mozilla_dom_time_TimeService_h
|
||||||
|
#define mozilla_dom_time_TimeService_h
|
||||||
|
|
||||||
|
#include "mozilla/StaticPtr.h"
|
||||||
|
#include "nsITimeService.h"
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
namespace time {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class implements a service which lets us modify the system clock time.
|
||||||
|
*/
|
||||||
|
class TimeService : public nsITimeService
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
NS_DECL_ISUPPORTS
|
||||||
|
NS_DECL_NSITIMESERVICE
|
||||||
|
|
||||||
|
static already_AddRefed<TimeService> GetInstance();
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual ~TimeService() {};
|
||||||
|
|
||||||
|
static StaticRefPtr<TimeService> sSingleton;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace time
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
#endif //mozilla_dom_time_TimeService_h
|
|
@ -0,0 +1,32 @@
|
||||||
|
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||||
|
# vim: set filetype=python:
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
with Files("**"):
|
||||||
|
BUG_COMPONENT = ("Core", "DOM: Device Interfaces")
|
||||||
|
|
||||||
|
XPIDL_SOURCES += [
|
||||||
|
'nsITimeService.idl',
|
||||||
|
]
|
||||||
|
|
||||||
|
XPIDL_MODULE = 'dom_time'
|
||||||
|
|
||||||
|
EXPORTS.mozilla.dom.time += [
|
||||||
|
'DateCacheCleaner.h',
|
||||||
|
'TimeChangeObserver.h',
|
||||||
|
'TimeManager.h',
|
||||||
|
'TimeService.h',
|
||||||
|
]
|
||||||
|
|
||||||
|
UNIFIED_SOURCES += [
|
||||||
|
'DateCacheCleaner.cpp',
|
||||||
|
'TimeChangeObserver.cpp',
|
||||||
|
'TimeManager.cpp',
|
||||||
|
'TimeService.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
|
include('/ipc/chromium/chromium-config.mozbuild')
|
||||||
|
|
||||||
|
FINAL_LIBRARY = 'xul'
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "nsISupports.idl"
|
||||||
|
|
||||||
|
%{C++
|
||||||
|
#define NS_TIMESERVICE_CID { 0x80d6f9cc, 0xf16d, 0x40c3, { 0xa5, 0x2e, 0xc4, 0xe6, 0x56, 0xe3, 0x65, 0xb4 } }
|
||||||
|
#define TIMESERVICE_CONTRACTID "@mozilla.org/time/timeservice;1"
|
||||||
|
%}
|
||||||
|
|
||||||
|
[scriptable, builtinclass, uuid(1fc7fde2-0090-11e2-bdd6-0fea4b9f41f8)]
|
||||||
|
interface nsITimeService : nsISupports
|
||||||
|
{
|
||||||
|
/* Set the system time.
|
||||||
|
*
|
||||||
|
* The |aTimeInMS| argument is the time in milliseconds since the epoch.
|
||||||
|
*/
|
||||||
|
void set(in int64_t aTimeInMS);
|
||||||
|
};
|
|
@ -0,0 +1,18 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
[Func="mozilla::dom::time::TimeManager::PrefEnabled"]
|
||||||
|
interface MozTimeManager {
|
||||||
|
/* Set the system time.
|
||||||
|
*
|
||||||
|
* The |time| argument can be either a Date object or a number.
|
||||||
|
*
|
||||||
|
* - If |time| is a number, it's interpreted as milliseconds
|
||||||
|
* since the epoch (midnight UTC on January 1, 1970).
|
||||||
|
* - If |time| is a Date object, |set(time)| is equivalent to
|
||||||
|
* |set(time.getTime())|.
|
||||||
|
*/
|
||||||
|
void set(Date time);
|
||||||
|
void set(double time);
|
||||||
|
};
|
|
@ -234,6 +234,14 @@ partial interface Navigator {
|
||||||
VRServiceTest requestVRServiceTest();
|
VRServiceTest requestVRServiceTest();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef MOZ_TIME_MANAGER
|
||||||
|
// nsIDOMMozNavigatorTime
|
||||||
|
partial interface Navigator {
|
||||||
|
[Throws, ChromeOnly]
|
||||||
|
readonly attribute MozTimeManager mozTime;
|
||||||
|
};
|
||||||
|
#endif // MOZ_TIME_MANAGER
|
||||||
|
|
||||||
callback NavigatorUserMediaSuccessCallback = void (MediaStream stream);
|
callback NavigatorUserMediaSuccessCallback = void (MediaStream stream);
|
||||||
callback NavigatorUserMediaErrorCallback = void (MediaStreamError error);
|
callback NavigatorUserMediaErrorCallback = void (MediaStreamError error);
|
||||||
|
|
||||||
|
|
|
@ -211,6 +211,9 @@ with Files("Media*Track*"):
|
||||||
with Files("Mouse*"):
|
with Files("Mouse*"):
|
||||||
BUG_COMPONENT = ("Core", "DOM: Events")
|
BUG_COMPONENT = ("Core", "DOM: Events")
|
||||||
|
|
||||||
|
with Files("MozTimeManager.webidl"):
|
||||||
|
BUG_COMPONENT = ("Core", "DOM: Device Interfaces")
|
||||||
|
|
||||||
with Files("MutationEvent.webidl"):
|
with Files("MutationEvent.webidl"):
|
||||||
BUG_COMPONENT = ("Core", "DOM: Events")
|
BUG_COMPONENT = ("Core", "DOM: Events")
|
||||||
|
|
||||||
|
@ -361,6 +364,7 @@ GENERATED_WEBIDL_FILES = [
|
||||||
|
|
||||||
PREPROCESSED_WEBIDL_FILES = [
|
PREPROCESSED_WEBIDL_FILES = [
|
||||||
'ChromeUtils.webidl',
|
'ChromeUtils.webidl',
|
||||||
|
'Navigator.webidl',
|
||||||
'Node.webidl',
|
'Node.webidl',
|
||||||
'Window.webidl',
|
'Window.webidl',
|
||||||
]
|
]
|
||||||
|
@ -686,11 +690,11 @@ WEBIDL_FILES = [
|
||||||
'MozStorageAsyncStatementParams.webidl',
|
'MozStorageAsyncStatementParams.webidl',
|
||||||
'MozStorageStatementParams.webidl',
|
'MozStorageStatementParams.webidl',
|
||||||
'MozStorageStatementRow.webidl',
|
'MozStorageStatementRow.webidl',
|
||||||
|
'MozTimeManager.webidl',
|
||||||
'MutationEvent.webidl',
|
'MutationEvent.webidl',
|
||||||
'MutationObserver.webidl',
|
'MutationObserver.webidl',
|
||||||
'NamedNodeMap.webidl',
|
'NamedNodeMap.webidl',
|
||||||
'NativeOSFileInternals.webidl',
|
'NativeOSFileInternals.webidl',
|
||||||
'Navigator.webidl',
|
|
||||||
'NetDashboard.webidl',
|
'NetDashboard.webidl',
|
||||||
'NetworkInformation.webidl',
|
'NetworkInformation.webidl',
|
||||||
'NetworkOptions.webidl',
|
'NetworkOptions.webidl',
|
||||||
|
|
|
@ -163,6 +163,7 @@ static void Shutdown();
|
||||||
#include "mozilla/net/WebSocketEventService.h"
|
#include "mozilla/net/WebSocketEventService.h"
|
||||||
|
|
||||||
#include "mozilla/dom/power/PowerManagerService.h"
|
#include "mozilla/dom/power/PowerManagerService.h"
|
||||||
|
#include "mozilla/dom/time/TimeService.h"
|
||||||
|
|
||||||
#include "nsIPresentationService.h"
|
#include "nsIPresentationService.h"
|
||||||
|
|
||||||
|
@ -184,6 +185,7 @@ using mozilla::dom::quota::QuotaManagerService;
|
||||||
using mozilla::dom::workers::ServiceWorkerManager;
|
using mozilla::dom::workers::ServiceWorkerManager;
|
||||||
using mozilla::dom::workers::WorkerDebuggerManager;
|
using mozilla::dom::workers::WorkerDebuggerManager;
|
||||||
using mozilla::dom::UDPSocketChild;
|
using mozilla::dom::UDPSocketChild;
|
||||||
|
using mozilla::dom::time::TimeService;
|
||||||
using mozilla::gmp::GeckoMediaPluginService;
|
using mozilla::gmp::GeckoMediaPluginService;
|
||||||
using mozilla::dom::NotificationTelemetryService;
|
using mozilla::dom::NotificationTelemetryService;
|
||||||
|
|
||||||
|
@ -259,6 +261,8 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsHapticFeedback)
|
||||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(ThirdPartyUtil, Init)
|
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(ThirdPartyUtil, Init)
|
||||||
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIPowerManagerService,
|
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIPowerManagerService,
|
||||||
PowerManagerService::GetInstance)
|
PowerManagerService::GetInstance)
|
||||||
|
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsITimeService,
|
||||||
|
TimeService::GetInstance)
|
||||||
|
|
||||||
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMediaManagerService,
|
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMediaManagerService,
|
||||||
MediaManager::GetInstance)
|
MediaManager::GetInstance)
|
||||||
|
@ -645,6 +649,7 @@ NS_DEFINE_NAMED_CID(NS_HAPTICFEEDBACK_CID);
|
||||||
NS_DEFINE_NAMED_CID(NS_POWERMANAGERSERVICE_CID);
|
NS_DEFINE_NAMED_CID(NS_POWERMANAGERSERVICE_CID);
|
||||||
NS_DEFINE_NAMED_CID(OSFILECONSTANTSSERVICE_CID);
|
NS_DEFINE_NAMED_CID(OSFILECONSTANTSSERVICE_CID);
|
||||||
NS_DEFINE_NAMED_CID(UDPSOCKETCHILD_CID);
|
NS_DEFINE_NAMED_CID(UDPSOCKETCHILD_CID);
|
||||||
|
NS_DEFINE_NAMED_CID(NS_TIMESERVICE_CID);
|
||||||
NS_DEFINE_NAMED_CID(NS_MEDIAMANAGERSERVICE_CID);
|
NS_DEFINE_NAMED_CID(NS_MEDIAMANAGERSERVICE_CID);
|
||||||
#ifdef MOZ_WEBSPEECH_TEST_BACKEND
|
#ifdef MOZ_WEBSPEECH_TEST_BACKEND
|
||||||
NS_DEFINE_NAMED_CID(NS_FAKE_SPEECH_RECOGNITION_SERVICE_CID);
|
NS_DEFINE_NAMED_CID(NS_FAKE_SPEECH_RECOGNITION_SERVICE_CID);
|
||||||
|
@ -905,6 +910,7 @@ static const mozilla::Module::CIDEntry kLayoutCIDs[] = {
|
||||||
{ &kOSFILECONSTANTSSERVICE_CID, true, nullptr, OSFileConstantsServiceConstructor },
|
{ &kOSFILECONSTANTSSERVICE_CID, true, nullptr, OSFileConstantsServiceConstructor },
|
||||||
{ &kUDPSOCKETCHILD_CID, false, nullptr, UDPSocketChildConstructor },
|
{ &kUDPSOCKETCHILD_CID, false, nullptr, UDPSocketChildConstructor },
|
||||||
{ &kGECKO_MEDIA_PLUGIN_SERVICE_CID, true, nullptr, GeckoMediaPluginServiceConstructor },
|
{ &kGECKO_MEDIA_PLUGIN_SERVICE_CID, true, nullptr, GeckoMediaPluginServiceConstructor },
|
||||||
|
{ &kNS_TIMESERVICE_CID, false, nullptr, nsITimeServiceConstructor },
|
||||||
{ &kNS_MEDIAMANAGERSERVICE_CID, false, nullptr, nsIMediaManagerServiceConstructor },
|
{ &kNS_MEDIAMANAGERSERVICE_CID, false, nullptr, nsIMediaManagerServiceConstructor },
|
||||||
#ifdef ACCESSIBILITY
|
#ifdef ACCESSIBILITY
|
||||||
{ &kNS_ACCESSIBILITY_SERVICE_CID, false, nullptr, CreateA11yService },
|
{ &kNS_ACCESSIBILITY_SERVICE_CID, false, nullptr, CreateA11yService },
|
||||||
|
@ -1023,6 +1029,7 @@ static const mozilla::Module::ContractIDEntry kLayoutContracts[] = {
|
||||||
{ POWERMANAGERSERVICE_CONTRACTID, &kNS_POWERMANAGERSERVICE_CID, Module::ALLOW_IN_GPU_PROCESS },
|
{ POWERMANAGERSERVICE_CONTRACTID, &kNS_POWERMANAGERSERVICE_CID, Module::ALLOW_IN_GPU_PROCESS },
|
||||||
{ OSFILECONSTANTSSERVICE_CONTRACTID, &kOSFILECONSTANTSSERVICE_CID },
|
{ OSFILECONSTANTSSERVICE_CONTRACTID, &kOSFILECONSTANTSSERVICE_CID },
|
||||||
{ "@mozilla.org/udp-socket-child;1", &kUDPSOCKETCHILD_CID },
|
{ "@mozilla.org/udp-socket-child;1", &kUDPSOCKETCHILD_CID },
|
||||||
|
{ TIMESERVICE_CONTRACTID, &kNS_TIMESERVICE_CID },
|
||||||
{ MEDIAMANAGERSERVICE_CONTRACTID, &kNS_MEDIAMANAGERSERVICE_CID },
|
{ MEDIAMANAGERSERVICE_CONTRACTID, &kNS_MEDIAMANAGERSERVICE_CID },
|
||||||
#ifdef ACCESSIBILITY
|
#ifdef ACCESSIBILITY
|
||||||
{ "@mozilla.org/accessibilityService;1", &kNS_ACCESSIBILITY_SERVICE_CID },
|
{ "@mozilla.org/accessibilityService;1", &kNS_ACCESSIBILITY_SERVICE_CID },
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
#include "nsCookieService.h"
|
#include "nsCookieService.h"
|
||||||
#include "nsApplicationCacheService.h"
|
#include "nsApplicationCacheService.h"
|
||||||
#include "mozilla/dom/CustomElementRegistry.h"
|
#include "mozilla/dom/CustomElementRegistry.h"
|
||||||
|
#include "mozilla/dom/time/DateCacheCleaner.h"
|
||||||
#include "mozilla/EventDispatcher.h"
|
#include "mozilla/EventDispatcher.h"
|
||||||
#include "mozilla/IMEStateManager.h"
|
#include "mozilla/IMEStateManager.h"
|
||||||
#include "mozilla/dom/HTMLVideoElement.h"
|
#include "mozilla/dom/HTMLVideoElement.h"
|
||||||
|
|
|
@ -1991,6 +1991,7 @@ NECKO_COOKIES=1
|
||||||
MOZ_USE_NATIVE_POPUP_WINDOWS=
|
MOZ_USE_NATIVE_POPUP_WINDOWS=
|
||||||
MOZ_EXCLUDE_HYPHENATION_DICTIONARIES=
|
MOZ_EXCLUDE_HYPHENATION_DICTIONARIES=
|
||||||
ACCESSIBILITY=1
|
ACCESSIBILITY=1
|
||||||
|
MOZ_TIME_MANAGER=
|
||||||
MOZ_CONTENT_SANDBOX=
|
MOZ_CONTENT_SANDBOX=
|
||||||
MOZ_GMP_SANDBOX=
|
MOZ_GMP_SANDBOX=
|
||||||
MOZ_SANDBOX=1
|
MOZ_SANDBOX=1
|
||||||
|
@ -3805,6 +3806,14 @@ if test -n "$MOZ_DISABLE_STARTUPCACHE"; then
|
||||||
fi
|
fi
|
||||||
AC_SUBST(MOZ_DISABLE_STARTUPCACHE)
|
AC_SUBST(MOZ_DISABLE_STARTUPCACHE)
|
||||||
|
|
||||||
|
dnl ========================================================
|
||||||
|
dnl = Enable Support for Time Manager API
|
||||||
|
dnl ========================================================
|
||||||
|
if test -n "$MOZ_TIME_MANAGER"; then
|
||||||
|
AC_DEFINE(MOZ_TIME_MANAGER)
|
||||||
|
fi
|
||||||
|
AC_SUBST(MOZ_TIME_MANAGER)
|
||||||
|
|
||||||
dnl ========================================================
|
dnl ========================================================
|
||||||
dnl = Enable Support for Secure Element API
|
dnl = Enable Support for Secure Element API
|
||||||
dnl ========================================================
|
dnl ========================================================
|
||||||
|
|
Загрузка…
Ссылка в новой задаче