From 2e9000f87e8ac614bb55213e86af5f366ee2cc70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Pe=C3=B1a=20Moreno?= Date: Tue, 3 Dec 2019 14:33:38 -0800 Subject: [PATCH] [Longtasks] Fix containerType and containerSrc in attribution This CL brings the longtasks API up to date with the recent changes on https://github.com/w3c/longtasks/pull/78. It also adds WPT tests for those changes. The changes are: * containerType is "window", "iframe", "embed", etc. depending on the type of the culprit browsing context container. * containerSrc is now the 'data' attribute when the container is an . Change-Id: I06f661968778e3bec433a1bfe758b4604df01557 --- longtask-timing/containerTypes.html | 64 +++++++++++++++++++ longtask-timing/longtask-attributes.html | 1 + .../longtask-in-childiframe-crossorigin.html | 1 + longtask-timing/longtask-in-childiframe.html | 1 + .../longtask-in-externalscript.html | 1 + longtask-timing/longtask-in-parentiframe.html | 1 + longtask-timing/longtask-in-raf.html | 1 + ...ongtask-in-sibling-iframe-crossorigin.html | 1 + .../longtask-in-sibling-iframe.html | 1 + .../subframe-observing-longtask.html | 1 + 10 files changed, 73 insertions(+) create mode 100644 longtask-timing/containerTypes.html diff --git a/longtask-timing/containerTypes.html b/longtask-timing/containerTypes.html new file mode 100644 index 000000000000000..94daab793c67f49 --- /dev/null +++ b/longtask-timing/containerTypes.html @@ -0,0 +1,64 @@ + + +LongTask Timing: long tasks in various containers + + + +

Longtasks in iframe, frame, object, and embed

+
+ + diff --git a/longtask-timing/longtask-attributes.html b/longtask-timing/longtask-attributes.html index b5d44b0db5d33ee..8e0da824a873c6c 100644 --- a/longtask-timing/longtask-attributes.html +++ b/longtask-timing/longtask-attributes.html @@ -35,6 +35,7 @@

Long Task Attributes

assert_equals(attribution.name, 'unknown'); assert_equals(attribution.duration, 0); assert_equals(attribution.startTime, 0); + assert_equals(attribution.containerType, 'window'); assert_equals(attribution.containerId, ''); assert_equals(attribution.containerName, ''); assert_equals(attribution.containerSrc, ''); diff --git a/longtask-timing/longtask-in-childiframe-crossorigin.html b/longtask-timing/longtask-in-childiframe-crossorigin.html index aaabce5d79da192..149cf93e8695ef1 100644 --- a/longtask-timing/longtask-in-childiframe-crossorigin.html +++ b/longtask-timing/longtask-in-childiframe-crossorigin.html @@ -36,6 +36,7 @@

Long Task in Nested Cross-Origin Child Iframe

assert_equals(attribution.name, 'unknown'); assert_equals(attribution.duration, 0); assert_equals(attribution.startTime, 0); + assert_equals(attribution.containerType, 'iframe'); assert_equals(attribution.containerId, 'child-iframe-id'); assert_equals(attribution.containerName, 'child-iframe-name'); assert_equals(attribution.containerSrc, diff --git a/longtask-timing/longtask-in-childiframe.html b/longtask-timing/longtask-in-childiframe.html index 34b802cb69676e1..432ead57597fd4d 100644 --- a/longtask-timing/longtask-in-childiframe.html +++ b/longtask-timing/longtask-in-childiframe.html @@ -41,6 +41,7 @@

Long Task in Nested Child Iframe

assert_equals(attribution.name, 'unknown'); assert_equals(attribution.duration, 0); assert_equals(attribution.startTime, 0); + assert_equals(attribution.containerType, 'iframe'); assert_equals(attribution.containerId, 'child-iframe-id'); assert_equals(attribution.containerName, 'child-iframe-name'); assert_equals(attribution.containerSrc, 'resources/subframe-with-longtask.html'); diff --git a/longtask-timing/longtask-in-externalscript.html b/longtask-timing/longtask-in-externalscript.html index 076f0f2291400aa..57c2d5650c05e33 100644 --- a/longtask-timing/longtask-in-externalscript.html +++ b/longtask-timing/longtask-in-externalscript.html @@ -32,6 +32,7 @@

Long Task: External Script

assert_equals(attribution.name, 'unknown'); assert_equals(attribution.duration, 0); assert_equals(attribution.startTime, 0); + assert_equals(attribution.containerType, 'window'); assert_equals(attribution.containerId, ''); assert_equals(attribution.containerName, ''); assert_equals(attribution.containerSrc, ''); diff --git a/longtask-timing/longtask-in-parentiframe.html b/longtask-timing/longtask-in-parentiframe.html index 778edc1000ffce3..2da635467a211ca 100644 --- a/longtask-timing/longtask-in-parentiframe.html +++ b/longtask-timing/longtask-in-parentiframe.html @@ -16,6 +16,7 @@ assert_equals(e.data['entryType'], 'longtask'); assert_equals(e.data['frame-attribution'], 'same-origin-ancestor'); assert_equals(e.data['task-attribution'], 'unknown'); + assert_equals(e.data['containerType'], 'window'); assert_equals(e.data['containerId'], ''); assert_equals(e.data['containerName'], ''); assert_equals(e.data['containerSrc'], ''); diff --git a/longtask-timing/longtask-in-raf.html b/longtask-timing/longtask-in-raf.html index 2d30ac36b963392..88ad2ef98927aa6 100644 --- a/longtask-timing/longtask-in-raf.html +++ b/longtask-timing/longtask-in-raf.html @@ -32,6 +32,7 @@

Long Task: requestAnimationFrame

assert_equals(attribution.name, 'unknown'); assert_equals(attribution.duration, 0); assert_equals(attribution.startTime, 0); + assert_equals(attribution.containerType, 'window'); assert_equals(attribution.containerId, ''); assert_equals(attribution.containerName, ''); assert_equals(attribution.containerSrc, ''); diff --git a/longtask-timing/longtask-in-sibling-iframe-crossorigin.html b/longtask-timing/longtask-in-sibling-iframe-crossorigin.html index b73112e3abf8c88..653556333a14c24 100644 --- a/longtask-timing/longtask-in-sibling-iframe-crossorigin.html +++ b/longtask-timing/longtask-in-sibling-iframe-crossorigin.html @@ -16,6 +16,7 @@ assert_equals(e.data['entryType'], 'longtask'); assert_equals(e.data['frame-attribution'], 'cross-origin-unreachable'); assert_equals(e.data['task-attribution'], 'unknown'); + assert_equals(e.data['containerType'], 'window'); assert_equals(e.data['containerId'], ''); assert_equals(e.data['containerName'], ''); assert_equals(e.data['containerSrc'], ''); diff --git a/longtask-timing/longtask-in-sibling-iframe.html b/longtask-timing/longtask-in-sibling-iframe.html index 16f0998c2234f39..280d387654b8a49 100644 --- a/longtask-timing/longtask-in-sibling-iframe.html +++ b/longtask-timing/longtask-in-sibling-iframe.html @@ -20,6 +20,7 @@ assert_equals(e.data['frame-attribution'], 'same-origin'); assert_equals(e.data['task-attribution'], 'unknown'); + assert_equals(e.data['containerType'], 'iframe'); assert_equals(e.data['containerId'], 'longtask-iframe-id'); assert_equals(e.data['containerName'], 'longtask-iframe-name'); assert_equals(e.data['containerSrc'], 'resources/subframe-with-longtask.html'); diff --git a/longtask-timing/resources/subframe-observing-longtask.html b/longtask-timing/resources/subframe-observing-longtask.html index b232ecdd47ae5fa..125ff1e4cb5391e 100644 --- a/longtask-timing/resources/subframe-observing-longtask.html +++ b/longtask-timing/resources/subframe-observing-longtask.html @@ -19,6 +19,7 @@

Child Iframe observing long tasks

'entryType': longtask.entryType, 'frame-attribution': longtask.name, 'task-attribution': attribution.name, + 'containerType': attribution.containerType, 'containerId': attribution.containerId, 'containerName': attribution.containerName, 'containerSrc': attribution.containerSrc