@nicjansma nicjansma released this Apr 13, 2018 · 10 commits to master since this release

Assets 2

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


  • 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