Skip to content

Latest commit

 

History

History
819 lines (453 loc) · 22.9 KB

CHANGELOG.md

File metadata and controls

819 lines (453 loc) · 22.9 KB

JavaScript Browser Agent Changelog

Version 3.10.4 (2023-12-05)

Update Typescript types for Network optional fields.

Version 3.10.3 (2023-11-13)

No Change, build system updates.

Version 3.10.2 (2023-10-23)

Features:

  • Verified with Node 18 LTS

Version 3.10.1 (2021-08-05)

Bugfixes:

  • Fix typo in readme.

Version 3.10.0 (2021-07-15)

Features:

  • Agent supports ServiceWorkers and SharedWorkers

Version 3.9.2 (2021-05-01)

Bugfixes:

  • Handle case where read-only error object passed into the global error handler.
  • Handle serializing a circular-referenced object with broken property getters.

Version 3.9.1 (2021-04-23)

Bugfixes:

  • Fixed rare case where Illegal invocation was thrown when calling a console function.

Version 3.9.0 (2021-03-04)

Features:

  • Added forwardingDomain option to allow for ad blocker bypass.

Version 3.8.0 (2021-02-17)

Features:

  • Agent supports use inside of WebWorkers. Can be imported as a module or using importScript.
  • Tooling upgrade to Node 14.5.4

Version 3.7.7 (2021-02-11)

Bugfixes:

  • Normalized the error messages for network failures, which sometimes do not include a statusText property, by removing it from the message string. Customers will no longer need duplicate ignore rules to handle both variants.
  • Expose error when user calls XMLHttpRequest.send before XMLHttpRequest.open, which was previously treated as an internal fault.
  • Update typescript definitions to include the error argument in the onError callback.

Version 3.7.6 (2020-11-30)

Bugfixes:

  • Handles internal failure where the reason for a Promise rejection is null.

Version 3.7.5 (2020-09-10)

Bugfixes:

  • Escapes space and tab characters in network telemetry URLs that would be automatically converted by the browser.

Version 3.7.4 (2020-05-19)

Bugfixes:

  • Fix fetch wrapping that caused errors during abort. (Issue#38).
  • Add console.warn Typescript definition. (Issue#39).

Version 3.7.3 (2020-02-26)

Bugfixes:

  • Allow undefined configuration properties to be passed without stopping.

Version 3.7.2 (2019-09-12)

Bugfixes:

  • Update fetch wrapping to accommodate non-standardized URL object behavior utilized by Facebook sdk.

Version 3.7.1 (2019-09-11)

Bugfixes:

  • Change fetch wrapping to avoid a Microsoft Edge Bug creating a Request object.
  • Add TrackJS.isInstalled() to Typescript definition.

Version 3.7.0 (2019-08-19)

Features:

  • Capture the element inner text as part of visitor Telemetry.

Version 3.6.0 (2019-08-12)

Bugfixes:

  • Add safety checking to XHR header detection to not show console warnings.

Version 3.5.0 (2019-08-12)

Features:

  • Revert of 3.4.0 due to a CORS issue.

Version 3.4.0 (2019-08-05)

Features:

  • Check for the presence of a Node correlationId on network request for cross-referencing with the Node agent.
  • Force TrackJS agent version into dependencies, even if we were bundled.
  • Change method of Image creation to be safer.
  • Added agentPlatform to error capture payload.
  • Added TrackJS.isInstalled() for checking install state.

Bugfixes:

  • None

Version 3.3.0 (2019-03-04)

Features:

  • Changed error capture to accept a 202 Accepted response from the API to be more accurate to behavior.
  • Added agent version to error capture API call.
  • Improved internal implementation of util.contains.

Bugfixes:

  • Handle case where undefined can be thrown from an XHR listener.

Version 3.2.0 (2019-02-22)

Features:

  • Support Symbol types in object serializer.

Bugfixes:

  • Fixed error thrown when requiring into Node. Replaced with no-op.

Version 3.1.2 (2019-01-31)

Features:

  • None

Bugfixes:

  • Fixed serialization of unthrown errors in IE11.

Version 3.1.1 (2019-01-26)

Features:

  • None

Bugfixes:

  • Changed how window and document are detected in the main closure for webpack.

Version 3.1.0 (2019-01-19)

Features:

  • Detect if we are running in a NodeJS environment and safely disable monitoring.

Bugfixes:

  • Removed warning message printed when functions are called where enabled=false is in the configuration.

Version 3.0.1 (2018-11-10)

Features:

  • None

Bugfixes:

  • Updated install example with a safety check.
  • Updated types definition to include the global object.

Version 3.0.0 (2018-10-29)

Features:

  • Changed the global namespace to TrackJS. The previous trackJs still exists, but is deprecated.
  • Changed initialization behavior to be explicit, preferring to call the new TrackJS.install(config) instead of populating the _trackJs init object. The init object is still supported, but is deprecated.
  • Added support for the agent to be loaded as a module using any of the AMD, CommonJS, or ES6 Module notations.
  • Expanded the Typescript definition file to support the new module-based loading system.
  • Updated the CDN paths for the new agent to prevent forcing breaking changes on users referencing current. The new URL paths will now be /agent/<version>/t.js, /agent/v3/canary/t.js, and /agent/v3/latest/t.js.

Bugfixes:

  • None

Version 2.13.0 (2018-08-29)

Features:

  • Added new dependencies config key to opt-out of window.* version discovery.
  • Added exclusion of the data-value attribute from visitor element enumeration.

Bugfixes:

  • None

Version 2.12.0 (2018-08-20)

Features:

  • Added Method and URL information to failed to Fetch errors.
  • Added calling Stack Trace to fetch network errors.

Bugfixes:

  • None

Version 2.11.1 (2018-08-14)

Features:

  • None

Bugfixes:

  • Deployment pipeline check

Version 2.11.0 (2018-08-10)

Features:

  • Added truncation of Network Telemetry URLS to 2000 characters.
  • Added limit to Visitor Telemetry Elements of 10 Attributes.
  • Added limit to Visitor Telemetry Element Attributes of 100 characters.
  • Added truncation of Console Telemetry to 1000 characters if the total Console Telemetry size is larger than 80,000 characters. Truncation will be applied to console messages one at a time, oldest first, until within the limit.

Bugfixes:

  • None

Version 2.10.2 (2017-11-21)

Features:

  • None

Bugfixes:

  • Handle case where customer wraps Function.prototype that prevented later function wrapping.

Version 2.10.1 (2017-11-16)

Features:

  • None

Bugfixes:

  • Suppress an "Permission Denied" error that may occur in Selenium Firefox environments due to our wrapping.

Version 2.10.0 (2017-11-03)

Features:

  • Added patching of function properties and prototype from a callback onto the wrapped function. This makes it less obvious that we have changed out the function.

Bugfixes:

  • Fixed issue where Promise rejections from browser extensions could throw "Permission Denied" on Firefox when accessing the reason property.
  • Fixed issue with how we track the lifecycle of callback functions to use an external state approach. While this approach will expose some TrackJS internals into the global namespace ("trackjs"), it is more resilient to the varied kinds of callbacks we need to support.
  • Fixed issue where we could double-wrap callback functions, causing unnecessarily long stack traces.

Version 2.9.0 (2017-09-07)

Features:

  • Added capture of the original page URL and referrer to the error payload.

Bugfixes:

  • None.

Version 2.8.5 (2017-08-23)

Features:

  • None.

Bugfixes:

  • Fixed missing type definition for the dedupe option.

Version 2.8.4 (2017-06-28)

Features:

  • None.

Bugfixes:

  • Fixed issue in default serializer that could cause error "Right-hand side of 'instanceof' is not an object" when the page had mangled the value of HTMLElement.

Version 2.8.3 (2017-06-22)

Features:

  • Added ability to disable Fetch wrapping using network.fetch = false in the initialization object. This works around an old ZoneJS bug that has been patched in their library, but still has a large presence.

Bugfixes:

  • Fixed bug where duplicate garbage data could be sent when a Fetch request completes.

Version 2.8.2 (2017-06-08)

Features:

  • None

Bugfixes:

  • Fixed bug in fetch wrapping that caused failures when a prepopulated Request object was used.

Version 2.8.1 (2017-06-07)

Features:

  • None

Bugfixes:

  • Disable fetch that had been released while we debug an issue.

Version 2.8.0 (2017-06-02)

Features:

  • Added support for fetch network events to the Telemetry Timeline.

Bugfixes:

  • None.

Version 2.7.1 (2017-03-30)

Bugfixes:

  • Removed internal error payload cloning to reduce "Out of Memory" internal errors

Version 2.7.0 (2017-03-15)

Features:

  • Added configurable capability to de-duplicate subsequent errors that have the same message and stack trace through the same error entry point.
  • Created Promise error entry type and expanded unhandledrejection promise capture to include the BluebirdJS polyfill.

Bugfixes:

  • Disabled tracker no longer prints warnings about a missing API Key
  • Prevent case where an undefined error message could be represented as '{}'
  • Fixed timing of Page View pixel to wait for document load even on older browsers. Load will timeout at 10 seconds and send the pixel regardless.
  • Fixed issue where addEventListener with malformed capture options could cause an infinite recursion.
  • Fixed configuration of TypeScript definition typings.

Version 2.6.4 (2017-03-03)

Empty released testing changes to automated deployments

Version 2.6.3 (2017-01-27)

Features:

  • None

Bugfixes:

  • Corrected issue with removing event listeners that may have been attached before the tracker has initialized.

Version 2.6.2 (2016-12-29)

Features:

  • Instances of Error will be correctly serialized out into JSON strings.
  • Instances of HTMLElement will be serialized out as HTML representations.
  • Objects with circular references will be serialized using a fallback first-level-only serializer.

Bugfixes:

  • Corrected serialization of instantiated strings to not be double-quoted.
  • Corrected serialization of undefined and NaN values within an array.

Version 2.6.1 (2016-12-17)

Features:

  • None

Bugfixes:

  • Changed the addEventListener wrapping behavior to use EventTarget if it exists. This resolves a conflict with ZoneJS and Angular2.

Version 2.6.0 (2016-11-25)

Features:

  • Added navigation telemetry for history.pushState, history.replaceState, and popstate events.

Bugfixes:

  • None

Version 2.5.3 (2016-11-08)

Features:

  • None

Bugfixes:

  • Fixed support for wrapping EventHandler objects passed into addEventListener.

Version 2.5.2 (2016-10-22)

Features:

  • New Canary Build deployment pipeline

Bugfixes:

  • None

Version 2.5.1 (2016-08-22)

Features:

  • None

Bugfixes:

  • Fixed passthrough arguments of window.onerror

Version 2.5.0 (2016-08-03)

Features:

  • Added option to track an error for console.warn
  • Added tracking for global unhandled promise rejections from Chrome and Bluebird.js

Bugfixes:

  • Fixed TypeScript definitions to support proper module exports
  • Fixed passthrough override of window.onerror
  • Fixed network wrapping to support URL objects

Version 2.4.0 (2016-07-03)

Features:

  • Added Typescript definition file to NPM and Bower packages

Bugfixes:

  • None

Version 2.3.1 (2016-03-28)

Features:

  • None

Bugfixes:

  • Corrected behavior of tracking null or undefined to be properly represented.
  • Removed array notation from singular argument passed into console.

Version 2.3.0 (2016-03-26)

Features:

  • Changed default behavior to not drop a cookie containing the correlationId. Tracker will no longer maintain a cross-page identification of the user.
  • Updated default object serialization to attempt simple stringify on complex objects.

Bugfixes:

  • None

Version 2.2.0 (2016-01-06)

Features:

  • Introduced trackJs.addMetadata and trackJs.removeMetadata API

Bugfixes:

  • None

Version 2.1.16 (2015-11-18)

Features:

  • Added capture logic for specific Android [object Event] error

Bugfixes:

  • None

Version 2.1.15 (2015-10-13)

Features:

  • Added optional flag to suspend use of cookies. This was requested for better support of the new privacy-focused Safari.

Bugfixes:

  • None

Version 2.1.14 (2015-08-16)

Features:

  • None

Bugfixes:

  • Suppressed a duplicate "Script error" that could be tracked when hosted from the CDN and captured from a watched function. This also removes the need to use the "crossorigin" attribute in our script, which has also been removed from our suggested install.

Version 2.1.13 (2015-07-28)

Features:

  • None

Bugfixes:

  • Fixed bug in custom serialize configuration where objects passed to trackJs.track may be double-serialized.

Version 2.1.12 (2015-06-05)

Features:

  • None

Bugfixes:

  • Prevented a non-blocking security error from being displayed in the Safari web console when enumerating library versions from within an iframe.

Version 2.1.11 (2015-03-27)

Features:

  • None

Bugfixes:

  • Changed behavior of disabled tracker to not polyfill and wrap console.log
  • Fixed bug where objects sent into console.error were not properly serialized when tracked

Version 2.1.10 (2015-03-23)

Features:

  • None

Bugfixes:

  • Fixed bug where a server outage on usage.trackjs.com could impact the load time of customer applications.

Version 2.1.9 (2015-02-16)

Released February 16, 2015

Features:

  • None

Bugfixes:

  • Added exclusion for https://localhost:0/chromecheckurl from network telemetry. This url is used by Chrome on IOS 7+ to communicate with the native webdriver. It is not relevant to customer code.

Version 2.1.8 (2015-01-15)

Features:

  • Reformatted an AJAX Error to include the METHOD and URL that originated the error, in the format 404 Not Found: POST /some/api.

Bugfixes:

  • None

Version 2.1.7 (2014-12-18)

Features:

  • None

Bugfixes:

  • stopped usage beacon from sending when tracker is disabled
  • prevented chrome warning when detecting webkitIndexDB

Version 2.1.6 (2014-10-31)

Features:

  • None

Bugfixes:

  • trackJs.watchAll returns the object for chaining initializations.

Version 2.1.5 (2014-10-26)

Features:

  • None

Bugfixes:

  • Fixed bug where application could be partially changed after initialization, causing errors and hits to be out of sync.

Version 2.1.4 (2014-10-16)

Features:

  • Added GitHub, NPM, and Bower Packages

Bugfixes:

  • None

Version 2.1.2 (2014-10-15)

Features:

  • None

Bugfixes:

  • Fixed bug with handling of SyntaxError in Chrome where file, column, and line are not populated.

Version 2.1.1 (2014-08-27)

Features:

  • Added stacktrace to errors generated from console.error
  • Added safer handling of falsy values in the default serializer
  • Change the logging behavior to include last 30 events rather than the last 10 of each type.
  • Added extra param to onError callback with the originating Error object.

Bugfixes:

  • None

Version 2.1.0 (2014-08-23)

Features:

  • Added support for multiple applications under a single account.

Bugfixes:

  • None

Version 2.0.3 (2014-07-15)

Features:

  • None

Bugfixes:

  • Fixed bug in watchAll where function context was being lost, affecting Backbone.js wrapping.
  • Prevented errors that have already been tracked from being captured again from watchAll
  • Added Corresponding wrapping of removeEventListener elements and XHR that impacted Meteor apps.

Version 2.0.2 (2014-07-09)

Features:

  • None

Bugfixes:

  • Fixed bug where Internet Explorer 8 improperly serialized some messages, preventing them from display in the UI
  • Added checks for _trackJS and _trackjs (in addition to _trackJs) for preconfig.
  • Added safety check to error wrapping in case a string is thrown.

Version 2.0.1 (2014-07-08)

Features:

  • None

Bugfixes:

  • Fixed bug where window.onerror would generate an error if called with invalid arguments.
  • Fixed bug where window.onerror messages would not include all possible information.

Version 2.0.0 (2014-07-01)

Features:

  • (Breaking) Restructuring of the configuration structure. See docs for updates.
  • (Breaking) Renamed customer to token
  • (Breaking) Removal of the global track alias
  • (Breaking) Removal of ignore RegEx option
  • Added onError callback for finer control of ignoring and manipulating errors
  • Added serialize callback to control how objects are serialized into the log
  • Added error catching for setTimeout, setInterval, element.addEventListener, and xhr.addEventListener
  • Added option to capture a bind-time stacktrace
  • Added finer control of which console functions should be wrapped

Bugfixes:

  • Fixed bug where caught errors were tracked a second time by window.onerror
  • Fixed bug when cookies are disabled in Android

Version 1.2.7 (2014-06-10)

Features:

  • None

Bugfixes:

  • Fixed tracking input events on multiselect.

Version 1.2.6 (2014-05-29)

Features:

  • None

Bugfixes:

  • Fixed bug in ignore api that prevented multiple matching

Version 1.2.5 (2014-04-04)

Features:

  • Added stacktrace that may be available to global window.onerror

Bugfixes:

  • None

Version 1.2.4 (2014-04-03)

Features:

  • None

Bugfixes:

  • Fixed IE10/11 XDomainRequest inspection.

Version 1.2.3 (2014-03-27)

Features:

  • None

Bugfixes:

  • Fixed inspection errors in Firefox 6.0 and below

Version 1.2.2 (2014-02-23)

Features:

  • Exceptions wrapped by watchAll are rethrown after transmission.

Bugfixes:

  • Fixed webkit warning message on transmission.

Version 1.2.1 (2014-01-23)

Features:

  • None

Bugfixes:

  • Fixed IE8 bug with observing network requests--IE8 won't support this, and the feature has been disabled for this browser.

Version 1.2.0 (2013-12-30)

Features:

  • Added trackJs.track() now supports objects, strings, or error objects
  • Added trackJs.watchAll() supports watching objects of functions
  • Added trackJs.watch() returns a watched version of a single function
  • Added trackJs.attempt() executes a single function and catches errors from it
  • Deprecated trackAll()

Bugfixes:

  • None

Version 1.1.0 (2013-11-14)

Features:

  • Added ability to ignore functions on an object for trackAll()
  • Added ignore by message configuration
  • Added configuration option to disable inspectors
  • Added direct logging capability from trackJs.log, trackJs.warn, etc. for use if console inspector is disabled.
  • Added Support pre-load configuration

Bugfixes:

  • None

Version 1.0.1 (2013-10-18)

Features:

  • Initial beta release

Bugfixes:

  • None