New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 665094 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 695939



Sign in to add a comment

PerformanceObserver does not observe navigator.sendBeacon requests

Project Member Reported by ericbidelman@chromium.org, Nov 14 2016

Issue description

Version: 56.0.2919.0
OS: MacOSX

PerformanceObserver should get callbacks for navigator.sendBeacon() requests when `entryTypes: 'resource'` is used.

=== REPRO ===

Expected: that the following logs an entry for the request (it does not):

const observer = new PerformanceObserver(list => {
  console.log(list.getEntries());
}).observe({entryTypes: ['resource']});

navigator.sendBeacon('https://posttestserver.com/');

Actual: no entry is observed. 


 
Cc: panicker@chromium.org
Labels: Hotlist-PerformanceAPIs

Comment 3 by panicker@google.com, Apr 13 2017

Status: Unconfirmed (was: Untriaged)
Supporting Resource Timing with Performance Observer is "Level 3" API - which I believe is still in "getting the spec ready" stage. (Ilya - is that right?)
So this is currently working as intended - from implementation POV.
Cc: tyoshino@chromium.org
Integration with PerformanceObserver *is* part of L2: 

https://www.w3.org/TR/resource-timing-2/#processing-model
> step 20: Queue the PerformanceResourceTiming object.

AFAIK, everything but sendBeacon works.. so that is an implementation bug on our side. That said, I believe Tokyo team is working towards rebasing our current implementation on top of fetch (once "keepalive" support is implemented), so this should—hopefully—be resolved as part of that.

Comment 5 by panicker@google.com, Apr 14 2017

Cc: -tyoshino@chromium.org
Owner: tyoshino@chromium.org
tyoshino - could you confirm or triage?
Cc: yhirano@chromium.org
Components: Blink>Network
Labels: -Pri-3 Pri-2
Status: Available (was: Unconfirmed)
This is because sendBeacon doesn't go through ResourceFetcher. Need to manually invoke FrameFetchContext::AddResourceTiming().

Adding yhirano@ as he's going to re-design PingLoader.
Blockedon: 695939
Cc: tyoshino@chromium.org
Owner: ----
Summary: PerformanceObserver does not observe navigator.sendBeacon requests (was: PerformanceObserver does not observer navigator.sendBeacon requests)
In the effort of making sendBeacon nice, we'll throw PingLoader away. Once everything's aligned with the other loading paths, we could easily fix this.

For now, unassigning myself until the rearchitecture is done.
Components: -Blink>PerformanceAPIs Blink>PerformanceAPIs>ResourceTiming
Filing this under ResourceTiming, let me know if that doesn't seem correct.
Owner: yhirano@chromium.org
Status: Fixed (was: Available)
It's fixed now as SendBeacon is using ResourceFetcher.

Sign in to add a comment