Interface definition language extensions

US9830306B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9830306-B2
Application numberUS-201213658668-A
CountryUS
Kind codeB2
Filing dateOct 23, 2012
Priority dateMay 24, 2011
Publication dateNov 28, 2017
Grant dateNov 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.

First claim

Opening claim text (preview).

The invention claimed is: 1. A system comprising: one or more processors; one or more computer readable storage media comprising executable code, which, when executed by the one or more processors, cause the system to: enable one or more interface definition language (IDL) files to be created, the IDL files describing one or more interfaces between a Web content layout engine and a scripting engine, and the one or more IDL files including: one or more annotation/documentation attributes, one or more global object extension attributes which identify an interface to be grafted as a global object of the scripting engine and extends the global object of the scripting engine, one or more code generation attributes, and one or more API availability attributes; and the one or more IDL files being used as input to an IDL compiler which generates at least one type system initialization function to bind the content layout engine and the scripting engine and generates code configured to effect a bridge between the content layout engine and the scripting engine, wherein the one or more code generation attributes include one or more of the following attributes: attributes that can be used to control security aspects of a property and/or API; attributes that can be used to control default initialization of a property; or attributes that can be used to indicate entry points for associated code, and wherein the attributes that can be used to control default initialization of the property comprise attributes enabling configuration of the property to be locked-down, un-mutable, not enumerable, and/or not configurable. 2. The system of claim 1 , wherein the one or more annotation/documentation attributes include one or more of the following attributes: attributes that can be used for hyper-linking; attributes that can be used to describe, link, and/or point an interface and/or property definition to an associated binary code representation; attributes that can be used to include release information; attributes that can be used to extend a property with an associated attribute name and/or Cascading Style Sheet (CSS) property; attributes that can be used to include testing identification references; or attributes that can be used to include tag identifiers that enable API categorization and search-indexing. 3. The system of claim 2 , wherein the attributes that can be used for hyper-linking include links associated with an interface and/or property definitions such as associated specifications and/or additional documentation on the interface and/or property definitions. 4. The system of claim 2 , wherein the attributes that can be used to include release information comprise one or more of API introduction dates and/or times, modification date and/or times, author, or revision number. 5. The system of claim 1 , wherein the attributes that can be used to control security aspects of a property and/or API include attributes to enable marking of the property or API as safe. 6. The system of claim 1 , wherein the attributes that can be used to control default initialization of the property can enable properties to be configured independent from one another. 7. The system of claim 1 , wherein the attributes that can be used to indicate entry points for associated code include attributes that can be used to describe C++ entry points or indicate default values to be used for optional pass-and parameters. 8. The system of claim 1 , wherein the one or more API availability attributes include one or more of the following attributes: attributes that can be used to enable one or more APIs to be available to a webpage running a first markup language, but unavailable to a webpage running a second different markup language; or an attribute that can be used to mark an API as deprecated. 9. A system comprising: one or more processors; one or more computer readable storage media comprising instructions which, when executed by the one or more processors, cause the system to instantiate a compiler configured to: receive one or more Property Description Language (PDL) files, each PDL file defining one or more layout engine programming objects and associated APIs and defining one or more dispatch objects which enable a scripting engine to lookup and obtain objects from a layout engine object through dynamic binding; receive at least one Interface Definition Language (IDL) file that includes alternate descriptions of at least some of the APIs and objects included in the PDL files and one or more global object extension attributes which identify an interface to be grafted as a global object of the scripting engine and extend the global object of the scripting engine; and process the PDL files and the at least one IDL file to produce a source code file comprising one or more trampoline functions, produce a header file comprising trampoline definitions, and produce a type system initialization file comprising per type initialization functions which bind the layout engine and the scripting engine, the trampoline functions, trampoline definitions, and per type initialization functions configured to enable integration between a Web content layout engine and the scripting engine, wherein the one or more code generation attributes include one or more of the following attributes: attributes that can be used to control security aspects of a property and/or API; attributes that can be used to control default initialization of a property; or attributes that can be used to indicate entry points for associated code, and wherein the attributes that can be used to control default initialization of the property comprise attributes enabling configuration of the property to be locked-down, un-mutable, not enumerable, and/or not configurable. 10. The system of claim 9 , wherein the IDL file is configured to include hierarchical relationship information associated with hierarchical arrangements of APIs. 11. The system of claim 9 , wherein the one or more trampoline functions are configured to enable calls between software modules to be bridged, such as dynamic type system direct functions. 12. The system of claim 9 , wherein the per type initialization functions are configured to enable initialization of one or more types in a type system. 13. The system of claim 9 , wherein the per type initialization functions are configured to enable initialization of one or more types in a type system, the type system comprising a dynamic type system. 14. A computer program product comprising one or more computer-readable storage memories embodying computer-readable instructions which, when executed, implement a method comprising: receiving one or more Property Description Language (PDL) files, each PDL file defining one or more layout engine programming objects and associated APIs and defining one or more dispatch objects which enable a scripting engine to lookup and obtain objects from a layout engine object through dynamic binding; receiving at least one Interface Definition Language (IDL) file that includes alternate descriptions of at least some of the APIs and objects included in the PDL files, the alternate descriptions including one or more of the following attributes: one or more annotation/documentation attributes, one or more global object extension attributes which identify an interface to be grafted as a global object of the scripting engine and extends the global object of the scripting engine, one or more code generation attributes, and one or more API availability attributes; processing the PDL and IDL files to generate a source code file comprising one or more trampoline functions, generate an associated header file com

Assignees

Inventors

Classifications

  • via adapters, e.g. between incompatible applications · CPC title

  • Creation or generation of source code · CPC title

  • Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation · CPC title

  • Command shells · CPC title

  • for providing a confidential data exchange among entities communicating through data packet networks · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9830306B2 cover?
Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are na…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F17/2247. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).