Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented method for monitoring rendering of content by a web browser residing on a computing device, comprising: receiving, by a browser agent, a given notification pertaining to a document object model for the content rendered by the web browser, where the browser agent is injected into the content displayed by the web browser and the given notification includes one or more changes to the document object model; in response to receiving the given notification, processing, by the browser agent, the given notification by determining current time, extracting the one or more changes from the given notification, associating the current time with each of the one or more changes extracted from the given notification, and creating a mutation entry for each of the one or more changes, where the mutation entry includes data describing the change; detecting, by the browser agent, end of content processing by the web browser; in response to detecting the end of content processing, gathering process visualization data by assigning, by the browser agent, a unique identifier to each element of the document object model identified in the one or more changes; assigning, by the browser agent, a unique identifier to each mutation entry, where the unique identifier assigned to a given mutation entry is the same unique identifier that was assigned to the element of the document object model affected by the change described in the given mutation entry; capturing, by the browser agent, a text representation of the document object model, where the text representation includes unique identifiers that were assigned by the browser agent to corresponding element of the document object model; and adding, by the browser agent, the mutation entries and the text representation of the document object model to the data transfer record; sending the data transfer record by the browser agent over a network to a monitoring node, where the monitoring node resides on a server computer and the server computer is located remotely from the computing device; and rendering, by the monitoring node, the process visualization data on a display associated with the server computer by generating a first document object model from the text representation, where each element of the first document object model has a unique identifier; retrieving mutation entries from the data transfer record based on time at which the mutation described by the mutation entry occurred and in order from most recent to oldest; and for each mutation entry retrieved from the data transfer record, inversely applying a change described in a given mutation entry to a corresponding element of the first document object model in part by matching unique identifier assigned to the given mutation entry with the unique identifier assigned to the corresponding element of the first document object model, thereby yielding a second document object model.
2. The method of claim 1 wherein receiving the given notification further comprises registering with the web browser to receive notifications pertaining to the document object model.
3. The method of claim 1 wherein the one or more changes to the document object model are further defined as elements added to the document object model, elements removed from the document object model, and updates to values of attributes of elements in the document object model.
4. The method of claim 1 wherein detecting the end of content processing further comprises detecting a user interaction with the content rendered by the web browser, where the user interaction is interpreted as end of content processing.
5. The method of claim 1 wherein detecting the end of content processing further comprises sending, by the browser agent, a message to a second browser agent, where the message includes a time content processing completed, the browser agent is deployed in a first frame and the second browser agent is deployed in a second frame having a parental relationship with the first frame; receiving, by the second browser agent, the message from the browser agent; and updating, by the second browser agent, a visually complete time maintained by the second browser agent with the time content processing completed when the time content processing completed is later than the visually complete time.
6. The method of claim 1 wherein detecting the end of content processing further comprises determining an amount of time since a change to the document object model, comparing the amount of time to a threshold, where the amount of time since the change to the document object model that is greater than the threshold is interpreted as the end of content processing.
7. The method of claim 1 wherein detecting the end of content processing further comprises registering with the web browser to receive an event indicative of an unload of the content.
8. The method of claim 1 further comprises retrieving, by the browser agent, data describing resources used to render content currently rendered by the web browser; determining, by the browser agent, transaction context data that identifies a transaction execution which caused the rendering of the content; determining, by the browser agent, a most recent time at which a resource load or content mutation changed a visible portion of the content currently rendered by the web browser; and creating, by the browser agent, the data transfer record, where the data transfer record includes the transaction context data, the data describing resources used to render the content and the most recent time at which the resource load or content mutation changed a portion of the content.
9. A computer-implemented method for monitoring rendering of content by a web browser residing on a computing device, comprising: receiving, by a browser agent, a given notification pertaining to a document object model for the content rendered by the web browser, where the browser agent is injected into the content displayed by the web browser and the given notification includes one or more changes to the document object model; in response to receiving the given notification, processing, by the browser agent, the given notification by determining current time, extracting the one or more changes from the given notification, associating the current time with each of the one or more changes extracted from the given notification, and creating a mutation entry for each of the one or more changes, where the mutation entry includes data describing the change; detecting, by the browser agent, end of content processing by the web browser; in response to detecting the end of content processing, gathering process visualization data by assigning, by the browser agent, a unique identifier to each element of the document object model identified in the one or more changes; assigning, by the browser agent, a unique identifier to each mutation entry, where the unique identifier assigned to a given mutation entry is the same unique identifier that was assigned to the element of the document object model affected by the change described in the given mutation entry; capturing, by the browser agent, a text representation of the content, where the text representation includes unique identifiers for each element of the document object model; and adding, by the browser agent, the mutation entries and the text representation of the content to the data transfer record; and sending the data transfer record by the browser agent over a network to a monitoring node, where the monitoring node resides on a server computer and the server computer is located remotely from the computing device; sorting, by the monitoring node, chronologically update events received in the data transfer record, where each update record specifies position and size of the display area affected by corresponding change to the document object model; determining, by the monitoring node, a percentage of a visible content area having content that is rendered by the web browser at different time increments during rendering of content, where the percentage is based on the update events received in the data transfer record and defines a time series; determining, by the monitoring node, a function that represents the time series; computing, by the monitoring node, a mathematical integral of the function from a start of the rendering process to an end of the rendering process; computing, by the monitoring node, a value for overall area by multiplying the visible content area by a render time; and computing, by the monitoring node, a performance index by subtracting the mathematical integral from the value for the overall area.
10. The method of claim 9 wherein rendering of the process visualization data includes: identifying times during rendering of the content at which significant changes occur in the rendered content; setting current version of the content at most recent of the identified times as the text representation of the content; for each identified time, identifying mutation entries and resource loads with a time later than the identified time; for each identified time, inversely applying the identified mutation entries and resource loads to the current version of the content to yield a version of the content at the identified time; for each identified time, storing the version of the content at the identified time, along with the identified time, for subsequent visualization; and for each identified time, setting the current version of the content to the version of content at the identified time.
11. The method of claim 9 wherein rendering of the process visualization data includes: maintaining a listing of resources used for the rendering process; detecting that the given notification for the one or more changes to the document object model increases visual completeness of the content displayed by the web browser; fetching a given resource entry for a given resource from the listing of resources, where the given resource entry corresponds to the one or more changes to the document object model; and setting an indicator in the given resource entry to a value indicating that the given resource is relevant to the content displayed by the web browser.
12. The method of claim 10 wherein the rendering of the process visualization further includes, for the version of the content at the identified time, identifying elements of the version of the content corresponding to the identified mutation entries using the unique identifiers assigned to the elements.
13. The method of claim 10 wherein rendering of the process visualization data further includes, for the version of the content at the identified time, identifying mutation entries and resource loads that are between the identified time and next earlier identified time of the content version; and marking the identified mutations and resource loads as changes of the content between the next earlier identified time and the identified time of the content version.
14. The method of claim 1 wherein the one or more changes to the document object model are caused by one of loading new content by the web browser or a user interaction with the content rendered by the web browser, such that the user interaction does not cause an unload of the content rendered by the web browser.
15. A system for monitoring content rendered by a web browser residing on a computing device, comprising: a processor in the computing device; a browser agent injected in the content displayed by the web browser and executed by the processor of the computing device, where the browser agent includes: a DOM processor configured to receive a given notification pertaining to a document object model for the content rendered by the web browser and, in response to receiving the given notification, processing the given notification by determining current time, extracting the one or more changes from the given notification, associating the current time with each of the one or more changes extracted from the given notification, and creating a mutation entry for each of the one or more changes, where the mutation entry includes data describing the change; an end-of-content detector configured to detect end of content processing by the web browser; a data analyzer, in response to detecting the end of content processing, gathers process visualization data by assigning, by the browser agent, a unique identifier to each element of the document object model identified in the one or more changes; assigning, by the browser agent, a unique identifier to each mutation entry, where the unique identifier assigned to a given mutation entry is the same unique identifier that was assigned to the element of the document object model affected by the change described in the given mutation entry; capturing, by the browser agent, a text representation of the document object model, where the text representation includes unique identifiers for each element of the document object model; and adding, by the browser agent, the mutation entries and the text representation of the document object model to the data transfer record; and sends the data transfer record over a network to a monitoring node, where the monitoring node resides on a server computer and the server computer is located remotely from the computing device; wherein the monitoring node renders the process visualization data by generating a first document object model from the text representation of the content, where each element of the first document object model has a unique identifier; retrieving mutation entries from the data transfer record based on time at which the mutation described by the mutation entry occurred and in order from most recent to oldest; and for each mutation entry retrieved from the data transfer record, inversely applying a change described in a given mutation entry to a corresponding element of the first document object model in part by matching unique identifier assigned to the given mutation entry with the unique identifier assigned to the corresponding element of the first document object model, thereby yielding a second document object model.
Unknown
November 23, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.