IP Library › Granted Patent US 11,893,199
Granted Patent B2
US 11,893,199 · App. 16/897,937 · Granted Feb 6, 2024

Systems and methods for viewing incompatible web pages via remote browser instances

Inventors: Michael J. Ens (Redmond, WA); Alex Glover (Carnation, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/0481H04L67/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,893,199
App. No.
16/897,937
Granted
Feb 6, 2024
Kind
B2
Abstract

Embodiments described herein enable a browser to display content of a web page that is incompatible therewith. When such a page is to be traversed, the first browser causes a virtual machine that executes an instance of a second browser with which the page is compatible to be instantiated. The browsers communicate via communication channels utilized to share information therebetween. For instance, the first browser provides a URL of the page to the second browser for traversal thereby. Graphics information corresponding to the page is provided to the first browser. The first browser generates an image corresponding to the page based on the graphics information and renders the image in a tab of the first browser. This enables a visual experience for the user where it appears that the page is being rendered by the first browser when it is in fact being rendered by the second browser.

Claims (79)

1. A method in a computing device, comprising:

executing a first browser on the computing device, the first browser having an open browser window;

receiving a request at the first browser to navigate to a first page;

determining that the first page is incompatible with the first browser and compatible with a second browser;

sending, by the first browser to a virtual machine, an invocation request to invoke an instance of the second browser executing on the virtual machine, the virtual machine executing on a remote computing device that is communicatively coupled to the computing device via a network;

issuing, by the first browser to the second browser via the network, a navigation request comprising a uniform resource locator (URL) of the first page;

receiving, from the second browser, content of the first page displayed by the instance of the second browser and status information associated with the first page, the status information associated with the first page being received separately from the content of the first page;

rendering the received content and the status information in the open browser window, the status information received from the second browser being reflected by a user interface element utilized by the first browser;

receiving a second request at the second browser to navigate from the first page to a second page;

determining, by the second browser executing on the virtual machine, that the second page is compatible with the first browser; and

rendering the second page by the first browser.

2. The method of claim 1 , further comprising:

providing an address of the first page to the instance of the second browser via a first communication channel established between the first browser and the instance of the second browser.

3. The method of claim 2 , wherein receiving the content of the first page comprises:

receiving the content via a second communication channel established between the first browser and the instance of the second browser; and

rendering the content of the first page over a display window region of a tab in the open browser window of the first browser.

4. The method of claim 3 , wherein the first communication channel is a dynamic virtual channel (DVC), and wherein the second communication channel is a remote applications integrated locally (RAIL) communication channel.

5. The method of claim 3 , wherein the content of the first page comprises graphics information representative of the content of the first page, and wherein rendering the content of the first page comprises:

generating an image based on the graphics information; and

rendering the image over the display window region of the tab in the open browser window of the first browser.

6. The method of claim 1 , further comprising:

receiving a third request at the first browser to navigate to a third page;

determining that the third page is incompatible with the first browser and compatible with the second browser;

sending, by the first browser, an address of the third page to the instance of the second browser via a first communication channel;

receiving content of the third page displayed by the instance of the second browser; and

rendering the received content in the open browser window.

7. The method of claim 6 , wherein the first page is rendered in a first browser window of the instance of the second browser, wherein the second page is rendered in a second browser window of the instance of the second browser, wherein the received content of the first page is displayed over a display window region of a first tab of the open browser window, and wherein the received content of the second page is displayed over a display window region of a second tab of the open browser window.

8. The method of claim 7 , further comprising:

detecting input that causes the second tab to be active;

sending, via the first communication channel, a message to the instance of the second browser that causes the second browser window to be active;

detecting user input with respect to the content displayed over the display window region of the second tab; and

providing, via the first communication channel, the user input to the instance of the second browser, the provided user input being applied to the second browser window.

9. A system, comprising:

at least one processor circuit; and

at least one memory that stores program code configured to be executed by the at least one processor circuit, the program code comprising:

a tab manager configured to:

receive a request at a first browser to navigate to a first page; and

determine that the first page is incompatible with the first browser and compatible with a second browser;

an application programming interface of the first browser configured to:

send an invocation request to a virtual machine to invoke an instance of the second browser executing on the virtual machine, the virtual machine executing on a remote computing device that is communicatively coupled to the at least one processor circuit via a network;

issue, by the first browser to the second browser via the network, a navigation request comprising a uniform resource locator (URL) of the first page;

receive content of the first page displayed by the instance of the second browser and status information associated with the first page, the status information associated with the first page being received separately from the content of the first page; and

receive a second URL from the second browser via the network, the second URL corresponding to a second request received at the second browser to navigate from the first page to a second page at the second URL, the second browser executing on the virtual machine having determined that the second page is compatible with the first browser; and

a render engine configured to render the received content and the status information received from the second browser in an open browser window of the first browser, the status information being reflected by a user interface element utilized by the first browser and to render the second page.

10. The system of claim 9 , wherein the application programming interface is further configured to provide an address of the first page to the instance of the second browser via a first communication channel established between the first browser and the instance of the second browser.

11. The system of claim 10 , wherein the application programming interface is further configured to:

receive the content via a second communication channel established between the first browser and the instance of the second browser; and

render the content of the first page over a display window region of a tab in the open browser window of the first browser.

12. The system of claim 11 , wherein the first communication channel is a dynamic virtual channel (DVC), and wherein the second communication channel is a remote applications integrated locally (RAIL) communication channel.

13. The system of claim 11 , wherein the content of the first page comprises graphics information representative of the content of the first page, and wherein the render engine is further configured to:

generate an image based on the graphics information; and

render the image over the display window region of the tab in the open browser window of the first browser.

14. The system of claim 9 , wherein the tab manager is further configured to:

receive a third request at the first browser to navigate to a third page; and

determine that the third page is incompatible with the first browser and compatible with the second browser;

wherein the application programming interface is further configured to:

send an address of the third page to the instance of the second browser via a first communication channel; and

receive content of the third page displayed by the instance of the second browser; and

wherein the render engine is further configured to render the received content in the open browser window.

15. The system of claim 14 , wherein the first page is rendered in a first browser window of the instance of the second browser, wherein the second page is rendered in a second browser window of the instance of the second browser, wherein the received content of the first page is displayed over a display window region of a first tab of the open browser window, and wherein the received content of the second page is displayed over a display window region of a second tab of the open browser window.

16. A computer-readable storage medium having program instructions recorded thereon that, when executed by at least one processor of a computing device, perform a method, the method comprising:

executing a first browser on the computing device, the first browser having an open browser window;

receiving a request at the first browser to navigate to a first page;

determining that the first page is incompatible with the first browser and compatible with a second browser;

sending, by the first browser to a virtual machine, an invocation request to invoke an instance of the second browser executing on the virtual machine, the virtual machine executing on a remote computing device that is communicatively coupled to the computing device via a network;

issuing, by the first browser to the second browser via the network, a navigation request comprising a uniform resource locator (URL) of the first page;

receiving content of the first page displayed by the instance of the second browser and status information associated with the first page, the status information associated with the first page being received separately from the content of the first page;

rendering the received content and the status information in the open browser window, the status information received from the second browser being reflected by a user interface element utilized by the first browser;

receiving a second URL from the second browser via the network, the second URL corresponding to a second request received at the second browser to navigate from the first page to a second page at the second URL, the second browser executing on the virtual machine having determined that the second page is compatible with the first browser; and

rendering the second page by the first browser.

17. The computer-readable storage medium of claim 16 , the method further comprising:

providing an address of the first page to the instance of the second browser via a first communication channel established between the first browser and the instance of the second browser.

18. The computer-readable storage medium of claim 17 , wherein receiving the content of the first page comprises:

receiving the content via a second communication channel established between the first browser and the instance of the second browser; and

rendering the content of the first page over a display window region of a tab in the open browser window of the first browser.

19. The computer-readable storage medium of claim 18 , wherein the first communication channel is a dynamic virtual channel (DVC), and wherein the second communication channel is a remote applications integrated locally (RAIL) communication channel.

20. The computer-readable storage medium of claim 18 , wherein the content of the first page comprises graphics information representative of the content of the first page, and wherein rendering the content of the first page comprises:

generating an image based on the graphics information; and

rendering the image over the display window region of the tab in the open browser window of the first browser.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2020
From: ENS, MICHAEL J.; GLOVER, ALEX
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 052897/0100 →
Continuity (1)
Related Publication 20210389846A1 · Dec 16, 2021