# US 10,504,290 B2 · User interface security in a virtual reality environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,504,290 B2
- Document ID: US10504290B2
- Status: Granted
- Kind: B2
- Application number: 15/971,101
- Filed: 2018-05-04
- Published: 2019-11-07
- Granted: 2019-12-10
- Earliest claimed: 2018-05-04
- Assignees: Facebook Technologies, LLC
- Applicants: Facebook Technologies, LLC
- Inventors: Justin Rogers
- Web page: https://patentgrep.com/patent/US10504290B2

## CPC

- G06F 3/012: {Head tracking input arrangements}
- G06T 19/006: {Mixed reality (object pose determination, tracking or camera calibration for mixed reality G06T7/00)}
- G06F 3/011: {Arrangements for interaction with the human body, e.g. for user immersion in virtual reality (blind teaching G09B21/00)}
- G06F 3/013: {Eye tracking input arrangements (G06F3/015 takes precedence)}
- G06F 3/014: {Hand-worn input/output arrangements, e.g. data gloves}
- G06F 3/0346: with detection of the device orientation or free movement in a three-dimensional [3D] space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
- G06F 3/03542: {Light pens for emitting or receiving light}
- G06F 3/04815: Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/0484: for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F 3/04842: Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence)
- G06F 3/04845: for image manipulation, e.g. dragging, rotation, expansion or change of colour
- G06F 21/629: {to features or functions of an application}
- G06F 21/84: output devices, e.g. displays or monitors
- H04L 67/53: using third party service providers
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- G06F 2203/04803: Split screen, i.e. subdividing the display area or the window area into separate subareas
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In one embodiment, a client system receives a request to display a user interface element in a virtual reality environment. The client system determines whether the requested user interface element is a system user interface element generated by an operating system running on the client system or a third-party user interface element that is generated by a third-party application or based on third-party content. The client system selectively displays the user interface element in a first dedicated plane or a second dedicated plane of the virtual reality environment. The requested user interface element is displayed in the first dedicated plane of the virtual reality environment upon determining that the requested user interface element is a system user interface element. The requested user interface element is displayed in the second dedicated plane of the virtual reality environment upon determining that the requested user interface element is a third-party user interface element.

## Claims

### Claim 1

A method comprising, by a client system:
receiving a request to display a user interface element in a virtual reality environment;
determining whether the requested user interface element is a system user interface element generated by an operating system running on the client system or a third-party user interface element that is generated by a third-party application or based on third-party content; and
selectively displaying the user interface element in a first dedicated plane or a second dedicated plane of the virtual reality environment, wherein:
the requested user interface element is displayed in the first dedicated plane of the virtual reality environment upon determining that the requested user interface element is a system user interface element; or
the requested user interface element is displayed in the second dedicated plane of the virtual reality environment upon determining that the requested user interface element is a third-party user interface element;
wherein the first dedicated plane is distinct from the second dedicated plane.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, from a first third-party application, a request to access sensor data;
determining whether the first third-party application is a presently active application, wherein the presently active application is a current application with which a user associated with the client system is interfacing;
based on the determination of whether the first third-party application is the presently active application, selectively authorizing or preventing the third-party application from receiving sensor data, wherein:
the first third-party application is authorized to receive sensor data from the client system upon determining the first third-party application is the presently active application; or
the first third-party application is prevented from receiving sensor data from the client system upon determining the first third-party application is not the presently active application; and
sending the sensor data to the first third-party application in response to determining the first third-party application is authorized to receive sensor data.

### Claim 3 (depends on 2)

The method of claim 2, wherein the sensor data includes at least one of gyroscope data, accelerometer data, magnetometer data, or eye tracking data.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
receiving authorization from the user to authorize a second third-party application to receive sensor data from the client system; and
sending, while the first third-party application is the presently active application the sensor data to the second third-party application based on the authorization.

### Claim 5 (depends on 2)

The method of claim 2, wherein the authorizing of the first third-party application to receive sensor data from the client system is based on a determination that the user interface element is requested by the first third-party application.

### Claim 6 (depends on 2)

The method of claim 2, wherein the preventing of the first third-party application from receiving sensor data is based on a determination that the user interface element is not requested by the first third-party application.

### Claim 7 (depends on 2)

The method of claim 2, wherein one or more third-party applications are placed on a list to automatically authorize the one or more third-party applications to receive sensor data.

### Claim 8 (depends on 2)

The method of claim 2, wherein one or more third-party applications are placed on a list to automatically prevent the one or more third-party applications from receiving sensor data.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first dedicated plane is dedicated to displaying system user interface elements generated by the operating system.

### Claim 10 (depends on 1)

The method of claim 1, wherein the first dedicated plane has a different depth relative to a viewpoint of a user than the second dedicated plane.

### Claim 11 (depends on 10)

The method of claim 10, wherein the first dedicated plane is closer to the viewpoint of the user than the second dedicated plane.

### Claim 12

One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
receive a request to display a user interface element in a virtual reality environment;
determine whether the requested user interface element is a system user interface element generated by an operating system running on the client system or a third-party user interface element that is generated by a third-party application or based on third-party content; and
selectively display the user interface element in a first dedicated plane or a second dedicated plane of the virtual reality environment, wherein:
the requested user interface element is displayed in the first dedicated plane of the virtual reality environment upon determining that the requested user interface element is a system user interface element; or
the requested user interface element is displayed in the second dedicated plane of the virtual reality environment upon determining that the requested user interface element is a third-party user interface element;
wherein the first dedicated plane is distinct from the second dedicated plane.

### Claim 13 (depends on 12)

The media of claim 12, wherein the software is further operable when executed to:
receive, from a first third-party application, a request to access sensor data;
determine whether the first third-party application is a presently active application, wherein the presently active application is a current application with which a user associated with the client system is interfacing;
based on the determination of whether the first third-party application is the presently active application, selectively authorize or prevent the third-party application from receiving sensor data, wherein:
the first third-party application is authorized to receive sensor data from the client system upon determining the first third-party application is the presently active application; or
the first third-party application is prevented from receiving sensor data from the client system upon determining the first third-party application is not the presently active application; and
send the sensor data to the first third-party application in response to determining the first third-party application is authorized to receive sensor data.

### Claim 14 (depends on 12)

The media of claim 12, wherein the first dedicated plane is dedicated to displaying system user interface elements generated by the operating system.

### Claim 15 (depends on 12)

The media of claim 12, wherein the first dedicated plane has a different depth relative to a viewpoint of a user than the second dedicated plane.

### Claim 16

A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:
receive a request to display a user interface element in a virtual reality environment;
determine whether the requested user interface element is a system user interface element generated by an operating system running on the client system or a third-party user interface element that is generated by a third-party application or based on third-party content; and
selectively display the user interface element in a first dedicated plane or a second dedicated plane of the virtual reality environment, wherein:
the requested user interface element is displayed in the first dedicated plane of the virtual reality environment upon determining that the requested user interface element is a system user interface element; or
the requested user interface element is displayed in the second dedicated plane of the virtual reality environment upon determining that the requested user interface element is a third-party user interface element;
wherein the first dedicated plane is distinct from the second dedicated plane.

### Claim 17 (depends on 16)

The system of claim 16, wherein the processors are further operable when executing the instructions to:
receive, from a first third-party application, a request to access sensor data;
determine whether the first third-party application is a presently active application, wherein the presently active application is a current application with which a user associated with the client system is interfacing;
based on the determination of whether the first third-party application is the presently active application, selectively authorize or prevent the third-party application from receiving sensor data, wherein:
the first third-party application is authorized to receive sensor data from the client system upon determining the first third-party application is the presently active application; or
the first third-party application is prevented from receiving sensor data from the client system upon determining the first third-party application is not the presently active application; and
send the sensor data to the first third-party application in response to determining the first third-party application is authorized to receive sensor data.

### Claim 18 (depends on 16)

The system of claim 16, wherein the first dedicated plane is dedicated to displaying system user interface elements generated by the operating system.

### Claim 19 (depends on 16)

The system of claim 16, wherein the first dedicated plane has a different depth relative to a viewpoint of a user than the second dedicated plane.

### Claim 20 (depends on 19)

The system of claim 19, wherein the first dedicated plane is closer to the viewpoint of the user than the second dedicated plane.
