ロングタスク API

W3C 作業草案、

この文書についての詳細
このバージョン:
https://www.w3.org/TR/2026/WD-longtasks-1-20260319/
最新の公表バージョン:
https://www.w3.org/TR/longtasks-1/
編集者草案:
https://w3c.github.io/longtasks/
過去のバージョン:
履歴:
https://www.w3.org/standards/history/longtasks-1/
テストスイート:
http://w3c-test.org/longtask-timing/
フィードバック:
GitHub
仕様内でインライン
編集者:
(Google)
以前の編集者:
(Google)
(Google)
(Google)

概要

本書は、ウェブページの作成者が「ロングタスク」(UIスレッドを長時間占有し、他の重要なタスクの実行を妨げるもの―例: ユーザー入力への反応)を検出するために使用できるAPIを定義します。

この文書のステータス

このセクションは、本書が公開された時点でのドキュメントの状態について説明します。 現在のW3C出版物一覧およびこの技術報告書の最新版は W3C標準および草案インデックスで確認できます。

このドキュメントは Webパフォーマンス作業グループによって 作業草案として 勧告トラックを用いて公開されました。 作業草案としての公開は、 W3Cおよびそのメンバーによる支持を意味しません。

これは草案ドキュメントであり、 いつでも他のドキュメントによって更新・置換・廃止される可能性があります。 このドキュメントを進行中の作業以外として引用するのは適切ではありません。

GitHub Issuesはこの仕様の議論に推奨されます。

本書は 2025年8月18日W3Cプロセス文書 に従うものです。

この文書は W3C特許ポリシーのもとで活動しているグループによって作成されました。 W3Cは 本グループの成果物に関連してなされた 公開特許開示リスト を管理しています。 そのページには特許を開示するための手順も掲載されています。 特許について実際の知識を有し、その特許が 必須請求項 を含むと考える者は、 W3C特許ポリシー第6節に従い、その情報を開示しなければなりません。

本書にコメントする場合は、public-web-perf@w3.org(購読、アーカイブ)に [LongTasks]を件名の先頭につけてメールを送信してください。

1. はじめに

ページの読み込み中やユーザーがページとやり取りしている間、アプリケーションやブラウザーは様々なイベントをキューに入れ、ブラウザーがそれらを実行します。例えば、ユーザーエージェントはユーザーの操作に基づいて入力イベントをスケジュールし、アプリケーションは requestAnimationFrame や他のコールバックのためにコールバックをスケジュールします。キューに入ったイベントは、ブラウザーによって一つずつ取り出されて実行されます。

しかし、いくつかのタスクは長時間(複数フレーム)かかる場合があり、その際UIスレッドがブロックされ、他のすべてのタスクもブロックされることがあります。ユーザーにとっては、これはしばしば「固まった」ページとして現れ、ブラウザーがユーザー入力に応答できなくなります。これは現在ウェブ上でのユーザー体験の大きな悪化要因です:

「操作可能になるまでの時間」の遅延:

ページの読み込み中や、完全に視覚的に表示されていても、ロングタスクがメインスレッドを占有し、ユーザーがページとやり取りするのを妨げます。設計の悪いサードパーティコンテンツが原因となることが多いです。

入力遅延の増加・ばらつき:

重要なユーザー操作イベント(例:タップ、クリック、スクロール、ホイールなど)がロングタスクの後ろに並べられるため、体験がぎこちなく予測困難になります。

イベント処理遅延の増加・ばらつき:

入力イベントと同様、イベントコールバック(例:onloadイベントなど)の処理が遅れ、アプリケーションの更新が遅延します。

アニメーションやスクロールのカクつき:

一部のアニメーションやスクロール操作は、コンポジタスレッドとメインスレッドの協調が必要ですが、メインスレッドがロングタスクでブロックされると、アニメーションやスクロールの応答性に影響します。

一部のアプリケーションやRUMベンダーは、すでに「ロングタスク」が発生したケースの特定や追跡を試みています。例えば、既知のパターンとして、短い周期的なタイマーを設置し、連続するタイマーの満了間の経過時間を調べる方法があります。経過時間がタイマー周期を超えていれば、ロングタスクによってイベントループの実行が遅延した可能性が高いです。この方法は一応機能しますが、パフォーマンス面で多くの問題があります:ロングタスク検出のためにポーリングすると、アイドル状態や長時間の休止が防げてしまい(requestIdleCallback参照)、バッテリー寿命に悪影響を及ぼします。また、遅延の原因(ファーストパーティかサードパーティのコードか)は分かりません。

RAILパフォーマンスモデルは、アプリケーションがユーザー入力に100ms以内で応答するべきだと提案しています(タッチ移動やスクロールの場合は16ms)。このAPIの目的は、アプリケーションがこれらの目標を達成できなくなる原因となるタスクについて通知を提供することです。本APIは50ms以上かかるタスクを検出します。これらのタスクがないウェブサイトは、ユーザー入力に100ms以内で応答できるはずです:ユーザー入力が発生したとき実行中のタスクを50ms未満で終了し、入力への反応タスクも50ms未満で実行できます。

1.1. 利用例

const observer = new PerformanceObserver(function(list) {
    for (const entry of list.getEntries()) {
        // ロングタスク通知の処理:
        // 分析や監視のための報告
        // ...
    }
});
// 過去および今後のロングタスク通知用にオブザーバーを登録
observer.observe({type: "longtask", buffered: true});
// この後に長いスクリプト実行があると、
// "longtask" エントリがオブザーバーにキューされ受け取れる

2. 用語

ロングタスクは、以下のいずれかの事象で50msを超えて継続するものを指します:

閲覧コンテキストコンテナは、閲覧コンテキスト bcに対して、 bc の アクティブドキュメント の ノードナビゲーブル の コンテナです。

注記: この用語は古くなっており、今後改訂する際は新しい用語が再利用されるべきです。

加害閲覧コンテキストコンテナは、閲覧コンテキストコンテナ (iframe、 object など)が、 ロングタスクの原因として全体的に関与している場合に指します。

帰属は、ロングタスクに大きく寄与した作業の種類(スクリプト、レイアウトなど)を特定し、またその作業に責任を持つ 加害閲覧コンテキストコンテナがどれであるかを特定することを指します。

3. ロングタスクタイミング

ロングタスクタイミングには次の新しいインターフェースが含まれます:

3.1. PerformanceLongTaskTiming インターフェース

[Exposed=Window]
interface PerformanceLongTaskTiming : PerformanceEntry {
    /* Overloading PerformanceEntry */
    readonly attribute DOMHighResTimeStamp startTime;
    readonly attribute DOMHighResTimeStamp duration;
    readonly attribute DOMString name;
    readonly attribute DOMString entryType;

    readonly attribute FrozenArray<TaskAttributionTiming> attribution;
    [Default] object toJSON();
};

PerformanceLongTaskTiming の属性値は、§ 4.1 ロングタスクの報告にある処理モデル内で設定されます。以下は、それらがどのように設定されるかの説明(参考)です。

name 属性のgetterは、次のいずれかの文字列を返します:

"unknown"

ロングタスクが、ユーザーエージェントがイベントループ外で行った作業から発生した場合。

"self"

ロングタスクが、このイベントループタスク内で、現在のブラウジングコンテキストで発生した場合。

"same-origin-ancestor"

ロングタスクが、イベントループタスク内で、同一オリジンの祖先ナビゲーブルで発生した場合。

"same-origin-descendant"

ロングタスクが、イベントループタスク内で、同一オリジンの子孫ブラウジングコンテキストで発生した場合。

"same-origin"

ロングタスクが、イベントループタスク内で、祖先でも子孫でもない同一オリジンのブラウジングコンテキストで発生した場合。

"cross-origin-ancestor"

ロングタスクが、イベントループタスク内で、クロスオリジンの祖先ナビゲーブルで発生した場合。

"cross-origin-descendant"

ロングタスクが、イベントループタスク内で、クロスオリジンの子孫ブラウジングコンテキストで発生した場合。

"cross-origin-unreachable"

ロングタスクが、イベントループタスク内で、祖先でも子孫でもないクロスオリジンのブラウジングコンテキストで発生した場合。

"multiple-contexts"

ロングタスクが、複数のブラウジングコンテキストをまたぐイベントループタスクから発生した場合。

注: これらの名前には「-unreachable」や「-contexts」など、いくつか一貫性がないものがあります。 互換性維持のため、これらの名前はそのままとされています。

entryType 属性のgetterは、"longtask" を返します。

startTime 属性のgetterは、タスクの開始時刻のDOMHighResTimeStamp を返します。

duration 属性のgetterは、タスク開始から終了までの経過時間を、1msの粒度で表したDOMHighResTimeStamp を返します。

attribution 属性のgetterは、TaskAttributionTiming エントリの凍結された配列を返します。

3.2. TaskAttributionTiming インターフェース

[Exposed=Window]
interface TaskAttributionTiming : PerformanceEntry {
    /* Overloading PerformanceEntry */
    readonly attribute DOMHighResTimeStamp startTime;
    readonly attribute DOMHighResTimeStamp duration;
    readonly attribute DOMString name;
    readonly attribute DOMString entryType;

    readonly attribute DOMString containerType;
    readonly attribute DOMString containerSrc;
    readonly attribute DOMString containerId;
    readonly attribute DOMString containerName;
    [Default] object toJSON();
};

TaskAttributionTiming の属性値は、§ 4.1 ロングタスクの報告にある処理モデル内で設定されます。以下は、それらがどのように設定されるかの説明(参考)です。

name 属性のgetterは常に"unknown"を返します。

entryType 属性のgetterは常に"taskattribution"を返します。

startTime 属性のgetterは常に0を返します。

duration 属性のgetterは常に0を返します。

containerType 属性のgetterは、原因となるブラウジングコンテナの種類("iframe"、"embed"、"object"など)を返します。単一の原因となるブラウジングコンテナが見つからない場合は、"window"を返します。

containerName 属性のgetterは、コンテナの name コンテンツ属性の値を返します。単一の原因となるブラウジングコンテナが見つからない場合は、空文字列を返します。

containerId 属性のgetterは、コンテナの id コンテンツ属性の値を返します。単一の原因となるブラウジングコンテナが見つからない場合は、空文字列を返します。

containerSrc 属性のgetterは、コンテナの src コンテンツ属性の値を返します。単一の原因となるブラウジングコンテナが見つからない場合は、空文字列を返します。

3.3. 原因の特定

このセクションは規定ではありません。

ロングタスクは、スクリプト・レイアウト・スタイルなど様々な種類の作業を含む場合があり、異なるブラウジングコンテキスト内で実行されたり、全体的(ガベージコレクションなど)なものもあり、 エージェントクラスタやブラウジングコンテキストグループセット全体にまたがる場合もあります。

このため、アトリビューションにはいくつかの側面があります:

したがって、name フィールドと attribution フィールド(PerformanceLongTaskTiming)で、ロングタスクの責任箇所を示します。 この情報を提供する際はWebの同一オリジンポリシーを遵守する必要があります。

これらのフィールドは独立していません。以下はそれらの関係の概要です:

name 原因となるブラウジングコンテナ (attributionで示される)
"self" 空
"same-origin-ancestor" 同一オリジンの原因
"same-origin-descendant" 同一オリジンの原因
"same-origin" 同一オリジンの原因
"cross-origin-ancestor" 空
"cross-origin-descendant" 空
"cross-origin-unreachable" 空
"multiple-contexts" 空
"unknown" 空

4. 処理モデル

注: Long Tasks API を実装するユーザーエージェントは、"longtask" を supportedEntryTypes に Window コンテキスト用として含める必要があります。

これにより、開発者はロングタスクのサポートを検出できます。

4.1. ロングタスクの報告

start time, end time, top-level browsing contexts, task を受け取り、次のアルゴリズムを実行する:
  1. タスク終了時刻を記録する(end time と task の document を用いる)。

  2. end time から start time を引いた値がロングタスクの閾値(50ms)未満なら、この手順を中止する。

  3. destinationRealms を空の集合とする。

  4. レポートを配信する JavaScript Realm の集合を決定する:

    各 トップレベルブラウジングコンテキスト topmostBC(top-level browsing contexts の要素)について:

    1. topmostBC の アクティブドキュメント の 関連Realm を destinationRealms に加える。

    2. descendantBCs を topmostBC の アクティブドキュメント の 子孫ブラウジングコンテキストのリスト とする。

    3. 各 descendantBC(descendantBCs の要素)について、以下を実行する。document をその descendantBC の アクティブドキュメント とする。

    4. 各反復で、(document の 関連Realm, document の 関連設定オブジェクト の クロスオリジン分離機能) を destinationRealms に加える。

  5. ユーザーエージェントは、JavaScript Realm の一部を destinationRealms から除外できる。

注: この除外は、ユーザーエージェントが別プロセスで扱う JavaScript Realm のロングタスク報告を回避するために利用される可能性がある。しかしこの概念は厳密には規定されていない。

どの Document がどのロングタスクに可視性を持つかについて、議論が続いているため、このロジックは将来的に変更される可能性がある。 [Issue #75]

  1. 各 (destinationRealm, crossOriginIsolatedCapability) について、 destinationRealms の中から繰り返す:

    1. name を空文字列に設定する。これは下記の最小加害帰属の報告で用いる。

    2. culpritSettings を null に設定する。

    3. task の スクリプト評価環境設定オブジェクトのセットを処理し、以下のようにして name と culpritSettings を決定する:

      1. もし task の スクリプト評価環境設定オブジェクトのセット が空ならば、 name に "unknown" を設定し、 culpritSettings に null を設定する。

      2. そうでなく、task の スクリプト評価環境設定オブジェクトのセットの長さが1より大きい場合: name に "multiple-contexts" を設定し、 culpritSettings に null を設定する。

      3. それ以外、すなわち task の スクリプト評価環境設定オブジェクトのセットの長さが1の場合:

        1. culpritSettings を task の スクリプト評価環境設定オブジェクトのセット の唯一の要素に設定する。

        2. destinationSettings を destinationRealm の 関連設定オブジェクト とする。

        3. destinationOrigin を destinationSettings の オリジンとする。

        4. destinationBC を destinationSettings の グローバルオブジェクト の 閲覧コンテキストとする。

        5. culpritBC を culpritSettings の グローバルオブジェクト の 閲覧コンテキストとする。

        6. Assert: culpritBC は null ではない。

        7. もし culpritSettings が destinationSettings と同じなら name に "self" を設定する。

        8. それ以外で、culpritSettings の オリジン と destinationOrigin が 同一オリジンの場合:

          1. もし destinationBC が null ならば name に "same-origin" を設定する。

          2. そうでなく、culpritBC が destinationBC の 祖先の場合、 name に "same-origin-ancestor" を設定する。

          3. そうでなく、destinationBC が culpritBC の 祖先の場合、 name に "same-origin-descendant" を設定する。

          4. それ以外は name に "same-origin" を設定する。

        9. それ以外:

          1. もし destinationBC が null ならば name に "cross-origin-unreachable" を設定する。

          2. そうでなく、culpritBC が destinationBC の 祖先の場合、 name に "cross-origin-ancestor" を設定し、culpritSettings に null を設定する。

            注記: セキュリティ上の理由からこれは報告されません。開発者は自身で調査する必要があります。

          3. そうでなく、destinationBC が culpritBC の 祖先の場合、 name に "cross-origin-descendant" を設定する。

          4. それ以外は、name に "cross-origin-unreachable" を設定する。

    4. attribution を新たな TaskAttributionTiming オブジェクトとして destinationRealm で作成し、次のように属性を設定する:

      1. attribution の name 属性に "unknown" を設定する。

        注記: 今後のAPIバージョンでは TaskAttributionTiming オブジェクトの name 属性に値が追加される予定だが、現時点では1つの値のみ。

      2. attribution の entryType 属性に "taskattribution" を設定する。

      3. attribution の startTime および duration を 0 に設定する。

      4. attribution の containerType 属性に "window" を設定する。

      5. attribution の containerName および containerSrc 属性を空文字列に設定する。

      6. もし culpritSettings が null でなければ:

        1. culpritBC を culpritSettings の グローバルオブジェクト の 閲覧コンテキスト とする。

        2. Assert: culpritBC は null ではない。

        3. container を culpritBC の 閲覧コンテキストコンテナ とする。

        4. Assert: container は null ではない。

        5. attribution の containerId 属性に container の ID の値、またはIDが未設定なら空文字列を設定する。

        6. もし container が iframe 要素の場合:

          1. attribution の containerType 属性に "iframe" を設定する。

          2. attribution の containerName 属性に container の name コンテンツ属性の値、なければ空文字列を設定する。

          3. attribution の containerSrc 属性に container の src コンテンツ属性の値、なければ空文字列を設定する。

          注記: ここでは frame の src 属性のみを記録することが意図されています。実際のURLを参照しないのは、主としてフレーム識別を助ける目的であり、クロスオリジンiframeの現在URLを知ることはセキュリティ上問題となるためです。

        7. もし container が frame 要素の場合:

          1. attribution の containerType 属性に "frame" を設定する。

          2. attribution の containerName 属性に container の name コンテンツ属性の値、なければ空文字列を設定する。

          3. attribution の containerSrc 属性に container の src コンテンツ属性の値、なければ空文字列を設定する。

        8. もし container が object 要素の場合:

          1. attribution の containerType 属性に "object" を設定する。

          2. attribution の containerName 属性に container の name コンテンツ属性の値、なければ空文字列を設定する。

          3. attribution の containerSrc 属性に container の data コンテンツ属性の値、なければ空文字列を設定する。

        9. もし container が embed 要素の場合:

          1. attribution の containerType 属性に "embed" を設定する。

          2. attribution の containerName 属性に空文字列を設定する。

          3. attribution の containerSrc 属性に container の src コンテンツ属性の値、なければ空文字列を設定する。

    5. 新たな PerformanceLongTaskTiming オブジェクト newEntry を destinationRealm で作成し、次のように属性を設定する:

      1. newEntry の name 属性に name を設定する。

      2. newEntry の entryType 属性に "longtask" を設定する。

      3. newEntry の startTime 属性に coarsening した start time (crossOriginIsolatedCapabilityを指定)を設定する。

      4. dur を coarsening した end time(crossOriginIsolatedCapabilityを指定)から newEntry の startTime を引いた値とする。

      5. newEntry の duration 属性に dur の整数部分を設定する。

      6. もし attribution が null でなければ newEntry の attribution 属性に attribution を唯一要素とする新たな frozen 配列を設定する。

        注記: 今後のAPIバージョンでは attribution 属性の値が追加される予定だが、現時点では配列は1要素のみ。

    6. PerformanceEntryをキューに追加 newEntry を行う。

5. セキュリティおよびプライバシーに関する考慮事項

Long Tasks APIは、ロングタスクの発生元についてオリジンが安全なアトリビューション情報を含めることで、同一オリジンポリシーに従っています。ロングタスクの閾値は50msです。継続時間は1msの粒度でのみ提供されます。これらを組み合わせることで、クロスオリジン漏洩に対して十分な保護を提供しています。

Long Tasks APIは、ユーザーによって実行されたタスクの継続時間や種類のタイミング情報、および関数呼び出しを引き起こしたブラウジングコンテキストなどのアトリビューションを提供します。これにより、攻撃者がユーザーの行動を推測したり特定したりするためのサイドチャネルタイミング攻撃を行える可能性があります。たとえば、長いスクリプトの後に長いレンダーが続くパターンから、ユーザーのソーシャルウィジェットへの操作を推測できます。詳細な関数呼び出しのアトリビューションは、ユーザーの行動を特定するために利用されます。

このAPIが新たなプライバシー攻撃を導入することはありませんが、既存のプライバシー攻撃をより迅速にする可能性があります。これに対する緩和策は必要に応じて実装できます:

5.1. 観測者に公開される内容

トップレベルページ内のすべての観測者(すなわちページ内のすべてのiframeとメインフレーム)は、ロングタスクの存在について通知を受け取ります。タスクの開始時刻、継続時間(1ms粒度)、および原因となるフレームへのポインタを公開します。これらの情報は、今日でもsetTimeoutを使えばより高い精度で観測可能です。攻撃者は、ページ上の他の要素をすべて除去し、脆弱なクロスオリジンリソースのみを追加することで、setTimeoutの遅延がそのリソースによるものであると確認できます。他ページ(タブやウィンドウ)の観測者は、ユーザーエージェントのアーキテクチャに関わらず、通知を受け取るべきではありません。

クロスオリジンで公開される内容のルール:

5.2. 考慮された攻撃シナリオ

考慮されたタイミング攻撃は以下の通りです:

  1. 従来のタイミング攻撃:外部リソースのロード時間を利用して、プライベートデータのサイズを明らかにする。例えば、ギャラリー内の隠し画像の数やユーザー名の有効性など。例参照。

  2. サイドチャネルタイミング攻撃:動画解析、スクリプト解析、App Cacheの読み取りやCache API(Service Worker)利用の時間を使って、ユーザーの特定や年齢・性別・地域・興味などのプロファイルを作成する。例として、ソーシャルネットワークのステータス更新が特定の属性(例:20~30歳の女性)に限定される場合、パーマリンクページのファイルサイズによってユーザーがその属性かどうかが判別できる。

これらのシナリオは、50msの閾値とクロスオリジン境界の遵守、すなわちタスクタイプや追加のアトリビューションを信頼できないクロスオリジン観測者に公開しないことで対応しています。

適合性

文書の慣例

適合性要件は、記述的な断定文とRFC 2119の用語の組み合わせで表現されます。 本書の規定部分における “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL” のキーワードはRFC 2119で定義された通りに解釈されます。 ただし可読性のため、これらの語はすべて大文字にはしていません。

この仕様書の本文は、明示的に非規定とされたセクション、例、および注記を除き、すべて規定です。[RFC2119]

例は “for example” という語で導入するか、class="example" のように 規定文とは区別して表示されます。

これは参考例の一例です。

参考注記は “Note” で始まり、class="note" のように 規定文と区別して表示されます。

注:これは参考注記です。

適合するアルゴリズム

アルゴリズムの一部として命令形で記述された要件(例:「先頭の空白文字をすべて取り除く」「falseを返してこれらの手順を中止する」)は、 そのアルゴリズムの導入部で用いられるキーワード("must", "should", "may" など)の意味に従って解釈されます。

アルゴリズムや特定の手順として記述された適合性要件は、同等の結果となる限り、どのような方法で実装しても構いません。 特に本仕様のアルゴリズムは分かりやすさを重視しており、パフォーマンスは重視していません。 実装者は最適化を推奨します。

索引

本仕様で定義される用語

参照により定義される用語

参考文献

規定参考文献

[DOM]
Anne van Kesteren. DOM標準.リビングスタンダード. URL: https://dom.spec.whatwg.org/
[ECMASCRIPT]
ECMAScript言語仕様.URL: https://tc39.es/ecma262/multipage/
[HR-TIME-2]
Ilya Grigorik. High Resolution Time Level 2.2019年11月21日.REC.URL: https://www.w3.org/TR/hr-time-2/
[HR-TIME-3]
Yoav Weiss. High Resolution Time.2026年3月2日.WD.URL: https://www.w3.org/TR/hr-time-3/
[HTML]
Anne van Kesteren; 他. HTML標準.リビングスタンダード.URL: https://html.spec.whatwg.org/multipage/
[LONG-ANIMATION-FRAMES]
Long Animation Frames API.エディターズドラフト.URL: https://w3c.github.io/long-animation-frames/
[PERFORMANCE-TIMELINE]
Nicolas Pena Moreno. パフォーマンスタイムライン.2025年5月21日.CRD.URL: https://www.w3.org/TR/performance-timeline/
[RFC2119]
S. Bradner. RFCで要求レベルを示すキーワード.1997年3月.Best Current Practice.URL: https://datatracker.ietf.org/doc/html/rfc2119
[WEBIDL]
Edgar Chen; Timothy Gu. Web IDL標準.リビングスタンダード.URL: https://webidl.spec.whatwg.org/

IDL索引

[Exposed=Window]
interface PerformanceLongTaskTiming : PerformanceEntry {
    /* Overloading PerformanceEntry */
    readonly attribute DOMHighResTimeStamp startTime;
    readonly attribute DOMHighResTimeStamp duration;
    readonly attribute DOMString name;
    readonly attribute DOMString entryType;

    readonly attribute FrozenArray<TaskAttributionTiming> attribution;
    [Default] object toJSON();
};

[Exposed=Window]
interface TaskAttributionTiming : PerformanceEntry {
    /* Overloading PerformanceEntry */
    readonly attribute DOMHighResTimeStamp startTime;
    readonly attribute DOMHighResTimeStamp duration;
    readonly attribute DOMString name;
    readonly attribute DOMString entryType;

    readonly attribute DOMString containerType;
    readonly attribute DOMString containerSrc;
    readonly attribute DOMString containerId;
    readonly attribute DOMString containerName;
    [Default] object toJSON();
};

課題索引

どの Document がどのロングタスクに可視性を持つかについて、議論が続いているため、このロジックは将来的に変更される可能性があります。[Issue #75] ↵
⚠MDN

PerformanceLongTaskTiming/attribution

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

PerformanceLongTaskTiming/toJSON

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

PerformanceLongTaskTiming

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

TaskAttributionTiming/containerId

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

TaskAttributionTiming/containerName

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

TaskAttributionTiming/containerSrc

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

TaskAttributionTiming/containerType

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

TaskAttributionTiming/toJSON

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
⚠MDN

TaskAttributionTiming

In only one current engine.

FirefoxNoneSafariNoneChrome58+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?