Patents by Inventor Michael J. Ens

Michael J. Ens 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: 11893199
    Abstract: Embodiments described herein enable a browser to display content of a web page that is incompatible therewith. When such a page is to be traversed, the first browser causes a virtual machine that executes an instance of a second browser with which the page is compatible to be instantiated. The browsers communicate via communication channels utilized to share information therebetween. For instance, the first browser provides a URL of the page to the second browser for traversal thereby. Graphics information corresponding to the page is provided to the first browser. The first browser generates an image corresponding to the page based on the graphics information and renders the image in a tab of the first browser. This enables a visual experience for the user where it appears that the page is being rendered by the first browser when it is in fact being rendered by the second browser.
    Type: Grant
    Filed: June 10, 2020
    Date of Patent: February 6, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Michael J. Ens, Alex Glover
  • Publication number: 20220391231
    Abstract: An integrated approach is provided to running web applications with various compatibilities that do not require third-party extensions or sacrifice user experience. When a page of an application incompatible with a first browser is to be executed, an instance of a second browser with which the page is compatible is separately invoked and/or executed without opening a window for that second browser. Instead, the second browser opens a page within the window of the first browser. Moreover, rendering and/or contextual information for a page opened via the second browser is provided to the first browser. Such information is utilized by the first browser to provide a visual experience to the user in which the web page is being hosted by the first browser, even though it is in fact being hosted by the second browser.
    Type: Application
    Filed: August 8, 2022
    Publication date: December 8, 2022
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Adrian Bogdan Guta, Joshua P.H. Tseng, Stefanie K. McCallum, Navin Agarwal, Corey M. Bloodstein, Thomas W. Bolds, Venkatraman V. Kudallur, Fredric W. Pullen, III, Tony E. Schreiner, Michael J. Ens, Benjamin J. Bamesberger, Ning Zhong, Alex Glover, Andrew M. Lake, Clifton J. Hebert, Emily K. Andrews, Stefan F. Smolen, Todd A. Sahl, Wenming Ju, Xiaoying Huang
  • Patent number: 11442599
    Abstract: An integrated approach is provided to running web applications with various compatibilities that do not require third-party extensions or sacrifice user experience. When a page of an application incompatible with a first browser is to be executed, an instance of a second browser with which the page is compatible is separately invoked and/or executed without opening a window for that second browser. Instead, the second browser opens a page within the window of the first browser. Moreover, rendering and/or contextual information for a page opened via the second browser is provided to the first browser. Such information is utilized by the first browser to provide a visual experience to the user in which the web page is being hosted by the first browser, even though it is in fact being hosted by the second browser.
    Type: Grant
    Filed: September 10, 2019
    Date of Patent: September 13, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adrian Bogdan Guta, Joshua P. H. Tseng, Stefanie K. McCallum, Navin Agarwal, Corey M. Bloodstein, Thomas W. Bolds, Venkatraman V. Kudallur, Fredric W. Pullen, III, Tony E. Schreiner, Michael J. Ens, Benjamin J. Bamesberger, Ning Zhong, Alex Glover, Andrew M. Lake, Clifton J. Hebert, Emily K. Andrews, Stefan F. Smolen, Todd A. Sahl, Wenming Ju, Xiaoying Huang
  • Publication number: 20210389846
    Abstract: Embodiments described herein enable a browser to display content of a web page that is incompatible therewith. When such a page is to be traversed, the first browser causes a virtual machine that executes an instance of a second browser with which the page is compatible to be instantiated. The browsers communicate via communication channels utilized to share information therebetween. For instance, the first browser provides a URL of the page to the second browser for traversal thereby. Graphics information corresponding to the page is provided to the first browser. The first browser generates an image corresponding to the page based on the graphics information and renders the image in a tab of the first browser. This enables a visual experience for the user where it appears that the page is being rendered by the first browser when it is in fact being rendered by the second browser.
    Type: Application
    Filed: June 10, 2020
    Publication date: December 16, 2021
    Inventors: Michael J. Ens, Alex Glover
  • Patent number: 11036365
    Abstract: Methods, systems, and computer program products are provided for detecting a browser hang condition and causing the browser to enter into a mitigation state. For instance, a window or tab of the browser executes via a first thread of the browser, and third-party code executes via a second thread of the browser. The first thread issues a hang resistance message to the second thread and waits for a response from the second thread. The second thread processes the hang resistance message after processing all other messages in its queue. Thus, if the first thread receives the response, the first thread determines that the second thread has not entered into a hang condition. However, if the first thread does not receive the response, the first thread determines that the second thread has entered into a hang condition and subsequently causes the browser to enter the mitigation state.
    Type: Grant
    Filed: June 7, 2019
    Date of Patent: June 15, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Michael J. Ens, Alex Glover, Stefan F. Smolen
  • Patent number: 11010212
    Abstract: Methods, systems, and computer program products are described herein for supporting and negotiating multiple (e.g. static) application programming interface (API) versions across multiple products. Interoperable programs, such as different web browser applications, may provide simultaneous support for multiple versions of an API. An API and program-API adapters may be versioned to manage compatibility for asynchronously developed programs and APIs that may be asynchronously installed and updated in many computing environments. An adapter may comprise a versioned portion of program source code. In-development program code and APIs may be forked to create versioned snapshots of stable interfaces. An “in-development” version of an API and adapters may coexist with versioned APIs and adapters. Compatible version negotiation may occur, for example, during process launch. Negotiation may activate the highest API version supported by both programs.
    Type: Grant
    Filed: June 13, 2019
    Date of Patent: May 18, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Tony E. Schreiner, Michael J. Ens, Clifton J. Hebert, Corey M. Bloodstein, Christian Fortini
  • Publication number: 20200394082
    Abstract: Methods, systems, and computer program products are described herein for supporting and negotiating multiple (e.g. static) application programming interface (API) versions across multiple products. Interoperable programs, such as different web browser applications, may provide simultaneous support for multiple versions of an API. An API and program-API adapters may be versioned to manage compatibility for asynchronously developed programs and APIs that may be asynchronously installed and updated in many computing environments. An adapter may comprise a versioned portion of program source code. In-development program code and APIs may be forked to create versioned snapshots of stable interfaces. An “in-development” version of an API and adapters may coexist with versioned APIs and adapters. Compatible version negotiation may occur, for example, during process launch. Negotiation may activate the highest API version supported by both programs.
    Type: Application
    Filed: June 13, 2019
    Publication date: December 17, 2020
    Inventors: Tony E. Schreiner, Michael J. Ens, Clifton J. Hebert, Corey M. Bloodstein, Christian Fortini
  • Publication number: 20200387272
    Abstract: Methods, systems, and computer program products are provided for detecting a browser hang condition and causing the browser to enter into a mitigation state. For instance, a window or tab of the browser executes via a first thread of the browser, and third-party code executes via a second thread of the browser. The first thread issues a hang resistance message to the second thread and waits for a response from the second thread. The second thread processes the hang resistance message after processing all other messages in its queue. Thus, if the first thread receives the response, the first thread determines that the second thread has not entered into a hang condition. However, if the first thread does not receive the response, the first thread determines that the second thread has entered into a hang condition and subsequently causes the browser to enter the mitigation state.
    Type: Application
    Filed: June 7, 2019
    Publication date: December 10, 2020
    Inventors: Michael J. Ens, Alex Glover, Stefan F. Smolen
  • Publication number: 20200387273
    Abstract: An integrated approach is provided to running web applications with various compatibilities that do not require third-party extensions or sacrifice user experience. When a page of an application incompatible with a first browser is to be executed, an instance of a second browser with which the page is compatible is separately invoked and/or executed without opening a window for that second browser. Instead, the second browser opens a page within the window of the first browser. Moreover, rendering and/or contextual information for a page opened via the second browser is provided to the first browser. Such information is utilized by the first browser to provide a visual experience to the user in which the web page is being hosted by the first browser, even though it is in fact being hosted by the second browser.
    Type: Application
    Filed: September 10, 2019
    Publication date: December 10, 2020
    Inventors: Adrian Bogdan Guta, Joshua P.H. Tseng, Stefanie K. McCallum, Navin Agarwal, Corey M. Bloodstein, Thomas W. Bolds, Venkatraman V. Kudallur, Fredric W. Pullen, III, Tony E. Schreiner, Michael J. Ens, Benjamin J. Bamesberger, Ning Zhong, Alex Glover, Andrew M. Lake, Clifton J. Hebert, Emily K. Andrews, Stefan F. Smolen, Todd A. Sahl, Wenming Ju, Xiaoying Huang
  • Patent number: 10503371
    Abstract: A Web application displays Web content in a user interface (UI) tab having multiple associated virtual tabs. The multiple associated virtual tabs can include a visible tab hosting Web content that is currently visible, one or more hidden tabs each hosting Web content that is not currently visible, and optionally one or more empty tabs each hosting no Web content or only primitive Web content. For each hidden tab, the Web content hosted in the hidden tab is suspended, which refers to ceasing execution of instructions in and/or other operations performed by the Web content. For example, audio/video playback is paused, execution of script instructions ceases, and so forth.
    Type: Grant
    Filed: April 4, 2017
    Date of Patent: December 10, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
  • Patent number: 9747004
    Abstract: A Web application maintains a record of Web content that has been displayed by the Web application. The user can navigate to different previously displayed Web content by providing various user inputs, such as a swipe across a touchscreen. The Web application detects when a user input has a threshold likelihood of being a navigation input, such as when the user swipes at least a threshold amount across a touchscreen. When a user input has a threshold likelihood of being a navigation input, the Web application begins rendering in an empty tab the Web content that would be navigated to if the user input were a navigation input, the empty tab becoming a prerender tab. If the user continues and the user input results in a navigation input navigating to the Web content rendered in the prerender tab, then the Web application switches to displaying the prerender tab.
    Type: Grant
    Filed: October 29, 2013
    Date of Patent: August 29, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Michael J. Patten, Michael J. Ens, Ashmi S. Bhanushali, Phu Hoang Le, Shawn M. Woods
  • Publication number: 20170205978
    Abstract: A Web application displays Web content in a user interface (UI) tab having multiple associated virtual tabs. The multiple associated virtual tabs can include a visible tab hosting Web content that is currently visible, one or more hidden tabs each hosting Web content that is not currently visible, and optionally one or more empty tabs each hosting no Web content or only primitive Web content. For each hidden tab, the Web content hosted in the hidden tab is suspended, which refers to ceasing execution of instructions in and/or other operations performed by the Web content. For example, audio/video playback is paused, execution of script instructions ceases, and so forth.
    Type: Application
    Filed: April 4, 2017
    Publication date: July 20, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
  • Patent number: 9658747
    Abstract: A Web application displays Web content in a user interface (UI) tab having multiple associated virtual tabs. The multiple associated virtual tabs can include a visible tab hosting Web content that is currently visible, one or more hidden tabs each hosting Web content that is not currently visible, and optionally one or more empty tabs each hosting no Web content or only primitive Web content. For each hidden tab, the Web content hosted in the hidden tab is suspended, which refers to ceasing execution of instructions in and/or other operations performed by the Web content. For example, audio/video playback is paused, execution of script instructions ceases, and so forth.
    Type: Grant
    Filed: October 1, 2013
    Date of Patent: May 23, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
  • Patent number: 9588679
    Abstract: Various embodiments utilize a layout viewport and a visual viewport separate from the layout viewport. The layout viewport is utilized for such things as page layout operations and reporting Document Object Model values to script. The layout viewport can be thought of as an initial rectangle which is equivalent in size to the initial containing block. The initial containing block is a containing block that contains web content that is initially visible to the user. The visual viewport is separate from the layout viewport and is allowed to be freely manipulated relative to the layout viewport. For example, the visual viewport may “push” the layout viewport around when it collides with the layout viewport boundaries. The visual viewport can be thought of as the rectangle that is visible to the user.
    Type: Grant
    Filed: September 12, 2011
    Date of Patent: March 7, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Matthew A. Rakow, Sergey Z. Malkin, Michael J. Ens, Yining Chen, Christian Fortini, Sandra G. Roberts, Michael J. Patten, Nicholas R. Waggoner
  • Patent number: 9430124
    Abstract: Techniques to facilitate finding a tab or tabs in a user interface window are described. Various embodiments present tabs, individual tabs being associated with an opened document such as a web page or an activity, in a user interface window and automatically group at least some of the tabs together in a visually distinctive way. In at least some embodiments, this grouping is performed in response to a user interacting with the tabs in a particular way. For instance, a user may cause a tab to be created or moved within the user interface window such that the tab is grouped with a tab group or ungrouped from a tab group. Furthermore, one or more embodiments provide for certain tab-related actions, such as selecting an active tab and changing a display of a title of a tab, which can be performed in a manner based at least in part on this grouping.
    Type: Grant
    Filed: January 13, 2014
    Date of Patent: August 30, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Tony E. Schreiner, Jeremiah S. Epling, Helen E. Drislane, Michael J. Ens
  • Publication number: 20150121194
    Abstract: A Web application maintains a record of Web content that has been displayed by the Web application. The user can navigate to different previously displayed Web content by providing various user inputs, such as a swipe across a touchscreen. The Web application detects when a user input has a threshold likelihood of being a navigation input, such as when the user swipes at least a threshold amount across a touchscreen. When a user input has a threshold likelihood of being a navigation input, the Web application begins rendering in an empty tab the Web content that would be navigated to if the user input were a navigation input, the empty tab becoming a prerender tab. If the user continues and the user input results in a navigation input navigating to the Web content rendered in the prerender tab, then the Web application switches to displaying the prerender tab.
    Type: Application
    Filed: October 29, 2013
    Publication date: April 30, 2015
    Applicant: Microsoft Corporation
    Inventors: Michael J. Patten, Michael J. Ens, Ashmi S. Bhanushali, Phu Hoang Le, Shawn M. Woods
  • Publication number: 20150095758
    Abstract: A Web application displays Web content in a user interface (UI) tab. Different Web content can be displayed at different times, and Web content that is not displayed can be suspended, which refers to ceasing performance of operations and/or actions by the Web content. The Web content has various different characteristics, and a determination is made based on these characteristics as to whether suspension of particular Web content would yield undesirable results (and thus the Web content is not compatible with being suspended) or whether suspension of the particular Web content would not yield undesirable results (and thus the Web content is compatible with being suspended). Once suspended, the suspended Web content has an associated lifetime. Various different lifetime criteria are used to determine when to suspended Web content is to no longer be maintained, and Web content that is to no longer be maintained is disposed of.
    Type: Application
    Filed: October 1, 2013
    Publication date: April 2, 2015
    Applicant: Microsoft Corporation
    Inventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
  • Publication number: 20150095838
    Abstract: A Web application displays Web content in a user interface (UI) tab having multiple associated virtual tabs. The multiple associated virtual tabs can include a visible tab hosting Web content that is currently visible, one or more hidden tabs each hosting Web content that is not currently visible, and optionally one or more empty tabs each hosting no Web content or only primitive Web content. For each hidden tab, the Web content hosted in the hidden tab is suspended, which refers to ceasing execution of instructions in and/or other operations performed by the Web content. For example, audio/video playback is paused, execution of script instructions ceases, and so forth.
    Type: Application
    Filed: October 1, 2013
    Publication date: April 2, 2015
    Applicant: Microsoft Corporation
    Inventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
  • Publication number: 20140372903
    Abstract: In one or more embodiments, a hit test thread which is separate from the main thread, e.g. the user interface thread, is utilized for hit testing on web content. Using a separate thread for hit testing can allow targets to be quickly ascertained. In cases where the appropriate response is handled by a separate thread, such as a manipulation thread that can be used for touch manipulations such as panning and pinch zooming, manipulation can occur without blocking on the main thread. This results in the response time that is consistently quick even on low-end hardware over a variety of scenarios.
    Type: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Matthew Allen Rakow, Krishnan Menon, Michael J. Ens, Jonathan Wills
  • Publication number: 20140372923
    Abstract: High performance touch drag and drop are described. In embodiments, a multi-threaded architecture is implemented to include at least a manipulation thread and an independent hit test thread. The manipulation thread is configured to receive one or more messages associated with an input and send data associated with the messages to the independent hit test thread. The independent hit test thread is configured to perform an independent hit test to determine whether the input hit an element that is eligible for a particular action, and identify an interaction model associated with the input. The independent hit test thread also sends an indication of the interaction model to the manipulation thread to enable the manipulation thread to detect whether the particular action is triggered.
    Type: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Jacob S. Rossi, John Wesley Terrell, Fei Xiong, Michael J. Ens, Xiao Tu, Nicolas J. Brun, Ming Huang, Jan-Kristian Markiewicz, Alan William Stephenson, Michael John Patten, Jon Gabriel Clapper