Systems and methods for hosted applications

Information

  • Patent Grant
  • 11347826
  • Patent Number
    11,347,826
  • Date Filed
    Monday, May 17, 2021
    3 years ago
  • Date Issued
    Tuesday, May 31, 2022
    2 years ago
  • CPC
    • G06F16/958
    • G06F16/986
    • G06F40/12
    • G06F40/14
    • G06F40/143
    • G06F40/166
  • Field of Search
    • CPC
    • G06F16/958
    • G06F16/986
    • G06F40/12
    • G06F40/14
    • G06F40/143
    • G06F40/166
  • International Classifications
    • G06F17/00
    • G06F16/958
    • G06F40/12
    • G06F40/166
    • G06F40/143
    • G06F40/14
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.
Description
FIELD OF THE INVENTION

The present invention is generally related to applications and more specifically to applications that manage a user's interaction with web pages.


BACKGROUND

A runtime environment can enable an application to be integrated into the computing environment of a computing device. Typically, a runtime environment is provided for applications to be implemented natively (i.e. compiled into the machine code of the computing device on which it resides). However, other runtime environments can be provided for applications to be implemented non-natively on a computing device, such as web applications which can operate within a virtual machine provided by a web browser that operates natively on a computing device.


A web browser is an application that typically retrieves and presents information found on web pages maintained by content servers over a network. A web page is typically a file formatted in browser supported formats such as but not limited to markup languages (such as but not limited to HTML), scripts (such as but not limited to JavaScript) and style sheets (such as but not limited to CSS) that can be displayed by a web browser.


SUMMARY OF THE INVENTION

Systems and methods in accordance with embodiments of the invention download and modify web content to create interactive cross-platform applications.


One embodiment of the invention includes 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 includes 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 including 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.


In a further embodiment, the background page is stored in the storage.


In another embodiment, 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.


In a still further embodiment, 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 includes inserting instructions into the instructions written in the scripting language within the at least one downloaded file.


In still another embodiment, the instructions inserted in the scripting language call an API in the integration layer process.


In a yet further embodiment, the instructions inserted in the scripting language call an API in a remote server.


In yet another embodiment, 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 includes removing instructions from the instructions in the scripting language within the at least one downloaded file.


In a further embodiment again, the at least one downloaded file further includes instructions written in the rendering language; and the method further includes: 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.


In another embodiment again, modifying instructions written in the rendering language within the at least one downloaded file in accordance with a predetermined page modification rule further includes inserting into the instructions written in the rendering language within the at least one downloaded file.


In a further additional embodiment, modifying instructions written in the rendering language within the at least one downloaded file in accordance with a predetermined page modification rule further includes removing instructions written in the rendering language from the instructions written in the rendering language within the at least one downloaded file.


In a still yet further embodiment, the at least one downloaded file further includes a Cascading Style Sheet (CSS); and the method further includes 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.


In still yet another embodiment, modifying the CSS within the at least one downloaded file in accordance with a predetermined page modification rule further includes removing a CSS from the at least one downloaded file.


In a still further embodiment again, modifying the CSS within the at least one downloaded file in accordance with a predetermined page modification rule further includes inserting a CSS into the at least one downloaded file.


In still another embodiment again, the DOM in accordance with a predetermined DOM modification rule further includes inserting a DOM node in the DOM.


In a still further additional embodiment, modifying the DOM in accordance with a predetermined DOM modification rule further includes removing a DOM node in the DOM.


In still another additional embodiment, the at least one downloaded file further includes a resource locator indicating the location of a piece of content; and the method further includes removing the resource locator from the at least one downloaded file.


In a yet further embodiment again, rendering the modified DOM using the rendering engine process includes calling an API in the integration layer.


In yet another embodiment again, rendering the modified DOM using the rendering engine process includes calling an API on a remote server.


Yet another embodiment of the method of the invention includes executing at least one hosted application including a background page file including instructions in the scripting language on a computing device, where the computing device includes 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 includes: 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.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a network diagram illustrating a system that utilizes hosted applications in accordance with an embodiment of the invention.



FIG. 2 is a flowchart of a lifecycle process of a hosted application in accordance with an embodiment of the invention.



FIG. 3 is a flowchart of a process for rendering a user interface page in accordance with an embodiment of the invention.



FIG. 4 is a screenshot of a user interface of a hosted application displaying a user interface page in accordance with an embodiment of the invention.





DETAILED DESCRIPTION

Turning now to the drawings, systems and methods for locally managing a user's interaction with content derived from web pages within the user interface of a hosted application executing within a runtime provided by an application platform on a computing device in accordance with embodiments of the invention are illustrated. In many embodiments, a runtime provided by an application platform enables the execution of a non-natively implemented hosted application. Application platforms that create a runtime environment in which non-natively implemented hosted applications can execute are discussed in U.S. application Ser. No. 13/164,740 filed Jun. 20, 2011 titled “Systems and Methods for Integration of an Application Runtime Environment into a User Computing Environment”, the disclosure of which is hereby incorporated by reference in its entirety. In several embodiments, a runtime environment generated by an application platform is at least partially natively implemented and provides an intuitive user interface that is integrated with the computing environment of a device's operating system. The application platform can enable a user to access, organize and discover applications, including hosted applications that can execute within the runtime environment. In many embodiments, an application platform includes a rendering engine layer and an integration layer. The rendering engine layer includes various parsers and virtual machines associated with supporting specific web technologies including but not limited to HTML, JavaScript, and CSS. The integration layer exposes a number of APIs that can be called by a hosted application to make modifications to a user's computing environment. In several embodiments, the integration layer APIs are JavaScript APIs that can be called by a hosted application running within the application runtime environment created by the application platform. In response to the API calls the integration layer can communicate with the operating system and/or natively implemented processes to modify the user's computing environment.


A hosted application can be implemented using a background page which generates at least one user interface page. User interface pages are generated locally using the logic of the background page, found within the hosted application's package stored on a computing device, and derived from a web page maintained by content servers over a network such as (but not limited to) the Internet. The background page is loaded locally at the time the hosted application is initiated from the hosted application's package and is defined in the hosted application manifest. A hosted application's package can include an application manifest, located in the root directory of the hosted application's package, to bootstrap the application into an application platform (such as but not limited to an application platform application) in order to share the resources of the application platform.


In many embodiments, the background page contains all of the logic of the hosted application. The logic of the hosted application can parse one or more remotely hosted text files that constitute a web page to determine the content of the text file(s). From a determination of the content of the text file(s), the logic of the background page can generate a user interface page derived from the remotely hosted web page by including or excluding content, markup, scripts or style sheets in view of the remotely hosted web page. For example, the logic could cause exclusion of certain, text, pictures, sounds or animation, cause a change in the layout of content, preventing the loading of a pop up window, and/or changing the text font. In other embodiments, any of a variety of predetermined page modification rule can be applied that is capable of being expressed as a logical statement. The logic can include or exclude content, markup, scripts or style sheets upon first accessing the web page as one or more text files maintained on a remote server (by modifying the instructions in markup and/or scripting language(s) contained within the text file(s)) and once again after building a Document Object Model (DOM) using the text files (by modifying the nodes or the text of the DOM). Furthermore, the inclusion of content, markup, scripts or style sheets also includes the inclusion of application platform APIs that can call for functions performed locally at the application platform or performed remotely at a remote server. The background page can be implemented using one or more text files (as opposed to a binary executable file) that can include HTML, JavaScript and/or CSSs that the rendering engine layer of the application platform parses to implement the logic contained therein in a similar fashion to the way in which the rendering engine of a web browser application parses a conventional web page when enabling a web application on a computing device. In numerous embodiments, a background page can load JavaScript as the logic that conducts page flow control and injection of styling and functionality to the content and markup, CSS and JavaScript derived from a web page to generate a user interface page. In certain embodiments, a background page is formatted in a markup language, such as HTML, located within the hosted application's package. The JavaScript of the background page can be loaded locally or from a remote server and dynamically pulled as the application is launched.


An application platform can implement a user interface for a hosted application using instructions contained within a background page to generate user interface pages with content derived from web pages hosted on remote servers. In certain embodiments, a user interface page is generated according to the logic of the background page using a URL that enables retrieval of a web page from a remote server that can be rendered by the rendering engine of the application platform to create the user interface page based upon the content found using the URL. In numerous embodiments, a user interface page is generated by adding to and/or removing portions of the content along with the markup, scripts and CSS retrieved from a web page before or as the user interface page is displayed. Certain user interface pages may not, however, require any modification in order to be rendered by the application platform. In certain embodiments, a user interface page is rendered by the application platform in response to a user selecting a link, such as a hyperlink or Uniform Resource Locator (URL). In response to the selection of a link, the hosted application can instruct the application platform to generate a user interface page using the web page identified by the link. In several embodiments, a user can interact with content derived from web pages as a controlled flow of user interface pages in an experience akin to how a user would experience content on a mobile application executing natively within an operating system such as (but not limited to) the iOS mobile operating system developed and distributed by Apple Inc. headquartered in Cupertino, Calif. or the Android mobile operating system released by Google, Inc. headquartered in Mountain View, Calif. Thereby, a hosted application manages user interaction with remotely hosted web pages by generating user interface pages from the remotely hosted web pages according to instructions contained within a background page and/or obtained using the background page that control the flow from one user interface page to another.


Although specific embodiments of hosted applications are discussed above, hosted applications can be implemented in any manner as appropriate to the requirements of a specific application in accordance with embodiments of the invention. Systems and methods incorporating application platforms configured to execute hosted applications that generate user interface pages from remotely hosted web pages in accordance with embodiments of the invention are discussed below.


System Architecture


Hosted applications running on computing devices in accordance with many embodiments of the invention can manage user interactions derived from a remote web page formatted in a cross-platform language (e.g. a markup and/or scripting language supported by a web browser application) into a format suitable for display as a user interface page. In certain embodiments, the computing devices on which hosted applications execute within a runtime provided by an application platform can communicate via a network with content servers that maintain text files and content utilized by rendering engines in web browser applications to render web pages. In many embodiments, the text files contain instructions in markup languages, and/or scripting languages that a web browser application interprets when formatting content for display. As the hosted application executes within the application platform, the hosted application derives user interface pages from the text files and content retrieved from the remote content servers. The user interface pages can then be rendered by a rendering engine within the application platform to provide a user interface for the hosted application.


A network diagram illustrating a system that utilizes hosted applications in accordance with an embodiment of the invention is illustrated in FIG. 1. The system 100 includes a number of computing devices 106 connected to content servers 104 via a network 108, such as but not limited to the Internet. The content servers 104 maintain websites, including web pages and content that can be accessed by hosted applications running on computing devices 106. Within each computing device, hosted applications can execute within the runtime environment provided by an application platform and can access web pages from one or more content servers to generate user interface pages.


Although specific systems that utilize hosted applications are discussed above, systems can utilize hosted applications in any manner as appropriate to the requirements of a specific application in accordance with embodiments of the invention. The lifecycle of hosted applications in accordance with embodiments of the invention are discussed further below.


Hosted Application Lifecycle


Hosted applications in accordance with many embodiments of the invention locally manage a user's interactions by locally creating a user interface page derived from remote web pages. Hosted applications are configured to generate a user interface page according to instructions in a scripting language, such as (but not limited to) JavaScript, contained within a background page and/or obtained using the background page. The instructions within the background page dictates the injection or removal of content (such as but not limited to pictures, animation, sound or text), and the HTML, JavaScript and/or CSSs found within the text files maintained on a remote server to generate a user interface page. The background page is loaded upon hosted application initialization and remains active in the background so long as the hosted application is executing. The background page includes the logic used to generate user interface pages from web pages retrieved from a remote server that maintains the web pages. Executing the instructions generates instructions from which the rendering engine layer of the application platform can render the user interface page on a computing device and the integration layer of the application platform can integrate the user interface page with the functionality of the computing device.


Thereby, a user interface page derived from a web page can present a user of the computing device with a controlled user experience, according to the logic of the background page executing from a hosted application's package locally stored on the computing device. For example, a hosted application can control the content with which a user can interact, such as by allowing or denying a user's access to content found on a particular web page (such as pop up windows or particular images found on the web page).


In several embodiments, a hosted application's lifecycle includes the generation of various user interface pages according to the instructions contained within the background page and/or obtained using the background page. A lifecycle process of a hosted application in accordance with an embodiment of the invention is illustrated in FIG. 2. The process 200 includes loading (202) a background page. In certain embodiments, a background page is loaded upon initializing the hosted application. A background page can be loaded from a hosted application's package locally stored on a computing device. In several embodiments, the background page includes a URL that is used to load one or more text files from a remote server that include instructions implementing the logic of the hosted application. Instructions contained within a background page and/or instructions contained within files retrieved using information contained within the background page can be collectively referred to as the instructions of the background page and are part of the logic of the background page. The logic of the hosted application is used to generate user interface pages from web pages maintained by remote servers. After the background page is loaded (202), a decision (204) is made as to whether a user interface page should be generated. The decision is made according to the instructions of the background page. In certain embodiments, the instructions of the background page automatically load an initial user interface page using a URL that directs the hosted application to access one or more files on a remote website that can be rendered as a web page using a web browser application. The application platform utilizes the one or more files indicated by the URL to generate a user interface page. The URL can be loaded automatically (such as but not limited to where the logic of the background page retrieves a URL from the hosted application's package without explicit user instructions) or manually (such as but not limited to where a user provides a specific URL for the background page of the hosted application). The process continues generating (206) user interface pages as a user interacts with the hosted application until there is no further need to generate user interface pages (e.g. the user hides, closes or terminates the execution of the hosted application). The decision as to whether additional user interface pages are to be generated is made by the logic of the background page. The generation of a user interface page is discussed in more detail in FIG. 3.


Although specific lifecycles of hosted applications are discussed above, a hosted application can have any lifecycle as appropriate to the requirements of a specific application in accordance with embodiments of the invention. Generation of a user interface page of a hosted application is discussed further below.


Generation of User Interface Pages


User interface pages in accordance with embodiments of the invention can be generated from content and one or more text files containing instructions in markup and/or scripting languages capable of being rendered by a web browser application. The user interface pages are generated from the content and one or more text files according to the instructions of a background page that specifies the logic of a hosted application. A user interface page is generated by modifying the text that represents a web page by injecting and/or removing content, markup, style sheets and scripts from the retrieved web page according to the logic of the background page. Although in many embodiments a web page is remotely hosted, user interface pages may also be generated from one or more locally stored files including content, markup, scripts and/or style sheets. Upon the generation of a user interface page, an application platform can integrate the user interface page with the computing environment of the computing device and render the user interface page in the foreground of the computing environment of a computing device for user interaction. In certain embodiments, the logic of the background page can generate a user interface page in accordance with the requirements of a specific application, such as (but not limited to) ensuring that a rendered user interface page can fit within a window of the hosted application's user interface.


The logic of the hosted application can parse the text file of a remotely hosted web page to generate a user interface page with particular content, markup, scripts or style sheets. The inclusion of particular content, markup, scripts or style sheets also covers the inclusion of API calls including (but not limited to) API calls to the application platform and remote servers. A user interface page that includes particular content, markup, scripts and/or style sheets can be generated by modifying the accessed web page first as a retrieved text file and/or second after building the DOM of the modified retrieved text file. The first modification of the accessed web page as a retrieved text file includes parsing the code of the retrieved text file to determine the content of the retrieved text file to determine the content, markup, scripts and/or style sheets to include or exclude from a user interface page. Further modifications can occur after a DOM is built. In several embodiments, text or nodes are modified by including or excluding particular content, markup, scripts or style sheets as nodes of a completed DOM.


A process for generating a user interface page in accordance with an embodiment of the invention is illustrated in FIG. 3. The process 300 includes retrieving (302) a web page. In many embodiments, a hosted application is provided (manually or automatically) with a URL from which one or more files associated with a web page can be retrieved (302). As noted above, the retrieved text files can include content with markup, scripts, and style sheets from which a typical web browser can render the web page. After retrieving (302) the text file, instructions within the background page determine the modifications (304) applied to the text file by modifying by injecting and/or removing content, markup, scripts and/or style sheets. After modifying (304) the text file, a DOM representation of the text file is generated (306). Upon generating (306) the DOM, the DOM is modified (308) by injecting and/or removing content, markup, scripts and/or style sheets within the DOM. The application platform utilizes its integration and rendering engine layers to integrate (310) and render (312) the user application page.


In certain embodiments, the application platform can either remove or replace the code of a remote web page as particular nodes of a remote web page in a DOM, according to the logic of the background page. In certain embodiments, a node including window functions, such as “window.open”, can be detected and fed into the logic of the background page. Thereby, the logic of the background page can make a decision as to how the window functions that imply modifications outside of the rendered user interface page (e.g. resizeTo/resizeBy) should influence the chrome that contains the rendered user interface page. The logic of the background page can replace the “window.open” code of opening a browser window by replacing it with a script for generating a user interface page using the details provided by the “window.open” code, such as (but not limited to) the URL of the web page to access while ignoring the other specifications such as a web browser window name, access to a menu bar, ability to resize the web browser window, and implementation of particular scrollbars, status bars and tool bars. Similarly, the logic can parse the text of a web page to determine if “window.resizeTo” or “window.resizeBy” or “window.close” code is present and remove or replace the code according to the logic of the background page.


In a variety of embodiments, the logic can incorporate custom style sheets (such as by adding style sheets when generating a user interface page's “head” node). In certain embodiments, incorporation of style sheets to a user interface page's “head” node is performed by the execution of the following code:














var style = document.createElement(‘STYLE’);


style.type = ‘text/css’;


document.getElementsByTagName(‘HEAD’)[0].appendChild


(style);









In numerous embodiments, the logic of the background page can incorporate functionality by integrating scripts or calls for application platform APIs (such as but not limited to an API that enables resizing of a user interface page, for example to a default window size of 640×480 pixels). In particular embodiments, scripts can be incorporated to a user interface page's “head” node where the incorporation of scripts to a user interface page's “head” node is performed by the execution of the following instructions:














var script = document.createElement(‘SCRIPT’);


script.type = ‘text/javascript’;


document.getElementsByTagName(‘HEAD’)[0].appendChild(script);









In a number of embodiments, the logic of the background page controls user interaction with the hosted application by disabling or adding functions traditionally present in a web browser. In certain embodiments, disabling or adding functions is accomplished by adding or removing various scripts or API calls that enable functionalities including (but are not limited to) the ability to cut, copy, paste, select all text, utilize a spell checker, resize a rendered web page or the ability to manually determine the flow of web pages (such as enabling a user to view web pages previously accessed, e.g. back and/or forward commands) rendered by a web browser.


In many embodiments, the logic of the background page can generate a user interface page at any time after accessing the remote web page from which the user interface page is generated, including prior to or after the DOM of the web page is loaded.


In several embodiments, the logic of the background page can monitor the access of a web page (such as the download of one or more text files used to render a web page) during the generation of a user interface page and display a splash page while the user interface page is being generated. In certain embodiments, the download of one or more text files used to render a web page is reported back to the background page through the following function where the body of the function returns an indication of progress as an integer between 0 and 100:














function onPageLoadProgress(pageName, progress) {


}









In particular embodiments, the detection of an error in the download of one or more text files used to render a web page causes the background page to load a user interface page based upon an error detected through the following function where the body of the function causes a particular user interface page to be displayed based upon a particular error:














function onPageLoadingError(url, pageName, errorCode) {


}









Although specific processes for generating a user interface page are discussed above, user interface pages may be generated according to any of a variety of process as appropriate to the requirements of a specific application in accordance with embodiments of the invention. Rendering of user interface pages of a hosted application is discussed further below.


Rendering User Interface Pages


A user interface page of a hosted application in accordance with many embodiments of the invention can be rendered within the user interface of the computing device on which the hosted application is executing. A rendered user interface page in accordance with an embodiment of the invention is illustrated in FIG. 4. The user interface page 400 enables a user to log into a user account associated with the Facebook social networking service maintained by Facebook, Inc. headquartered in Menlo Park, Calif. Additional styling and functionality was injected into the user interface page (that was not present in the web page that the user interface page is derived from) such as a button 402 for launching the web page in a traditional web browser as well as a link 404 integrating additional functionality which was not present in the web page from which the user interface page is derived.


Although specific user interface pages of a hosted application are discussed above, any user interface page can be rendered as appropriate to a specific application in embodiments of the invention.


While the above description contains many specific embodiments of the invention, these should not be construed as limitations on the scope of the invention, but rather as an example of one embodiment thereof. It is therefore to be understood that the present invention may be practiced otherwise than specifically described, without departing from the scope and spirit of the present invention. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents.

Claims
  • 1. A computing device 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 is configured to: render pages within the computing environment by interpreting instructions written in a rendering language; andexecute instructions written in a scripting language to modify the computing environment; andat least one hosted application comprising: an application manifest to bootstrap the hosted application; anda background page including instructions for implementing logic of the hosted application to provide a user interface of the hosted application;wherein the application platform application is further configured to render a user interface page integrated into the computing environment of the operating system of the computing device according to the instructions of the background page.
  • 2. The computing device of claim 1, wherein the application platform application is configured to render the user interface page by accessing a uniform resource locator (URL) for files associated with a web page.
  • 3. The computing device of claim 1, wherein the application platform application is further configured to display a splash page while the user interface pages is being rendered.
  • 4. The computing device of claim 1, wherein the application platform application is further configured to manage user interaction with content from a set of one or more remote servers.
  • 5. The computing device of claim 1, wherein a resource locator indicating a location of the background page is stored in the storage and the application platform application is further configured to download the background page using the resource locator.
  • 6. The computing device of claim 1, wherein the processor is configured to retrieve at least one text file and to modify the at least one text file, wherein the user interface page is rendered based on the modified at least one text file.
  • 7. The computing device of claim 6, wherein modifying the at least one text file comprises injecting or removing one of: content, markup, scripts, and style sheets.
  • 8. The computing device of claim 1, wherein the processor is configured to build a document object model (DOM) and to modify the DOM by injecting or removing one of: content, markup, scripts, and style sheets, wherein the user interface page is rendered based on the modified DOM.
  • 9. The computing device of claim 1, wherein the application manifest is located in a root directory of the hosted application.
  • 10. The computing device of claim 1, wherein the instructions for implementing logic of the hosted application comprises instructions to control the flow from the user interface page to a second user interface page.
  • 11. A method for executing a hosted application, the method comprising: executing, using a computing device, at least one hosted application comprising: an application manifest located in a root directory of the hosted application to bootstrap the hosted application;a background page including instructions for implementing logic of the hosted application to provide a user interface of the hosted application, wherein the computing device comprises: an operating system configured to create a computing environment;the hosted application; andan application platform application configured to integrate the user interface page with functionalities of the computing device;rendering, using the application platform application, a user interface page integrated into the computing environment of the operating system of the computing device according to the instructions of the background page.
  • 12. The method of claim 11, wherein rendering the user interface page comprises accessing a uniform resource locator (URL) for files associated with a web page.
  • 13. The method of claim 11 further comprising displaying a splash page while the user interface pages is being rendered.
  • 14. The method of claim 11, wherein the application platform application is further configured to manage user interaction with content from a set of one or more remote servers.
  • 15. The method of claim 11, wherein a resource locator indicating a location of the background page is stored in a storage of the computing device and the application platform application is further configured to download the background page using the resource locator.
  • 16. The method of claim 11, further comprising: retrieving at least one text file; andmodifying the at least one text file, wherein the user interface page is rendered based on the modified at least one text file.
  • 17. The method of claim 16, wherein modifying the at least one text file comprises injecting or removing one of: content, markup, scripts, and style sheets.
  • 18. The method of claim 11, further comprising: building a document object model (DOM); andmodifying the DOM by injecting or removing one of: content, markup, scripts, and style sheets, wherein the user interface page is rendered based on the modified DOM.
  • 19. The method of claim 11, wherein the application manifest is located in a root directory of the hosted application.
  • 20. The method of claim 11 further comprising parsing instructions in the background page using the rendering engine layer to control the flow from the user interface page to a second user interface page.
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 16/588,270, filed Sep. 30, 2019, which is a continuation of U.S. patent application Ser. No. 15/705,158, filed Sep. 14, 2017, which is a continuation of U.S. patent application Ser. No. 14/259,939, filed Apr. 23, 2014 and issued as U.S. Pat. No. 9,792,265, which is a continuation of U.S. patent application Ser. No. 13/973,654, filed Aug. 22, 2013 and issued as U.S. Pat. No. 8,799,771, which is a continuation of U.S. patent application Ser. No. 13/843,549, filed Mar. 15, 2013 and issued as U.S. Pat. No. 8,775,925, which claims priority to U.S. Provisional Patent Application Ser. No. 61/694,166, filed Aug. 28, 2012, the disclosures of which are herein incorporated by reference in their entireties.

US Referenced Citations (374)
Number Name Date Kind
5021949 Morten et al. Jun 1991 A
5138712 Corbin Aug 1992 A
5375200 Dugan et al. Dec 1994 A
5548704 Steiner et al. Aug 1996 A
5848396 Gerace Dec 1998 A
5911066 Williams et al. Jun 1999 A
5916310 McCain Jun 1999 A
5933600 Shieh et al. Aug 1999 A
5987471 Bodine et al. Nov 1999 A
6018343 Wang et al. Jan 2000 A
6023698 Lavey et al. Feb 2000 A
6023766 Yamamura Feb 2000 A
6092189 Fisher et al. Jul 2000 A
6094671 Chase et al. Jul 2000 A
6098108 Sridhar et al. Aug 2000 A
6115039 Karren et al. Sep 2000 A
6182141 Blum et al. Jan 2001 B1
6189146 Misra et al. Feb 2001 B1
6216141 Straub et al. Apr 2001 B1
6233609 Mittal May 2001 B1
6282567 Finch, II et al. Aug 2001 B1
6327628 Anuff et al. Dec 2001 B1
6363409 Hart et al. Mar 2002 B1
6456307 Bates et al. Sep 2002 B1
6697838 Jakobson Feb 2004 B1
6701485 Igra et al. Mar 2004 B1
6718516 Claussen et al. Apr 2004 B1
6810410 Durham Oct 2004 B1
6909992 Ashley Jun 2005 B2
6959320 Shah et al. Oct 2005 B2
6981212 Claussen Dec 2005 B1
6992589 Marsh Jan 2006 B2
7051288 Bennett et al. May 2006 B2
7100165 Eldridge et al. Aug 2006 B2
7113776 Minear et al. Sep 2006 B2
7207000 Shen Apr 2007 B1
7272786 McCullough Sep 2007 B1
7343560 Tanner et al. Mar 2008 B1
7401325 Backhouse et al. Jul 2008 B2
7536725 Raciborski May 2009 B2
7565414 Love Jul 2009 B1
7614018 Ohazama et al. Nov 2009 B1
7636683 Mills et al. Dec 2009 B1
7657885 Anderson Feb 2010 B2
7681134 Grechishkin et al. Mar 2010 B1
7734583 Vitanov et al. Jun 2010 B2
7827228 Emberton et al. Nov 2010 B2
7891014 Raciborski Feb 2011 B2
7925988 Abernethy, Jr. et al. Apr 2011 B2
7945681 Witkowski et al. May 2011 B2
7950026 Urbach May 2011 B1
7996785 Neil Aug 2011 B2
8020101 Kesavarapu Sep 2011 B2
8046672 Hegde et al. Oct 2011 B2
8069407 Armandpour Nov 2011 B1
8086999 Berstis et al. Dec 2011 B2
8095565 Dengler et al. Jan 2012 B2
8108426 Arthursson Jan 2012 B2
8176321 Perry et al. May 2012 B1
8181254 Kay et al. May 2012 B1
8191060 Malasky et al. May 2012 B2
8209598 Pandey Jun 2012 B1
8260845 Colton et al. Sep 2012 B1
8266544 Kay et al. Sep 2012 B1
8296643 Vasilik Oct 2012 B1
8296684 Duarte et al. Oct 2012 B2
8335817 Dayan Dec 2012 B1
8336110 Raciborski Dec 2012 B2
8346222 Zubas et al. Jan 2013 B2
8429546 Hilerio et al. Apr 2013 B2
8434135 Hilerio et al. Apr 2013 B2
8448074 Forutanpour et al. May 2013 B2
8453065 Chaudhrl et al. May 2013 B2
8458612 Chatterjee et al. Jun 2013 B2
8527860 Colton et al. Sep 2013 B1
8555155 Harrison et al. Oct 2013 B2
8566697 Meredith et al. Oct 2013 B2
8613070 Borzycki et al. Dec 2013 B1
8624840 Cox et al. Jan 2014 B2
8627216 Brichford et al. Jan 2014 B2
8634821 Raleigh Jan 2014 B2
8650481 Boodman et al. Feb 2014 B1
8650558 Depoy Feb 2014 B2
8756488 Meredith et al. Jun 2014 B2
8775275 Pope Jul 2014 B1
8775917 Bourke et al. Jul 2014 B2
8775925 Bourke et al. Jul 2014 B2
8782033 Jiang et al. Jul 2014 B2
8788955 Quine Jul 2014 B2
8793323 Au Jul 2014 B2
8799771 Bourke et al. Aug 2014 B2
8806333 Bourke et al. Aug 2014 B2
8869038 Eick Oct 2014 B2
8900054 Patel Dec 2014 B2
8954989 Paul et al. Feb 2015 B1
9021469 Posey et al. Apr 2015 B2
9032489 Yang et al. May 2015 B2
9053505 Depoy Jun 2015 B2
9069735 Bourke et al. Jun 2015 B2
9081757 Bourke et al. Jul 2015 B2
9083566 Pearson et al. Jul 2015 B1
9141266 McCormick et al. Sep 2015 B2
9235803 Claux et al. Jan 2016 B2
9268466 Momchilov et al. Feb 2016 B2
9426629 Brisebois Aug 2016 B2
9448680 Woley et al. Sep 2016 B2
9497070 Mungo et al. Nov 2016 B2
9547725 Chu et al. Jan 2017 B2
9588657 Grechishkin et al. Mar 2017 B1
9596672 Kim et al. Mar 2017 B2
9628574 Bourke et al. Mar 2017 B2
9727903 Depoy Aug 2017 B2
9749440 Bourke Aug 2017 B2
9792265 Bourke et al. Oct 2017 B2
9798524 Colton Oct 2017 B1
9971747 Bourke et al. May 2018 B2
10019247 Bourke Jul 2018 B2
10084878 Bourke Sep 2018 B2
10089098 Bourke Oct 2018 B2
10178160 Urbach Jan 2019 B2
10210144 Wan et al. Feb 2019 B2
10430502 Bourke et al. Oct 2019 B2
11010538 Bourke et al. May 2021 B2
20010047394 Kloba et al. Nov 2001 A1
20020078208 Crump et al. Jun 2002 A1
20020091645 Tohyama Jul 2002 A1
20020109704 Rajarajan et al. Aug 2002 A1
20020129064 Guthrie Sep 2002 A1
20020138441 Lopatic Sep 2002 A1
20020169625 Yang et al. Nov 2002 A1
20030070089 Fu et al. Apr 2003 A1
20030126456 Birzer et al. Jul 2003 A1
20040015954 Tuerke et al. Jan 2004 A1
20040019683 Lee et al. Jan 2004 A1
20040081310 Lueckhoff Apr 2004 A1
20040167859 Mirabella Aug 2004 A1
20040177327 Kieffer Sep 2004 A1
20040205531 Innes Oct 2004 A1
20040220926 Lamkin et al. Nov 2004 A1
20040221170 Colvin Nov 2004 A1
20040267783 Naruse et al. Dec 2004 A1
20040268146 Oberst et al. Dec 2004 A1
20040268225 Walsh et al. Dec 2004 A1
20050005234 Chen Jan 2005 A1
20050021977 Oberst et al. Jan 2005 A1
20050027704 Hammond et al. Feb 2005 A1
20050027846 Wolfe et al. Feb 2005 A1
20050076334 Demeyer Apr 2005 A1
20050097522 Backhouse et al. May 2005 A1
20050102374 Moragne et al. May 2005 A1
20050108678 Goodwin et al. May 2005 A1
20050144139 Zhuge et al. Jun 2005 A1
20050210412 Matthews Sep 2005 A1
20050216420 Padole et al. Sep 2005 A1
20050223086 Raverdy et al. Oct 2005 A1
20050273759 Lucassen et al. Dec 2005 A1
20060005187 Neil Jan 2006 A1
20060026438 Stern Feb 2006 A1
20060031785 Raciborski Feb 2006 A1
20060059422 Wu et al. Mar 2006 A1
20060136964 Diez et al. Jun 2006 A1
20060161631 Lira Jul 2006 A1
20060224989 Pettiross et al. Oct 2006 A1
20060265280 Nakada et al. Nov 2006 A1
20060285543 Bonsma et al. Dec 2006 A1
20060288221 Yamamoto et al. Dec 2006 A1
20070050777 Hutchinson et al. Mar 2007 A1
20070061700 Kothari et al. Mar 2007 A1
20070083356 Brunet et al. Apr 2007 A1
20070226314 Eick et al. Sep 2007 A1
20070244919 Wells et al. Oct 2007 A1
20070245238 Fugitt et al. Oct 2007 A1
20070255576 Patterson Nov 2007 A1
20070255814 Green et al. Nov 2007 A1
20070277109 Chen et al. Nov 2007 A1
20070300068 Rudelic Dec 2007 A1
20080021696 Bartelt et al. Jan 2008 A1
20080040226 Roker Feb 2008 A1
20080082565 Chang et al. Apr 2008 A1
20080108333 Jemison et al. May 2008 A1
20080120129 Seubert et al. May 2008 A1
20080140529 Agarwal et al. Jun 2008 A1
20080154718 Flake et al. Jun 2008 A1
20080172487 Brunet et al. Jul 2008 A1
20080172736 Barr et al. Jul 2008 A1
20080208589 Cross et al. Aug 2008 A1
20080222732 Caldwell et al. Sep 2008 A1
20080256636 Gassoway Oct 2008 A1
20080301560 Rogers et al. Dec 2008 A1
20090019371 Audet Jan 2009 A1
20090019436 Hartz et al. Jan 2009 A1
20090025063 Thomas et al. Jan 2009 A1
20090031123 Kruys Jan 2009 A1
20090037452 Baitalmal et al. Feb 2009 A1
20090037492 Baitalmal et al. Feb 2009 A1
20090044121 Berger et al. Feb 2009 A1
20090070228 Ronen Mar 2009 A1
20090077174 Janssen et al. Mar 2009 A1
20090089778 Craft et al. Apr 2009 A1
20090106456 Muller et al. Apr 2009 A1
20090119779 Dean et al. May 2009 A1
20090125833 Abernethy, Jr. et al. May 2009 A1
20090132556 Gupta et al. May 2009 A1
20090137202 Fujimaki et al. May 2009 A1
20090165144 Fujita Jun 2009 A1
20090171974 Arthursson et al. Jul 2009 A1
20090171993 Arthursson Jul 2009 A1
20090187928 Mark Jul 2009 A1
20090216775 Ratliff et al. Aug 2009 A1
20090217179 Mons et al. Aug 2009 A1
20090249188 Dube et al. Oct 2009 A1
20090249238 Chudy et al. Oct 2009 A1
20090271394 Allen et al. Oct 2009 A1
20090280907 Larsen Nov 2009 A1
20090282333 Olsen et al. Nov 2009 A1
20090319909 Hsueh et al. Dec 2009 A1
20100017701 Bargeron Jan 2010 A1
20100023582 Pedersen et al. Jan 2010 A1
20100023855 Hedbor et al. Jan 2010 A1
20100023884 Brichford et al. Jan 2010 A1
20100054128 O'Hern Mar 2010 A1
20100057884 Brownell et al. Mar 2010 A1
20100094878 Soroca et al. Apr 2010 A1
20100114887 Conway et al. May 2010 A1
20100131764 Goh May 2010 A1
20100146529 Heath et al. Jun 2010 A1
20100205523 Lehota et al. Aug 2010 A1
20100211906 Kanai Aug 2010 A1
20100228594 Chweh et al. Sep 2010 A1
20100233996 Herz et al. Sep 2010 A1
20100306762 Lindberg et al. Dec 2010 A1
20100318608 Huang et al. Dec 2010 A1
20110016169 Cahill et al. Jan 2011 A1
20110041003 Pattar et al. Feb 2011 A1
20110055005 Lang Mar 2011 A1
20110055314 Rosenstein et al. Mar 2011 A1
20110072413 Meijer et al. Mar 2011 A1
20110093900 Patel et al. Apr 2011 A1
20110099558 Patrick et al. Apr 2011 A1
20110099627 Proudler Apr 2011 A1
20110119571 Decker et al. May 2011 A1
20110138283 Marston Jun 2011 A1
20110138295 Momchilov et al. Jun 2011 A1
20110138314 Mir et al. Jun 2011 A1
20110153806 Bagasra Jun 2011 A1
20110173098 Lee Jul 2011 A1
20110185354 Tanner et al. Jul 2011 A1
20110209047 Olsen et al. Aug 2011 A1
20110225178 Ingrassia Sep 2011 A1
20110231280 Farah Sep 2011 A1
20110238501 Almeida Sep 2011 A1
20110282700 Cockcroft Nov 2011 A1
20110289422 Spivack et al. Nov 2011 A1
20110296401 Depoy Dec 2011 A1
20110302510 Harrison et al. Dec 2011 A1
20110302524 Forstall Dec 2011 A1
20110307738 Hilerio et al. Dec 2011 A1
20110307880 Hilerio et al. Dec 2011 A1
20110307883 Hilerio et al. Dec 2011 A1
20110307946 Hilerio et al. Dec 2011 A1
20110314389 Meredith et al. Dec 2011 A1
20120005346 Burckart Jan 2012 A1
20120010995 Skirpa et al. Jan 2012 A1
20120021774 Mehta et al. Jan 2012 A1
20120030617 Louch Feb 2012 A1
20120047442 Nicolaou et al. Feb 2012 A1
20120054841 Schultz et al. Mar 2012 A1
20120066583 Priestley et al. Mar 2012 A1
20120066634 Kim et al. Mar 2012 A1
20120079126 Evans et al. Mar 2012 A1
20120084292 Liang et al. Apr 2012 A1
20120084713 Desai et al. Apr 2012 A1
20120096396 Ording et al. Apr 2012 A1
20120131683 Nassar et al. May 2012 A1
20120150963 Horowitz et al. Jun 2012 A1
20120151368 Tam Jun 2012 A1
20120166956 Hilerio et al. Jun 2012 A1
20120166959 Hilerio et al. Jun 2012 A1
20120173312 Kern Jul 2012 A1
20120174075 Carteri et al. Jul 2012 A1
20120179671 Turner et al. Jul 2012 A1
20120233243 Ashkenazy et al. Sep 2012 A1
20120233348 Winters Sep 2012 A1
20120235912 Laubach Sep 2012 A1
20120246291 Wong et al. Sep 2012 A1
20120246740 Brooker et al. Sep 2012 A1
20120266186 Parzygnat Oct 2012 A1
20120278127 Kirakosyan et al. Nov 2012 A1
20120290919 Melnyk et al. Nov 2012 A1
20120290950 Rapaport et al. Nov 2012 A1
20120291022 Mehta et al. Nov 2012 A1
20120296959 Momchilov et al. Nov 2012 A1
20120297291 Fainberg et al. Nov 2012 A1
20120297377 Chen et al. Nov 2012 A1
20120303801 Raschke et al. Nov 2012 A1
20120311419 Kwak et al. Dec 2012 A1
20120323995 Bourke et al. Dec 2012 A1
20120324338 Meredith et al. Dec 2012 A1
20130024696 Rudelic Jan 2013 A1
20130024763 Nemati et al. Jan 2013 A1
20130024851 Firman et al. Jan 2013 A1
20130054795 Kang et al. Feb 2013 A1
20130073401 Cook Mar 2013 A1
20130081081 Wang Mar 2013 A1
20130111341 Bier May 2013 A1
20130111559 Lomme et al. May 2013 A1
20130124211 McDonough May 2013 A1
20130124557 Goode et al. May 2013 A1
20130139091 Raciborski et al. May 2013 A1
20130139146 Bickle et al. May 2013 A1
20130145348 Agovic et al. Jun 2013 A1
20130160111 Orr et al. Jun 2013 A1
20130173319 Thomas et al. Jul 2013 A1
20130191242 Daniel et al. Jul 2013 A1
20130191445 Gayman et al. Jul 2013 A1
20130197972 Taguchi et al. Aug 2013 A1
20130204975 Keith, Jr. Aug 2013 A1
20130227646 Haggerty et al. Aug 2013 A1
20130238999 Helms et al. Sep 2013 A1
20130246906 Hamon Sep 2013 A1
20130247030 Kay et al. Sep 2013 A1
20130262168 Makanawala et al. Oct 2013 A1
20130268837 Braithwaite et al. Oct 2013 A1
20130282798 McCarthy et al. Oct 2013 A1
20130290879 Greisson Oct 2013 A1
20130304581 Soroca et al. Nov 2013 A1
20130304608 Mehta et al. Nov 2013 A1
20130339946 Meredith et al. Dec 2013 A1
20130347044 Lee et al. Dec 2013 A1
20140019958 Sherman Jan 2014 A1
20140047323 Bourke et al. Feb 2014 A1
20140053107 Patel Feb 2014 A1
20140068419 Bourke et al. Mar 2014 A1
20140068420 Bourke et al. Mar 2014 A1
20140068421 Bourke et al. Mar 2014 A1
20140074712 Palmer et al. Mar 2014 A1
20140095886 Futral Apr 2014 A1
20140108912 Bourke et al. Apr 2014 A1
20140108913 Bourke et al. Apr 2014 A1
20140114804 Depoy Apr 2014 A1
20140114901 Pradhan et al. Apr 2014 A1
20140172915 Herbach et al. Jun 2014 A1
20140189546 Hilerio et al. Jul 2014 A1
20140208336 Shia et al. Jul 2014 A1
20140229520 Scott et al. Aug 2014 A1
20140236756 Bourke et al. Aug 2014 A1
20140250105 Shankar Sep 2014 A1
20140258845 Machado et al. Sep 2014 A1
20140297516 Brown et al. Oct 2014 A1
20140325344 Bourke et al. Oct 2014 A1
20140358657 Smullen et al. Dec 2014 A1
20140365602 Hillary et al. Dec 2014 A1
20140365962 Lee et al. Dec 2014 A1
20150020126 Kegel et al. Jan 2015 A1
20150051972 Chweh et al. Feb 2015 A1
20150089349 Duplessis et al. Mar 2015 A1
20150106801 Agrawal et al. Apr 2015 A1
20150161277 Heller Jun 2015 A1
20150163549 Suh et al. Jun 2015 A1
20150172374 Chaudhry et al. Jun 2015 A1
20150186999 Wei et al. Jul 2015 A1
20150188980 Bourke Jul 2015 A1
20150242912 Depoy Aug 2015 A1
20150331685 Bourke et al. Nov 2015 A1
20150332287 Arroyo et al. Nov 2015 A1
20160110066 McCormick et al. Apr 2016 A1
20170083303 Meredith et al. Mar 2017 A1
20170147318 Bourke May 2017 A1
20170289281 Bourke et al. Oct 2017 A1
20170310784 Bourke Oct 2017 A1
20180129636 Bourke et al. May 2018 A1
20200019396 Meredith et al. Jan 2020 A1
20200020019 Bourke et al. Jan 2020 A1
20200026750 Bourke et al. Jan 2020 A1
Foreign Referenced Citations (38)
Number Date Country
1322325 Nov 2001 CN
102016899 Apr 2011 CN
102567511 Jul 2012 CN
102685565 Sep 2012 CN
105051686 Nov 2015 CN
107016558 Aug 2017 CN
105051686 Jul 2019 CN
2583174 Apr 2013 EP
2666132 Nov 2013 EP
2941746 Nov 2015 EP
2959381 Dec 2015 EP
3090357 Nov 2016 EP
3090357 Jun 2020 EP
3734449 Nov 2020 EP
3742378 Nov 2020 EP
3758335 Dec 2020 EP
1181483 Nov 2013 HK
1216683 Nov 2016 HK
1218968 Mar 2017 HK
1231208 Dec 2017 HK
1231208 Feb 2021 HK
223700 May 2014 IL
2004185083 Jul 2004 JP
9952056 Oct 1999 WO
1919052056 Oct 1999 WO
2006120280 Nov 2006 WO
2009111589 Sep 2009 WO
2011150355 Dec 2011 WO
2011160139 Dec 2011 WO
2012154501 Nov 2012 WO
2012177664 Dec 2012 WO
2013074713 May 2013 WO
2014025544 Feb 2014 WO
2014035580 Mar 2014 WO
2014036142 Mar 2014 WO
2014062271 Apr 2014 WO
2014130875 Aug 2014 WO
2015103233 Jul 2015 WO
Non-Patent Literature Citations (47)
Entry
Extended European Search Report for European Application EP09718357.8 , report completed Oct. 2, 2014 dated Oct. 10, 2014, 5 Pgs.
Extended European Search Report for European Application No. 13847844.1, Search completed Nov. 15, 2016, dated Nov. 24, 2016, 8 pgs.
Extended European Search Report for European Application No. 14754141.1, Search completed Aug. 9, 2016, dated Aug. 18, 2016, 8 pgs.
Extended European Search Report for European Application No. 14876001.0, completed Apr. 21, 2017, dated May 5, 2017, 11 pgs.
Extended European Search Report for European Application No. 20173489.4, Search completed Oct. 13, 2020, dated Oct. 21, 2020, 09 Pgs.
Extended European Search Report for European Application No. 20186252.1, Search completed Jul. 22, 2020, dated Jul. 31, 2020, 09 pgs.
Extended European Search Report for European Application No. 20150741.5 Search completed Jul. 17, 2020 dated Jul. 28, 2020, 12 Pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2009/036069, Report dated Sep. 7, 2010, 6 pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2011/041129, Report dated Dec. 19, 2012, 12 pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2012/043189, Report dated Dec. 23, 2013, 5 pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2012/065136, Report dated May 20, 2014, 6 pgs.
International Preliminary Report on Patentability for International Application PCT/US14/17806, dated Aug. 25, 2015, dated Sep. 3, 2015, 4 pgs.
International Preliminary Report on Patentability for International Application PCT/US2013/052042, dated Feb. 10, 2015, dated Feb. 19, 2015, 10 pgs.
International Preliminary Report on Patentability for International Application PCT/US2013/052562, Report dated Mar. 3, 2015, dated Mar. 12, 2015, 4 pgs.
International Preliminary Report on Patentability for International Application PCT/US2013/052861, Report dated Apr. 21, 2015, dated Apr. 30, 2015, 7 pgs.
International Preliminary Report on Patentability for International Application PCT/US2013/057087, Report dated Mar. 3, 2015, dated Mar. 12, 2015, 10 pgs.
International Preliminary Report on Patentability for International Application PCT/US2014/072707, Report dated Jul. 5, 2016, dated Jul. 14, 2016, 4 pgs.
International Search Report and Written Opinion for International Application No. PCT/US13/52042, International Filing Date Jul. 25, 2013, Search Completed Dec. 13, 2013, dated Dec. 23, 2013, 12 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2009/36069, date completed Jun. 23, 2009, dated Jul. 7, 2009, 8 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2012/65136, International Filing Date Nov. 14, 2012, Search Completed Jan. 29, 2013, dated Feb. 8, 2013, 7 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2013/052562, International Filing Date Jul. 29, 2013, Search Completed Jan. 30, 2014, dated Feb. 7, 2014, 5 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2013/052861, International Filing Date Jul. 31, 2013, Search Completed Jan. 29, 2014, dated Feb. 21, 2014, 8 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2013/057087, International Filing Date Aug. 28, 2013, Search Completed Feb. 27, 2014, dated Mar. 19, 2014, 10 pgs.
International Search Report and Written Opinion for International Application PCT/US14/17806, report completed May 28, 2014, dated Jun. 17, 2014, 5 pgs.
International Search Report and Written Opinion for International Application PCT/US2011/041129, Report completed Sep. 22, 2011; 15 pgs.
International Search Report and Written Opinion for International Application PCT/US2012/43189, International Filing Date Jun. 19, 2012, Report Completed Aug. 12, 2012, dated Sep. 4, 2012, 6 pgs.
International Search Report and Written Opinion for International Application PCT/US2014/072707, Report Completed Apr. 9, 2015, dated Apr. 24, 2015, 5 pgs.
Non-final Office Action for U.S. Appl. No. 16/579,555, dated Feb. 9, 2021, 43 pgs.
“Developing Adobe® AIR™ 1.5 Applications with HTML and Ajax”, 2009 Adobe Systems Incorporated, 439 pgs.
“How to Use the Remote Shutdown Tool to Shut Down and Restart a computer in Windows 2000”, published Jul. 5, 2006, pp. 1-2, printed from http://support.microsoft.com/kb/317371.
“Web Workers”, retrieved from https://web.archive.org/web/20100413170532/http://www.whatwg.org/specs/web-workers/current-work/, 30 pgs.
Bidelman, “The Basics of Web Workers”, retrieved from https://www.html5rocks.com/en/tutorials/workers/basics/, published Jul. 26, 2010, 12 pgs.
Chouwdhary et al., “Model-Driven Dashboards for Business Performance Reporting”, IEEE 2006, pp. 1-10.
Davidyuk et al., “Context-Aware Middleware for Mobile Multimedia Applications”, ACM, Jan. 1, 2004, pp. 213-220.
DLNA, “Overview and Vision White Paper”, Jun. 1, 2004, 16 pgs.
Fensternacher et al., “A Lightweight Framework for Cross-Application User Monitoring”, IEEE 2002, pp. 51-59.
Heino et al., “Developing Semantic Web Applications with the OntoWiki Framework”, Springer, Jul. 10, 2009, pp. 61-77.
Laufer, “A Hike through Post-EJB J2EE Web Application Architecture”, IEEE, Computing in Science & Engineering, Aug. 29, 2005, pp. 80-88.
Lee et al., “Integrating Service Composition Flow with User Interactions”, 2008 IEEE International Symposium on Service-Oriented System Engineering, Dec. 18-19, 2008, pp. 103-108.
Li et al., “iScreen: A Merged Screen of Local System with Remote Applications in a Mobile Cloud Environment”, IEEE 2013, pp. 509-517.
Mikkonen et al., “Towards a Uniform Web Application Platform for Desktop Computers and Mobile Devices”, Sun Microsystems, Inc., Oct. 1, 2008, pp. 1-29.
Oren, “SemperWiki: A Semantic Personal Wiki”, Proceedings of the 2005 International Conference on Semantic Desktop Workshop: Next Generation Information Management D Collaboration Infrastructure, vol. 175, Nov. 6, 2005, pp. 107-122.
Pokki, “Download Free Desktop Apps and games”, Jan. 15, 2013, available at http://web.archive.org/web/20150105201753/https://www.pokki.com/, 3 pgs.
Sen et al., “Feed Me: A Collaboration Alert Filtering System”, ACM 2006, Nov. 8, 2006, 11 pgs.
Stearn, “XULRunner: A New Approach for Developing Rich Internet Applications”, IEEE Computer Society, May 7, 2007, pp. 67-73.
Sugawara et al., “A Novel Intuitive GUI Method for User-friendly Operation”, Knowledge-Based Systems, Apr. 1, 2009, vol. 22, pp. 235-246.
Taleb et al., “Patterns-Oriented Design Applied to Cross-Platform Web-based Interactive Systems”, IEEE, 2007, pp. 122-127.
Related Publications (1)
Number Date Country
20210326397 A1 Oct 2021 US
Provisional Applications (1)
Number Date Country
61694166 Aug 2012 US
Continuations (5)
Number Date Country
Parent 16588270 Sep 2019 US
Child 17322462 US
Parent 15705158 Sep 2017 US
Child 16588270 US
Parent 14259939 Apr 2014 US
Child 15705158 US
Parent 13973654 Aug 2013 US
Child 14259939 US
Parent 13843549 Mar 2013 US
Child 13973654 US