Commit aa9be7a1 authored by Piotr Bialecki's avatar Piotr Bialecki Committed by Commit Bot

Add UseCounters for hit test (both API variants) and for DOM overlay

Bug: 1054952
Change-Id: Ic03ce2e03fc8c6e55e5cc46faf49057f32593404
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2070966
Commit-Queue: Piotr Bialecki <bialpio@chromium.org>
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Auto-Submit: Piotr Bialecki <bialpio@chromium.org>
Reviewed-by: default avatarKlaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744130}
parent 7e2581e4
...@@ -2509,6 +2509,9 @@ enum WebFeature { ...@@ -2509,6 +2509,9 @@ enum WebFeature {
kV8ArrayPrototypeHasElements = 3163, kV8ArrayPrototypeHasElements = 3163,
kV8ObjectPrototypeHasElements = 3164, kV8ObjectPrototypeHasElements = 3164,
kDisallowDocumentAccess = 3165, kDisallowDocumentAccess = 3165,
kXRSessionRequestHitTestSource = 3166,
kXRSessionRequestHitTestSourceForTransientInput = 3167,
kXRDOMOverlay = 3168,
// Add new features immediately above this line. Don't change assigned // Add new features immediately above this line. Don't change assigned
// numbers of any item, and don't reuse removed slots. // numbers of any item, and don't reuse removed slots.
......
...@@ -425,6 +425,8 @@ void XR::PendingRequestSessionQuery::ReportRequestSessionResult( ...@@ -425,6 +425,8 @@ void XR::PendingRequestSessionQuery::ReportRequestSessionResult(
XRSessionFeature::REF_SPACE_BOUNDED_FLOOR, session); XRSessionFeature::REF_SPACE_BOUNDED_FLOOR, session);
auto feature_request_unbounded = auto feature_request_unbounded =
GetFeatureRequestStatus(XRSessionFeature::REF_SPACE_UNBOUNDED, session); GetFeatureRequestStatus(XRSessionFeature::REF_SPACE_UNBOUNDED, session);
auto feature_request_dom_overlay =
GetFeatureRequestStatus(XRSessionFeature::DOM_OVERLAY, session);
ukm::builders::XR_WebXR_SessionRequest(ukm_source_id_) ukm::builders::XR_WebXR_SessionRequest(ukm_source_id_)
.SetMode(static_cast<int64_t>(mode_)) .SetMode(static_cast<int64_t>(mode_))
...@@ -437,6 +439,15 @@ void XR::PendingRequestSessionQuery::ReportRequestSessionResult( ...@@ -437,6 +439,15 @@ void XR::PendingRequestSessionQuery::ReportRequestSessionResult(
.SetFeature_Unbounded(static_cast<int64_t>(feature_request_unbounded)) .SetFeature_Unbounded(static_cast<int64_t>(feature_request_unbounded))
.Record(doc->UkmRecorder()); .Record(doc->UkmRecorder());
// If the session was successfully created and DOM overlay was requested,
// count this as a use of the DOM overlay feature.
if (session && status == SessionRequestStatus::kSuccess &&
feature_request_dom_overlay !=
device::mojom::XRSessionFeatureRequestStatus::kNotRequested) {
UseCounter::Count(session->GetExecutionContext(),
WebFeature::kXRDOMOverlay);
}
if (session && metrics_recorder) { if (session && metrics_recorder) {
mojo::Remote<device::mojom::blink::XRSessionMetricsRecorder> recorder( mojo::Remote<device::mojom::blink::XRSessionMetricsRecorder> recorder(
std::move(metrics_recorder)); std::move(metrics_recorder));
......
...@@ -58,8 +58,8 @@ enum XRVisibilityState { ...@@ -58,8 +58,8 @@ enum XRVisibilityState {
[CallWith=ScriptState, Measure, RaisesException] Promise<void> end(); [CallWith=ScriptState, Measure, RaisesException] Promise<void> end();
// https://github.com/immersive-web/hit-test/blob/master/hit-testing-explainer.md // https://github.com/immersive-web/hit-test/blob/master/hit-testing-explainer.md
[RuntimeEnabled=WebXRHitTest, CallWith=ScriptState, RaisesException] [RuntimeEnabled=WebXRHitTest, CallWith=ScriptState, MeasureAs=XRSessionRequestHitTestSource, RaisesException]
Promise<XRHitTestSource> requestHitTestSource(XRHitTestOptionsInit options); Promise<XRHitTestSource> requestHitTestSource(XRHitTestOptionsInit options);
[RuntimeEnabled=WebXRHitTest, CallWith=ScriptState, RaisesException] [RuntimeEnabled=WebXRHitTest, CallWith=ScriptState, MeasureAs=XRSessionRequestHitTestSourceForTransientInput, RaisesException]
Promise<XRTransientInputHitTestSource> requestHitTestSourceForTransientInput(XRTransientInputHitTestOptionsInit options); Promise<XRTransientInputHitTestSource> requestHitTestSourceForTransientInput(XRTransientInputHitTestOptionsInit options);
}; };
...@@ -26551,6 +26551,9 @@ to ensure that the crash string is shown properly on the user-facing crash UI. ...@@ -26551,6 +26551,9 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="3163" label="V8ArrayPrototypeHasElements"/> <int value="3163" label="V8ArrayPrototypeHasElements"/>
<int value="3164" label="V8ObjectPrototypeHasElements"/> <int value="3164" label="V8ObjectPrototypeHasElements"/>
<int value="3165" label="DisallowDocumentAccess"/> <int value="3165" label="DisallowDocumentAccess"/>
<int value="3166" label="XRSessionRequestHitTestSource"/>
<int value="3167" label="XRSessionRequestHitTestSourceForTransientInput"/>
<int value="3168" label="XRDOMOverlay"/>
</enum> </enum>
<enum name="FeaturePolicyAllowlistType"> <enum name="FeaturePolicyAllowlistType">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment