profile
viewpoint

MortimerGoro/MGSwipeTableCell 6788

An easy to use UITableViewCell subclass that allows to display swippable buttons with a variety of transitions.

MortimerGoro/PingPongWebGL 22

WebGL Ping Pong game demo

MortimerGoro/AirHockeyWebGL 18

Air Hockey game with WebGL

MortimerGoro/gvr-sys 9

Rust bindings for Google VR SDK

MortimerGoro/JSaiyan 3

Library to bypass Java Rules

MortimerGoro/ovr-mobile-sys 3

Rust bindings for Oculus VR Mobile SDK

MortimerGoro/GCDWebServer 1

Lightweight GCD based HTTP server for OS X & iOS (includes web based uploader & WebDAV server)

MortimerGoro/a-blast 0

💥 Save the World From the Cutest Creatures in the Universe!

MortimerGoro/aframe 0

: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?

yihuds

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

keianhzo

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.

MortimerGoro

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

Randall E. Barker

commit sha 23c0c99d72db45c9781e230b688812e0c82c2200

Bump GV nightly to 81.0.20200804091327 (#3757) Fixes #3744

view details

push time in 3 months

delete branch MozillaReality/FirefoxReality

delete branch : eme-gv-fix

delete 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]:

  1. Navigate to https://www.ezdrm.com/html/drm-demos.asp
  2. Play the demo from the page.
  3. 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-RemusDranca

create barnchMozillaReality/FirefoxReality

branch : unselect_check

created branch time in 3 months

push eventMozillaReality/FirefoxReality

Imanol Fernandez

commit sha 8f3e50b03cce659c3d9676b87103966d5ead2480

Implement WebXR nativeFramebufferScaleFactor Fixes #3724

view details

push time in 3 months

push eventMozillaReality/FirefoxReality

Randall E. Barker

commit sha 2e66149a99652d5a604c6864913face6fe936625

Hide WaveVR controllers when in fullscreen mode (#3746) Fixes #3743

view details

push time in 3 months

delete branch MozillaReality/FirefoxReality

delete branch : htc-fullscreen

delete 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]:

  1. Navigate to a normal video on YouTube and enter theater/full screen mode.
  2. 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-GeluHaiduc

create barnchMozillaReality/FirefoxReality

branch : framebuffer_scale_factor

created branch time in 3 months

push eventMozillaReality/FirefoxReality

Randall E. Barker

commit sha 1b09f5a3bcd71c5f584607c8df0ce32d6b32425d

Prevent pref cache from getting deleted on second run (#3747)

view details

push time in 3 months

delete branch MozillaReality/FirefoxReality

delete branch : prefs-cache-first-run

delete time in 3 months

push eventMozillaReality/FirefoxReality

Randall E. Barker

commit sha a5629514288d19223aee183452a1a41e9f21f77d

Do not hide controllers while resizing in fullscreen (#3748)

view details

push time in 3 months

delete branch MozillaReality/FirefoxReality

delete branch : show-controllers-for-resize

delete time in 3 months

push eventMozillaReality/FirefoxReality

Axel Hecht

commit sha e52556c7b72a49ccf02f1a17a66ed1a2583af185

Use main branch for l10n (#3753) Last step in migrating FirefoxReality l10n to the main branch.

view details

push time in 3 months

delete branch MozillaReality/FirefoxReality

delete branch : l10n-main-only

delete time in 3 months

PR merged MozillaReality/FirefoxReality

Use main branch for l10n

Last step in migrating FirefoxReality l10n to the main branch.

+0 -1

0 comment

1 changed file

Pike

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.

bluemarvin

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

bluemarvin

comment created time in 3 months

issue openedmozilla/standards-positions

WebXR Layers API

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).

Tag Review thread

created time in 3 months

create barnchMozillaReality/FirefoxReality

branch : webgl_oop_reset

created branch time in 3 months

push eventMozillaReality/FirefoxReality

Randall E. Barker

commit sha 57ff0f3e79e4451f3cb0b18976bdf3c908b71c22

Add out of process webgl switch for debug builds. Off in release builds (#3738)

view details

push time in 3 months

delete branch MozillaReality/FirefoxReality

delete branch : oop-webgl-switch

delete time in 3 months

more