Skip to content

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.

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.

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.

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.

In the PerformanceGuard Web Timer variant, the extension icon shows the state of the current tab:

  • new when 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.

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.