Patents by Inventor Matthew Papakipos

Matthew Papakipos has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9244702
    Abstract: Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.
    Type: Grant
    Filed: May 19, 2015
    Date of Patent: January 26, 2016
    Assignee: Google Inc.
    Inventors: Matthew Papakipos, Antoine Labour, Eric Uhrhane
  • Publication number: 20160004858
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for preserving code safety of application code that is received in a portable, instruction-set-neutral format. One aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a portable code file that is implemented in an instruction-set-neutral and source code independent format; translating the portable code file into native object code for execution on a particular instruction set architecture; generating a native executable for the particular instruction set architecture using the native object code; and validation the native executable using a trusted validator prior to execution of the native executable.
    Type: Application
    Filed: March 16, 2011
    Publication date: January 7, 2016
    Inventors: J. Bradley Chen, Alan A. Donovan, Robert Muth, David C. Sehr, Bennet Yee, Matthew Papakipos, Stephen White
  • Patent number: 9176754
    Abstract: Some embodiments provide a system that executes a web application. During operation, the system loads the web application in a web browser and loads a native code module associated with the web application into a secure runtime environment. Next, the system provides input data associated with the web application to the native code module and processes the input data using the native code module to obtain output data. Finally, the system provides the output data to the web application for use by the web application.
    Type: Grant
    Filed: November 7, 2008
    Date of Patent: November 3, 2015
    Assignee: Google Inc.
    Inventors: Evangelos Kokkevis, Matthew Papakipos, David C. Sehr
  • Patent number: 9075637
    Abstract: Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.
    Type: Grant
    Filed: January 14, 2015
    Date of Patent: July 7, 2015
    Assignee: Google Inc.
    Inventors: Matthew Papakipos, Antoine Labour, Eric Uhrhane
  • Patent number: 9058483
    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.
    Type: Grant
    Filed: May 8, 2008
    Date of Patent: June 16, 2015
    Assignee: Google Inc.
    Inventors: J. Bradley Chen, Matthew T. Harren, Matthew Papakipos, David C. Sehr, Bennet S. Yee
  • Publication number: 20150161383
    Abstract: A system that safely executes a native code module on a computing device. During operation, the system receives the native code module, which is comprised of untrusted native program code expressed using native instructions in the instruction set architecture associated with the computing device. The system then loads the native code module into a secure runtime environment, and proceeds to execute a set of instructions from the native code module in the secure runtime environment. The secure runtime environment enforces code integrity, control flow integrity, and data integrity for the native code module. Furthermore, the secure runtime environment moderates which resources can be accessed by the native code module on the computing device and/or how these resources can be accessed. By executing the native code module in the secure runtime environment, the system facilitates achieving native code performance for untrusted program code without a significant risk of unwanted side effects.
    Type: Application
    Filed: February 13, 2015
    Publication date: June 11, 2015
    Inventors: J. Bradley Chen, Matthew T. Harren, Matthew Papakipos, David C. Sehr, Bennet S. Yee, Gregory Dardyk
  • Patent number: 9009739
    Abstract: Some embodiments provide a system that executes plugin for a web browser. During operation, the system obtains the plugin as a native code module and executes the native code module in a secure runtime environment. Next, the system enables communication between the native code module and the web browser by providing an interface bridge between the native code module and the web browser.
    Type: Grant
    Filed: November 29, 2012
    Date of Patent: April 14, 2015
    Assignee: Google Inc.
    Inventors: Antoine Labour, Matthew Papakipos, Shiki Okasaka, Jeffrey R. Timanus
  • Patent number: 8959632
    Abstract: A system that safely executes a native code module on a computing device. During operation, the system receives the native code module, which is comprised of untrusted native program code expressed using native instructions in the instruction set architecture associated with the computing device. The system then loads the native code module into a secure runtime environment, and proceeds to execute a set of instructions from the native code module in the secure runtime environment. The secure runtime environment enforces code integrity, control flow integrity, and data integrity for the native code module. Furthermore, the secure runtime environment moderates which resources can be accessed by the native code module on the computing device and/or how these resources can be accessed. By executing the native code module in the secure runtime environment, the system facilitates achieving native code performance for untrusted program code without a significant risk of unwanted side effects.
    Type: Grant
    Filed: March 6, 2013
    Date of Patent: February 17, 2015
    Assignee: Google Inc.
    Inventors: J. Bradley Chen, Matthew T. Harren, Matthew Papakipos, David C. Sehr, Bennet S. Yee, Gregory Dardyk
  • Patent number: 8949433
    Abstract: Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: February 3, 2015
    Assignee: Google Inc.
    Inventors: Matthew Papakipos, Antoine Labour, Eric Uhrhane
  • Publication number: 20140359765
    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.
    Type: Application
    Filed: August 19, 2014
    Publication date: December 4, 2014
    Inventors: J. Bradley Chen, Matthew T. Harren, Matthew Papakipos, David C. Sehr, Bennet S. Yee
  • Publication number: 20140310315
    Abstract: One embodiment provides a system that facilitates the execution of a web application. During operation, the system allocates a storage space on one or more storage devices for use by the web application. Next, the system creates, for the web application, a private filesystem comprising a private root directory within the storage space. Finally, the system enables access to the private filesystem for the web application through the private root directory in a manner that does not allow access to a host filesystem associated with the one or more storage devices from the web application.
    Type: Application
    Filed: July 7, 2014
    Publication date: October 16, 2014
    Inventors: Eric Uhrhane, Matthew Papakipos
  • Patent number: 8806019
    Abstract: Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.
    Type: Grant
    Filed: January 6, 2014
    Date of Patent: August 12, 2014
    Assignee: Google Inc.
    Inventors: Matthew Papakipos, Antoine Labour, Eric Uhrhane
  • Patent number: 8797339
    Abstract: Some embodiments provide a system that executes a web application. During operation, the system loads the web application in a web browser and loads a native code module associated with the web application into a secure runtime environment. Next, the system writes a set of rendering commands to a command buffer using the native code module and concurrently reads the rendering commands from the command buffer. Finally, the system renders an image for use by the web application by executing the rendering commands using a graphics-processing unit (GPU).
    Type: Grant
    Filed: September 25, 2012
    Date of Patent: August 5, 2014
    Assignee: Google Inc.
    Inventors: Antoine Labour, Matthew Papakipos
  • Patent number: 8799928
    Abstract: A system includes a service registry (SR) including respective entries for service modules (SM), each entry including data identifying the respective SM and at least one system service (SS) provided by the respective SM, a secure runtime environment (SRE) to execute a first native code module (NCM) according to a first security policy (SP) that specifies permissions for the first NCM to access a SS, and a discovery service (DS) to receive a request for access to a first SS from the first NCM, examine entries of the SR to identify a first SM that provides the first SS, examine the first SP to determine whether the first SP restricts access to the first SS from the first NCM, and select the first SM to provide the first system service to the first NCM if the first SP does not restrict access to the first SS from the first NCM.
    Type: Grant
    Filed: August 13, 2012
    Date of Patent: August 5, 2014
    Assignee: Google Inc.
    Inventors: Matthew Papakipos, Antoine Labour
  • Patent number: 8797337
    Abstract: One embodiment provides a system that facilitates the execution of a web application. During operation, the system loads a native code module that includes a scenegraph renderer into a secure runtime environment. Next, the system uses the scenegraph renderer to create a scenegraph from a graphics model associated with the web application and generate a set of rendering commands from the scenegraph. The system then writes the rendering commands to a command buffer and reads the rendering commands from the command buffer. Finally, the system uses the rendering commands to render, for the web application, an image corresponding to the graphics model by executing the rendering commands using a graphics-processing unit (GPU).
    Type: Grant
    Filed: July 2, 2009
    Date of Patent: August 5, 2014
    Assignee: Google Inc.
    Inventors: Antoine Labour, Matthew Papakipos
  • Patent number: 8775487
    Abstract: One embodiment provides a system that facilitates the execution of a web application. During operation, the system allocates a storage space on one or more storage devices for use by the web application. Next, the system creates, for the web application, a private filesystem comprising a private root directory within the storage space. Finally, the system enables access to the private filesystem for the web application through the private root directory in a manner that does not allow access to a host filesystem associated with the one or more storage devices from the web application.
    Type: Grant
    Filed: June 12, 2013
    Date of Patent: July 8, 2014
    Assignee: Google Inc.
    Inventors: Eric Uhrhane, Matthew Papakipos
  • Patent number: 8723875
    Abstract: Some embodiments of the present invention provide a system that renders graphics in a computing system that includes a plugin associated with a web browser in the computing system and a web application configured to execute in the web browser. During operation, the web application specifies a graphics model and provides the graphics model to the plugin. Next, the plugin generates a graphics-processing unit (GPU) command stream from the graphics model. Finally, the plugin sends the GPU command stream to a GPU of the computing system, which renders an image corresponding to the graphics model.
    Type: Grant
    Filed: January 3, 2013
    Date of Patent: May 13, 2014
    Assignee: Google Inc.
    Inventors: Robin Green, Matthew Papakipos, Evangelos Kokkevis, Gregg Tavares
  • Patent number: 8626919
    Abstract: Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.
    Type: Grant
    Filed: November 7, 2008
    Date of Patent: January 7, 2014
    Assignee: Google Inc.
    Inventors: Matthew Papakipos, Antoine Labour, Eric Uhrhane
  • Publication number: 20130275471
    Abstract: One embodiment provides a system that facilitates the execution of a web application. During operation, the system allocates a storage space on one or more storage devices for use by the web application. Next, the system creates, for the web application, a private filesystem comprising a private root directory within the storage space. Finally, the system enables access to the private filesystem for the web application through the private root directory in a manner that does not allow access to a host filesystem associated with the one or more storage devices from the web application.
    Type: Application
    Filed: June 12, 2013
    Publication date: October 17, 2013
    Inventors: Eric Uhrhane, Matthew Papakipos
  • Publication number: 20130185787
    Abstract: A system that safely executes a native code module on a computing device. During operation, the system receives the native code module, which is comprised of untrusted native program code expressed using native instructions in the instruction set architecture associated with the computing device. The system then loads the native code module into a secure runtime environment, and proceeds to execute a set of instructions from the native code module in the secure runtime environment. The secure runtime environment enforces code integrity, control flow integrity, and data integrity for the native code module. Furthermore, the secure runtime environment moderates which resources can be accessed by the native code module on the computing device and/or how these resources can be accessed. By executing the native code module in the secure runtime environment, the system facilitates achieving native code performance for untrusted program code without a significant risk of unwanted side effects.
    Type: Application
    Filed: March 6, 2013
    Publication date: July 18, 2013
    Inventors: J. Bradley Chen, Matthew T. Harren, Matthew Papakipos, David C. Sehr, Bennet S. Yee, Gregory Dardyk