Oculus Browser Fullscreen Mode?
Recently purchased an Oculus Quest and wanted to add support to my custom home theater solution. I've built home theater software which delivers my content via a web interface to various devices around the house. So far, its working great, I launch the Oculus Browser, navigate to the home theater URL, pick a video, hit play and the Oculus browser displays it just fine. Then, via a (fullscreen) button, I use the document.requestFullscreen() method to enter full screen mode - also working great. Once in full screen mode, the Oculus browser allows me to manually pick: 180, 360, 3D from the Browsers VR panel. QUESTION: Since I know the videos are 180 or 360 and 3D is there any Javascript methods/properties that could be used to set the desired display mode so that the user does not have to pick them manually? It would be perfect if, after calling document.requestFullscreen(), that I could do something along the lines of document.oculusMode = MODE_180_3D to automatically set the correct full screen display mode. If this already exists, please let me know what the Javascript code to use, if not could this ability be added? Thanks in Advance. Loving the Quest!9.8KViews0likes0CommentsOculus Go + browser + videos won't play
Apologies in advance I'm not familiar with how things work around here but I was hoping someone could answer if not resolve the issue I'm having whenever I try to play a video in the oculus browser and the Firefox browser. When the video starts to load and play it glitches and I'm paraphrasing the error message that comes up basically saying it's unable to play, something along those lines. When I factory reset the device the videos will play just fine but after awhile they'll regress and won't play. Is there an update or downgrade I have to do? Or is the oculus go obsolete now? Any help and answers would be greatly appreciated thank you in advance!!!4.2KViews2likes4CommentsOculus browser changed to desktop mode by default
Hi, in latest browser updates default mode was changed to desktop. As said: "...Oculus Browser now loads desktop sites by default. This mode is better for the large browser windows in VR and desktop sites let you get more done. You can change the current site you’re on back to mobile mode by clicking a button in the address bar....." My question is, how we can switch to mobile mode programmatically using Javascript from the loaded page. Is there any API method for that?3.6KViews1like0CommentsOpen application from Quest web browser through a "android:scheme" Deeplink
I followed the Android deep linking documentation to be able to open my Quest application from the Quest web browser: 1. Edit the AndroidManifest.xml of the application to add this: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "example://gizmos” --> <data android:scheme="example" android:host="gizmos" /> </intent-filter> 2. Deploy the application to the Quest device 3. Run this command where "com.example.android" is the application pacakge: adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.example.android This works, e.g the previous command launches the application on the device. The "android.intent.category.BROWSABLE" is here to allow this intent action to be launched from a web browser. So now please open the Quest web browser on the device, then try to navigate to the "example://gizmos" URL. This does not work, e.g the application is not launched by querying the "example://gizmos" URL from the Quest web browser. The Android Log cat shows the following output: 2023/05/15 10:52:57.625 24304 24304 Info chromium [INFO:web_contents_impl.cc(6947)] WebContentsImpl Loading end: ID = 3 2023/05/15 10:52:57.630 24304 24304 Info cr_tabmodel Appending tabs being restored to metadata lists, 0, startingNormalCount: 2, startingIncognitoCount: 0 2023/05/15 10:52:57.630 24304 24304 Info cr_tabmodel Serializing tab lists; counts: 2, 0 2023/05/15 10:52:57.635 2990 3117 Warn [CT] Anchor:SlamAnchorMemoryOSSDKClient: [Throttled count=551] Skipping invalid anchorHandle when attempting to cache AnchorStates 2023/05/15 10:52:57.649 22167 22167 Debug Zygote Forked child process 28240 2023/05/15 10:52:57.651 1083 1172 Debug ActivityManager Is background playback GK enabled: false Is background playback enabled for all apps: false 2023/05/15 10:52:57.651 1083 1172 Error AppOps Cannot setMode 2023/05/15 10:52:57.651 1083 1172 Error AppOps java.lang.SecurityException: Specified package com.oculus.browser under uid 90086 but it is not 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:4621) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:4513) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2784) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2770) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ActivityManagerService.setAppOpMode(ActivityManagerService.java:14775) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ActivityManagerService.onTopAppStatusChanged(ActivityManagerService.java:14713) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStartedLocked(ProcessList.java:2703) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStartedLocked(ProcessList.java:2674) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStart(ProcessList.java:2204) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.lambda$startProcessLocked$0$ProcessList(ProcessList.java:2125) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList$$ExternalSyntheticLambda1.run(Unknown Source:22) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Handler.handleCallback(Handler.java:938) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Handler.dispatchMessage(Handler.java:99) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Looper.loopOnce(Looper.java:214) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Looper.loop(Looper.java:304) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.HandlerThread.run(HandlerThread.java:67) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023/05/15 10:52:57.651 1083 1172 Error AppOps Cannot setMode 2023/05/15 10:52:57.651 1083 1172 Error AppOps java.lang.SecurityException: Specified package com.oculus.browser under uid 90086 but it is not 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:4621) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:4513) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2784) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2770) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ActivityManagerService.setAppOpMode(ActivityManagerService.java:14775) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ActivityManagerService.onTopAppStatusChanged(ActivityManagerService.java:14719) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStartedLocked(ProcessList.java:2703) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStartedLocked(ProcessList.java:2674) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStart(ProcessList.java:2204) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.lambda$startProcessLocked$0$ProcessList(ProcessList.java:2125) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList$$ExternalSyntheticLambda1.run(Unknown Source:22) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Handler.handleCallback(Handler.java:938) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Handler.dispatchMessage(Handler.java:99) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Looper.loopOnce(Looper.java:214) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Looper.loop(Looper.java:304) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.HandlerThread.run(HandlerThread.java:67) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023/05/15 10:52:57.651 1083 1172 Error AppOps Cannot setMode 2023/05/15 10:52:57.651 1083 1172 Error AppOps java.lang.SecurityException: Specified package com.oculus.browser under uid 90086 but it is not 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:4621) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:4513) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2784) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2770) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ActivityManagerService.setAppOpMode(ActivityManagerService.java:14775) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ActivityManagerService.onTopAppStatusChanged(ActivityManagerService.java:14724) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStartedLocked(ProcessList.java:2703) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStartedLocked(ProcessList.java:2674) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.handleProcessStart(ProcessList.java:2204) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList.lambda$startProcessLocked$0$ProcessList(ProcessList.java:2125) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.am.ProcessList$$ExternalSyntheticLambda1.run(Unknown Source:22) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Handler.handleCallback(Handler.java:938) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Handler.dispatchMessage(Handler.java:99) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Looper.loopOnce(Looper.java:214) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.Looper.loop(Looper.java:304) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at android.os.HandlerThread.run(HandlerThread.java:67) 2023/05/15 10:52:57.651 1083 1172 Error AppOps at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023/05/15 10:52:57.652 1083 1172 Info ActivityManager Start proc 28240:com.oculus.browser:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:49/u0ai86 for {com.oculus.browser/org.chromium.content.app.SandboxedProcessService0:49} 2023/05/15 10:52:57.668 948 1452 Error Tracking SubmapRecords: findSubmapId found 2 submap records hold the same query krHandle 2023/05/15 10:52:57.680 28240 28240 Error cessService0:4 Not starting debugger since process cannot load the jdwp agent. 2023/05/15 10:52:57.614 0 0 Info binder 28240:28240 ioctl 40046210 7fc6e6fd54 returned -22 2023/05/15 10:52:57.700 1083 6246 Debug CompatibilityChangeReporter Compat change id reported: 168419799; UID 10058; state: DISABLED 2023/05/15 10:52:57.708 28240 28240 Debug CompatibilityChangeReporter Compat change id reported: 171979766; UID 90086; state: ENABLED 2023/05/15 10:52:57.726 28240 28240 Debug CompatibilityChangeReporter Compat change id reported: 175409949; UID 90086; state: DISABLED 2023/05/15 10:52:57.727 28240 28240 Debug CompatibilityChangeReporter Compat change id reported: 175409951; UID 90086; state: DISABLED 2023/05/15 10:52:57.729 28240 28240 Debug CompatibilityChangeReporter Compat change id reported: 175409950; UID 90086; state: DISABLED 2023/05/15 10:52:57.730 28240 28240 Debug NetworkSecurityConfig Using Network Security Config from resource 0_resource_name_obfuscated debugBuild: false 2023/05/15 10:52:57.733 28240 28240 Debug NetworkSecurityConfig Using Network Security Config from resource 0_resource_name_obfuscated debugBuild: false 2023/05/15 10:52:57.748 28240 28240 Info cr_SplitCompatApp Launched version=112.0.5615.136 minSdkVersion=25 isBundle=false processName=com.oculus.browser:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:49 isIsolated=true 2023/05/15 10:52:57.750 948 27901 Info Tracking CONSTELLATION:VISION_STATUS: fb11304f9b41e4ec (R): BlobDetection:[#BlobsDetected=(15.24, 6.50)]Matching:[MatchSuccess=1.000, MatchCost=(0.00142, 0.00000), #MatchedBlobs=(8.10, 3.35), #MatchedLeds=(6.94, 0.12), RematchM=0.000, SkipRefine=0.000] MatchMethod:[Prox=1.000, ConstBrute=0.000, UnconstBrute=0.000] MatchResets[AnomBlobSize=0.000, SharedMatch=0.000, DenseReacq=0.000] | Fusion:[FusionError=0.000, ImuFromCamMs=(8.902, 1.609), RematchF=0.004] FusionUpdates:[Successful=0.140, Reliable=0.140, TightFusion=0.140, FullPose=0.000, StaticPrior=0.860, StaticForHandTrans=0.860, PoseUpdateMD=(0.0000, 0.0000)] FusionResets[6DoFReset=0.000, ResetSuccess=0.000] FusionStatus[HasPosition=1.000, HasVelocity=1.000] 2023/05/15 10:52:57.754 28240 28240 Info cr_ChildProcessService Creating new ChildProcessService pid=28240 2023/05/15 10:52:57.757 24304 24329 Info cr_ChildProcessConn onServiceConnected: org.chromium.content.app.SandboxedProcessService0 2023/05/15 10:52:57.758 568 568 Error SELinux avc: denied { find } for pid=28240 uid=90086 name=content_capture scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:content_capture_service:s0 tclass=service_manager permissive=0 2023/05/15 10:52:57.763 28240 28253 Error cr_ChromiumAndroidLinker ReserveAddressWithHint: Address range starting at 0x76be260000 was not free to use 2023/05/15 10:52:57.766 1083 6246 Info ActivityManager Killing 28240:com.oculus.browser:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:49/u0a58i-8914 (adj 0): isolated not needed This has been reported for a few years and several times on the Meta community forum, Stackoverflow and Unity developer forum but without an answer to workaround it or to explain why it's not possible to achieve. Something in the Meta Quest web browser prevents the intent action to open the application. A feedback from the Developper Team of the Meta Quest web browser would be great, at least to say "we cannot support this because [...]".2.6KViews3likes3CommentsOpen URL in browser failing "Error SecurityUtil Bundle is missing handshake binder"
Hello, I am trying to open the Oculus Quest 2 browser from my Unity application, to display a web page. This was working reliably, but suddenly stopped with no app changes. We believe it could be due to a software update on the Quest. We do: Application.OpenURL("<url>"); And that used to take the user to the browser page and leave the app. This was exactly the flow we needed. Now, the app flashes black for half a second, and quickly comes back in focus. And when the user eventually quits the app manually later, then only does the browser open. From Android Logcat, we are getting: Error SecurityUtil Failed to verify identity of calling application for app launch flow. Bundle is missing handshake binder! Now, it sounds like there's a solution! Bundle is missing handshake binder, that sounds promising. But I can't find what a handshake binder is or how to add one. Anyone would have any hint? Thank youSolved1.8KViews0likes1Comment[Bug Report] Meta Quest Browser Sandbox IFrame Requires "allow-same-origin"
Hi Team, Thank for you for hard work! Meta Quest Browser has been awesome to develop with. I'd like to report a bug, or at least an oddity.. I've noticed that the Meta Quest Browser enforces sandboxed IFrames to have "allow-same-origin" be toggled, or else VR content cannot load and with threejs (webxr) specifically, it will crash the browser! This behavior does not happen on Chrome, though I am using a chrome plugin to use "VR" on my local workstation, so its not exactly a 1-to-1 test. To reproduce this issue, create a simple Iframe with threejs/babylonjs webxr content in the srcDoc attribute: This below example WILL work. <iframe scrolling={'no'} style={{ display: 'block', border: 'none', margin: '0px', height: '100vh', width: '100vw' }} sandbox="allow-scripts allow-same-origin" title={scene_uuid} srcDoc={sceneJsData} hidden={loadingScreenWait} /> This below example will NOT work: <iframe scrolling={'no'} style={{ display: 'block', border: 'none', margin: '0px', height: '100vh', width: '100vw' }} sandbox="allow-scripts" title={scene_uuid} srcDoc={sceneJsData} hidden={loadingScreenWait} /> Having the sandbox only be allowed "allow-scripts" should be sufficient for webXR. Requiring both "allow-script allow-same-origin" actually breaks sandboxing altogether, because a script with allow-same-origin can break out of its own sandbox, according to MDN: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe. Bonus points: crash the browser.. If you wrap a sandboxed iframe in a sandboxed iframe you can crash the browser with threejs! Example: <iframe title={title} src={`/endpoint/with/sandboxedIframe/and/threejs/srcDoc`} scrolling={'no'} allow="xr-spatial-tracking;fullscreen;camera" sandbox="allow-scripts" style={{ display: 'block', border: 'none', margin: '0px', width: width, height: height, background: 'black' }} /> and the srcDoc iframe on the other endpoint <iframe scrolling={'no'} style={{ display: 'block', border: 'none', margin: '0px', height: '100vh', width: '100vw' }} sandbox="allow-scripts" title={scene_uuid} srcDoc={sceneJsData} hidden={loadingScreenWait} />Solved1.7KViews1like1CommentHow to disable the cache in the Oculus Browser on Quest 2
I've been working in WebXR a lot recently and I find myself needing to clear caches files several time per day. Most desktop browsers have a feature in the development tools to disable cached files. Is there a way to do this in the Oculus Browser on Quest?1.4KViews0likes0CommentsUnveiling the Best i7 Processor Laptops: A Performance and Features Showcase
Greetings, fellow tech enthusiasts, In our ever-evolving world of laptops, the choice of the right processor can be a game-changer. Today, let's embark on a quest to explore the top i7 processor laptops currently available in the market and examine how they compare in terms of performance and features. We all know that an i7 processor is synonymous with power, but how does it manifest in different laptop models? Let's share our insights on the cream of the crop and the standout features that make these laptops unique. Here are some points to guide our discussion: Performance: Which i7 processor laptops are delivering top-notch performance in 2023? Share your experiences with specific models and how they handle demanding tasks, from gaming and content creation to business applications. Form Factor and Portability: How do the top i7 laptops balance performance with portability? Are there slim and lightweight options that pack a punch in the performance department? Display Technology: Discuss the display quality, resolution, and features (e.g., high refresh rates or 4K displays) of the i7 laptops on your radar. How do these contribute to a better user experience? Graphics Capabilities: Many i7 laptops come with dedicated graphics cards. Share your thoughts on the importance of graphics performance for your specific tasks and any models that excel in this area. Cooling Solutions: As we know, powerful processors can generate heat. Which i7 laptops implement effective cooling solutions to maintain optimal performance during intense usage? Battery Life: The balance between power and battery life is crucial. Which i7 laptops strike this balance well, and how do they perform under various workloads? Connectivity and Ports: Share your insights on the connectivity options and available ports on these laptops. How do they enhance productivity and versatility? Build Quality and Durability: Discuss the build quality and durability of the top i7 laptops. Do you have any experiences with models that have stood the test of time? Operating Systems: How do these laptops perform with different operating systems, and do you have any recommendations for the best OS for i7 laptops? Let's collaborate to create a resource for those in search of their ideal i7 laptop. By sharing our experiences, we can help others make informed decisions and ensure they find the perfect blend of performance and features to match their unique needs. Your contributions are highly valuable, so please join the conversation and let's explore the world of top i7 processor laptops together! Best regards,1.3KViews0likes0CommentsIs there any way to develop a custom Meta Quest browser (for WebXR ) in PCVR?
I want to develop a PCVR WebXR browser application: A browser that supports browsing WebXR content, computed on the PC, per Quset Link to Quset 2 header and do Interaction as normal. In short: a PCVR with Meta Quest browser's WebXR capabilities. Purpose: To open a large and complex WebXR site. The site runs on the Quest 2 header for comparison and has reached a performance ceiling. I would like to build a browser in PCVR that supports the experience of WebXR content. Question: Is there already a compliant development kit, or browser package? Previous attempts: FirefoxRealityPC(FxRPC) Unfortunately, the project has been discontinued. : End of support for Firefox Reality After trying, it didn't achieve the function I wanted1.3KViews0likes0Comments