IP Library › Granted Patent US 8,775,925
Granted Patent B2
US 8,775,925 · App. 13/843,549 · Granted Jul 8, 2014

Systems and methods for hosted applications

Inventors: Adrian Bourke (San Diego, CA); Pawel Misciewicz (Victoria, CA); Benjamin P. Morris (Vancouver, CA); Stefano Bertacchi (San Diego, CA); Corey Gwin (San Diego, CA)
Assignee: Sweetlabs, Inc.
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 8,775,925
App. No.
13/843,549
Granted
Jul 8, 2014
Kind
B2
Abstract

Systems and methods for locally managing a user's interaction with content derived from web pages within the user interface of an application executing within a runtime provided by an application platform on a computing device in accordance with embodiments of the invention are disclosed. In many embodiments, a runtime provided by an application platform enables the execution of a non-natively implemented hosted application in which executing instructions in a scripting language within a background page control the downloading and modification of web content to create user interface pages for the hosted application.

Claims (53)

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 configured to:

render pages within the computing environment created by the operating system by interpreting instructions written in a rendering language; and

implement a virtual machine configured to execute instructions written in a scripting language; and

an integration process that enables instructions executing within the virtual machine to modify the computing environment;

at least one hosted application comprising:

a background page file including instructions in the scripting language:

wherein the virtual machine is configured to parse the instructions in the scripting language 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;

modify 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;

build a document object model (DOM) based upon at least the instructions in the at least one modified file; and

modify the DOM in accordance with a predetermined DOM modification rule to create a modified DOM; and

wherein the rendering engine process is configured to render a user interface page based upon the modified DOM generated by the execution of the background page.

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 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 comprises inserting instructions into the instructions written in the scripting language 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 layer 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 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 comprises removing instructions from the instructions in the scripting language 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 the rendering language; and the method further comprises:

modifying instructions written in the rendering language 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.

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 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 , modifying the DOM in accordance with a predetermined DOM modification rule further comprises inserting a DOM node in the DOM.

15. The computing device of claim 1 , modifying the DOM in accordance with a predetermined DOM modification rule further comprises removing a DOM node in the DOM.

16. 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.

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

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

19. A method of executing a hosted application on a computing device, comprising:

executing at least one hosted application comprising a background page file including instructions in the scripting language on a computing device, where the computing device comprises a processor and a storage containing:

the background page;

an operating system that configures the processor to create a computing environment; and

an application platform application that comprises:

a rendering engine process configured to:

render pages within the computing environment created by the operating system by interpreting instructions written in a rendering language; and

implement a virtual machine configured to execute instructions written in a scripting language; and

an integration process that enables instructions executing within the virtual machine to modify the computing environment;

parsing instructions in the scripting language contained within a background page file using the rendering engine process;

downloading at least one remotely hosted file containing instructions in the rendering language for rendering web page using the rendering engine process based upon instructions written in the scripting language within the background page;

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 using the rendering engine process based upon instructions written in the scripting language within the background page;

building a document object model (DOM) based upon at least the instructions in the at least one modified file using the rendering engine process;

modifying the DOM in accordance with a predetermined DOM modification rule to create a modified DOM based upon instructions written in the scripting language within the background page; and

rendering a user interface page based upon the modified DOM using the rendering engine process.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2013
From: BOURKE, ADRIAN; MISKIEWICZ, PAWEL; MORRIS, BENJAMIN P.; BERTACCHI, STEFANO; GWIN, COREY
To: SWEETLABS, INC.
Reel/Frame 030888/0300 →
Continuity (2)
Provisional Application 61694166 · Aug 28, 2012
Related Publication 20140068419A1 · Mar 6, 2014