Skip to content
5de691c
Compare
Choose a tag to compare

1.737.0 (Apr 16, 2021)

New Features

  • AutoXHR: Allow SPA to start from clicks
  • SPA: Option to apply Wait Filter for Hard Navs
  • AutoXHR: Ignore opacity:0, 0px-dimension DOM elements, custom filters
  • Build: Support for build flavors

Bug Fixes

  • Early: Unblock Early beacon during missed SPA Hard Nav
  • Boomerang: Always ensure Session Length is at least 1

Documentation

  • Doc: Loader Snippet Known Issues and other JSDoc changes

1.725.0 (November 3, 2020)

Breaking Changes

  • Boomerang will no longer send an "XHR Beacon" when an XMLHttpRequest does not result in any interesting DOM modifications (i.e. no new images, stylesheets, IFRAMEs or other XHRs were added). This change can be reverted to the previous behavior (of still sending an XHR Beacon) by setting the AutoXHR.xhrRequireChanges=false flag.

Bug Fixes

  • AutoXHR: Don't send XHR beacons if there were no DOM mutations
  • AutoXHR: Don't wait on lazy-loaded images
  • AutoXHR: For XHR beacons that happen before Page Load, ResourceTiming data is properly added to the XHR beacon when it is fired
  • Continuity: Only add Time To Visually Ready (TTVR) to the Page Load beacon
  • Errors: Avoid loop in Memory plugin for some pages
  • EventTiming: Observe entries from top-level frame (e.g. for First Input Delay)
  • ResourceTiming: Include the Boomerang and Config URL (for mPulse)
87ebdb7
Compare
Choose a tag to compare

1.720.0 (July 29, 2020)

Bug Fixes

  • Boomerang: Added support for SameSite and Secure cookie attributes

1.715.0 (June 26, 2020)

Bug Fixes

  • History: Correctly forward arguments to routeFilter

Documentation

  • Docs: Release notes updated
  • Docs: Continuity Cumulative Layout Shift docs
  • Docs: Added additional Back-end Servers and integration guides

1.711.0 (June 8, 2020)

Bug Fixes

  • EventTiming: Change firstInput type to first-input per spec change

1.710.0 (May 6, 2020)

Breaking Changes

  • Errors: The monitorEvents and monitorTimeout options are now disabled by default. As a result, some cross-origin JavaScript
    Errors may not report the full message (and instead will only show Script Error.), and the stack will not be available.
    Please see the Errors plugin documentation for details on the side-effects of re-enabling those options.
  • Continuity: First Input Delay calculations have changed slightly. The plugin will now use the Event Timing plugin
    (if available and the browser supports it) for First Input Delay calculation. If not, mousedown, touchstart and
    pointerdown events are now used for First Input Delay calculations, while Scroll, Visibility and Orientation changes
    are not. Only cancelable events are now tracked. First Input Delay should be more accurate, though there may be less
    overall measurements (due to not tracking Scroll for First Input).

New Features

  • Event Timing plugin (enabled by default)
  • ResourceTiming: Service Worker timing capture at resource level
  • PaintTiming: Expose Largest Contentful Paint via BOOMR.plugins.PaintTiming.metrics.lcp()

Bug Fixes

  • Continuity: Scroll Log: Trim decimals

Documentation

  • Docs: Include minified snippets in built documentation
  • Docs: Add Header Snippets section
  • Docs: Fixed reference from c.t.lt to c.t.longtask
  • Boomerang: Document additional beacon vars

Tests

  • Tests: Ensure /delay path roots requested files to wwwRoot

1.700.0 (January 29, 2020)

New Features:

  • Issue 1027: PaintTiming: Largest Contentful Paint
  • Issue 1030: Consent Inline Plugin and Docs
  • Issue 1040: Continuity: Add the ability to track Cumulative Layout Shift

Bug Fixes:

  • OS Issue 251: Add support for background image detection for c.tti.hi
  • OS Issue 261: NPM: Allow running grunt build
  • Issue 990: SPA: Only subtract SPA timeout when the timeout fires
  • Issue 1026: Update Snippet to have its own reference to the parentNode
32d52c6
Compare
Choose a tag to compare

This is a backport of all of Akamai's contributions to boomerang from May 2019 (mPulse's version 1.650.0) through December 2019 (mPulse's version 1.687.0).

1.687.0 (October 10, 2019)

New Features:

  • Issue 1019: Boomerang: Replace MD5 with FNV for better performance

Bug Fixes:

  • OS Issue 273: rt.si not working as expected
  • OS Issue 275: UserTiming: Update usertiming-compression package to latest version
  • Issue 1020: RT: Error wrapping when we have NS_ERROR_FAILURE for Firefox 31
  • Issue 1021: AutoXHR: Handle removing src attribute from monitored resource

1.681.0 (September 11, 2019)

Bug Fixes:

  • Issue 823: History SPA v2
  • Issue 1001: Continuity: Don't track interaction times in Safari if loaded in iframe
  • Issue 998: Docs: Document rt.si, rt.ss, rt.sl, rt.tt, rt.obo
  • Issue 997: ResTiming: Disable srcset physical dimension collection by default
  • Issue 1003: Continuity: Turn monitorStats off by default
  • Issue 987: Memory: Add support for navigator.connection.saveData
  • OS Issue 197: Navigation Timing: Plugin sends twice per page
  • Issue 1005: Continuity: Don't disable collection when API beacons are sent

1.672.0 (August 22, 2019)

Bug Fixes:

  • Issue 999: RT: Cleanup beacon parameter cleanup

1.669.0 (June 28, 2019)

Bug Fixes:

  • Issue 992: Errors: Ensure message.indexOf is a function
  • Issue 993: Early Beacon: Fix for SPA events

1.667.0 (June 12, 2019)

New Features:

  • Issue 637: Early Beacons

Bug Fixes:

  • Issue 976: AutoXHR: XHR abort status fix for FireFox
  • Issue 980: Memory: Remove reference to BatteryManager API as this API is obsolete
  • Issue 812: ResourceTiming: More initiatorTypes
  • Issue 983: NavigationTiming: Don't use chrome.loadTimes() when there are no paints
  • Issue 982: Boomerang: Fix empty-beacon check
  • Issue 939: Optimize cookie access
  • Issue 991: Continuity: ceil duration times
  • Issue 990: Boomerang: Don't set cookie if domain is null, fallback to current
4d885e4
Compare
Choose a tag to compare

This is a backport of all of Akamai's contributions to boomerang from October 2018 (mPulse's version 1.621.0) through May 2019 (mPulse's version 1.650.0).

1.650.0

New Features:

  • Issue 782: Boomerang Loader Snippet v12
  • Issue 966: History: Add config option to disable monitoring of replaceState

Bug Fixes:

  • Issue 969: AutoXHR: Make routeChangeWaitFilter wait_complete calls wait for other pending nodes
  • Issue 972: IFrameDelay: Listen for postMessage calls on the correct window

Docs:

  • Issue 968: Continuity: Document events for TTFI

Tests:

  • Issue 975: IFrameDelay: Force tests to load Boomerang in an IFRAME when using the snippet
  • Issue 974: Grunt: Allow specifying multiple webdriver-version

1.643.0

Performance Improvements:

  • Issue 933: Performance: Boomerang Performance Tests
  • Issue 936: Performance: Strips out BOOMR.debug and related messages for production builds
  • Issue 937: Performance: Grunt: Use UglifyJS-3
  • Issue 953: Performance: ResourceTiming: Allow for non-optimal Trie to improve performance

Bug Fixes:

  • Issue 941: AutoXHR: Track uninteresting timeout per event instead of per page
  • Issue 931: AutoXHR: Cleanup listeners on observed nodes
  • Issue 947: AutoXHR: Track Fetch the same way as XHR during SPA navigations
  • Issue 946: AutoXHR: Track LINK stylesheets as interesting nodes
  • Issue 943: AutoXHR: Add XHRs to pending events at send instead of load finished
  • Issue 947: AutoXHR: Include Fetch requests in SPA backend time
  • Issue 949: AutoXHR: Allow config overrides for SPA and XHR idle wait timeouts
  • Issue 952: Boomerang: Ensure only a single beacon is being sent at once
  • Issue 959: IFrameDelay: Gracefully handle different load orders

1.630.0

Bug Fixes:

  • Issue 928: SPA: Ignore route changes if a routeChangeWaitFilter has not yet completed
  • Issue 929: History: Ignore replaceState() if a SPA nav is in progress and no URL change
  • Issue 930: SPA: Only apply routeFilter and routeChangeWaitFilter on SPA Soft Navigations

1.629.0

Bug Fixes:

  • Issue 906: Cleanup leaked global vars
  • Issue 907: Added .npmignore for OS NPM package
  • Issue 908: README: Notes on download / npm / bower
  • Issue 910: TPAnalytics: Add data to spa_hard beacons
  • Issue 913: UserTiming: Update to vanilla UserTimingCompression
  • Issue 923: Boomerang: Keep track of all unload handlers to know when to send unload
  • Issue 925: AutoXHR: Don't track <SCRIPT> tags for XHR beacons
  • OS Issue 196: Optionally depend on usertiming-compression
  • OS Issue 218: Boomerang: Optionally send XHR with credentials
  • OS Issue 219: Clicks: Fix plugin config
  • OS Issue 220: SPA: Clarify route_change comment
  • OS Issue 221: Tests: Move webdriver-manager from package.json install script to tests
  • OS Issue 223: JSDoc: Clarify SPA plugin load-order requirements
  • OS Issue 224: Fix issue related to screen orientation in iPhone and iPad
  • OS Issue 231: Add missing bracket after "Observer effect" link
  • OS Issue 236: Continuity: Update documentation of beacon parameters

1.626.0

Bug Fixes:

  • Issue 905: Errors / AutoXHR: Un-register wrapped functions at unload
  • Issue 903: SPA: Make markNavigationComplete only apply to SPA events

1.624.0

Bug Fixes:

  • Issue 892: Errors: Timing issue causing page load beacon to get tagged with the error type initiator marker
  • Issue 899: AutoXHR: Try to use native MutationObserver when running on a page with Zone.js
4e87820
Compare
Choose a tag to compare

This is a backport of all of Akamai's contributions to boomerang from April 2018 (mPulse's version 1.568.0) through October 2018 (mPulse's version 1.621.0).

We're now providing Version History in the documentation (doc/version-history.md), included below as well:

1.621.0

New Features:

  • Session tracking via cookies
  • Issue 890: Errors: Support Reporting API warnings
  • Issue 840: Errors: Monitor Unhandled PromiseRejectionEvents

Bug Fixes:

  • Issue 886: Errors: Allow onerror to be called with an ErrorEvent object
  • Issue 893: Continuity: Disable MutationObserver usage for monitorStats for IE11
  • Issue 895: AutoXHR: Don't track pixels or IFRAMEs that change src
  • OS Issue 206: Fallback to use XHR if data store requires auth
  • OS Issue 211: Fix getBeaconURL() error using AutoXHR plugin

1.615.0

Bug Fixes:

  • Issue 879: Protect against undefined nodeName
  • Issue 877: Boomerang: Add beacon number param
  • Issue 769: NavTiming: Don't look at chrome.loadTimes() if nextHopProtocol is empty
  • Issue 883: Cookie Compression

1.612.0

Bug Fixes:

  • Issue 869: PaintTiming: Don't add FP/FCP if document is hidden or for SPA Soft/XHRs
  • Issue 873: Continuity: Don't fail if Screen Orientation API is not supported
  • Issue 876: Boomerang: Don't use polyfilled sendBeacon()

1.609.0

Bug Fixes:

  • Issue 847: Don't use the navigator.sendBeacon API when beacon_type is set to GET
  • Issue 853: Verify that the Battery value is a valid number before adding it to the beacon
  • Issue 864: SPA: Fix regression in SPA timings with disableHardNav
  • Issue 865: AutoXHR: Fix regression in XHR monitoring for non-NT browsers
  • Issue 866: AutoXHR: don't mistakenly clear monitorFetch flag
  • Issue 863: AutoXHR: alwaysSendXhr accepts a function or list of strings/regexs

1.602.0

Bug Fixes:

  • Issue 858: Fix localStorage expiry time
  • Issue 854: Run page ready only after config arrives
  • Issue 861: If the cookie is set to null, rt.si, rt.sl, rt.ss, should not be written

1.598.0

New Features

  • Issue 851: EXPERIMENTAL: AutoXHR: Delay checking RT if fetch response body is not used

Bug Fixes:

  • Issue 850: EXPERIMENTAL: AutoXHR: Do not instrument polyfilled fetch API

Tests:

  • Issue 841: Remove CT16 'slowest' from Resource Groups

Docs:

  • Issue 820: ResourceTiming: JSDoc fixes

1.593.0

New Features:

  • Issue 824: EXPERIMENTAL: AutoXHR: Add Fetch API instrumentation

Bug Fixes:

  • Issue 843: AutoXHR: Handle XHRs that are aborted after readyState 4
  • Issue 844: SPA: Fixes URL for SPA navigations after XHR beacons

1.590.0

New Features:

  • Issue 813: Add cookie length and localStorage length as beacon parameters
  • Issue 818: Trap clearResourceTimings()

Bug Fixes:

  • Issue 835: Protect access to localStorage variable
  • Issue 838: AutoXHR: Only save XHR request and response payloads if configured to
  • Issue 817: Replace undefined parameter values with empty string in beacon query
  • OS Issue 198: Fix TypeError: undefined is not an object

Tests:

  • Issue 828: Test server: Add support for customizable status codes in all cases
  • Issue 802: Test fixes for test #111096
  • Issue 839: Clean sessionStorage in e2e tests
  • Issue 842: Fix for 11-restiming/12-clearResourceTiming

Docs:

  • Issue 830: Continuity: Docs update for missing parameters
  • Issue 836: Docs for Boomerang Tests

1.579.0

New Features:

  • Issue 792: Use currentSrc for images (PICTURE support)
  • Issue 814: SVG:IMAGE and srcset support for Continuity Hero Images

Bug Fixes:

  • Issue 809: Errors: unbound removeEventListener
  • Issue 750: History: react to popstate events and allow aborted beacons

1.571.0

Bug Fixes:

  • Issue 804: OS Repo sync and fixes 2018
  • Issue 801: Add array bounds check to getQueryParamValue()
  • Issue 790: ResourceGroups: Run at same time as other handlers instead of at before_beacon
  • Issue 793: Boomerang: Ensure we don't console.log a BOOMR.debug message in production
  • Issue 805: Continuity: Fix busy calculation for late periods
  • Issue 775: Errors: Check context in wrapFn
  • Issue 777: Errors: Call removeEventListener before addEventListener
  • Issue 784: getMyURL() fix for PhantomJS 1
  • Issue 776: Correctly detect our url on IE using non-standard loader
  • Issue 799: Move alwaysSendXhr into the pluginConfig section to make it clearer that this is an AutoXHR config
a593d8e
Compare
Choose a tag to compare

This is a backport of all of Akamai/SOASTA's contributions to boomerang from April 2017 (mPulse's version 1.452.0) through April 2018 (mPulse's version 1.568.0).

This backport also includes a large update to the JSDoc documentation of Boomerang. We will be updating the documentation site after this has been merged.

New Plugins

  • Continuity plugin [Nic Jansma] 0f1ced9
  • IFrameDelay plugin [Andreas Marschke] 3bfe3d7
  • PaintTiming plugin [Nic Jansma] 3418aea

New Features

  • Boomerang: Documentation Updates [Nic Jansma] 226062f
  • Boomerang: Add 'nocookie' flag if we couldn't set cookies [Nic Jansma] 94cfa61
  • Boomerang: Add BOOMR.utils.arrayFind function [Nigel Heron] 2a8b36d
  • Boomerang: Capture BOOMR.page_ready() time after onload; [Nic Jansma] 9ef6d13
  • Boomerang: BOOMR.addVar() for single beacons [Nic Jansma] 9ef6d13
  • Boomerang: Configuration for locking beacon_url to specific patterns [Nic Jansma] e85fdf4
  • Boomerang: LocalStorage support [Nigel Heron] 296e335
  • History: Option to disable hard navigation in favor of BOOMR.page_ready() [Andreas Marschke] cd5ab8d
  • NavigationTiming: Add a few NavigationTiming2 fields if available [Nic Jansma] b18ef55
  • ResourceTiming: Add iframe and subdocument to initiatorType [jzyang] 94b92e5
  • ResourceTiming: Add link.rel data to the ResourceTiming trie [Charles Vazac] a5f3789
  • SPA: Log aborted load beacons [Nigel Heron] 6173215
  • SPA: markNavigationComplete() support [Nic Jansma] f253d1b

Bug Fixes

  • Boomerang: Work around minification that breaks in IE8 and quirks mode [Nigel Heron] 603d5da
  • Boomerang: BOOMR.sendBeaconData refactor [Nic Jansma] 8b0ef73
  • Boomerang: Override the load end-time with BOOMR_page_ready or param to page_ready() [Nigel Heron] 2ff1e2a
  • Boomerang: sendBeacon: x-www-form-urlencoded [Nic Jansma] b5d9967
  • Boomerang: Workaround for document.write changing readyState after onload [Nigel Heron] 2822a79
  • Angular: Don't trigger Route Change on $locationChangeStart if other events fire [Nic Jansma] 1cce81c
  • Angular: Track navigations when only a $locationChangeStart fires [Nic Jansma] 031c1fb
  • AutoXHR: Disable MutationObserver in IE 11 due to browser bugs [Nigel Heron] a99f09d
  • AutoXHR: Do not extend the event timeout with each uninteresting mutation [Nigel Heron] 1fdfcda
  • AutoXHR: Don't wait for XHRs that .open() but don't .send() [Nigel Heron] 583536b
  • AutoXHR: Fixes XHR after click missing beacon [Nic Jansma] 970ad46
  • AutoXHR: If we don't instrument XHR open then don't instrument send either [Nigel Heron] 58b0879
  • AutoXHR: Wait once up to 1,000ms after an uninteresting mutation [Nic Jansma] 69840cd
  • Documentation: Misc JSDoc fixes [Nic Jansma] 9c3e863
  • Errors: Call removeEventListener before addEventListener [Charles Vazac] 2d2cfd0
  • Errors: Check context in wrapFn [Charles Vazac] 1e79cd4
  • Errors: Deduplicate calls to AddEventListener with the same arguments [Nigel Heron] 5f2a31a
  • Errors: Don’t report IE error for freed script in event and timeout handlers [Nigel Heron] cd898d2
  • Errors: Loader Snippet to capture errors before Boomerang arrives [Nic Jansma] becae71
  • Errors: Re-throw caught exceptions [Nic Jansma] c5fbfc5
  • Errors: Remove certain file names from stacks [Nic Jansma] f66eb82
  • Errors: Send during onload if autorun=false [Nic Jansma] 46c6f62
  • Errors: Wrap addEventListener at the end of the protocol chain [Nigel Heron] c443040
  • NavigationTiming: Deprecate chrome.loadTimes [Nic Jansma] 3418aea
  • NavigationTiming: Don't include timestamps for events that haven't happened [Nic Jansma] 721ceb3
  • NavigationTiming: Fix nt_nav_st [Nigel Heron] 8db2951
  • ResourceTiming: Additional checks and fixes for non-supported browsers [Nic Jansma] 4fe7ec0
  • RT: Always use loadEventEnd as the end load time [Nic Jansma] e70b3f1
  • RT: Fix t_page and t_resp missing from the beacon [Nic Jansma] 6f1acad
  • SPA: Calculate Front-End / Back-End even if ResTiming isn't enabled but the plugin is available [Nic Jansma] 45dacc6
  • SPA: Don't send beacons for SPA soft navs that don't change the URL and no resources are triggered [Nigel Heron] 0736a0d
  • SPA: Fix custom timers for SPA navigations [Nigel Heron] f35f912
  • TPAnalytics: Don’t send boomerang error on TPAnalytics third party errors [Nigel Heron] 921538f

Loader Snippet Update

  • Boomerang Loader Snippet v10 [Nic Jansma] 0264088
  • Documentation: Non-Blocking Loader Snippet and delayed snippet [Nic Jansma] 61290ed
  • Correctly detect our url on IE using non-standard loader [Philip Tellis] bda14f5
  • BOOMR.getMyURL() fix for PhantomJS 1 [Nigel Heron] a1ca875
  • Make self url detection work when loaded in primary window as well [Philip Tellis] fc44746

Test Fixes

  • Tests: Headless modern browser support (Chrome + Firefox) [Nic Jansma] 745792b
  • Tests: Edge, IE and Safari e2e support [Nigel Heron] b1dd31b
  • Test Framework: isJSONSupported() added [Nigel Heron] f9fe647
  • Prevent unload confirmation popup in tests [Nigel Heron] 791c588
  • Revive the SauceLabs code [Charles Vazac] b813ebf
  • Update to new server timing header syntax [Charles Vazac] 2c375ec
  • Upgrade "express-middleware-server-timing" [Charles Vazac] 8a4cb8d
  • Test fixes [Nigel Heron] e4dc03e
  • Modernize expressjs usage, which fixes express-middleware-server-timing [Charles Vazac] 69ae882
  • Test fixes for modern browsers [Nic Jansma] 6fd3713
  • 14-errors/23-duplicate-event-listener: Fixes inconsistent failure and older browsers [Nic Jansma] d0b5c10
  • Test framework helper function for IE [Nic Jansma] d734bcb
  • 03-load-order/02-after-page-load-tag-manager.html: Reduce code duplication [Nic Jansma] 4cd19e2
  • Fixes e2e-debug.js [Nic Jansma] 9f1f513
  • 01-beacon-type/04-send-beacon: Change how sendBeacon is detected [Nic Jansma] bc89347
  • 01-beacon-type/0123: Disable sendBeacon so we can inspect ResourceTiming for the correct type [Nic Jansma] f67eac2
  • Fixes 00-basic/09-overrides [Nic Jansma] 3201f02
  • Check that all beacons pass basic validation [Nigel Heron] eacde8c
  • Misc changes for Boomerang [Andreas Marschke] a2acc34
  • Instrument Express requests with express-middleware-server-timing [Charles Vazac] 42d6782
  • Misc test fixes [Andreas Marschke] 6e36d17
  • Misc test framework fixes [Nigel Heron] d0b7382
  • Test fixes [Nigel Heron] 9f097ee
  • Use floor instead of round to match navtiming plugin [Nigel Heron] a45b2c2

Misc

  • Updated package-lock.json [Nic Jansma] d536df4
  • Gruntfile: Allow passing in commit via commandline [Nic Jansma] 5b371df
  • Package.json: Add blueimp-md5, error-stack-parser and jsurl at versions we've embedded them in for Snyk [Nic Jansma] c91c711
  • Plugin init cleanup [Nic Jansma] 73c2513
  • BOOMR.log: Add timestamp [Nic Jansma] dda7f2b
  • Miscellaneous cleanup [Nigel Heron] e815d9c
  • Warn on window and document overrides (debug builds only) [Charles Vazac] f01f396
  • PCI compliance fixes [Nic Jansma] a98dfd3
  • Update copyrights [Nigel Heron] cc058d7