- In VRManagerChild::DeallocPVRLayerChild, we delete the PVRLayerChild, rather
than doing proper reference counting on the VRLayerChild object which has
been deallocated but still referenced by VRDisplayPresentation::mLayers.
This happens when the GPU process is terminated.
- When the user tries to stop the VR presentation or change the URL,
PVRLayerChild::SendDestroy is called by VRDisplayPresentation::DestroyLayers.
This results in the assertion about "invalid actor state".
- This patch fixes this by following the same pattern used by TextureClient
for its PTextureChild.
MozReview-Commit-ID: 327cdb4s7kl
--HG--
extra : rebase_source : 88847acd39d82f258f0c969e6ef5e22b794f6428
- Now destroying and re-creating Oculus sessions when switching
between magic window and immersive WebVR (BeginPresent / ExitPresent)
- Now sending flags to Oculus ovr_initilize to specify if Firefox will
be presenting to the VR display or just using tracking
- Now coordinating oculus session shutdown and restart between the
VR controllers and the VR display with reference counting.
- Now able to return to Oculus home after using WebVR
- Magic window / non-exclusive sessions no longer take over the VR headset
causing it to display a message that Firefox.exe is not responding.
MozReview-Commit-ID: EnRsxt6ZSzg
--HG--
extra : rebase_source : 10ba1b76bf75774b8842d99b555319fb5dd7f736
- Now destroying and re-creating Oculus sessions when switching
between magic window and immersive WebVR (BeginPresent / ExitPresent)
- Now sending flags to Oculus ovr_initilize to specify if Firefox will
be presenting to the VR display or just using tracking
- Now coordinating oculus session shutdown and restart between the
VR controllers and the VR display with reference counting.
- Now able to return to Oculus home after using WebVR
- Magic window / non-exclusive sessions no longer take over the VR headset
causing it to display a message that Firefox.exe is not responding.
MozReview-Commit-ID: EnRsxt6ZSzg
--HG--
extra : rebase_source : d1ecf52e064ffe88c2cdebb011b8ffa9beb7b46e
It's silly to use prmem.h within Firefox code given that in our configuration
its functions are just wrappers for malloc() et al. (Indeed, in some places we
mix PR_Malloc() with free(), or malloc() with PR_Free().)
This patch removes all uses, except for the places where we need to use
PR_Free() to free something allocated by another NSPR function; in those cases
I've added a comment explaining which function did the allocation.
--HG--
extra : rebase_source : 0f781bca68b5bf3c4c191e09e277dfc8becffa09
- OpenVR was previously only being built for Windows builds
it will now be built additionally on macOS and Linux.
MozReview-Commit-ID: 68ZUNmdybd1
--HG--
extra : rebase_source : 329c85c866f7c1c95566f77ccddb92c348563e4d
- Validate GetSharedResourceView in VRDisplayOculus::SubmitFrame and VRDisplayPuppet::SubmitFrame
- Correct size of frameIndex to be "long long" rather than "int" for
ovr_GetPredictedDisplayTime
- Updated to Oculus 1.15.0 SDK
- Now sending absolute timestamp of the predicted frame time
to ovr_GetTrackingState rather than a delta
MozReview-Commit-ID: GLSkqwae7Jp
--HG--
extra : rebase_source : 80a051c4af9e2241fe971fc2763015b5f3d18f7c
- Added new chrome-only webidl methods to be used by browser UI and WebExtensions
- Implemented bitmasked group visibility for VR sessions to enable switching
between chrome and regular content presentations.
- Implemented throttling mechanism to avoid runaway, unthrottled render loops
for VR sessions that are hidden by group visibility bitmasks or due to
lower level platform VR events, such as during the Oculus
"Health and Safety Warning".
- Simplified the PVRManager IPC protocol while extending it to support
VR session groups and later WebVR content performance profiling API's.
- Removed the last WebVR related sync IPC call.
MozReview-Commit-ID: BMEIPyYeEbq
--HG--
extra : rebase_source : 47d3682cad3d913504175b7d4c3e9d992236f097