Skip to content

Releases: newrelic/newrelic-browser-agent

V1216

14 Apr 16:33
487a282
Compare
Choose a tag to compare

v1216

  • Internal NR Platform release date: 4/14/2022
  • Production APM-injected release date: TBD
  • Production Standalone release date: TBD

Introduced obfuscation mechanism to payloads

Added internal mechanism for applying regex and replacement rules to all strings in payloads to obfuscate before sending to ingest.

Automatically obfuscate file:// protocol

A change has been implemented in our handling of applications hosted locally on a file:// protocol. For security reasons, we can not send payloads that contain file information, so our previous implementation revolved around completely shutting the agent down when file:// protocols were detected. This change automatically obfuscates all file:// paths from our payloads before sending to ingest.

Fixed issue with trace ID random hex character length

The final character in trace ID hex generation was returning as undefined, which translated to always be 0 (undefined & 15 === 0). This change fixes this final character and ensures it is valid.

v1215

24 Jan 22:02
1253ab8
Compare
Choose a tag to compare

v1215

  • Internal NR Platform release date: 01/24/2021
  • Production APM-injected release date: 01/25/2021
  • Production Standalone release date: 01/31/2021

Collect supportability metrics for front end frameworks

Added front end framework detection metrics to help guide future priorities for browser agent features. The following front end frameworks will now be detected and analyzed:

  • React
  • Angular
  • AngularJS
  • Backbone
  • Ember
  • Vue
  • Meteor
  • Zepto
  • Jquery

v1214

04 Jan 23:02
62a3223
Compare
Choose a tag to compare

v1214

  • Internal NR Platform release date: 01/04/21
  • Production APM-injected release date: 01/06/21
  • Production Standalone release date: TBD

Exclude Data URL requests from Ajax events and metrics

Previously, XMLHttpRequest and Fetch calls made with Data URLs could prevent the agent from harvesting data.

Updated LCP identifying attributes to have less generic names

Renamed LargestContentfulPaint PageViewTiming attributes from url to elUrl and tag to elTag. This makes the names less generic and as a result less likely to collide with custom attributes.

v1213

06 Dec 22:41
c3cf91a
Compare
Choose a tag to compare

v1213

  • Staging release date: 12/06/2021
  • Production APM-injected release date: 12/08/2021
  • Production Standalone release date: 12/17/2021

Added NetworkInformation attributes to LCP & FI

The core web vitals metrics LCP and FI will now include metadata describing the network information observed on the page. This includes network type, round trip time (rtt) and downlink.

Added element identification attributes to LCP

LCP metrics will now also report a tag name and an image URL if present (for LCP triggered by images).

Included page view timing data in session trace payload

If observed, the agent will now include PageViewTiming events in the session trace waterfall payload. These events will be available in an upcoming update to the Session Traces UI.

Added session trace IDs to harvests

If a session trace is active on a page, a session trace ID associated with that trace will now be appended to all subsequent events generated on the page for the linking of session-related datasets downstream. This ID will be appended to any payload that sent after a session trace has been started. PageView events are generated before session traces begin and will not contain this ID and in most cases Initial Page Load BrowserInteraction events complete before a session trace begins and are not guaranteed to contain this ID.

v1212

04 Nov 21:06
e95d35c
Compare
Choose a tag to compare

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.

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.

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

v1211

27 Sep 20:37
ba193a8
Compare
Choose a tag to compare

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 this blog post on web.dev.

Fixed issue with clearing Resources Buffer

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.

Removed Opera from test matrix

v1210

22 Jun 22:38
e2a3f80
Compare
Choose a tag to compare

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.

v1209

20 May 21:48
61a7efe
Compare
Choose a tag to compare

Doubled the limit of PageAction events per harvest

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

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.

Removed call to /ping endpoint

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

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.