target=_blankやwindow.openで新たに作成されたBrowsing ContextとタブごとのJavaScriptスレッドの関係について軽く調べた

これを見て

こんな感じになったので*1調べました。

結論

ブラウザによって違う(し普通に仕様によって策定はされていない)

Chrome Windows版の場合

大体こんな感じ、スレッドの同一性とかはwindow.openしてから

let i = 0;
while(++i < 100000000);

みたいな感じのやつ実行して調べてます。おそらくページ遷移や302 Foundのようなリダイレクトの場合はスレッドが新たに作成されるっぽいです。基本は同一のスレッド、locationへの代入やlocation.assignで親Windowのページ遷移させたりできるからセキュリティ的にまずいっぽい(フィッシング詐欺的なことできそう)

まあこの辺は普通に Same Origin Policyがきいてるっぽい。

Edgeの場合

普通に毎回新しいJavaScriptスレッドが作成されるっぽいです。

まとめ

ブラウザのソースを読んでいないので何とも言えないですが、おおむねこんな感じ。Firefoxとかも気が向いて調べたら追記します。

*1:業務中に