Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Akamai 2018 Q3 Backport #230

Merged
merged 53 commits into from Nov 13, 2018
Merged

Akamai 2018 Q3 Backport #230

merged 53 commits into from Nov 13, 2018

Conversation

@nicjansma
Copy link

nicjansma commented Oct 26, 2018

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
querymetrics and others added 30 commits Apr 4, 2018
Images loaded inside a PICTURE element may use a URL different from the one in their src attribute.
Browsers that support the PICTURE element also include a currentSrc property (not attribute) for
image objects that holds the (fully qualified) url of the currently rendered image.  This is the
url that we'll see showing up in ResourceTiming, so we should use it instead.

We don't do this in auto-xhr in our MutationObserver because if an image's src attribute changes,
the mutation observer fires, and its currentSrc at that point is set to the pre-change src rather
than the current src. We also don't need currentSrc at that point.

Also adds tests.  Note that the slots in sizes for IMG srcset are dependent on the devicePixelRatio,
so our test for IMG srcset adjusts the slots based on this value.  This doesn't quite work in
Safari because Safari does not change the slot size, but since we aren't dependent on the slot
size for execution of boomerang (only for the unit test), this doesn't matter.

Lastly, if the image has loaded via an srcset, then its naturalHeight and Width may be density
corrected for the slot size. In order to get the actual physical dimensions of the image, we
create an in-memory Image (in the element's window), and assign the image to that.
…nager
…; Workaround for Safari 11 Object equality bug
…string.

Also refactor function to reduce code duplication.
This handles Issue #762
Adds documentation about tests and how to run them
…fix potential race condition
Co-authored-by: Andreas Marschke <amarschk@akamai.com>
…he beacon
cvazac and others added 19 commits Aug 22, 2018
… Don't send errors for sync XHRs
…ty string
@sukrat-kashyap

This comment has been minimized.

Copy link

sukrat-kashyap commented Nov 5, 2018

LGTM 👍

@quintenp

This comment has been minimized.

Copy link

quintenp commented Nov 6, 2018

Nice one can we get a merge? 👍

@nicjansma nicjansma merged commit 4e87820 into master Nov 13, 2018
@nicjansma nicjansma deleted the akamai-backport-2018-10 branch Nov 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
9 participants
You can’t perform that action at this time.