IP Library › Granted Patent US 9,792,265
Granted Patent B2
US 9,792,265 · App. 14/259,939 · Granted Oct 17, 2017

Systems and methods for hosted applications

Inventors: Adrian Bourke (San Diego, CA); Pawel Miskiewicz (Victoria, CA); Benjamin P. Morris (Vancouver, CA); Stefano Bertacchi (San Diego, CA); Corey Gwin (San Diego, CA)
Assignee: SweetLabs, Inc.
G06F17/2247G06F17/22G06F17/24G06F17/3089G06F17/30896
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 9,792,265
App. No.
14/259,939
Granted
Oct 17, 2017
Kind
B2
Abstract

In one embodiment, a computing device configured to execute a hosted application includes a processor and storage, where an operating system is installed on the computing device, an application platform application including a rendering engine process including a virtual machine and an integration process, at least one hosted application comprising a background page file, wherein the virtual machine is configured to parse instructions in the background page file to download at least one remotely hosted file for rendering a web page, build a document object model (DOM), and modify the DOM in accordance with a predetermined DOM modification rule to create a modified DOM based on the computing environment, and wherein the rendering engine process is configured to render a user interface page integrated into the computing environment of the operating system of the computing device based on the DOM generated by the execution of the background page.

Claims (50)

1. A computing device configured to execute a hosted application, comprising:

a processor and storage, where an operating system is installed on the computing device that configures the processor to create a computing environment;

an application platform application stored in the storage of the computing device, where the application platform application comprises:

a rendering engine process; and

an integration process

at least one hosted application comprising a background page file including instructions;

wherein the rendering engine process is configured to parse the instructions contained within the background page file to configure the processor to:

download at least one remotely hosted file containing instructions in the rendering language for rendering a web page;

build a document object model (DOM) based on at least the instructions in the at least one remotely hosted file; and

wherein the rendering engine process is configured to render a user interface page integrated into the computing environment of the operating system of the computing device based on the DOM; and

wherein the integration process:

enables communication with the operating system to modify the computing environment in response to API calls;

integrates the user interface page with functionalities of the computing device.

2. The computing device of claim 1 , wherein the background page is stored in the storage.

3. The computing device of claim 1 , wherein a resource locator indicating the location of the background page is stored in the storage and the application platform application is configured to download the background page using the resource locator.

4. The computing device of claim 1 , wherein the processor is further configured to modify the instructions within the at least one downloaded file in accordance with a predetermined page modification rule to create at least one modified file by inserting additional instructions into the instructions within the at least one downloaded file.

5. The computing device of claim 4 , wherein the instructions inserted in the scripting language call an API in the integration process.

6. The computing device of claim 4 , wherein the instructions inserted in the scripting language call an API in a remote server.

7. The computing device of claim 1 , wherein the processor is further configured to modify the instructions within the at least one downloaded file in accordance with a predetermined page modification rule to create at least one modified file by removing a subset of the instructions from the instructions within the at least one downloaded file.

8. The computing device of claim 1 , wherein:

the at least one downloaded file further comprises instructions written in a rendering language; and the processor is further configured to

modify instructions written in the rendering language within the at least one downloaded file in accordance with a predetermined page modification rule.

9. The computing device of claim 8 , wherein modifying instructions written in the rendering language within the at least one downloaded file in accordance with a predetermined page modification rule further comprises inserting instructions additional into the instructions written in the rendering language within the at least one downloaded file.

10. The computing device of claim 8 , wherein modifying instructions written in the rendering language within the at least one downloaded file in accordance with a predetermined page modification rule further comprises removing instructions written in the rendering language from the instructions written in the rendering language within the at least one downloaded file.

11. The computing device of claim 1 , wherein:

the at least one downloaded file further comprises a Cascading Style Sheet (CSS); and the method further comprises:

modifying the Cascading Style Sheet (CSS) within the at least one downloaded file in accordance with a predetermined page modification rule as part of the process of creating the at least one modified file.

12. The computing device of claim 11 , wherein modifying the CSS within the at least one downloaded file in accordance with a predetermined page modification rule further comprises removing a CSS from the at least one downloaded file.

13. The computing device of claim 11 , wherein modifying the CSS within the at least one downloaded file in accordance with a predetermined page modification rule further comprises inserting a CSS into the at least one downloaded file.

14. The computing device of claim 1 , wherein the instructions in the at least one downloaded file are in a scripting language and parsing the instructions in the scripting language contained within the background page file further comprises modifying the instructions written in the scripting language within the at least one downloaded file in accordance with a predetermined page modification rule to create at least one modified file.

15. The computing device of claim 1 , wherein the processor is further configured to modify the DOM in accordance with a predetermined DOM modification rule by inserting a DOM node in the DOM to create a modified DOM.

16. The computing device of claim 1 , wherein the processor is further configured to modify the DOM in accordance with a predetermined DOM modification rule by removing a DOM node in the DOM to create a modified DOM.

17. The computing device of claim 16 , wherein the removed DOM node in the DOM corresponds to an iFrame tag in the at least one downloaded file.

18. The computing device of claim 1 , wherein rendering the DOM using the rendering engine process includes calling an API in the integration layer.

19. The computing device of claim 1 , wherein rendering the DOM using the rendering engine process includes calling an API on a remote server.

20. The computing device of claim 1 , wherein:

the at least one downloaded file further comprises a resource locator indicating the location of a piece of content; and the method further comprises:

removing the resource locator from the at least one downloaded file.

21. The computing device of claim 1 , wherein the downloaded file further comprises an application manifest configured to bootstrap the application into the application platform application in order to share the resources of the application platform.

22. The computing device of claim 1 , wherein the rendering process is configured to ensure that the rendered user interface page can fit within a window of the hosted application's user interface.

23. The computing device of claim 22 , wherein the DOM is modified to change the layout of the content described in the remotely hosted file based on the operating system of the computing device.

24. The computing device of claim 1 , wherein the user interface generated based on the modified DOM is based on the operating system of the computing device.

25. A method for executing a hosted application, comprising:

downloading at least one remotely hosted file containing instructions in the rendering language for rendering a web page using the computing device, where the computing device comprises:

an operating system configured to create a computing environment; and

at least one hosted application comprising a background page file including instructions;

a rendering engine process; and

an integration process configured to enable communication with the operating system to modify the computing environment in response to API calls;

building a document object model (DOM) based on at least the instructions in the at least one remotely hosted file using the computing device; and

rendering a user interface page integrated into the computing environment of the operating system of the computing device based on the DOM using the computing device wherein the integration process is further configured to integrate the user interface page with functionalities of the computing device.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THIRD INVENTOR'S NAME PREVIOUSLY RECORDED ON REEL 033355 FRAME 0954. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 25, 2014
From: BOURKE, ADRIAN; MISKIEWICZ, PAWEL; MORRIS, BENJAMIN P.; BERTACCHI, STEFANO; GWIN, COREY
To: SWEETLABS, INC.
Reel/Frame 033417/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2014
From: BOURKE, ADRIAN; MISKIEWICZ, PAWEL; MORRIS, BENAJMIN P.; BERTACCHI, STEFANO; GWIN, COREY
To: SWEETLABS, INC.
Reel/Frame 033355/0954 →
Continuity (4)
Continuation 13973654 · Aug 22, 2013
Continuation 13843549 · Mar 15, 2013
Provisional Application 61694166 · Aug 28, 2012
Related Publication 20140325344A1 · Oct 30, 2014