Notes
This Browser agent version has been temporarily removed; the most up-to-date version is currently agent version 1044.
The Browser agent, sometimes called the JavaScript agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
New features
- Added JSONP support (relevant only for PRO+SPA): Browser Interactions that include JSONP requests are now correctly tracked. Previously, browser interactions that included JSONP were ended early and not included in the Breakdowns tab.
Bug fixes
- Fixed a compatibility issue with zone.js: When New Relic and Zone.js v0.8.13 were used together, the context (
this
) was not being set correctly in some of theaddEventListener
calls used by clients. - Correctly send data when methods aren't wrappable: When XHR was not wrappable, the agent did not send data to the collector via XHR in some edge cases. We are now correctly sending the data if XHR exists on the page, even if it's not wrappable.
How to upgrade
To upgrade your agent to the latest version, see Upgrade the Browser agent.
Notes
The Browser Agent, sometimes called the JS agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
Bug fixes
- Improved Agent Performance: Improvements to how the agent verifies interactions are complete by setting and clearing multiple timers. Previously, the agent would make many unnecessary calls to clearTimeout, and will now only clear timers when appropriate.
- Protect against custom events: Improvements to how the agent determines the event origin for Session Traces. In some libraries that use custom event wrappers, when the agent calls
target
on an event it can throw an exception. The agent now catches these types of exceptions when building Session Traces.
How to upgrade
To upgrade your agent to the latest version, see Upgrade the Browser agent.
Notes
The Browser Agent, sometimes called the JS agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
Bug fixes
- Do not instrument SPA without a wrappable XHR: In browsers that don't orchestrate the wrapping of XHR, the SPA agent does not collect event data, only metric timeslice data. The agent will still report SPA for browsers that support XHR wrapping. Mobile Safari and a few other browsers didn’t support wrapping the XMLHttpRequest, so they would not produce event data for instrumenting Single Page Apps. They still collect other types of metrics.
- Support setTimeout with a string duration: When you call setTimeout with a string as the duration, browsers will cast this as a number, but the agent did not handle this correctly. We are now handling this case correctly.
- Work around mutation observer memory leak in IE 11: We have discovered that MutationObserver in IE causes a memory leak, so the agent now will prefer setImmediate for IE, and use a resolved promise to schedule the wrapping in Edge (and other browsers that support promises).
- Handle short recursive timers: Some libraries recursively set timers that left our interactions open. The agent now handles this by reducing the max time it will allow to be included in the interaction.
How to upgrade
To upgrade your agent to the latest version, see Upgrade the Browser agent.
Notes
The Browser Agent, sometimes called the JS Agent, has multiple variants: Lite, Pro, Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
Improvements
- Adjusted PageAction limits: Previously, we limited PageAction events to 120 per page load and only 20 events per harvest cycle, resulting in dropped data if a user sent more than 20 pageAction events in a single burst. Increasing the harvest time to 30 seconds also increases the event buffer, allowing users to send up to 60 events per harvest.
- Improved time measurement: Previously, the agent used the system clock to calculate timing, and since the system clock may shift over the lifecycle of a page, the agent could occasionally report inaccurate or unexpectedly negative values. Going forward, the agent will use
perfomance.now()
, which is a monotonically increasing clock that starts fromnavigationStart
. This change will result in more accurate timing for modern browsers.
Bug fixes
- Preserve event listeners: Previously, if the agent doesn't load correctly it affected the functionality of
add-
andremoveEventListener
. These will now function the same whether the agent loads or not.
How to upgrade
To upgrade your agent to the latest version, see Upgrade Browser agent.
Notes
The Browser Agent, sometimes called the JS Agent, has multiple variants: Lite, Pro, Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
New features
- Release ID API: A new API allows you to uniquely identify your current JavaScript version, enabling a richer error feature with source maps identification. Stay tuned for more information and documentation!
Improvements
- Passive Scroll Event Listeners: Previously, the wrapped scroll event listener did not take advantage of an available performance optimization: the passive annotation. By including this annotation, our wrapped scroll listener will allow a non-blocking, smooth scrolling action.
Bug fixes
- XHR With Credentials: Previously, when the agent would send data using an XHR, it would feature-check the
withCredentials
property and set it totrue
if it was available. However, older versions of IE do not allow modification of thewithCredentials
property on unsent XHRs. The agent now wraps the property assignment in a try/catch block to prevent errors.
How to upgrade
To upgrade your agent to the latest version, see Upgrade Browser agent.
Notes
The Browser Agent, sometimes called the JS Agent, has multiple variants: Lite, Pro, Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
New features
- Added the setCurrentRouteName API method [relevant only for Pro+SPA]: The agent now has an API method to set the current route name for the page. This api can be used to set the
previousRouteName
andtargetRouteName
for BrowserInteraction events.
For details on how and why to use this API, see our Browser SPA API Docs
Improvements
- Disabled insecure communication with New Relic: Previously the agent would send RUM data to the router without TLS if the request was initiated from an insecure page. Now the Browser Agent will always use TLS connection when transmitting data.
- Browser Agent no longer mutates the attributes object passed to the addPageAction API: Previously the agent would mutate the attributes object passed to add page actions by adding the default and page attributes onto this object.
Bug fixes
- Fixed a compatibility issue with zone.js: Previously when the Browser Agent and zone.js were both included on a page, additional event handlers would be triggered twice. For example, when event handlers were added as properties, such as
onreadystatechange
, these handlers would be triggered twice in some browsers. This issue has now been resolved. - Fixed a bug with cross-frame callbacks: Previously, when adding event handlers for events in iframes, the agent would attempt to wrap the provided callbacks. When the wrapping logic called the callback belonging to another frame, a permissions exception would be thrown. The agent will now only wrap callbacks created in the same frame.
- Fixed a memory leak when the Browser agent fails to load correctly
How to upgrade
To upgrade your agent to the latest version, see Upgrade Browser agent.
Notes
The Browser Agent, sometimes called the JS Agent, has multiple variants: Lite, Pro, Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
New features
- Added newrelic.setErrorHandler API to allow for selective ignoring of known errors [Pro, Pro+SPA]: This API takes a single error handler function, which will be called for each error the agent captures. If the handler returns true, the error will NOT be recorded by New Relic, otherwise it will be processed normally.
For details on how to use this API, see our Browser API Docs.
How to upgrade
To upgrade your agent to the latest version, see Upgrade Browser agent.
Notes
The Browser Agent, sometimes called the JS Agent, has multiple variants: Lite, Pro, Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.
New features
- Add support for keyboard change events [Pro+SPA]: Keyboard events will now automatically trigger a Browser Interaction timing.
- Browser Timing Events now have Traced Callback Duration [Pro+SPA]: In order to match the attributes on other New Relic Browser related events, the Browser Timing events now include callback durations by default.
Improvements
- Change harvest to not use sendBeacon: We now use the
sendBeacon
native API only for page unload. The agent will now attempt to use an XHR when available and savesendBeacon
forunload
events, in order to reduce the data transferred using the sendBeacon API.
How to upgrade
To upgrade your agent to the latest version, see Upgrade Browser agent.