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: 11893199Abstract: 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: GrantFiled: June 10, 2020Date of Patent: February 6, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Michael J. Ens, Alex Glover
-
Publication number: 20220391231Abstract: 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: ApplicationFiled: August 8, 2022Publication date: December 8, 2022Applicant: Microsoft Technology Licensing, LLCInventors: 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: 11442599Abstract: 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: GrantFiled: September 10, 2019Date of Patent: September 13, 2022Assignee: Microsoft Technology Licensing, LLCInventors: 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: 20210389846Abstract: 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: ApplicationFiled: June 10, 2020Publication date: December 16, 2021Inventors: Michael J. Ens, Alex Glover
-
Patent number: 11036365Abstract: 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: GrantFiled: June 7, 2019Date of Patent: June 15, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Michael J. Ens, Alex Glover, Stefan F. Smolen
-
Patent number: 11010212Abstract: 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: GrantFiled: June 13, 2019Date of Patent: May 18, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Tony E. Schreiner, Michael J. Ens, Clifton J. Hebert, Corey M. Bloodstein, Christian Fortini
-
Publication number: 20200394082Abstract: 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: ApplicationFiled: June 13, 2019Publication date: December 17, 2020Inventors: Tony E. Schreiner, Michael J. Ens, Clifton J. Hebert, Corey M. Bloodstein, Christian Fortini
-
Publication number: 20200387272Abstract: 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: ApplicationFiled: June 7, 2019Publication date: December 10, 2020Inventors: Michael J. Ens, Alex Glover, Stefan F. Smolen
-
Publication number: 20200387273Abstract: 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: ApplicationFiled: September 10, 2019Publication date: December 10, 2020Inventors: 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: 10503371Abstract: 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: GrantFiled: April 4, 2017Date of Patent: December 10, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
-
Patent number: 9747004Abstract: 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: GrantFiled: October 29, 2013Date of Patent: August 29, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Michael J. Patten, Michael J. Ens, Ashmi S. Bhanushali, Phu Hoang Le, Shawn M. Woods
-
Publication number: 20170205978Abstract: 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: ApplicationFiled: April 4, 2017Publication date: July 20, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
-
Patent number: 9658747Abstract: 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: GrantFiled: October 1, 2013Date of Patent: May 23, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
-
Patent number: 9588679Abstract: 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: GrantFiled: September 12, 2011Date of Patent: March 7, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Matthew A. Rakow, Sergey Z. Malkin, Michael J. Ens, Yining Chen, Christian Fortini, Sandra G. Roberts, Michael J. Patten, Nicholas R. Waggoner
-
Patent number: 9430124Abstract: 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: GrantFiled: January 13, 2014Date of Patent: August 30, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Tony E. Schreiner, Jeremiah S. Epling, Helen E. Drislane, Michael J. Ens
-
Publication number: 20150121194Abstract: 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: ApplicationFiled: October 29, 2013Publication date: April 30, 2015Applicant: Microsoft CorporationInventors: Michael J. Patten, Michael J. Ens, Ashmi S. Bhanushali, Phu Hoang Le, Shawn M. Woods
-
Publication number: 20150095758Abstract: 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: ApplicationFiled: October 1, 2013Publication date: April 2, 2015Applicant: Microsoft CorporationInventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
-
Publication number: 20150095838Abstract: 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: ApplicationFiled: October 1, 2013Publication date: April 2, 2015Applicant: Microsoft CorporationInventors: Jacob S. Rossi, Michael J. Patten, Michael J. Ens
-
Publication number: 20140372903Abstract: 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: ApplicationFiled: June 14, 2013Publication date: December 18, 2014Inventors: Matthew Allen Rakow, Krishnan Menon, Michael J. Ens, Jonathan Wills
-
Publication number: 20140372923Abstract: 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: ApplicationFiled: June 14, 2013Publication date: December 18, 2014Inventors: 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