From f3657aa261fbf29059a65ee1c2b004008b034f6a Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Tue, 10 Dec 2019 00:12:30 +0000 Subject: [PATCH] Bug 1601075 [wpt PR 20595] - [Longtasks] Fix containerType and containerSrc in attribution, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests [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 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1949146 Reviewed-by: Steve Kobes Commit-Queue: Nicolás Peña Moreno Cr-Commit-Position: refs/heads/master{#721258} -- wpt-commits: e92918c7452f2ef99fe95545fdfb41a7787b9b94 wpt-pr: 20595 UltraBlame original commit: a13898cb3364862002fb9de0e58f039c4c0a5b3e --- .../tests/longtask-timing/containerTypes.html | 592 ++++++++++++++++++ .../longtask-timing/longtask-attributes.html | 10 + .../longtask-in-childiframe-crossorigin.html | 10 + .../longtask-in-childiframe.html | 10 + .../longtask-in-externalscript.html | 10 + .../longtask-in-parentiframe.html | 15 + .../longtask-timing/longtask-in-raf.html | 10 + ...ongtask-in-sibling-iframe-crossorigin.html | 15 + .../longtask-in-sibling-iframe.html | 15 + .../subframe-observing-longtask.html | 7 + 10 files changed, 694 insertions(+) create mode 100644 testing/web-platform/tests/longtask-timing/containerTypes.html diff --git a/testing/web-platform/tests/longtask-timing/containerTypes.html b/testing/web-platform/tests/longtask-timing/containerTypes.html new file mode 100644 index 0000000000000..0be83eba753a0 --- /dev/null +++ b/testing/web-platform/tests/longtask-timing/containerTypes.html @@ -0,0 +1,592 @@ +< +! +DOCTYPE +HTML +> +< +meta +charset += +utf +- +8 +> +< +title +> +LongTask +Timing +: +long +tasks +in +various +containers +< +/ +title +> +< +body +> +< +script +src += +" +/ +resources +/ +testharness +. +js +" +> +< +/ +script +> +< +script +src += +" +/ +resources +/ +testharnessreport +. +js +" +> +< +/ +script +> +< +h1 +> +Longtasks +in +iframe +frame +object +and +embed +< +/ +h1 +> +< +div +id += +" +log +" +> +< +/ +div +> +< +script +> +function +Container +( +name +src +) +{ +this +. +name += +name +; +this +. +src += +src +; +} +const +Containers += +[ +new +Container +( +' +iframe +' +' +src +' +) +new +Container +( +' +frame +' +' +src +' +) +new +Container +( +' +object +' +' +data +' +) +new +Container +( +' +embed +' +' +src +' +) +] +; +Containers +. +forEach +( +container += +> +{ +promise_test +( +async +t += +> +{ +assert_precondition +( +window +. +PerformanceLongTaskTiming +' +Longtasks +are +not +supported +. +' +) +; +const +initialTime += +performance +. +now +( +) +; +return +new +Promise +( +resolve += +> +{ +const +observer += +new +PerformanceObserver +( +t +. +step_func +( +entryList += +> +{ +const +entries += +entryList +. +getEntries +( +) +; +assert_equals +( +entries +. +length +1 +' +Exactly +one +entry +is +expected +. +' +) +; +const +longtask += +entries +[ +0 +] +; +assert_equals +( +longtask +. +entryType +' +longtask +' +) +; +if +( +longtask +. +name += += +' +self +' +| +| +longtask +. +name += += +' +multiple +- +contexts +' +| +| +longtask +. +name += += +' +unknown +' +) +return +; +assert_equals +( +longtask +. +name +' +same +- +origin +- +descendant +' +) +; +assert_greater_than +( +longtask +. +duration +50 +) +; +assert_greater_than_equal +( +longtask +. +startTime +initialTime +) +; +const +currentTime += +performance +. +now +( +) +; +assert_less_than_equal +( +longtask +. +startTime +currentTime +) +; +/ +/ +Assert +the +TaskAttributionTiming +entry +in +attribution +. +assert_equals +( +longtask +. +attribution +. +length +1 +' +Exactly +one +attribution +entry +is +expected +' +) +; +const +attribution += +longtask +. +attribution +[ +0 +] +; +assert_equals +( +attribution +. +entryType +' +taskattribution +' +) +; +assert_equals +( +attribution +. +name +' +unknown +' +) +; +assert_equals +( +attribution +. +duration +0 +) +; +assert_equals +( +attribution +. +startTime +0 +) +; +assert_equals +( +attribution +. +containerId +container +. +name ++ +' +- +id +' +) +; +assert_equals +( +attribution +. +containerName +container +. +name ++ +' +- +name +' +) +; +assert_equals +( +attribution +. +containerSrc +' +resources +/ +subframe +- +with +- +longtask +. +html +' +) +; +observer +. +disconnect +( +) +; +resolve +( +) +; +} +) +) +; +observer +. +observe +( +{ +entryTypes +: +[ +' +longtask +' +] +} +) +; +const +containerObject += +document +. +createElement +( +container +. +name +) +; +containerObject +. +id += +container +. +name ++ +' +- +id +' +; +containerObject +. +name += +container +. +name ++ +' +- +name +' +; +containerObject +[ +container +. +src +] += +' +resources +/ +subframe +- +with +- +longtask +. +html +' +; +document +. +body +. +appendChild +( +containerObject +) +; +} +) +; +} +Performance +longtask +entries +in +{ +container +. +name +} +are +observable +in +parent +. +) +; +} +) +; +< +/ +script +> +< +/ +body +> diff --git a/testing/web-platform/tests/longtask-timing/longtask-attributes.html b/testing/web-platform/tests/longtask-timing/longtask-attributes.html index b3a4acc25d695..7e7f167498585 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-attributes.html +++ b/testing/web-platform/tests/longtask-timing/longtask-attributes.html @@ -302,6 +302,16 @@ ( attribution . +containerType +' +window +' +) +; +assert_equals +( +attribution +. containerId ' ' diff --git a/testing/web-platform/tests/longtask-timing/longtask-in-childiframe-crossorigin.html b/testing/web-platform/tests/longtask-timing/longtask-in-childiframe-crossorigin.html index 6c292fa7a5cde..d1539b6a928fa 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-in-childiframe-crossorigin.html +++ b/testing/web-platform/tests/longtask-timing/longtask-in-childiframe-crossorigin.html @@ -324,6 +324,16 @@ ( attribution . +containerType +' +iframe +' +) +; +assert_equals +( +attribution +. containerId ' child diff --git a/testing/web-platform/tests/longtask-timing/longtask-in-childiframe.html b/testing/web-platform/tests/longtask-timing/longtask-in-childiframe.html index 85b6654c47239..51218000ea7ea 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-in-childiframe.html +++ b/testing/web-platform/tests/longtask-timing/longtask-in-childiframe.html @@ -355,6 +355,16 @@ ( attribution . +containerType +' +iframe +' +) +; +assert_equals +( +attribution +. containerId ' child diff --git a/testing/web-platform/tests/longtask-timing/longtask-in-externalscript.html b/testing/web-platform/tests/longtask-timing/longtask-in-externalscript.html index 70705f4d2cf1e..7d6bac1216996 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-in-externalscript.html +++ b/testing/web-platform/tests/longtask-timing/longtask-in-externalscript.html @@ -280,6 +280,16 @@ ( attribution . +containerType +' +window +' +) +; +assert_equals +( +attribution +. containerId ' ' diff --git a/testing/web-platform/tests/longtask-timing/longtask-in-parentiframe.html b/testing/web-platform/tests/longtask-timing/longtask-in-parentiframe.html index 6c89611ea6fa9..465e099960a88 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-in-parentiframe.html +++ b/testing/web-platform/tests/longtask-timing/longtask-in-parentiframe.html @@ -181,6 +181,21 @@ data [ ' +containerType +' +] +' +window +' +) +; +assert_equals +( +e +. +data +[ +' containerId ' ] diff --git a/testing/web-platform/tests/longtask-timing/longtask-in-raf.html b/testing/web-platform/tests/longtask-timing/longtask-in-raf.html index c348d7be77252..1de0601ef9594 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-in-raf.html +++ b/testing/web-platform/tests/longtask-timing/longtask-in-raf.html @@ -278,6 +278,16 @@ ( attribution . +containerType +' +window +' +) +; +assert_equals +( +attribution +. containerId ' ' diff --git a/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe-crossorigin.html b/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe-crossorigin.html index e7611ad7cc4e9..8c376df523c90 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe-crossorigin.html +++ b/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe-crossorigin.html @@ -180,6 +180,21 @@ data [ ' +containerType +' +] +' +window +' +) +; +assert_equals +( +e +. +data +[ +' containerId ' ] diff --git a/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe.html b/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe.html index c9ce7f70b027e..6129500577384 100644 --- a/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe.html +++ b/testing/web-platform/tests/longtask-timing/longtask-in-sibling-iframe.html @@ -217,6 +217,21 @@ data [ ' +containerType +' +] +' +iframe +' +) +; +assert_equals +( +e +. +data +[ +' containerId ' ] diff --git a/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html b/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html index 931edb9db0be1..b82335f272665 100644 --- a/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html +++ b/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html @@ -217,6 +217,13 @@ . name ' +containerType +' +: +attribution +. +containerType +' containerId ' :