Releases: akamai/boomerang
1.737.0
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 theAutoXHR.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)
1.720.0
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 tofirst-input
per spec change
1.710.0 (May 6, 2020)
Breaking Changes
- Errors: The
monitorEvents
andmonitorTimeout
options are now disabled by default. As a result, some cross-origin JavaScript
Errors may not report the full message (and instead will only showScript 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
toc.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
1.687.0
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
1.650.0
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
androuteChangeWaitFilter
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
frompackage.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
1.621.0
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 anErrorEvent
object - Issue 893: Continuity: Disable
MutationObserver
usage formonitorStats
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()
ifnextHopProtocol
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 whenbeacon_type
is set toGET
- 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
andsrcset
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
aBOOMR.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
beforeaddEventListener
- Issue 784:
getMyURL()
fix for PhantomJS 1 - Issue 776: Correctly detect our url on IE using non-standard loader
- Issue 799: Move
alwaysSendXhr
into thepluginConfig
section to make it clearer that this is an AutoXHR config
1.568.0
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