Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebXR: experimental DOM Overlay support for immersive-ar mode #19013

Merged
merged 1 commit into from Oct 4, 2019

Conversation

@chromium-wpt-export-bot
Copy link
Collaborator

chromium-wpt-export-bot commented Sep 11, 2019

This opt-in mode keeps DOM content visible as a transparent overlay while
in an immersive-ar WebXR session. It is activated by requesting an optional
or required feature on session start:

navigator.xr.requestSession(
'immersive-ar',
{optionalFeatures: ['dom-overlay-for-handheld-ar']});

This functionality is only available if the corresponding feature flag
chrome://flags#webxr-ar-dom-overlay is enabled.

On session start, this fullscreens the <body> element. The application can
use the Fullscreen API to change the visible element. Exiting the session ends
fullscreen mode, and calling document.exitFullscreen() exits the immersive-ar
session if there are no remaining fullscreened elements.

(As of this CL, changing the fullscreen element doesn't fully update layer
visibility, so non-fullscreen content can remain visible unexpectedly.
That's being addressed in a followup.)

Change-Id: I77b767b111436b45e2b584e46a390a68473ab118
Bug: 991747
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1741008
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#703074}

Copy link
Collaborator

wpt-pr-bot left a comment

Already reviewed downstream.

@chromium-wpt-export-bot chromium-wpt-export-bot force-pushed the chromium-export-cl-1741008 branch 6 times, most recently from 331dd1c to 94f4332 Sep 12, 2019
@chromium-wpt-export-bot chromium-wpt-export-bot force-pushed the chromium-export-cl-1741008 branch 11 times, most recently from 4fc4327 to 9c7af65 Sep 23, 2019
@foolip

This comment has been minimized.

Copy link
Contributor

foolip commented Sep 27, 2019

Taskcluster failing the infrastructure/ tests is likely because of #19362. There's a workaround in place so I'll rebase the branch to retrigger CI.

@foolip foolip force-pushed the chromium-export-cl-1741008 branch from 9c7af65 to a37709b Sep 27, 2019
@chromium-wpt-export-bot chromium-wpt-export-bot force-pushed the chromium-export-cl-1741008 branch 6 times, most recently from 4ff0082 to 9b7d709 Oct 1, 2019
This opt-in mode keeps DOM content visible as a transparent overlay while
in an immersive-ar WebXR session. It is activated by requesting an optional
or required feature on session start:

  navigator.xr.requestSession(
    'immersive-ar',
    {optionalFeatures: ['dom-overlay-for-handheld-ar']});

This functionality is only available if the corresponding feature flag
chrome://flags#webxr-ar-dom-overlay is enabled.

On session start, this fullscreens the <body> element. The application can
use the Fullscreen API to change the visible element. Exiting the session ends
fullscreen mode, and calling document.exitFullscreen() exits the immersive-ar
session if there are no remaining fullscreened elements.

(As of this CL, changing the fullscreen element doesn't fully update layer
visibility, so non-fullscreen content can remain visible unexpectedly.
That's being addressed in a followup.)

Change-Id: I77b767b111436b45e2b584e46a390a68473ab118
Bug: 991747
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1741008
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#703074}
@chromium-wpt-export-bot chromium-wpt-export-bot force-pushed the chromium-export-cl-1741008 branch from 9b7d709 to 81ca609 Oct 4, 2019
@chromium-wpt-export-bot chromium-wpt-export-bot merged commit 585aa49 into master Oct 4, 2019
11 checks passed
11 checks passed
website-build-and-publish
Details
Azure Pipelines Build #20191004.180 succeeded
Details
Azure Pipelines (./wpt test-jobs) ./wpt test-jobs succeeded
Details
Azure Pipelines (affected tests without changes: Safari Technology Preview) affected tests without changes: Safari Technology Preview succeeded
Details
Azure Pipelines (affected tests: Safari Technology Preview) affected tests: Safari Technology Preview succeeded
Details
Azure Pipelines (infrastructure/ tests: macOS) infrastructure/ tests: macOS succeeded
Details
Azure Pipelines (wpt.fyi hook: safari-preview-affected-tests) wpt.fyi hook: safari-preview-affected-tests succeeded
Details
Azure Pipelines (wpt.fyi hook: safari-preview-affected-tests-without-changes) wpt.fyi hook: safari-preview-affected-tests-without-changes succeeded
Details
Taskcluster (pull_request) TaskGroup: success
Details
staging.wpt.fyi - safari[experimental] Safari results
Details
wpt.fyi - safari[experimental] Safari results
Details
@chromium-wpt-export-bot chromium-wpt-export-bot deleted the chromium-export-cl-1741008 branch Oct 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.