-
Notifications
You must be signed in to change notification settings - Fork 1
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
[Bug]: HMR with MV3 (CSP) #10
Comments
따라서 이 문제를 해결하기 위해 script-src 지시어에 참고: "content_security_policy": {
"extension_pages": "script-src 'self' https://localhost:3303; object-src 'self'"
} |
관련 이슈의 2023.05.08 날짜에 등록된 댓글을 통해 확인할 수 있었습니다. {
...
content_security_policy: {
extension_pages: isDev
? // this is required on dev for Vite script to load
`script-src 'self' http://localhost:${port}; object-src 'self'`
: "script-src 'self'; object-src 'self'",
},
} 위처럼 정의해 둔 CSP 정책의 의미를 차근차근 분석하고 이슈를 마무리하겠습니다:
종합적으로 의미를 분석해보면 확장 프로그램의 페이지에서 실행할 수 있는 스크립트와 오브젝트 리소스의 출처를 제한하는 정의입니다. 개발 모드에선 현재 확장 프로그램의 코드( 따라서 이 모든 건 보안을 강화하기 위한 조치로, 외부 출처에서 잠재적으로 위험한 코드를 로드하는 것을 방지하기 위한 작업입니다. |
Guidelines
Project Version
0.0.1
Platform and OS Version
macOS 14.0, Chromium Engine Version 123.0.6312.87
Affected Devices
MacBook Pro
What happened?
개발 환경에서
HMR
이 동작하지 않습니다.Vite는 코드를 동적으로 가져오는
HMR
을 사용하여 외부 코드를 실행할 수 있습니다. 이렇게 하면 코드가 번들로 제공되지 않으므로 이상적인 개발 경험을 얻을 수 있습니다. 그러나 MV3는 보안상의 이유로 모든 외부 코드를 외부 번들에 포함해야하기 때문에 기본적으로 Vite의HMR
을 사용할 수 없습니다.Steps to reproduce
pnpm dev
명령어를 실행합니다.pnpm start:firefox
또는 브라우저에서extensions/
폴더의 확장 프로그램을 로드합니다.Popup
페이지를 엽니다.Expected behavior
로컬 개발을 위해
Popup
페이지에서 HMR을 사용할 수 있어야 합니다.MV3 마이그레이션 가이드의 CSP 섹션에 따르면 MV3의 콘텐츠 보안 정책은
script-src
,object-src
,worker-src
지시어를 허용하며 아래 값을 포함할 수 있습니다:self
none
wasm-unsafe-eval
http://localhost
,http:127.0.0.1
, 또는 이러한 도메인의 port)현재 개발환경에서 manifest의
content_security_policy
속성에는 다음 값을 포함합니다:Attachments
다음은
manifest
를 생성하는 코드와 모든 페이지에 삽입하는 스크립트, 그리고 HMR을 가능하게 추가로 삽입되는 스크립트입니다:Screenshots or Videos
Additional Information
The text was updated successfully, but these errors were encountered: