1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_VR_UI_TEST_INPUT_H_
#define CHROME_BROWSER_VR_UI_TEST_INPUT_H_
#include "base/functional/callback.h"
#include "base/time/time.h"
#include "chrome/browser/vr/vr_base_export.h"
namespace vr {
// These are used to map user-friendly names, e.g. URL_BAR, to the underlying
// element names for interaction during testing.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.vr
enum class UserFriendlyElementName : int {
kWebXrAudioIndicator, // Toast in WebXR indicating the microphone permission
// is in use.
kMicrophonePermissionIndicator, // The microphone icon that appears when a
// page is using the microphone permission.
kWebXrExternalPromptNotification, // The notification shown in the headset
// if a permission is requested while in
// immersive WebXR session.
kCameraPermissionIndicator, // The camera icon that appears when a page is
// using the camera permission.
kLocationPermissionIndicator, // The location icon that appears when a page
// is using the high accuracy location
// permission.
kWebXrLocationPermissionIndicator, // The location icon that appears when a
// page is using the location permission.
kWebXrVideoPermissionIndicator, // Toast in WebXR indicating the camera
// permission is in use.
};
// Holds all the information necessary to keep track of and report whether a
// UI element changed visibility in the allotted time.
struct VR_BASE_EXPORT UiVisibilityState {
// The UI element being watched.
UserFriendlyElementName element_to_watch =
UserFriendlyElementName::kWebXrExternalPromptNotification;
// The desired visibility state of the element.
bool expected_visibile = false;
// How long to wait for a visibility change before timing out.
base::TimeDelta timeout_ms = base::TimeDelta::Min();
// The point in time that we started watching for visibility changes.
base::TimeTicks start_time = base::TimeTicks::Now();
// Reports whether the visibility matched the expectation or timed out.
base::OnceCallback<void(bool)> on_visibility_change_result;
UiVisibilityState();
~UiVisibilityState();
UiVisibilityState(UiVisibilityState&& other);
UiVisibilityState& operator=(UiVisibilityState&& other);
};
} // namespace vr
#endif // CHROME_BROWSER_VR_UI_TEST_INPUT_H_
|