MortimerGoro/MGSwipeTableCell 6788
An easy to use UITableViewCell subclass that allows to display swippable buttons with a variety of transitions.
WebGL Ping Pong game demo
MortimerGoro/AirHockeyWebGL 18
Air Hockey game with WebGL
Rust bindings for Google VR SDK
Library to bypass Java Rules
Rust bindings for Oculus VR Mobile SDK
Lightweight GCD based HTTP server for OS X & iOS (includes web based uploader & WebDAV server)
💥 Save the World From the Cutest Creatures in the Universe!
:a: web framework for building virtual reality experiences.
startedmackron/vkbind
started time in 11 days
issue commentMortimerGoro/MGSwipeTableCell
Does anyone occur white cells by using 1.6.11?
@yihuds can you send me a small sample to reproduce the issue? or can it be reproduced on the samples in the repo?
comment created time in 2 months
startedcabanier/WebXRLayers-samples
started time in 3 months
Pull request review commentMozillaReality/FirefoxReality
Login Autocompletion and Sync support
+package org.mozilla.vrbrowser.browser++import android.content.Context+import android.util.Log+import kotlinx.coroutines.Dispatchers+import kotlinx.coroutines.GlobalScope+import kotlinx.coroutines.future.future+import kotlinx.coroutines.launch+import mozilla.components.concept.storage.Login+import mozilla.components.lib.dataprotect.SecureAbove22Preferences+import mozilla.components.lib.dataprotect.generateEncryptionKey+import mozilla.components.service.fxa.SyncEngine+import mozilla.components.service.fxa.sync.GlobalSyncableStoreProvider+import mozilla.components.service.sync.logins.GeckoLoginStorageDelegate+import mozilla.components.service.sync.logins.SyncableLoginsStorage+import org.mozilla.vrbrowser.browser.components.GeckoLoginDelegateWrapper+import org.mozilla.vrbrowser.browser.engine.EngineProvider+import java.util.concurrent.CompletableFuture++class LoginStorage(+ val context: Context+) {+ /**+ * Shared Preferences that encrypt/decrypt using Android KeyStore and lib-dataprotect for 23++ * only on Nightly/Debug for now, otherwise simply stored.+ * See https://github.com/mozilla-mobile/fenix/issues/8324+ */+ private fun getSecureAbove22Preferences() =+ SecureAbove22Preferences(+ context = context,+ name = KEY_STORAGE_NAME+ )++ private val passwordsEncryptionKey by lazy {+ getSecureAbove22Preferences().getString(PASSWORDS_KEY)+ ?: generateEncryptionKey(KEY_STRENGTH).also {+ if (SettingsStore.getInstance(context).isPasswordsEncryptionKeyGenerated) {+ // We already had previously generated an encryption key, but we have lost it+ Log.d(LOG_TAG,"Passwords encryption key for passwords storage was lost and we generated a new one")+ }+ SettingsStore.getInstance(context).recordPasswordsEncryptionKeyGenerated()+ getSecureAbove22Preferences().putString(PASSWORDS_KEY, it)
Should we delete the value set in getSecureAbove22Preferences when logging out of FxA? I'm thinking on the use case of sharing a device with multiple people and see if there are secutity implications
comment created time in 3 months
issue commentimmersive-web/layers
XRProjectionLayer layers array behavior when the "layers" feature descriptor is not requested
@cabanier yes, it's a different implementation. It's a long story, but Mozilla has two browser engines that are used in VR projects: Servo and Gecko/Firefox. I'm working on the Gecko implementation, which is the one used for Firefox Reality shipped on Oculus Quest/Go devices.
The spec looks good so far. I haven't read all the discussions, maybe it has been already commented: on a high level the only thing I miss would be a separation between a layer and the surface/texture (as OculusVR/OpenXR do with SwapChains). But that separation might not be a friendly web pattern. Example of a use case: In Firefox Reality frontend we used that separation to dynamically switch between a flat (Quad Layer) and curved (Cylinder Layer) window without recreating or painting to a different surface, so the switch is super fast. With WebXR Layers you would need to render to different textures.
comment created time in 3 months
fork MortimerGoro/layers
A feature repo for working on multi-layer support in WebXR. Feature leads: Rik Cabanier and Artem Bolgar (Oculus)
https://immersive-web.github.io/layers/
fork in 3 months
issue openedimmersive-web/layers
XRProjectionLayer layers array behavior when the "layers" feature descriptor is not requested
I'm implementing WebXR Layers in Firefox Reality and found this part of the spec confusing:
- Layers of type XRProjectionLayer MUST always be supported, regardless if the feature descriptor was requested.
- UpdateRenderState: if the layers array was passed and the session was not created with "layers" enabled, throw a NotSupportedError and abort these steps.
According to both statements the XRProjectionLayers can be created if the "layers" feature is not requested but can't be passed in the UpdateRenderState layers array if the layers feature is not enabled. So they are created for nothing.
We need to make this more clear in the spec. I guess the intended behavior is: "if the layers array contains any XRLayer that is not a XRProjectionLayer or a XRWebGLLayer and the the was not created with "layers" enabled, throw a NotSupportedError and abort these steps"
created time in 3 months
push eventMozillaReality/FirefoxReality
commit sha 23c0c99d72db45c9781e230b688812e0c82c2200
Bump GV nightly to 81.0.20200804091327 (#3757) Fixes #3744
push time in 3 months
issue closedMozillaReality/FirefoxReality
The DRM controlled content is not recognized
[Affected Versions]:
- Firefox Reality version 12-142112200 (acf8dec).
[Affected Platforms]:
- Oculus Quest - Android 7.1.1
- HTC Vive Focus - Android 7.1.2
[Prerequisites]:
- The Firefox Reality browser is open.
[Steps to reproduce]:
- Navigate to https://www.ezdrm.com/html/drm-demos.asp
- Play the demo from the page.
- Observe the behavior.
[Expected results]:
- The video is played and DRM content is recognized on the page.
[Actual results]:
- The video is not played and the DRM related pop-up/prompt are not displayed.
[Notes]:
- Attached is a screen recording of the issue:
- Screen Recording: link.
closed time in 3 months
Softvision-RemusDrancaPR opened MozillaReality/FirefoxReality
Fixes #3761
pr created time in 3 months
push eventMozillaReality/FirefoxReality
commit sha 8f3e50b03cce659c3d9676b87103966d5ead2480
Implement WebXR nativeFramebufferScaleFactor Fixes #3724
push time in 3 months
push eventMozillaReality/FirefoxReality
commit sha 2e66149a99652d5a604c6864913face6fe936625
Hide WaveVR controllers when in fullscreen mode (#3746) Fixes #3743
push time in 3 months
PR merged MozillaReality/FirefoxReality
Fixes #3743
pr closed time in 3 months
issue closedMozillaReality/FirefoxReality
[HTC] The controllers are wrongly displayed in theater mode
[Affected Versions]:
- Firefox Reality version 12-142112200 (acf8dec5)
[Affected Platforms]:
- HTC Vive Focus - Android 7.1.2
- HTC Vive Focus Plus - Android 7.1.2
[Prerequisites]:
- The Firefox Reality browser is closed.
[Steps to reproduce]:
- Navigate to a normal video on YouTube and enter theater/full screen mode.
- Observe the controllers.
[Expected results]:
- The controllers disappear.
[Actual results]:
- The controllers remain displayed.
[Notes]:
- Pressing the trigger button or the touchpad displays/hides the mini controls, but the controllers remain displayed.
- Attached a screen recording of the issue here.
closed time in 3 months
Softvision-GeluHaiducPR opened MozillaReality/FirefoxReality
Fixes #3724
pr created time in 3 months
create barnchMozillaReality/FirefoxReality
branch : framebuffer_scale_factor
created branch time in 3 months
push eventMozillaReality/FirefoxReality
commit sha 1b09f5a3bcd71c5f584607c8df0ce32d6b32425d
Prevent pref cache from getting deleted on second run (#3747)
push time in 3 months
delete branch MozillaReality/FirefoxReality
delete branch : prefs-cache-first-run
delete time in 3 months
PR merged MozillaReality/FirefoxReality
pr closed time in 3 months
push eventMozillaReality/FirefoxReality
commit sha a5629514288d19223aee183452a1a41e9f21f77d
Do not hide controllers while resizing in fullscreen (#3748)
push time in 3 months
delete branch MozillaReality/FirefoxReality
delete branch : show-controllers-for-resize
delete time in 3 months
PR merged MozillaReality/FirefoxReality
pr closed time in 3 months
push eventMozillaReality/FirefoxReality
commit sha e52556c7b72a49ccf02f1a17a66ed1a2583af185
Use main branch for l10n (#3753) Last step in migrating FirefoxReality l10n to the main branch.
push time in 3 months
PR merged MozillaReality/FirefoxReality
Last step in migrating FirefoxReality l10n to the main branch.
pr closed time in 3 months
Pull request review commentMozillaReality/FirefoxReality
Delete prefs cache when application VERSION_CODE changes on taskcluster builds
public static boolean isLocalizedContent(@Nullable String url) { return url != null && (url.startsWith("about:") || url.startsWith("data:")); } + private static void checkPrefsFile(Context aContext, @NonNull String path) {+ int lastVersionCode = SettingsStore.getInstance(aContext).getPrefsLastResetVersionCode();+ if (BuildConfig.VERSION_CODE > lastVersionCode) {
ok, it can only be done for debuggable builds which is not the case of Taskcluster.
comment created time in 3 months
Pull request review commentMozillaReality/FirefoxReality
Delete prefs cache when application VERSION_CODE changes on taskcluster builds
public static boolean isLocalizedContent(@Nullable String url) { return url != null && (url.startsWith("about:") || url.startsWith("data:")); } + private static void checkPrefsFile(Context aContext, @NonNull String path) {+ int lastVersionCode = SettingsStore.getInstance(aContext).getPrefsLastResetVersionCode();+ if (BuildConfig.VERSION_CODE > lastVersionCode) {
We should use != instead of for downgrades
comment created time in 3 months
issue openedmozilla/standards-positions
Request for Mozilla Position on an Emerging Web Specification
- Specification Title: WebXR Layers API
- Specification or proposal URL: https://immersive-web.github.io/layers/
- Caniuse.com URL (optional):
- Bugzilla URL (optional): https://bugzilla.mozilla.org/show_bug.cgi?id=1652709
- Mozillians who can provide input (optional): @kearwood, @daoshengmu, @Manishearth @larsbergstrom, @thomasmo, @jdashg, @bluemarvin
Other information
The spec adds support for composition layers to the WebXR spec. Composition layers have many benefits:
- Improved Performance and judder.
- Better Legibility/visual fidelity for elements such as text, UI, video, quads, cubemaps.
- Reduced Latency and Power consumption
WebXR Layers, specifically XRProjectionLayer, will also enable a better render path for our gecko WebXR implementation:
- Proper way to implement WebXR msaa. We disabled msaa in the current WebXR implementation because the OpaqueFBO approach exposed in WebXR API is not totally compatible with the path forward from the WebGL team. This is causing Firefox to have worse VR quality than other browsers. We need the XRProjectionLayer render path to enable msaa for the users.
- Proper way to enable multiview. Multiview is exposed in WebGL but it requires several copies and conversions from texture to side-by-side textures in the render path to be connected to WebXR. By using the texture-arrays approach provided in the XRProjectionLayer we can implement multiview with less surface blits and conversions, which are specially slow on mobile. This will help with to improve the WebXR performance.
Regarding privacy or fingerprinting I think it's a pretty safe API. I don't think it exposes anything new that is not already exposed in WebXR and WebGL. The only thing I see is knowing if a device supports compositor layers or not. Our initial plan is to implement the XRPRojectionLayer subset, which is always guaranteed to be supported, so not a problem for that use case. For the other layers, if we consider detecting the layers feature a problem, we could always mark them as supported and just fallback to geometry, reusing the code we already have in the external browser apps (Note: We wouldn't need to add that fallback geometry code to WebXR/WebGL in Gecko. It would be just responsible for sharing the layer info on the SubmitFrame calls, not creating the final fallback geometry).
created time in 3 months
PR opened MozillaReality/FirefoxReality
pr created time in 3 months
push eventMozillaReality/FirefoxReality
commit sha 57ff0f3e79e4451f3cb0b18976bdf3c908b71c22
Add out of process webgl switch for debug builds. Off in release builds (#3738)
push time in 3 months
delete branch MozillaReality/FirefoxReality
delete branch : oop-webgl-switch
delete time in 3 months
PR merged MozillaReality/FirefoxReality
pr closed time in 3 months