PerformanceGuard Web Timer Extension
The PerformanceGuard Web Timer is a browser extension for Google Chrome and Microsoft Edge. It measures how long web pages take to load and render, as the user experiences it. It sends those measurements to the PerformanceGuard agent on the same computer. The agent then reports them to PerformanceGuard as data for your Chromium-type Web Applications.
This page explains how the extension works. To deploy it, see Configure Chromium based Browser Extensions.
Extension variants
Section titled “Extension variants”There are two variants of the extension. The agent installs one of them, depending on the agent configuration group settings:
| Variant | When the agent installs it | What the user sees |
|---|---|---|
| PerformanceGuard Web Timer - no pop up | Enable Chrome/Edge Extension as Local Machine Policy is selected, and Enable Chrome Extension Details isn’t selected. This is the default. | The variant is intended to run without showing measurement details to the user. |
| PerformanceGuard Web Timer | Both Enable Chrome/Edge Extension as Local Machine Policy and Enable Chrome Extension Details are selected. | The measured time on the extension icon, a pop-up with a timing chart, and an options page. |
Both settings are in the agent configuration group. See Agent Configuration Group Settings.
What the extension measures
Section titled “What the extension measures”The extension watches every page the user opens over HTTP or HTTPS. It only reports a measurement to PerformanceGuard when the page matches a Chromium web application:
- The page address contains the web application’s Host value.
- The page path, which is everything after the first
/, matches one of the tag regular expressions.
For each matching page, the extension measures two parts:
- Content load: the time from the first request for page content until the last response arrives.
- Rendering: the time the browser spends building the page after the content arrives.
The total load time is the sum of the two. The web application’s tag name, combined with the part of the path that the regular expression extracts, identifies the measurement in PerformanceGuard.
When a measurement ends
Section titled “When a measurement ends”A page is considered loaded when no new requests start for a set period. The web application sets that period with two values:
- Initial Timeout (ms): the wait period the first time the page loads. If the value is 0 or lower, the extension uses 1100 ms.
- Timeout (ms): the wait period for later loads within the same page. This matters for single-page applications, where content changes without loading a new page. If the value is 0 or lower, the extension uses 750 ms.
When the user clicks in a page and the click loads new content, the extension times that content from the click. This lets it measure navigation inside single-page applications.
What the user sees in the full variant
Section titled “What the user sees in the full variant”In the PerformanceGuard Web Timer variant, the extension icon shows the state of the current tab:
newwhen a measurement starts.load..while the page is loading.- The total load time in seconds when the measurement is complete.
Select the extension icon to open a pop-up. It shows a chart that splits the load time into Content Load and Rendering, and the total time.
The options page of the full variant has a Debug setting, and shows the current Configuration and the Last Match. You can use it to check which web applications the extension knows about. See Web Timer Reports No Data.
How the extension gets its configuration
Section titled “How the extension gets its configuration”The extension doesn’t connect to the PerformanceGuard server. It gets the list of web applications from the local agent and sends its measurements back to the local agent. The two communicate through a native messaging host called com.capasystems.performance, which the agent installs. The native messaging host talks to the agent through the agent’s built-in web server on the local computer. That web server uses the Web Server TCP port from the agent configuration group, 4007 by default.
The extension checks for configuration changes at most once a minute, when the user opens pages. When you change a web application, allow for this delay and for the time it takes the agent to receive its new configuration.