Skip to content

Releases: newrelic/newrelic-browser-agent

v1.233.0

26 May 19:58
009a9c1
Compare
Choose a tag to compare

1.233.0 (2023-05-26)

Features

  • Capture metrics for usage of MooTools and certain polyfills (#539) (903a7e1)
  • Update agent internals in early preparation for new features (#532) (1ee675d)

Bug Fixes

  • Address "configurable" warnings arising from user-agent module (#546) (7a7dace)
  • Ensure runtime is preserved for late-configuration cases (#538) (229b8ed)
  • Refactor usage of Array.from to address MooTools conflict (#544) (f1e6336)

v1.232.1

17 May 16:08
81712c1
Compare
Choose a tag to compare

1.232.1 (2023-05-17)

Bug Fixes

  • Add X-NewRelic-ID header only if defined (#531) (36ceedf)
  • Identify inline stack trace URLs more precisely (#522) (1aba92d)

v1.232.0

08 May 21:12
0156c5e
Compare
Choose a tag to compare

1.232.0 (2023-05-08)

Features

  • Add internal session metrics (bcfe6ff)
  • Add new stateful Session Manager - NEWRELIC-7986 (#464) (32e1061)
  • Add query parameter supportability metrics (#518) (88c2d83)
  • Allow custom error grouping (f95630d)

v1.231.0

28 Apr 17:06
363b0c9
Compare
Choose a tag to compare

Omit CLS scores before web-vitals report them

Initial snapshots of CLS reported as 0s attached to timing metrics will be omitted, so as to "de-noise" the aggregate CLS dataset. This also temporarily addresses an edge case of long loading pages potentially sending a "final" CLS value of 0, inaccurately. The case of a final 0 CLS when a user only navigates away from the page has also been fixed.

Fix accepted argument type for all and race methods of Promise

The wrapped Promise's static all and race methods now work with iterators per native implementation, rather than only arrays.

Upgrade Navigation Timing API in PageView (RUM) call

The performance entry data sent for PageView now uses the Navigation Timing Level 2 API over the deprecated Level 1 API.

Fix typo in top-level API causing exception

An an uncaught reference exception was occurring on pages with more than one initialized agent due to a typo in the name of a variable (returnsVals).

Add null entry checks to certain web-vitals handlers

For LCP and FID, we will exclude the performance entry info when there are no entries given by web-vitals. This had thrown exceptions.

Remove previously added console logging measurements

This reverses performance impacts and exceptions introduced in the prior release by serializing console API arguments.

Rectify version reported by NPM agent implementations

Agents installed via the NPM method will report the correct semantic version in data harvests.

Fix exception when importing NPM package source code

An error was occurring related to a missing environment variable when importing from the NPM package source directly (versus via the CJS/ESM packages).

v1.230.0

10 Apr 17:00
04d8de3
Compare
Choose a tag to compare

Add persistence for custom attributes

Custom attributes may now optionally be persisted between page loads via session storage. The API method setCustomAttribute now takes a third parameter, which defaults to false. When true, this boolean indicates that the provided custom attribute should be persisted in session storage and restored on subsequent page loads. Session storage is subject to the same-origin policy of the browser.

Add setUserId API

A new setUserId API method is now available. It defines a custom attribute containing a specified user ID, to be included in all payloads. The setUserId API is an extension of the setCustomAttribute API and automatically persists between page loads.

Fix npm package browser targets

The previous npm package release included code that was not compatible with browsers in our supported browser list. The package exports will now default to code that matches our browser support list. The package will also include the source code for power users that would like more control over how the agent is built.

Fix npm package exports

Some dangling, unused, and non-existent imports and exports were causing issues with consuming the NPM package in some projects. These have been removed.

Fix npm package import for typescript projects

Fixed an issue where typescript projects attempting to import the browser agent library would not get proper auto-complete in the import statement and would receive module declaration errors. The browser agent will not use tsc to generate type definitions from the JavaScript code at build time. The package.json has been updated with appropriate type export declarations.

Add error catch around sendBeacon

Added error catch logic around the sendBeacon usage. In the event sendBeacon throws an error during the final harvest, the final harvest will attempt to fall back to the image data submission method.

Remove array reduce polyfill

Removed the array reduce polyfill in favor of the native browser array reduce method.

v1.229.0

30 Mar 17:48
40168c7
Compare
Choose a tag to compare

v1.229.0

Use semantic versioning scheme

The agent will now utilize semantic versioning for subsequent releases. The previous version (1228) will carry forward into 1.229.0, and so on.

Use web-vitals library for internal timing calculations

In an effort to align and standardize the timings the agent collects, the agent now uses the Google CWV library to track page timings such as CLS, LCP, FCP, TTFB and more. See Core Web Vitals documentation for more information.

Ship the Browser Agent repository to NPM

The Browser Agent repository will now be available as a pre-release NPM package. See @newrelic/browser-agent for more information.

v1228

20 Mar 23:45
8e0b158
Compare
Choose a tag to compare

v1228

Fix negative offset timings

Fix an issue that caused session trace offset timings to be miscalculated in the early-page lifecycle, sometimes leading to negative "backend" timings.

v1227

09 Mar 16:44
06d827d
Compare
Choose a tag to compare

v1227

Added INP and long tasks reporting

The interaction-to-next-paint metric is now calculated and reported at the end of user sessions, via the Google CWV library. In addition, long continuously executed and blocking scripts detected by the PerformanceLongTaskTiming API are also forwarded to New Relic. This latter functionality is off by default, until a curated UI experience is created to utilize this data.

Revert unwrapping of globals on agent abort

Partial revert of graceful handling change made in v1225 that unwrapped modified global APIs and handlers, which caused integration issues with other wrapping libraries and code.

Add internal metrics to evaluate feasibility page resource harvests

Internal metrics were added to track the feasibility and impact of collecting page resource information using the PerformanceObserver resource timings, such as scripts, images, network calls, and more.

Add resiliency around SPA interaction saving

Added resiliency code around SPA interaction node save functionality to ensure a cancelled interaction node without a parent further up the interaction tree does not cause an exception to be raised from the agent.

Collect supportability metrics at the end of page life

Collate all of the internal statistic metrics calls, which--of today--are sent at page start and periodically, into one call made when the end user is leaving the page.

v1226

21 Feb 17:45
8b44c34
Compare
Choose a tag to compare

v1226

Revert xhr deny list timeslice metrics

Customers were losing visibility into all calls on the page when denying timeslice metrics based on the deny list. This change reverts to the behaviour seen in all previous versions of the Browser Agent.

Enable back/forward cache

Updating the agent default configuration to enable the back/forward cache feature previously released in version 1222 by default.

Handle unhandledPromiseRejections more gracefully

The agent will attempt to handle niche objects throw from unhandledPromiseRejection events more gracefully. These cases could include objects with frozen or static properties, or custom extensions of the Error class without a set method in place.

Disable metrics for missing entitlement

Fixing issue where metrics harvesting was not being halted when the agent RUM call indicated the account did not have entitlement to the jserrors endpoint. Before this change, customers missing this entitlement would see network calls to the New Relic jserrors endpoint result in 403 or 409 errors.

v1225

10 Feb 20:10
273bff4
Compare
Choose a tag to compare

v1225

Gracefully abort agent if not fully instantiated

When importing of agent code fails, as when content gets blocked, the agent will clean up memory, the global scope, and any wrapped or modified APIs as much as feasible.

Refactor wrapping of Promise object

The agent's wrapping of the Promise object has been refactored to address conflicts with third party libraries and to add newer methods available on the native object. The new wrapping implementation is more conventional and less error-prone.

Fix uncaught promise error introduced in v1223

In some cases of failure to import agent script chunk "629", an error was thrown rather than caught and logged as a warning. The uncaught promise error responsible for this unintended behavior has been fixed.

Resolve Google indexing of agent relative paths

In previous versions, the agent script included relative paths to its lazy-loaded chunks, which Googlebot picked up and attempted to index as pages. This change removes those relatives paths from the loader and centralizes our lazy chunk loading of agent features.