Support SPA, XHR, and session trace features on Chrome for iOS
Previously, the agent didn't collect SPA browser interactions, XHR events, or session trace data in Chrome for iOS, which uses the webkit engine with modifications. The agent now collects the same data in Chrome for iOS as in other supported browsers.
Expose build version to newrelic global
The build version is exposed to the
newrelic global object. You can access it with
Add automation for documentation site updates on new releases
A new release of the browser agent will automatically raise a PR to the documentation site with the relevant changelog items.
Fix multiple custom interaction end times
Fixed an issue where multiple custom interactions harvested at the same time would result in only one interaction being persisted in New Relic.
Prevent AJAX time slice metrics based on deny list
Prevent time slice metric collection for AJAX calls when such a call matches an entry in the AJAX deny list.
Bind navigator scope to sendBeacon
Some browser versions will throw errors if sendBeacon doesn't have the navigator scope bound to it. A fail-safe action of binding the navigator scope to sendBeacon was added to try to support those browsers.
Preserve unhandledPromiseRejection reasons as human-readable strings in error payloads
The agent will attempt to preserve
unhandledPromiseRejection reasons as human-readable messages on the Error payload that gets harvested. The previous strategy didn't always work, because
Promise.reject can pass any value, not just strings.
Fix missing interactions for dynamic routes in Next/React
Fixed an issue where when using the SPA loader with Next/React, route changes that lazy loaded components wouldn't be captured. While the issue specifically called out Next/React, this should apply to Nuxt/Vue and Angular.
Fix interactions missing API calls in Angular
Fixed an issue where when using the SPA loader with Angular, route changes that contained API calls, via Angular resolver, wouldn't capture the xhr/fetch on the interaction. This works with eager and lazy routes in an Angular SPA.