Distributed overlay browser for transparent streaming media support in virtualized desktop environment
First Claim
1. A method comprising:
- establishing an endpoint browser service on a client endpoint device;
receiving, via a Virtual Desktop Interface protocol at the client endpoint device, a Hosted Virtual Desktop (HVD) display comprising a browser window, the browser window comprising one or more host-provided browser window elements and at least one placeholder element where a client-provided frameless window may be rendered;
creating, by the endpoint browser service, an endpoint browser instance at the client endpoint device;
receiving data from a web content server at the endpoint browser instance;
generating a client endpoint display by rendering the HVD display and by the endpoint browser instance rendering the received data in a frameless window in place of the at least one placeholder element of the HVD display, wherein the frameless window comprises a web page rendering area;
displaying the client endpoint display to enable a user of the client endpoint device to simultaneously view the host-provided browser window elements and the client-provided frameless window in a composited window;
intercepting, at the client endpoint device, a request from the endpoint browser instance;
sending a query from the client endpoint device to determine whether the request should be handled by the client endpoint device or an HVD host; and
receiving a query response at the client endpoint device indicating whether the request should be handled by the client endpoint device or the HVD host.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for establishing an integrated and transparent overlay of a browser window for rendering data such as streaming media on a client endpoint device. A web browser on a Hosted Virtual Desktop (HVD) draws HVD display image comprising a browser window and communicates it to the client endpoint device for display, via a virtual desktop interface (VDI) protocol. The browser window comprises zero or more host-provided window elements such as a window frame and at least one placeholder element where a client-provided frameless browser window may be rendered. A browser (or browser extension) on the HVD works together with a browser server on the client endpoint device to render data such as streaming media in the client-provided frameless browser window in place of the placeholder, before displaying the frameless browser window and the HVD display as an integrated display at the client endpoint device.
22 Citations
34 Claims
-
1. A method comprising:
-
establishing an endpoint browser service on a client endpoint device; receiving, via a Virtual Desktop Interface protocol at the client endpoint device, a Hosted Virtual Desktop (HVD) display comprising a browser window, the browser window comprising one or more host-provided browser window elements and at least one placeholder element where a client-provided frameless window may be rendered; creating, by the endpoint browser service, an endpoint browser instance at the client endpoint device; receiving data from a web content server at the endpoint browser instance; generating a client endpoint display by rendering the HVD display and by the endpoint browser instance rendering the received data in a frameless window in place of the at least one placeholder element of the HVD display, wherein the frameless window comprises a web page rendering area; displaying the client endpoint display to enable a user of the client endpoint device to simultaneously view the host-provided browser window elements and the client-provided frameless window in a composited window; intercepting, at the client endpoint device, a request from the endpoint browser instance; sending a query from the client endpoint device to determine whether the request should be handled by the client endpoint device or an HVD host; and receiving a query response at the client endpoint device indicating whether the request should be handled by the client endpoint device or the HVD host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
establishing a host web browser on a Hosted Virtual Desktop (HVD) host; generating an HVD display comprising a browser window, the browser window comprising one or more host-provided browser window elements and at least one placeholder window element where data may be rendered; intercepting a request from the host web browser, wherein the request from the host web browser comprises a page load of a Uniform Resource Locator (URL) describing the location of data on a web content server; determining whether the URL should be handled by the HVD host or a client endpoint device; if it is determined that the URL should be handled by the HVD host, receiving the data from the web content server and rendering the received data in the at least one placeholder window element, or if it is determined that the URL should be handled by the client endpoint device, sending a request to render the URL to an endpoint browser service on the client endpoint device; sending the HVD display to the client endpoint device via a Virtual Desktop Interface protocol using a Virtual Desktop Interface session; intercepting from the host web browser a request to switch tabs from a current tab to a new tab; detecting whether the new tab should be handled by the HVD host or by the client endpoint device, and if it is detected that the current tab is handled by the HVD host and the new tab should be handled by the client endpoint device, sending a request to switch to the new tab to the endpoint browser service, or if it is detected that the current tab is handled by the client endpoint device and the new tab should be handled by the HVD host, sending a request to put an endpoint browser instance handling the current tab into a sleep state. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. An apparatus comprising:
-
a display device; and a processor configured to; establish an endpoint browser service on the apparatus; receive, via a Virtual Desktop Interface protocol at the apparatus, a Hosted Virtual Desktop (HVD) display comprising a browser window, the browser window comprising one or more host-provided browser window elements and at least one placeholder element where a client-provided frameless window may be rendered; create, by the endpoint browser service, an endpoint browser instance at the apparatus; receive data from a web content server at the endpoint browser instance; generate a endpoint display by rendering the HVD display and by the endpoint browser instance rendering the received data in a frameless window in place of the at least one placeholder element of the HVD display, wherein the frameless window comprises a web page rendering area; display the endpoint display to enable a user of the apparatus to simultaneously view the host-provided browser window elements and the client-provided frameless window in a composited window; intercept, at the apparatus, a request from the endpoint browser instance; send a query from the apparatus to determine whether the request should be handled by the apparatus or an HVD host; and receiving a query response at the apparatus indicating whether the request should be handled by apparatus or the HVD host. - View Dependent Claims (27, 28, 29, 30)
-
-
31. One or more computer readable storage devices encoded with instructions that, when executed by a processor, cause the processor to:
-
establish an endpoint browser service on a client endpoint device; receive, via a Virtual Desktop Interface protocol at the client endpoint device, a Hosted Virtual Desktop (HVD) display comprising a browser window, the browser window comprising one or more host-provided browser window elements and at least one placeholder element where a client-provided frameless window may be rendered; create, by the endpoint browser service, an endpoint browser instance at the client endpoint device; receive data from a web content server at the endpoint browser instance; generate a client endpoint display by rendering the HVD display and by the endpoint browser instance rendering the received data in a frameless window in place of the at least one placeholder element of the HVD display, wherein the frameless window comprises a web page rendering area; display the client endpoint display to enable a user of the client endpoint device to simultaneously view the host-provided browser window elements and the client-provided frameless window in a composited window, intercept a request from the endpoint browser instance; send a query to determine whether the request should be handled by the client endpoint device or an HVD host; and receive a query response indicating whether the request should be handled by the client endpoint device or the HVD host. - View Dependent Claims (32, 33, 34)
-
Specification