mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 17:31:47 +09:00
parent
f75592fd13
commit
9b1124ccbd
99 changed files with 6 additions and 15647 deletions
|
|
@ -145,7 +145,6 @@
|
|||
#include "mozilla/dom/KeyframeEffectBinding.h"
|
||||
#include "mozilla/dom/WindowBinding.h"
|
||||
#include "mozilla/dom/ElementBinding.h"
|
||||
#include "mozilla/dom/VRDisplay.h"
|
||||
#include "mozilla/IntegerPrintfMacros.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "nsComputedDOMStyle.h"
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
#include "mozilla/dom/ServiceWorkerContainer.h"
|
||||
#include "mozilla/dom/StorageManager.h"
|
||||
#include "mozilla/dom/TCPSocket.h"
|
||||
#include "mozilla/dom/VRDisplay.h"
|
||||
#include "mozilla/dom/workers/RuntimeService.h"
|
||||
#include "mozilla/Hal.h"
|
||||
#include "nsISiteSpecificUserAgent.h"
|
||||
|
|
@ -1471,83 +1470,6 @@ Navigator::RequestGamepadServiceTest()
|
|||
}
|
||||
#endif
|
||||
|
||||
already_AddRefed<Promise>
|
||||
Navigator::GetVRDisplays(ErrorResult& aRv)
|
||||
{
|
||||
if (!mWindow || !mWindow->GetDocShell()) {
|
||||
aRv.Throw(NS_ERROR_UNEXPECTED);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
nsGlobalWindow* win = nsGlobalWindow::Cast(mWindow);
|
||||
win->NotifyVREventListenerAdded();
|
||||
|
||||
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
|
||||
RefPtr<Promise> p = Promise::Create(go, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// We pass mWindow's id to RefreshVRDisplays, so NotifyVRDisplaysUpdated will
|
||||
// be called asynchronously, resolving the promises in mVRGetDisplaysPromises.
|
||||
if (!VRDisplay::RefreshVRDisplays(win->WindowID())) {
|
||||
p->MaybeReject(NS_ERROR_FAILURE);
|
||||
return p.forget();
|
||||
}
|
||||
|
||||
mVRGetDisplaysPromises.AppendElement(p);
|
||||
return p.forget();
|
||||
}
|
||||
|
||||
void
|
||||
Navigator::GetActiveVRDisplays(nsTArray<RefPtr<VRDisplay>>& aDisplays) const
|
||||
{
|
||||
/**
|
||||
* Get only the active VR displays.
|
||||
* Callers do not wish to VRDisplay::RefreshVRDisplays, as the enumeration may
|
||||
* activate hardware that is not yet intended to be used.
|
||||
*/
|
||||
if (!mWindow || !mWindow->GetDocShell()) {
|
||||
return;
|
||||
}
|
||||
nsGlobalWindow* win = nsGlobalWindow::Cast(mWindow);
|
||||
win->NotifyVREventListenerAdded();
|
||||
nsTArray<RefPtr<VRDisplay>> displays;
|
||||
if (win->UpdateVRDisplays(displays)) {
|
||||
for (auto display : displays) {
|
||||
if (display->IsPresenting()) {
|
||||
aDisplays.AppendElement(display);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Navigator::NotifyVRDisplaysUpdated()
|
||||
{
|
||||
// Synchronize the VR devices and resolve the promises in
|
||||
// mVRGetDisplaysPromises
|
||||
nsGlobalWindow* win = nsGlobalWindow::Cast(mWindow);
|
||||
|
||||
nsTArray<RefPtr<VRDisplay>> vrDisplays;
|
||||
if (win->UpdateVRDisplays(vrDisplays)) {
|
||||
for (auto p : mVRGetDisplaysPromises) {
|
||||
p->MaybeResolve(vrDisplays);
|
||||
}
|
||||
} else {
|
||||
for (auto p : mVRGetDisplaysPromises) {
|
||||
p->MaybeReject(NS_ERROR_FAILURE);
|
||||
}
|
||||
}
|
||||
mVRGetDisplaysPromises.Clear();
|
||||
}
|
||||
|
||||
void
|
||||
Navigator::NotifyActiveVRDisplaysChanged()
|
||||
{
|
||||
NavigatorBinding::ClearCachedActiveVRDisplaysValue(this);
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
// Navigator::nsIMozNavigatorNetwork
|
||||
//*****************************************************************************
|
||||
|
|
|
|||
|
|
@ -76,7 +76,6 @@ class Connection;
|
|||
class PowerManager;
|
||||
class Presentation;
|
||||
class LegacyMozTCPSocket;
|
||||
class VRDisplay;
|
||||
class StorageManager;
|
||||
|
||||
namespace time {
|
||||
|
|
@ -204,8 +203,6 @@ public:
|
|||
void GetGamepads(nsTArray<RefPtr<Gamepad> >& aGamepads, ErrorResult& aRv);
|
||||
GamepadServiceTest* RequestGamepadServiceTest();
|
||||
#endif // MOZ_GAMEPAD
|
||||
already_AddRefed<Promise> GetVRDisplays(ErrorResult& aRv);
|
||||
void GetActiveVRDisplays(nsTArray<RefPtr<VRDisplay>>& aDisplays) const;
|
||||
#ifdef MOZ_TIME_MANAGER
|
||||
time::TimeManager* GetMozTime(ErrorResult& aRv);
|
||||
#endif // MOZ_TIME_MANAGER
|
||||
|
|
@ -269,10 +266,6 @@ private:
|
|||
RefPtr<MediaKeySystemAccessManager> mMediaKeySystemAccessManager;
|
||||
#endif
|
||||
|
||||
public:
|
||||
void NotifyVRDisplaysUpdated();
|
||||
void NotifyActiveVRDisplaysChanged();
|
||||
|
||||
private:
|
||||
virtual ~Navigator();
|
||||
|
||||
|
|
|
|||
|
|
@ -202,9 +202,6 @@
|
|||
#include "mozilla/dom/GamepadManager.h"
|
||||
#endif
|
||||
|
||||
#include "mozilla/dom/VRDisplay.h"
|
||||
#include "mozilla/dom/VREventObserver.h"
|
||||
|
||||
#include "nsRefreshDriver.h"
|
||||
#include "Layers.h"
|
||||
|
||||
|
|
@ -1532,7 +1529,6 @@ nsGlobalWindow::nsGlobalWindow(nsGlobalWindow *aOuterWindow)
|
|||
mShowFocusRingForContent(false),
|
||||
mFocusByKeyOccurred(false),
|
||||
mHasGamepad(false),
|
||||
mHasVREvents(false),
|
||||
#ifdef MOZ_GAMEPAD
|
||||
mHasSeenGamepadInput(false),
|
||||
#endif
|
||||
|
|
@ -1967,12 +1963,9 @@ nsGlobalWindow::CleanUp()
|
|||
if (IsInnerWindow()) {
|
||||
DisableGamepadUpdates();
|
||||
mHasGamepad = false;
|
||||
DisableVRUpdates();
|
||||
mHasVREvents = false;
|
||||
DisableIdleCallbackRequests();
|
||||
} else {
|
||||
MOZ_ASSERT(!mHasGamepad);
|
||||
MOZ_ASSERT(!mHasVREvents);
|
||||
}
|
||||
|
||||
if (mCleanMessageManager) {
|
||||
|
|
@ -2118,9 +2111,6 @@ nsGlobalWindow::FreeInnerObjects(bool aForDocumentOpen)
|
|||
mHasGamepad = false;
|
||||
mGamepads.Clear();
|
||||
#endif
|
||||
DisableVRUpdates();
|
||||
mHasVREvents = false;
|
||||
mVRDisplays.Clear();
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
|
|
@ -2275,7 +2265,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(nsGlobalWindow)
|
|||
#endif
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mCacheStorage)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mVRDisplays)
|
||||
|
||||
// Traverse stuff from nsPIDOMWindow
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mChromeEventHandler)
|
||||
|
|
@ -2352,7 +2341,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsGlobalWindow)
|
|||
#endif
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mCacheStorage)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mVRDisplays)
|
||||
|
||||
// Unlink stuff from nsPIDOMWindow
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mChromeEventHandler)
|
||||
|
|
@ -10507,24 +10495,6 @@ nsGlobalWindow::DisableGamepadUpdates()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
nsGlobalWindow::EnableVRUpdates()
|
||||
{
|
||||
MOZ_ASSERT(IsInnerWindow());
|
||||
|
||||
if (mHasVREvents && !mVREventObserver) {
|
||||
mVREventObserver = new VREventObserver(this);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
nsGlobalWindow::DisableVRUpdates()
|
||||
{
|
||||
MOZ_ASSERT(IsInnerWindow());
|
||||
|
||||
mVREventObserver = nullptr;
|
||||
}
|
||||
|
||||
void
|
||||
nsGlobalWindow::SetChromeEventHandler(EventTarget* aChromeEventHandler)
|
||||
{
|
||||
|
|
@ -12210,7 +12180,6 @@ nsGlobalWindow::Suspend()
|
|||
ac->RemoveWindowListener(mEnabledSensors[i], this);
|
||||
}
|
||||
DisableGamepadUpdates();
|
||||
DisableVRUpdates();
|
||||
|
||||
mozilla::dom::workers::SuspendWorkersForWindow(AsInner());
|
||||
|
||||
|
|
@ -12274,7 +12243,6 @@ nsGlobalWindow::Resume()
|
|||
ac->AddWindowListener(mEnabledSensors[i], this);
|
||||
}
|
||||
EnableGamepadUpdates();
|
||||
EnableVRUpdates();
|
||||
|
||||
// Resume all of the AudioContexts for this window
|
||||
for (uint32_t i = 0; i < mAudioContexts.Length(); ++i) {
|
||||
|
|
@ -14030,19 +13998,6 @@ nsGlobalWindow::SetHasGamepadEventListener(bool aHasGamepad/* = true*/)
|
|||
void
|
||||
nsGlobalWindow::EventListenerAdded(nsIAtom* aType)
|
||||
{
|
||||
if (aType == nsGkAtoms::onvrdisplayconnect ||
|
||||
aType == nsGkAtoms::onvrdisplaydisconnect ||
|
||||
aType == nsGkAtoms::onvrdisplaypresentchange) {
|
||||
NotifyVREventListenerAdded();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
nsGlobalWindow::NotifyVREventListenerAdded()
|
||||
{
|
||||
MOZ_ASSERT(IsInnerWindow());
|
||||
mHasVREvents = true;
|
||||
EnableVRUpdates();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -14187,27 +14142,6 @@ nsGlobalWindow::SyncGamepadState()
|
|||
}
|
||||
#endif // MOZ_GAMEPAD
|
||||
|
||||
bool
|
||||
nsGlobalWindow::UpdateVRDisplays(nsTArray<RefPtr<mozilla::dom::VRDisplay>>& aDevices)
|
||||
{
|
||||
FORWARD_TO_INNER(UpdateVRDisplays, (aDevices), false);
|
||||
|
||||
VRDisplay::UpdateVRDisplays(mVRDisplays, AsInner());
|
||||
aDevices = mVRDisplays;
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
nsGlobalWindow::NotifyActiveVRDisplaysChanged()
|
||||
{
|
||||
MOZ_ASSERT(IsInnerWindow());
|
||||
|
||||
if (mNavigator) {
|
||||
mNavigator->NotifyActiveVRDisplaysChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// nsGlobalChromeWindow implementation
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(nsGlobalChromeWindow)
|
||||
|
|
|
|||
|
|
@ -135,8 +135,6 @@ class SpeechSynthesis;
|
|||
class TabGroup;
|
||||
class Timeout;
|
||||
class U2F;
|
||||
class VRDisplay;
|
||||
class VREventObserver;
|
||||
class WakeLock;
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
class WindowOrientationObserver;
|
||||
|
|
@ -745,18 +743,6 @@ public:
|
|||
void EnableGamepadUpdates();
|
||||
void DisableGamepadUpdates();
|
||||
|
||||
// Inner windows only.
|
||||
// Enable/disable updates for VR
|
||||
void EnableVRUpdates();
|
||||
void DisableVRUpdates();
|
||||
|
||||
// Update the VR displays for this window
|
||||
bool UpdateVRDisplays(nsTArray<RefPtr<mozilla::dom::VRDisplay>>& aDisplays);
|
||||
|
||||
// Inner windows only.
|
||||
// Called to inform that the set of active VR displays has changed.
|
||||
void NotifyActiveVRDisplaysChanged();
|
||||
|
||||
#define EVENT(name_, id_, type_, struct_) \
|
||||
mozilla::dom::EventHandlerNonNull* GetOn##name_() \
|
||||
{ \
|
||||
|
|
@ -1832,9 +1818,6 @@ protected:
|
|||
// Indicates whether this window wants gamepad input events
|
||||
bool mHasGamepad : 1;
|
||||
|
||||
// Inner windows only.
|
||||
// Indicates whether this window wants VR events
|
||||
bool mHasVREvents : 1;
|
||||
#ifdef MOZ_GAMEPAD
|
||||
nsCheapSet<nsUint32HashKey> mGamepadIndexSet;
|
||||
nsRefPtrHashtable<nsUint32HashKey, mozilla::dom::Gamepad> mGamepads;
|
||||
|
|
@ -1989,11 +1972,6 @@ protected:
|
|||
// This is the CC generation the last time we called CanSkip.
|
||||
uint32_t mCanSkipCCGeneration;
|
||||
|
||||
// The VR Displays for this window
|
||||
nsTArray<RefPtr<mozilla::dom::VRDisplay>> mVRDisplays;
|
||||
|
||||
nsAutoPtr<mozilla::dom::VREventObserver> mVREventObserver;
|
||||
|
||||
friend class nsDOMScriptableHelper;
|
||||
friend class nsDOMWindowUtils;
|
||||
friend class mozilla::dom::PostMessageEvent;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue