Как заставить Chrome «изолировать сайт» для iframe, обслуживаемого на другом хосте, но в одном домене второго уровня? - PullRequest
0 голосов
/ 25 января 2019

У меня есть страница с http://foo.example.com/page,, которая встраивает iframe с http://bar.example.com/iframe.. Из соображений производительности я хочу использовать «изоляцию сайта» Chrome (включена по умолчанию после Chrome 67) для рендеринга.iframe в потоке, отличном от главной страницы.

Однако такое поведение «изоляции сайта», по-видимому, срабатывает только в том случае, если главная страница и iframe обслуживаются в разных доменах 2-го уровня (например, foo.example.comand bar.otherexample.com)

Страница отладки в chrome: // process-internals / # web-content показывает следующее:

Если страница на foo.example.com / iframe onbar.otherexample.com:

Frame: locked, site:http://example.com/ | url: http://foo.example.com/page
└ Frame: locked, site:http://otherexample.com/ | url: http://bar.otherexample.com/iframe

Два фрейма имеют разные «сайт» -> я вижу отдельный процесс «Подкадр: сайт: http://otherexample.com/" для фрейма в задаче Chrome»Manager.

Если страница на foo.example.com / iframe на bar.example.com:

Frame: locked, site:http://example.com/ | url: http://foo.example.com/page
└ Frame: locked, site:http://example.com/ | url: http://bar.example.com/iframe

Два кадра имеют один и тот же «сайт» -> нет «Подкадра»процесс для iframe.

Можно ли как-нибудь намекнуть Chrome, чтобы увидеть foo.example.com/page и bar.example.com/iframe как разные "сайты"?

(FWIW, на других случайных вкладках, которые случайно открываются в моем браузере, я вижу разделение процессов "Подкадра"для фреймов с 'site', перечисленным как https://content.googleapis.com/ или https://accounts.google.com/ - то есть с учетом домена 3-го уровня.Однако это URL-адреса Google, поэтому я не знаю, является ли это каким-то конкретным жестко закодированным поведением?)

...