-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(CustomResizeObserver): remove set src to iframe #7933
fix(CustomResizeObserver): remove set src to iframe #7933
Conversation
size-limit report 📦
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
e2e tests
|
👀 Docs deployed
Commit c7a5b5d |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #7933 +/- ##
==========================================
- Coverage 95.30% 95.30% -0.01%
==========================================
Files 378 378
Lines 11196 11195 -1
Branches 3735 3735
==========================================
- Hits 10670 10669 -1
Misses 526 526
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Отличное описание 👏
Я бы подправил release notes кроме окончаний ещё и то, что значение мы сами не выставляем, отдавая это браузеру:
- - Исправлены ошибки в консоли связанная с тем, что в CustomResizeObserver создавался iframe с `src="javascript:void(0)"` теперь создается с `src="about:blank"`
+ - Исправлены ошибки в `Content Security Policy (CSP)` связанные с тем, что в `CustomResizeObserver` создавался `iframe` с `src="javascript:void(0)"`, теперь `iframe` создается без явного указания `src`, что позволяет браузеру самостоятельно заполнить это поле. Значение по умолчанию для браузеров: `src="about:blank"`
❌ PatchНе удалось автоматически применить исправление на ветке 7.0-stable.
Чтобы изменение попало в ветку 7.0-stable, выполните следующие действия:
git stash # опционально
git fetch origin 7.0-stable
git checkout -b patch/pr7933 origin/7.0-stable
git cherry-pick --no-commit a71c41aa0a935704f79dbec20bd1a6107ce0694f
git checkout HEAD **/__image_snapshots__/*.png
git diff --quiet HEAD || git commit --no-verify --no-edit
git push --set-upstream origin patch/pr7933
gh pr create --base 7.0-stable --title "patch: pr7933" --body "- patch #7933" |
(cherry picked from commit a71c41a)
✅ v6.7.4 🎉 |
✅ v7.0.0-beta.2 🎉 |
✅ v7.0.0 🎉 |
Описание
Сейчас
CustomResizeObserver
в своей реализации использует создание iframe-ов для отслеживания их размеров. При создании он устанавливаетsrc="javascript:void(0)"
, что может вызывать проблемы сContent Security Policy (CSP)
при следующих заголовках:script-src
- ограничивает источники выполняемых скриптовframe-src
- ограничивает источники для iframe-овДля решения этой проблемы предлагается не устанавливать атрибут
src
явно, так как браузер по умолчанию используетabout:blank
.Плюсы такого подхода:
javascript: URL
не нарушает политику безопасностиabout:blank
about:blank
является доверенным источникомИзменения
src
для создаваемого iframe'а, позволяя браузеру использовать стандартное значениеabout:blank
Release notes
Исправления
Content Security Policy (CSP)
связанные с тем, что вCustomResizeObserver
создавалсяiframe
сsrc="javascript:void(0)"
, теперьiframe
создается без явного указанияsrc
, что позволяет браузеру самостоятельно заполнить это поле. Значение по умолчанию для браузеров:src="about:blank"