- From: Boris Zbarsky <bzbarsky@mit.edu>
- Date: Tue, 02 Jun 2015 13:51:47 -0400
- To: Ilya Grigorik <igrigorik@google.com>
- CC: "public-web-perf@w3.org" <public-web-perf@w3.org>
On 6/2/15 1:28 PM, Ilya Grigorik wrote:
> The workerStart attribute MUST return a DOMHighResTimeStamp
> representing the difference between the time origin of WorkerGlobalScope
> of the AbstractWorker the getter is invoked on, and the [time origin of the
> context][1] that started it.
So what, exactly, does "the context that started it" mean? The
fundamental problem is that both "context" and "started it" are
undefined. As a simple example:
parent.html:
<iframe></iframe>
<iframe src="child.html"></iframe>
<script>
onload = function() {
var w = new frames[0].SharedWorker(something, "myworker");
frames[1].getTime(w);
}
</script>
child.html:
<script>function getTime(w) { alert(w.workerStart); }</script>
Is w.workerStart relative to the parent page or the first subframe or
the second subframe (which is where the code examining workerStart
lives)? Or, if there was already a SharedWorkerGlobalScope for
"myworker" that was created from some other page, is it relative to that
page?
Put another way, what are the actual use cases here? Is it to allow
whoever has a reference to the worker to convert its times into their
own timebase? Or is it to allow something else?
Because one plausible definition here would be to have the "workerStart"
getter take the timebase of the incumbent settings object's global and
return the offset between that and the timebase of the worker global.
This would have the salutary effect that code like this would have the
properties described in the comments in it:
w.onmessage = function(e) {
var workerTimeStamp = e.data; // in worker's timebase
var timeStamp = workeTimeStamp + w.workerStart;
// timeStamp is now in the same timebase as performance.now()
}
no matter where w came from to reach this code. So in my example above
the answer would be "second subframe" when examined from inside the
second subframe, but "parent page" if examined directly from the onload
handler.
But this really comes back to how we expect people to actually use this
property, of course.
-Boris
Received on Tuesday, 2 June 2015 17:52:17 UTC