• /
  • EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Browser agent release notesRSS

November 8, 2021
Browser agent v1212

Improvements

Updated LCP tracking

Largest Contentful Paint will now stop being tracked when page visibility changes to hidden. This aligns with the web-vitals library.

Added passive flag to addEventListener calls

Using the addEventEventListener without the passive flag for the touchstart event is flagged in Lighthouse. The passive flag is now applied to all addEventListener calls in the agent.

Update to Cumulative Layout Shift calculation

The CLS calculation has been updated to use session windows in order to align with Google Chrome tooling (Lighthouse, PageSpeed Insights, CrUX). For more information, see the official blog post on web.dev.

Bug Fixes

Fixed issue with Array.isArray() call

Array.isArray() call is not supported on old browsers and can cause a runtime error. This call has been replaced with an alternative that works on older browsers.

Fixed issue with null function argument in the addEventListener API

When a null value was passed in to the addEventListener API, the agent would report an internal error. This edge case is now being handled.

Fixed issue with Ajax deny list

There was an edge case where certain ajax calls could have been excluded when they should not have been. This is now handled correctly.

Miscellaneous

Added support for collecting internal/supportability metrics

The agent can now send metrics that capture information about how the agent itself is working internally.

Added agent supportability metrics for tracking API usage

Added agent supportability metrics for tracking excluded Ajax events

October 6, 2021
Browser agent v1211

Improvements

AjaxRequest events for all XHR/fetch requests

Previously, XHR/fetch requests were captured as AjaxRequest events only when they were part of a route change. With this change, all requests will be captured as events. This feature can be further configured by specifying which requests should not be collected.

Span events are for all XHR/fetch requests

Previously, Span events were generated only for XHR/fetch requests that were part of a route change. With this change, all requests will be captured as Spans.

Update to Cumulative Layout Shift calculation

The CLS calculation has been updated to use session windows in order to align with Google Chrome tooling (Lighthouse, PageSpeed Insights, CrUX). For more information, see the official blog post on web.dev.

Bug Fixes

Prevent duplicate session trace nodes

The agent no longer calls the clearResourceTimings API, which had the potential to affect other scripts from accessing all resources. Instead, it now uses the PerformanceObserver API to collect information about resources.

June 30, 2021
Browser agent v1210

Improvements

PageHide PageViewTiming events are now accounted for during page unload events

PageHide PageViewTiming events are used to query CLS values. In cases where the page was never hidden, inconsistencies would arise because the PageViewTiming event with that type would not be collected. Now when pageUnload fires, if a pageHide PageViewTiming has not already been set, it will set it to the time of unload.

Perfect Cumulative Layout Scores (CLS) are now recorded as 0

Perfect CLS scores were being ignored, because a score was only recorded when content shifted. This change reports perfect scores as 0, fixing inconsistent CLS queries.

Record fetch calls as metrics

Fetch calls are currently only recorded as AjaxRequest events with SPA browser interactions. This change records fetch calls as AJAX metrics, which will make them visible in the AJAX UI charts.

May 26, 2021
Browser agent v1209

Improvements

Doubled the limit of PageAction events per harvest

Up to 120 PageAction events can be harvested every 30 seconds.

Removed call to /ping endpoint

Removed a legacy behavior used to ensure network connection was kept alive in IE 7/8/9.

Bug Fixes

Prevent duplicate session trace nodes

The final Session Trace node in a harvest, captured using the Resource Timing API, is no longer duplicated in the subsequent harvest.

This issue lead to 1 duplicate node in a Session Trace, every 10 seconds, over the duration of the trace.

Memory overhead when agent script

Fixed a memory leak in the agent when the network request to load the second part of the agent is blocked.

Update to file protocol restriction

Fixed an error thrown in the console when the agent is loaded using the file:// protocol caused by features in the agent trying to run when others had been aborted.

setTimeouts without callback functions

Fixed an issue where route change Browser Interactions would wait forever if a setTimeout was called without a callback function (passing code in as a string in the first argument) as the first argument.

Cypress.io

Fixed a conflict between the Browser agent and the Cypress.io test framework when instrumenting XMLHttpRequest.

March 11, 2021
Browser agent v1208

Improvements

Retry harvest network requests

The agent retries harvest XHR requests when it receives 408, 429, 500 or 503 response codes. Additionally, includes a security update to address NR21-01.

File protocol disallowed

The agent will not report any data when it is on a page opened from a local file.

February 1, 2021
Browser agent v1198

Improvements

Updated mechanism for collecting data

The agent now sends JS errors and AJAX metrics data as body of a standard XHR request. This makes it possible to send more data than the maximum allowed length of URL query string.

January 11, 2021
Browser agent v1194

Improvements

Optimized instrumentation of promises

The promise instrumentation has been updated to reduce performance overhead on web sites that use large number of promises.

Issue Resolutions

Fixed issue with SPA overhead

In a rare case where large number of callbacks are executed at the end of an interaction, the agent could cause a significant overhead. This has been fixed in this version of the agent.

Fixed issue with Fetch instrumentation

Updated fetch instrumentation to account for cases when the function argument is a URL object.

September 30, 2020
Browser agent v1184

New Features

Added support for custom attributes on PageViewTiming events

Custom attributes created using the setCustomAttribute API method will now be included in all PageViewTiming events.

Issue Resolutions

  • [SPA- BrowserInteractions] Fixed an issue resulting from too many fetch requests

    • Resolved a bug throwing a null reference error during browser interactions where more than 128 fetch requests were recorded and distributed tracing was enabled.
  • [PageViewTiming] Fixed an edge-case issue with the paint timing instrumentation

    • In cases when nothing was painted to screen before the load event, the agent would throw an error. We have added a guard for this scenario.
  • [PageViewTiming] Fixed issue with Largest Contentful Paint recording

    • The browser agent stops recording largest contentful paint after 60 seconds on a page. We fixed an issue where recording continued beyond that threshold.

How to upgrade your agent

For instructions for upgrading your agent, please view our docs.

August 18, 2020
Browser agent v1177

New Features

We are excited to announce the release of Cumulative Layout Shift, the third and final metric in Google's Core Web Vitals. This metric is an important, user-centric metric for measuring visual stability because it helps quantify how often users experience unexpected layout shifts—a low CLS helps ensure that the page is delightful. The current set for 2020 Core Web Vitals focuses on three aspects of the user experience—loading, interactivity, and visual stability—and includes the following metrics (and their respective thresholds):

  • Largest Contentful Paint (LCP): measures loading performance. To provide a good user experience, LCP should occur within 2.5 seconds of when the page first starts loading.
  • First Input Delay (FID): measures interactivity. To provide a good user experience, pages should have a FID of less than 100 milliseconds.
  • Cumulative Layout Shift (CLS): measures visual stability. To provide a good user experience, pages should maintain a CLS of less than 0.1. For each of the above metrics, to ensure you're hitting the recommended target for most of your users, a good threshold to measure is the 75th percentile of page loads, segmented across mobile and desktop devices. To learn more about the research and methodology behind these recommendations, see: Defining the Core Web Vitals metrics thresholds. Tools that assess Core Web Vitals compliance should consider a page passing if it meets the recommended targets at the 75th percentile for all of the above three metrics.

How does the Browser Agent report this data?

The agent now collects CLS (Cumulative Layout Shift) values as attributes on PageViewTiming events. CLS measures how much layout of the page shifts and is represented as a score. All types of PageViewTiming events (except FP and FCP) include this attribute, showing the score up until the point the timing measurement was taken. You can now track your CLS score throughout the page loading cycle to better understand and focus your optimization work on the moment in time where you are experiencing the worst scores.

We have also added two new events to the PageViewTiming event, pageHide and windowLoad to complete the full page load journey. These timings are useful with its CLS (Cumulative Layout Shift) attribute to paint the picture of a user's journey through the load experience.

  • The pageHide event represents the first time that the page was hidden (e.g. by switching browser tab). Note that we only collect the first pageHide events at this point.
  • The windowLoad event is fired when the whole page has loaded, including all dependent resources such as stylesheets and images.

For more information, please visit our docs on the PageViewTiming event.

Issue Fixes

  • [PageViewTiming event] Fixed unrealistic high values for FI & FID Older browsers report Event.timeStamp as an epoch time instead of value relative to the page navigation start. The agent took this into account for FI (First Interaction) timing values but not for FID (First Input Delay). With this fix, there should no longer be unrealistic outlier values for FID.

How to upgrade your agent

For instructions for upgrading your agent, please view our docs.

July 29, 2020
Browser agent v1173

New Features

Browser in distributed tracing now supports W3C trace context headers. W3C Trace Context is a standard that makes distributed tracing easier to implement, more reliable, and ultimately more valuable for developers working with modern, highly distributed applications. The standard greatly simplifies use cases where developers instrument services using tools from different distributed tracing solutions. Now all tracers and agents that conform to the W3C Trace Context standard can participate in a trace. Trace data can be propagated from the root service all the way to the terminal service.

Once Distributed Tracing is turned on in your Browser Application Settings page, the trace context headers will be added by default, along with the newrelic proprietary header, for same origin AJAX requests. If your system is fully configured to send w3c trace context throughout all services, you can choose to disable the newrelic header from the Application setting tab.

For cross origin AJAX requests already configured to accept the newrelic header, you can now select the option to send the W3C trace context headers. When selected, all origins defined must be configured to accept the traceparent and tracestate headers. For information on configuring CORS headers, please see our docs page for an example. As with the same origin requests, if you system is fully configured for W3C trace context headers, you can choose to disable the newrelic header.

For more information, please see our New Relic Support for W3C Trace Context blog post.

The following New Relic agents now support W3C:

  • Browser Pro+SPA agent 1173 and higher
  • Java 5.1.0 and higher
  • Python 5.5 and higher
  • Go 3.1.0 and higher
  • Node.js 6.4 and higher
  • Ruby 6.9.0 and higher
  • PHP 9.8 and higher
  • .NET 8.27 and higher

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.