Rumah >hujung hadapan web >tutorial css >Cara Peralihan ke Manifest V3 untuk sambungan Chrome

Cara Peralihan ke Manifest V3 untuk sambungan Chrome

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-03-09 10:08:10424semak imbas

How to Transition to Manifest V3 for Chrome Extensions

Baru -baru ini, salah seorang pelanggan saya menolak pelanjutan saya kerana ia "ketinggalan zaman", yang mendorong saya untuk menggali ke dalam v3 yang nyata dari sambungan krom. Terdapat kekurangan maklumat mengenai v3 dalam talian, dan sukar difahami.

Selepas beberapa kerja keras, saya akhirnya menyelesaikan tugas itu, tetapi saya tidak mahu hasil penyelidikan saya dibazirkan, jadi saya memutuskan untuk berkongsi pengalaman pembelajaran saya.

kepentingan penghijrahan v3 nyata

Manifest V3 adalah API Google untuk Chrome, pengganti kepada API semasa manifes v2, yang menguruskan bagaimana sambungan Chrome berinteraksi dengan penyemak imbas. Manifest V3 telah membuat perubahan ketara kepada peraturan lanjutan, yang sebahagiannya akan menjadi tiang baru V2 yang kita gunakan untuk menggunakannya.

Penghijrahan v3 manifes dapat diringkaskan seperti berikut:

    Penghijrahan telah dijalankan sejak 2018.
  1. Manifest V3 secara rasmi akan dilancarkan pada bulan Januari 2023.
  2. Menjelang Jun 2023, sambungan yang dijalankan Manifest V2 tidak lagi tersedia di kedai web Chrome.
  3. Pelanjutan yang tidak mematuhi peraturan baru yang diperkenalkan dalam Manifest V3 akhirnya akan dikeluarkan dari kedai web Chrome.
Salah satu matlamat utama nyata v3 adalah untuk meningkatkan keselamatan pengguna dan meningkatkan pengalaman penyemak imbas keseluruhan. Sebelum ini, banyak sambungan penyemak imbas bergantung kepada kod berasaskan awan, yang bermaksud sukar untuk menilai sama ada pelanjutan itu berisiko. Manifest V3 direka untuk menyelesaikan masalah ini dengan menghendaki lanjutan untuk memasukkan semua kod yang akan dijalankan, membolehkan Google mengimbasnya dan mengesan risiko yang berpotensi. Ia juga memaksa pelanjutan untuk meminta kebenaran dari Google untuk perubahan yang dapat dilaksanakan pada penyemak imbas.

Adalah penting untuk bersaing dengan penghijrahan Google untuk nyata V3 kerana ia memperkenalkan peraturan baru untuk sambungan yang direka untuk meningkatkan keselamatan pengguna dan pengalaman pelayar keseluruhan, dan sambungan yang tidak mematuhi peraturan ini akhirnya akan dikeluarkan dari kedai web Chrome.

Singkatnya, jika anda tidak berhijrah secepat mungkin, semua usaha anda untuk membuat sambungan yang menggunakan v2 nyata boleh membazir.

perbezaan utama antara manifes v2 dan v3

Terdapat banyak perbezaan antara kedua -dua, dan sementara saya sangat mengesyorkan anda membaca panduan "Migrasi ke Manifest V3" Chrome, inilah ringkasan ringkas mengenai perkara utama:

  1. Dalam nyata v3, pekerja perkhidmatan menggantikan halaman backend.
  2. Pengubahsuaian permintaan bersih dikendalikan dengan nyata v3 menggunakan API Declarativenetrequest baru.
  3. Dalam nyata v3, sambungan hanya boleh melaksanakan kod JavaScript yang terkandung dalam pakej mereka, dan tidak boleh menggunakan kod yang diuruskan dari jauh.
  4. Manifest V3 memperkenalkan sokongan janji untuk banyak kaedah, walaupun panggilan balik masih disokong sebagai alternatif.
  5. Kebenaran tuan rumah dalam nyata v3 adalah elemen yang berasingan dan mesti ditentukan dalam medan "Host_permissions".
  6. Dasar Keselamatan Kandungan dalam Manifest V3 adalah objek yang mewakili konteks dasar keselamatan kandungan alternatif (CSP), bukannya rentetan dalam nyata v2.

Dalam senarai sambungan krom yang hanya mengubah latar belakang laman web, ia mungkin kelihatan seperti ini:

<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>

Jika anda dapati beberapa tag di atas kelihatan pelik, teruskan membaca untuk mengetahui apa yang perlu anda ketahui.

bagaimana untuk berhijrah untuk nyata v3

Saya telah meringkaskan penghijrahan untuk nyata V3 menjadi empat bidang utama. Sudah tentu, walaupun terdapat banyak ciri baru dalam V3 yang baru yang perlu dilaksanakan dari V2 yang manifes lama, membuat perubahan dalam empat bidang ini akan menyediakan lanjutan Chrome anda untuk penghijrahan akhir.

Empat bidang utama ialah:

  1. Kemas kini struktur asas senarai.
  2. Ubah suai keizinan tuan rumah.
  3. Kemas kini Dasar Keselamatan Kandungan.
  4. Ubah suai pemprosesan permintaan rangkaian.

Melalui empat aspek ini, unsur -unsur asas senarai anda akan siap untuk berhijrah untuk nyata v3. Mari kita lihat setiap aspek utama secara terperinci dan pelajari cara bekerja untuk melindungi pelanjutan Chrome anda dari penghijrahan ini.

struktur asas senarai kemas kini

Struktur asas mengemas kini manifes adalah langkah pertama dalam bergerak ke nyata v3. Perubahan yang paling penting yang perlu anda buat ialah mengubah nilai elemen "manifest_version" ke 3, yang bermaksud anda menggunakan set ciri V3 yang nyata.

Salah satu perbezaan utama antara manifes v2 dan v3 adalah penggantian halaman backend dengan pekerja perkhidmatan lanjutan tunggal dalam nyata v3. Anda perlu mendaftarkan pekerja perkhidmatan di bawah medan "Latar Belakang", gunakan kunci "Service_Worker" dan tentukan satu fail JavaScript tunggal. Walaupun nyata v3 tidak menyokong skrip latar belakang berganda, anda boleh memilih untuk mengisytiharkan pekerja perkhidmatan sebagai modul ES dengan menyatakan "jenis": "modul", yang membolehkan anda mengimport lebih banyak kod.

Dalam nyata v3, atribut "Browser_Action" dan "page_action" digabungkan menjadi atribut "tindakan" tunggal. Anda perlu menggantikan sifat -sifat ini dengan "tindakan" dalam manifes. Begitu juga, Chrome.BrowserAction dan Chrome.PageAction API dalam Manifest V3 digabungkan ke dalam API 'Tindakan' tunggal, yang anda perlukan untuk berhijrah ke.

<code>// Manifest V2
"background": {
  "scripts": ["background.js"],
  "persistent": false
},
"browser_action": {
  "default_popup": "popup.html"
},</code>
<code>// Manifest V3
"background": {
  "service_worker": "background.js"
},
"action": {
  "default_popup": "popup.html"
}</code>

Secara umum, struktur asas manifes kemas kini adalah langkah utama dalam penghijrahan untuk nyata v3, kerana ia membolehkan anda memanfaatkan ciri -ciri dan perubahan baru yang diperkenalkan dalam versi API ini.

Ubah suai keizinan tuan rumah

Langkah kedua dalam berhijrah untuk nyata v3 adalah untuk mengubahsuai keizinan tuan rumah. Dalam Manifest V2, anda menentukan keizinan tuan rumah dalam medan "Kebenaran" fail manifes. Dalam Manifest V3, kebenaran tuan rumah adalah elemen berasingan yang harus anda nyatakan dalam medan "Host_permissions" fail nyata.

Berikut adalah contoh cara mengubah suai keizinan tuan rumah:

<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>

Kemas kini Dasar Keselamatan Kandungan

Untuk mengemas kini CSP pelanjutan V2 yang nyata untuk konsisten dengan nyata v3, anda perlu membuat beberapa perubahan pada fail manifes. Dalam manifes v2, CSP ditentukan sebagai rentetan dalam bidang "content_security_policy" yang nyata.

Dalam nyata V3, CSP kini menjadi objek yang ahli yang berbeza mewakili konteks CSP alternatif. Daripada menggunakan medan "content_security_policy" tunggal sekarang, anda perlu menentukan medan berasingan untuk "content_security_policy.extension_pages" dan "content_security_policy.sandbox" bergantung pada jenis halaman pelanjutan yang anda gunakan.

Jika anda mempunyai domain luaran dalam CSP semasa anda, anda juga harus memadamkan sebarang rujukan dari arahan "SCRIPT-SRC", "Worker-SRC", "Object-Src", dan "Style-Src". Membuat kemas kini CSP ini adalah penting untuk memastikan keselamatan dan kestabilan lanjutan dalam v3 nyata.

<code>// Manifest V2
"background": {
  "scripts": ["background.js"],
  "persistent": false
},
"browser_action": {
  "default_popup": "popup.html"
},</code>
<code>// Manifest V3
"background": {
  "service_worker": "background.js"
},
"action": {
  "default_popup": "popup.html"
}</code>

Ubah suai pemprosesan permintaan rangkaian

Langkah terakhir dalam berhijrah untuk nyata v3 adalah untuk mengubah suai pemprosesan permintaan rangkaian. Dalam Manifest V2, anda akan menggunakan API Chrome.WebRequest untuk mengubah suai permintaan rangkaian. Walau bagaimanapun, API ini digantikan oleh API DeclarativenEtrequest dalam Manifest V3.

Untuk menggunakan API baru ini, anda perlu menentukan kebenaran DeclarativenETrequest dalam manifes dan mengemas kini kod untuk menggunakan API baru. Perbezaan utama antara kedua-dua API adalah bahawa API DeclarativenEtrequest menghendaki anda menentukan senarai alamat yang telah ditetapkan untuk menyekat, dan bukannya menyekat keseluruhan kategori permintaan HTTP seperti menggunakan API Chrome.WebRequest.

Membuat perubahan ini kepada kod adalah sangat penting untuk memastikan pelanjutan terus berfungsi dengan baik di bawah nyata v3. Berikut adalah contoh bagaimana mengubah suai manifes untuk menggunakan API DeclarativenTrequest dalam nyata v3:

<code>// Manifest V2
"permissions": [ 
  "activeTab", 
  "storage", 
  "http://www.css-tricks.com/", 
  ":///*" 
]</code>
<code>// Manifest V3
"permissions": [ 
  "activeTab", 
  "scripting", 
  "storage"
],
"host_permissions": [
  "http://www.css-tricks.com/" 
],
"optional_host_permissions": [ 
  ":///*" 
]</code>

anda juga perlu mengemas kini kod sambungan untuk menggunakan API DeclarativenTrequest dan bukannya API Chrome.WebRequest.

aspek lain yang perlu diperiksa

Apa yang saya telah diperkenalkan hanyalah hujung gunung es. Sudah tentu, jika saya mahu menampung segala -galanya, saya mungkin berada di sini selama beberapa hari, dan panduan pemaju Chrome Google tidak masuk akal. Walaupun apa yang saya telah tutup akan menjadikan sambungan Chrome anda cukup selamat untuk penghijrahan ini, berikut adalah beberapa perkara lain yang mungkin anda ingin periksa untuk memastikan pelanjutan anda berfungsi dengan baik.

  • Migrasi skrip latar belakang kepada Konteks Pelaksanaan Pekerja Perkhidmatan: Seperti yang disebutkan sebelumnya, nyata V3 menggantikan halaman latar belakang dengan seorang pekerja perkhidmatan lanjutan tunggal, jadi mungkin perlu mengemas kini skrip latar belakang untuk memenuhi konteks pelaksanaan pekerja perkhidmatan.
  • Unified chrome.browserAction dan chrome.pageAction api:
  • kedua -dua API bersamaan ini digabungkan ke dalam API tunggal dalam manifes V3, jadi mereka mungkin perlu berhijrah ke API Tindakan.
  • Menghidupkan fungsi jangkaan konteks latar belakang V2 yang nyata: chrome.runtime.getBackgroundPage() Penggunaan pekerja perkhidmatan dalam nyata v3 tidak sesuai dengan kaedah seperti chrome.extension.getBackgroundPage(), chrome.extension.getExtensionTabs(), chrome.extension.getViews() dan
  • . Ia mungkin perlu untuk berhijrah ke reka bentuk yang melepasi mesej antara konteks lain dan pekerja perkhidmatan backend.
  • Pindahkan permintaan CORS dalam skrip kandungan kepada pekerja perkhidmatan latar belakang:
  • Untuk mematuhi manifes v3, mungkin perlu untuk memindahkan permintaan CORS dalam skrip kandungan ke pekerja perkhidmatan latar belakang.
  • berhijrah dari melaksanakan kod luaran atau rentetan sewenang -wenang: chrome.scripting.executeScript({code: '...'}) manifest v3 tidak lagi dibenarkan untuk melaksanakan logik luaran menggunakan eval(), new Function() dan chrome.runtime.getURL(). Ia mungkin perlu untuk memindahkan semua kod luaran (JavaScript, WebAssembly, CSS) ke dalam pakej sambungan, mengemas kini skrip dan rujukan gaya untuk memuat sumber dari pakej lanjutan, dan membina URL sumber semasa runtime menggunakan
  • .
  • Kemas kini beberapa skrip dan kaedah CSS dalam tab API:
  • Seperti yang dinyatakan sebelum ini, beberapa kaedah bergerak dari API tab ke API skrip dalam nyata v3. Sebarang panggilan ke kaedah ini mungkin perlu dikemas kini untuk menggunakan API V3 yang betul.

Dan banyak lagi!

sila luangkan sedikit masa untuk memahami semua perubahan. Lagipun, perubahan ini tidak dapat dielakkan, dan jika anda tidak mahu kehilangan lanjutan V2 yang nyata kerana mengelakkan penghijrahan ini, luangkan masa untuk menguasai pengetahuan yang diperlukan.

Sebaliknya, jika anda baru untuk pengaturcaraan sambungan Chrome dan ingin memulakan, cara yang baik adalah untuk menggali dunia alat pemaju web Chrome. Saya melakukan ini dengan kursus di LinkedIn Learning, yang memberi saya pemahaman cepat tentang kelajuan. Sebaik sahaja anda menguasai asas -asas ini, sila kembali ke artikel ini dan menterjemahkan apa yang anda tahu berdasarkan v3 nyata!

Jadi, bagaimana saya menggunakan ciri -ciri dalam v3 manifest yang baru pada masa akan datang?

chrome.webRequestAPI Bagi saya, penghijrahan untuk nyata V3 dan penyingkiran

nampaknya memindahkan lanjutan dari kes penggunaan data-sentris seperti penyekat AD ke kes penggunaan yang lebih berfungsi dan berasaskan aplikasi. Saya telah mengelakkan pembangunan aplikasi sejak kebelakangan ini kerana ia boleh memakan sumber yang sangat pada masa-masa. Walau bagaimanapun, peralihan ini boleh membawa saya kembali!

Kebangkitan alat kecerdasan buatan pada tahun -tahun kebelakangan ini, yang kebanyakannya menyediakan API yang tersedia, telah memberi inspirasi kepada sejumlah besar aplikasi SaaS baru dan segar. Secara peribadi saya fikir ini adalah sehingga masa ke arah lebih banyak sambungan Chrome berdasarkan aplikasi! Walaupun banyak sambungan lama boleh dibersihkan oleh penghijrahan ini, banyak sambungan baru yang dibina di sekitar idea -idea SaaS novel akan diganti.

Jadi ini adalah kemas kini yang menarik yang boleh digunakan untuk meningkatkan sambungan lama atau membina yang baru! Secara peribadi saya fikir terdapat banyak kemungkinan untuk menggunakan API yang melibatkan kecerdasan buatan dalam sambungan untuk meningkatkan pengalaman melayari pengguna. Tetapi ini benar -benar hanya hujung gunung es. Jika anda ingin benar -benar menggunakan lanjutan profesional anda sendiri atau hubungi syarikat untuk membina/mengemas kini sambungan untuk mereka, saya cadangkan menaik taraf akaun Gmail anda kerana ia mempunyai kelebihan dalam kerjasama, membangun dan menerbitkan sambungan ke kedai web Chrome.

Walau bagaimanapun, ingat bahawa setiap pemaju perlu berbeza, jadi pelajari apa yang anda perlukan untuk mengekalkan lanjutan semasa berjalan, atau mempunyai sambungan baru berjalan!

Atas ialah kandungan terperinci Cara Peralihan ke Manifest V3 untuk sambungan Chrome. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn