찾다
웹 프론트엔드CSS 튜토리얼크롬 확장의 경우 V3 매니페스트로 전환하는 방법

How to Transition to Manifest V3 for Chrome Extensions 최근에, 내 고객 중 한 명이 "구식"이기 때문에 내 확장을 거부하여 크롬 확장의 매니페스트 V3를 파헤칠 수있었습니다. Manifest V3 Online에 대한 정보가 부족하며 이해하기가 어렵습니다.

열심히 일한 후 마침내 작업을 완료했지만 연구 결과가 낭비되는 것을 원하지 않았기 때문에 학습 경험을 공유하기로 결정했습니다.

매니페스트 V3 마이그레이션의 중요성 Danifest V3는 현재 API Manifest V2의 후속 인 Chrome의 Google API이며 Chrome Extensions가 브라우저와 어떻게 상호 작용하는지 관리합니다. Manifest V3는 확장 규칙을 크게 변경했으며 그 중 일부는 우리가 사용하는 데 사용되는 V2의 새로운 기둥이됩니다.

매니페스트 V3의 마이그레이션은 다음과 같이 요약 될 수 있습니다.

이주는 2018 년부터 진행되었습니다.

Manifest V3는 공식적으로 2023 년 1 월에 출시 될 예정입니다.

2023 년 6 월까지 Manifest V2를 실행하는 확장자는 더 이상 Chrome 웹 스토어에서 사용할 수 없습니다.

Manifest V3에 도입 된 새로운 규칙을 준수하지 않는 확장은 결국 Chrome 웹 스토어에서 제거됩니다.

Manifest V3의 주요 목표 중 하나는 사용자 보안을 개선하고 전반적인 브라우저 경험을 향상시키는 것입니다. 이전에는 많은 브라우저 확장이 클라우드 기반 코드에 의존하여 확장이 위험했는지 여부를 평가하기가 어렵다는 것을 의미했습니다. Manifest V3는 실행될 모든 코드를 포함하도록 확장자를 요구 하여이 문제를 해결하도록 설계되어 Google이 스캔하고 잠재적 위험을 감지 할 수 있습니다. 또한 확장자가 브라우저에서 구현할 수있는 변경 사항에 대해 Google의 권한을 요청하도록 강요합니다.

사용자 보안 및 전반적인 브라우저 경험을 향상시키기 위해 설계된 확장에 대한 새로운 규칙을 도입하기 때문에 Google의 Manifest V3 마이그레이션을 따라 잡는 것이 중요합니다. 이러한 규칙을 준수하지 않는 확장은 결국 Chrome 웹 스토어에서 제거됩니다.
    요컨대, 가능한 빨리 마이그레이션하지 않으면 매니페스트 V2를 사용하는 확장을 만들기위한 모든 노력이 낭비 될 수 있습니다.
  1. Manifest V2와 v3 의 주요 차이점 둘 사이에는 많은 차이점이 있으며 Chrome의 "Migrate to Manifest V3"가이드를 읽는 것이 좋습니다. 핵심 요점에 대한 간단한 요약이 있습니다.
      Manifest V3에서 서비스 작업자는 백엔드 페이지를 교체합니다.
    1. NET 요청 수정은 새로운 DeclarativenEtRequest API를 사용하여 Manifest V3에서 처리됩니다.
    2. Manifest V3에서 확장자는 패키지에 포함 된 JavaScript 코드 만 실행할 수 있으며 원격으로 관리되는 코드를 사용할 수 없습니다.
    3. 매니페스트 V3는 많은 방법에 대한 약속 지원을 소개하지만 콜백은 여전히 ​​대안으로 지원됩니다.
    4. Manifest V3의 호스트 권한은 별도의 요소이며 "host_permissions"필드에 지정되어야합니다.
    5. Manifest V3의 컨텐츠 보안 정책은 멤버가 Manifest V2의 문자열이 아닌 대체 컨텐츠 보안 정책 (CSP) 컨텍스트를 대표하는 객체입니다.
    6. 웹 페이지의 배경을 단순히 변경하는 크롬 확장 목록에서 다음과 같이 보일 수 있습니다.
    7. 위의 태그 중 일부가 이상하게 보이면 알아야 할 것을 배우려면 계속 읽으십시오.
    8. 매니페스트 V3 로 마이그레이션하는 방법 나는 v3을 매니페스트로 마이그레이션하는 것을 네 가지 주요 영역으로 요약했습니다. 물론, 새로운 Manifest V3에는 오래된 Manifest V2에서 구현 해야하는 새로운 기능이 많이 있지만,이 네 가지 영역을 변경하면 최종 마이그레이션을 위해 Chrome 확장을 준비합니다.
  2. 4 가지 핵심 영역은 다음과 같습니다
목록의 기본 구조를 업데이트하십시오.

호스트 권한을 수정하십시오.

컨텐츠 보안 정책 업데이트.
<code>// Manifest V2
{
  "manifest_version": 2,
  "name": "Shane's Extension",
  "version": "1.0",
  "description": "A simple extension that changes the background of a webpage to Shane's face.",
  "background": {
    "scripts": ["background.js"],
    "persistent": true
  },
  "browser_action": {
    "default_popup": "popup.html"
  },
  "permissions": [ "activeTab", ],
  "optional_permissions": ["<all_urls>"]
}</all_urls></code>
네트워크 요청 처리를 수정합니다.
<code>// Manifest V3
{
  "manifest_version": 3,
  "name": "Shane's Extension",
  "version": "1.0",
  "description": "A simple extension that changes the background of a webpage to Shane's face.",
  "background": {
    "service_worker": "background.js"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "permissions": [ "activeTab", ],
  "host_permissions": [ "<all_urls>" ]
}</all_urls></code>

이 네 가지 측면을 통해 목록의 기본 요소는 Manifest V3으로 마이그레이션 할 준비가됩니다. 각 주요 측면을 자세히 살펴 보고이 마이그레이션으로부터 크롬 확장을 보호하기 위해 일하는 방법을 배우겠습니다.

업데이트 목록의 기본 구조

매니페스트 업데이트의 기본 구조는 Manifest V3로 이동하는 첫 번째 단계입니다. 가장 중요한 변경 사항은 "Manifest_version"요소의 값을 3으로 변경하는 것입니다. 즉, Manifest V3 기능 세트를 사용하고 있음을 의미합니다.

Manifest V2와 V3의 주요 차이점 중 하나는 Manifest V3의 단일 확장 서비스 작업자로 백엔드 페이지를 대체하는 것입니다. "배경"필드에 서비스 작업자를 등록하고 "Service_Worker"키를 사용하고 단일 JavaScript 파일을 지정해야합니다. Manifest V3에서 여러 배경 스크립트를 지원하지 않더라도 "유형": "Module"을 지정하여 서비스 작업자를 ES 모듈로 선언하여 더 많은 코드를 가져올 수 있습니다.

Manifest v3에서 "Browser_Action"및 "Page_Action"속성은 단일 "action"속성으로 병합됩니다. 이 속성을 매니페스트의 "액션"으로 바꿔야합니다. 마찬가지로, Manifest V3의 Chrome.BrowserAction 및 Chrome.PageAction API는 마이그레이션 해야하는 단일 '액션'API로 병합됩니다.

일반적으로 업데이트 Manifest의 기본 구조는 Manifest V3으로의 마이그레이션의 핵심 단계입니다.이 버전의 API에 도입 된 새로운 기능과 변경 사항을 활용할 수 있습니다.
    호스트 권한을 수정 Manifest V3으로 마이그레이션하는 두 번째 단계는 호스트 권한을 수정하는 것입니다. Manifest V2에서는 Manifest 파일의 "권한"필드에 호스트 권한을 지정합니다. Manifest V3에서 호스트 권한은 매니페스트 파일의 "host_permissions"필드에 지정 해야하는 별도의 요소입니다.

    다음은 호스트 권한을 수정하는 방법의 예입니다.

    컨텐츠 보안 정책 업데이트 Manifest V3와 일치하도록 Manifest V2 확장의 CSP를 업데이트하려면 Manifest 파일을 변경해야합니다. Manifest V2에서 CSP는 매니페스트의 "content_security_policy"필드에서 문자열로 지정됩니다.

    Manifest V3에서 CSP는 이제 다른 멤버가 대체 CSP 컨텍스트를 나타내는 객체입니다. 현재 단일 "content_security_policy"필드를 사용하는 대신 사용중인 확장 페이지의 유형에 따라 "content_security_policy.extension_pages"및 "content_security_policy.sandbox"에 별도의 필드를 지정해야합니다.

    현재 CSP에 외부 도메인이있는 경우 "Script-SRC", "Worker-SRC", "Object-SRC"및 "Style-SRC"지시문에서 참조를 삭제해야합니다. 이러한 CSP 업데이트를 만드는 것은 Manifest V3에서 확장의 보안 및 안정성을 보장하기 위해 중요합니다.
    <code>// Manifest V2
    {
      "manifest_version": 2,
      "name": "Shane's Extension",
      "version": "1.0",
      "description": "A simple extension that changes the background of a webpage to Shane's face.",
      "background": {
        "scripts": ["background.js"],
        "persistent": true
      },
      "browser_action": {
        "default_popup": "popup.html"
      },
      "permissions": [ "activeTab", ],
      "optional_permissions": ["<all_urls>"]
    }</all_urls></code>
    <code>// Manifest V3
    {
      "manifest_version": 3,
      "name": "Shane's Extension",
      "version": "1.0",
      "description": "A simple extension that changes the background of a webpage to Shane's face.",
      "background": {
        "service_worker": "background.js"
      },
      "action": {
        "default_popup": "popup.html"
      },
      "permissions": [ "activeTab", ],
      "host_permissions": [ "<all_urls>" ]
    }</all_urls></code>

    네트워크 요청 처리 수정 Manifest V3으로 마이그레이션하는 마지막 단계는 네트워크 요청 처리를 수정하는 것입니다. Manifest V2에서는 Chrome.webrequest API를 사용하여 네트워크 요청을 수정합니다. 그러나이 API는 Manifest V3의 DeclarativeNetRequest API로 대체됩니다.

    이 새 API를 사용하려면 매니페스트의 DeclarAtivenEtRequest 권한을 지정하고 새 API를 사용하려면 코드를 업데이트해야합니다. 두 API의 주요 차이점은 DeclarativeNetRequest API가 Chrome.webrequest API를 사용하는 것과 같은 전체 HTTP 요청 범주를 차단하지 않고 차단할 사전 정의 된 주소 목록을 지정해야한다는 것입니다.

    이러한 변경 사항을 코드로 변경하는 것은 Manifest V3에서 확장이 계속 작동하도록하는 데 매우 중요합니다. 다음은 매니페스트 V3에서 선언문을 사용하기 위해 매니페스트를 수정하는 방법의 예입니다.

    또한 Chrome.webrequest API 대신 DeclarAtivenEtrequest API를 사용하려면 확장 코드를 업데이트해야합니다.

    점검 해야하는 다른 측면 내가 소개 한 것은 빙산의 일각 일뿐입니다. 물론 모든 것을 다루고 싶다면 며칠 동안 여기에있을 수 있으며 Google의 Chrome 개발자 안내서는 의미가 없습니다. 내가 다루는 것은이 마이그레이션을 위해 크롬 확장을 충분히 안전하게 만들지 만, 확장이 올바르게 작동하는지 확인하고 싶은 다른 것들이 있습니다.

      서비스 작업자 실행 컨텍스트로 배경 스크립트를 마이그레이션 :
    • 앞에서 언급했듯이 V3는 배경 페이지를 단일 확장 서비스 작업자로 대체하므로 서비스 작업자 실행 컨텍스트에 맞게 배경 스크립트를 업데이트해야 할 수도 있습니다. Unified
    • chrome.browserAction chrome.pageAction api : >이 두 개의 동등한 API는 Manifest V3에서 단일 API로 병합되므로 동작 API로 마이그레이션해야 할 수도 있습니다. Manifest V2 배경 컨텍스트의 마이그레이션 기능 :
    • Manifest V3에서 서비스 작업자의 채택은 , 및 와 같은 방법과 양립 할 수 없습니다. 다른 컨텍스트와 백엔드 서비스 작업자 사이의 메시지를 전달하는 디자인으로 마이그레이션해야 할 수도 있습니다. 컨텐츠 스크립트의 CORS 요청을 백그라운드 서비스 작업자에게 이동합니다. chrome.runtime.getBackgroundPage() Manifest V3를 준수하려면 컨텐츠 스크립트의 CORS 요청을 백그라운드 서비스 작업자에게 이동해야 할 수도 있습니다. chrome.extension.getBackgroundPage() 외부 코드 또는 임의 문자열 실행에서 멀어지면 마이그레이션 : 매니페스트 V3는 더 이상 , chrome.extension.getExtensionTabs()chrome.extension.getViews()를 사용하여 외부 로직을 실행할 수 없습니다. 모든 외부 코드 (JavaScript, WebAssembly, CSS)를 확장 패키지로 이동하고 스크립트 및 스타일 참조를 확장 패키지의로드 리소스에 대한 스크립트 및 스타일 참조로 옮기고 를 사용하여 런타임에 리소스 URL을 구축해야 할 수도 있습니다.
    • 탭 API에서 일부 스크립트 및 CSS 메소드를 업데이트합니다. 앞에서 언급했듯이 일부 메소드는 Manifest V3의 탭 API에서 스크립트 API로 이동합니다. 이러한 방법에 대한 모든 호출은 올바른 매니페스트 V3 API를 사용하려면 업데이트해야 할 수 있습니다.
    • 더 많은!

위 내용은 크롬 확장의 경우 V3 매니페스트로 전환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Cohost.org의 잃어버린 CSS 트릭Cohost.org의 잃어버린 CSS 트릭Apr 25, 2025 am 09:51 AM

이 게시물에서 Blackle Mori는 코 호스트의 HTML 지원의 한계를 추진하면서 발견 된 몇 가지 해킹을 보여줍니다. 감히 CSS 범죄자 라벨이 붙어 있지 않도록 감히 사용하십시오.

커서를위한 다음 레벨 CSS 스타일커서를위한 다음 레벨 CSS 스타일Apr 23, 2025 am 11:04 AM

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

Worlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionWorlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionApr 23, 2025 am 10:42 AM

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

UI 효과를 위해 CSS 배경 필터 사용UI 효과를 위해 CSS 배경 필터 사용Apr 23, 2025 am 10:20 AM

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

미소?미소?Apr 23, 2025 am 09:57 AM

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

'예쁜'은 보는 사람의 눈에 있습니다'예쁜'은 보는 사람의 눈에 있습니다Apr 23, 2025 am 09:40 AM

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

CSS- 트릭 연대기 XLIIICSS- 트릭 연대기 XLIIIApr 23, 2025 am 09:35 AM

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

Tailwind ' s @apply 기능은 소리보다 낫습니다Tailwind ' s @apply 기능은 소리보다 낫습니다Apr 23, 2025 am 09:23 AM

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구