Chrome'i laienduste versioonile Manifest V3 üleminek

Chrome'i laienduste versioonile Manifest V3 üleminek

How to Transition to Manifest V3 for Chrome Extensions PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Kuigi ma ei ole tavaline Chrome'i laienduste programmeerija, olen kindlasti piisavalt laiendusi kodeerinud ja mul on piisavalt lai veebiarenduse portfell, et ülesandega toime tulla. Kuid just hiljuti lükkas üks klient tagasi ühe minu laienduse, kuna sain tagasisidet, et minu laiendus on aegunud.

Otsustades aru saada, mis viga, pühkisin oma piinlikkuse vaiba alla ja alustasin kohe oma sügavat sukeldumist tagasi Chrome'i laienduste maailma. Kahjuks oli teavet Manifest V3 kohta vähe ja mul oli raske kiiresti aru saada, milles see üleminek seisnes.

Ütlematagi selge, et poolelioleva töökoha tõttu pidin ma oma teed hoolikalt navigeerima Google'i Chrome'i arendaja dokumentatsioon ja mõtlen asjad ise välja. Töö tegemise ajal ei tahtnud ma, et mu teadmised ja uurimistöö selles valdkonnas raisku läheksid, ning otsustasin jagada seda, millele oleksin oma õppimise käigus soovinud hõlpsasti juurde pääseda.

Miks on üleminek Manifest 3-le oluline?

Manifest V3 on API, mida Google kasutab oma Chrome'i brauseris. See on praeguse API Manifest V2 järglane ja reguleerib seda, kuidas Chrome'i laiendused brauseriga suhtlevad. Manifest V3 toob kaasa olulisi muudatusi laienduste reeglites, millest mõned on uued V2 tugisambad, millega oleme harjunud.

Üleminek Manifest V3-le võib kokku võtta järgmiselt:

  1. Üleminek on kestnud alates 2018. aastast.
  2. Manifest V3 avaldatakse ametlikult 2023. aasta jaanuaris.
  3. 2023. aasta juuniks ei ole Manifest V2 käitavad laiendused enam Chrome'i veebipoes saadaval.
  4. Laiendused, mis ei vasta Manifesti V3 uutele reeglitele, eemaldatakse lõpuks Chrome'i veebipoest.

Manifest V3 üks peamisi eesmärke on muuta kasutajad turvalisemaks ja parandada üldist brauseri kasutuskogemust. Varem tuginesid paljud brauserilaiendid pilves olevale koodile, mis tähendab, et seda võis olla keeruline teha hinnata, kas pikendamine oli riskantne. Manifest V3 eesmärk on seda probleemi lahendada, nõudes laiendustelt kogu käitatavat koodi, mis võimaldab Google'il neid skannida ja võimalikke riske tuvastada. Samuti sunnib see laiendusi taotlema Google'ilt luba muudatuste jaoks, mida nad saavad brauseris rakendada.

Google'i üleminekuga Manifest V3-le on oluline olla kursis, kuna see kehtestab uued reeglid laienduste jaoks, mille eesmärk on parandada kasutajaohutust ja üldist brauseri kasutuskogemust, ning nendele reeglitele mittevastavad laiendused eemaldatakse lõpuks Chrome'i veebist. Kauplus.

Lühidalt, kogu teie raske töö Manifest V2 kasutanud laienduste loomisel võib olla asjata, kui te seda üleminekut lähikuudel ei tee.

jaanuar 2023 juuni 2023 jaanuar 2024
Manifest V2 laienduste tugi lülitatakse Chrome'i Canary-, Dev- ja beetakanalites välja. Chrome'i veebipood ei luba enam avaldada manifesti V2 laiendusi, mille nähtavus on seatud avalikkusele. Chrome'i veebipood eemaldab kõik ülejäänud Manifest V2 laiendused.
Chrome'i veebipoe esiletõstetud märgi jaoks on nõutav manifest V3. Olemasolevad Manifesti V2 laiendused, mis on avaldatud ja avalikult nähtavad, muudetakse registriväliseks. Manifest 2 tugi lõpeb kõigi Chrome'i kanalite, sealhulgas stabiilse kanali jaoks, välja arvatud juhul, kui ettevõtte kanalit laiendatakse.

Peamised erinevused manifesti V2 ja V3 vahel

Nende kahe vahel on palju erinevusi ja kuigi ma soovitan teil kindlasti edasi lugeda Chrome'i juhend „Migrating to Manifest V3”., siin on lühike ja armas kokkuvõte põhipunktidest:

  1. Teenindustöötajad asendage Manifesti V3 taustalehed.
  2. Võrgupäringu muutmist käsitletakse uuega declarativeNetRequest API manifestis V3.
  3. Manifesti V3-s saavad laiendused käivitada ainult nende paketis sisalduvat JavaScripti ega saa kasutada kaughostitavat koodi.
  4. Manifest V3 tutvustab promise paljude meetodite tugi, kuigi alternatiivina toetatakse endiselt tagasihelistamist.
  5. Manifesti V3 hostiõigused on eraldi element ja need tuleb määrata dokumendis "host_permissions" valdkonnas.
  6. Manifesti V3 sisu turbepoliitika on objekt, mille liikmed esindavad alternatiivseid sisuturbepoliitika (CSP) kontekste, mitte stringi, nagu see oli manifesti V2-s.

Lihtsas Chrome'i laienduse manifestis, mis muudab veebilehe tausta, võib see välja näha järgmine:

// 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>"]
}
// 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>" ]
}

Kui leiate, et mõned ülaltoodud sildid tunduvad teile võõrad, jätkake lugemist, et täpselt teada saada, mida peate teadma.

Kuidas sujuvalt üle minna Manifest V3-le

Olen võtnud kokkuvõtte Manifest V3-le üleminekust neljas võtmevaldkonnas. Muidugi, kuigi uues Manifest V3-s on palju kellasid ja vilesid, mida tuleb vanast Manifest V2-st rakendada, viib nendes neljas valdkonnas muudatuste rakendamine teie Chrome'i laienduse võimaliku ülemineku jaoks õigele teele.

Neli põhivaldkonda on järgmised:

  1. Manifesti põhistruktuuri värskendamine.
  2. Muutke oma hosti õigusi.
  3. Värskendage sisu turvapoliitikat.
  4. Muutke oma võrgutaotluste käsitlemist.

Nende nelja valdkonnaga on teie manifesti põhitõed Manifest V3-le üleminekuks valmis. Vaatame kõiki neid põhiaspekte üksikasjalikult ja vaatame, kuidas saaksime teie Chrome'i laienduse tulevikus sellest üleminekust paremini kinni pidada.

Manifesti põhistruktuuri värskendamine

Manifesti põhistruktuuri värskendamine on esimene samm manifesti V3-le üleminekul. Kõige olulisem muudatus, mida peate tegema, on väärtuse muutmine "manifest_version" element juurde 3, mis määrab, et kasutate Manifest V3 funktsioonikomplekti.

Üks peamisi erinevusi manifesti V2 ja V3 vahel on taustalehtede asendamine manifesti V3 ühe laiendusteenuse töötajaga. Peate teenindustöötaja registreerima all "background" välja, kasutades "service_worker" klahvi ja määrake üks JavaScripti fail. Kuigi manifest V3 ei toeta mitut taustaskripti, saate valikuliselt deklareerida teenindustöötaja ES-mooduliks, määrates "type": "module", mis võimaldab importida täiendavat koodi.

Manifest V3, "browser_action" ja "page_action" omadused on ühendatud üheks "action" vara. Peate need omadused asendama "action" oma manifestis. Samamoodi on "chrome.browserAction" ja "chrome.pageAction" API-d on Manifesti versioonis 3 ühendatud üheks „Action” API-ks ja peate sellele API-le üle minema.

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

Üldiselt on manifesti põhistruktuuri värskendamine oluline samm Manifesti V3-le üleminekul, kuna see võimaldab teil kasutada API selles versioonis kasutusele võetud uusi funktsioone ja muudatusi.

Muutke oma hosti õigusi

Teine samm Manifest V3-le üleminekul on hostiõiguste muutmine. Manifesti V2-s määrate hosti õigused jaotises "permissions" välja manifestifailis. Manifesti V3-s on hostiõigused eraldi element ja peaksite need määrama jaotises "host_permissions" välja manifestifailis.

Siin on näide hostiõiguste muutmise kohta.

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

Värskendage sisu turvapoliitikat

Selleks, et värskendada oma Manifest V2 laienduse CSP-d Manifesti V3-ga ühilduvaks, peate manifesti failis tegema mõned muudatused. Manifesti V2-s määrati CSP stringina failis "content_security_policy" manifesti väli.

Manifesti V3-s on CSP nüüd objekt, mille erinevad liikmed esindavad alternatiivseid CSP-kontekste. Singli asemel "content_security_policy" väljale, peate nüüd määrama eraldi väljad "content_security_policy.extension_pages" ja "content_security_policy.sandbox", olenevalt kasutatavate laienduslehtede tüübist.

Samuti peaksite eemaldama kõik viited välistele domeenidele "script-src", "worker-src", "object-src"ja "style-src" käskkirjad, kui need on olemas. Need värskendused on oluline teha oma CSP-s, et tagada manifesti V3 laienduse turvalisus ja stabiilsus.

// Manifest V2 "content_security_policy": "script-src 'self' https://css-tricks.com; object-src 'self'"
// Manfiest V3 "content_security_policy.extension_pages": "script-src 'self' https://example.com; object-src 'self'", "content_security_policy.sandbox": "script-src 'self' https://css-tricks.com; object-src 'self'"

Muutke oma võrgutaotluste käsitlemist

Manifest V3-le ülemineku viimane samm on teie võrgutaotluste käsitlemise muutmine. Manifest V2-s oleksite kasutanud chrome.webRequest API võrgupäringute muutmiseks. Kuid see API asendatakse manifestis V3 declarativeNetRequest API.

Selle uue API kasutamiseks peate määrama declarativeNetRequest luba oma manifestis ja värskendage oma koodi uue API kasutamiseks. Üks peamisi erinevusi kahe API vahel on see declarativeNetRequest API nõuab, et määraksite blokeeritavate ettemääratud aadresside loendi, selle asemel, et saaksite blokeerida terveid HTTP-päringute kategooriaid, nagu saaksite chrome.webRequest API.

Need muudatused on oluline oma koodis teha, et tagada teie laienduse korrektne toimimine manifesti V3 all. Siin on näide selle kohta, kuidas muuta oma manifesti, et kasutada seda declarativeNetRequest API manifestis V3:

// Manifest V2 "permissions": [ "webRequest", "webRequestBlocking"
]
// Manifest V3 "permissions": [ "declarativeNetRequest"
]

Selle kasutamiseks peate värskendama ka oma laienduse koodi declarativeNetRequest API asemel chrome.webRequest API.

Muud aspektid, mida peate kontrollima

See, mida ma käsitlesin, on vaid jäämäe tipp. Muidugi, kui ma tahaksin kõike kajastada, võiksin siin olla mitu päeva ja Google'i Chrome'i arendajate juhenditel poleks mõtet. Kuigi see, mida ma käsitlesin, on teie jaoks piisavalt tulevikukindel, et Chrome'i laiendused selles üleminekus valve alla saaksid, on siin mõned muud asjad, mida võiksite vaadata, et tagada oma laienduste toimimine nende mängu tipus.

  • Taustaskriptide migreerimine teenindustöötaja täitmiskonteksti: Nagu varem mainitud, asendab Manifest V3 taustalehed ühe laiendusteenuse töötajaga, mistõttu võib osutuda vajalikuks taustaskriptide värskendamine, et kohaneda teenindustöötaja täitmiskontekstiga.
  • Ühendades **chrome.browserAction** ja **chrome.pageAction** API-d: Need kaks samaväärset API-d on Manifesti V3-s ühendatud üheks API-ks, seega võib osutuda vajalikuks üle minna Action API-le.
  • Manifest V2 taustakonteksti eeldavate funktsioonide migreerimine: Teenindustöötajate kasutuselevõtt Manifest V3-s ei ühildu selliste meetoditega nagu chrome.runtime.getBackgroundPage(), chrome.extension.getBackgroundPage(), chrome.extension.getExtensionTabs()ja chrome.extension.getViews(). Võib osutuda vajalikuks üle minna kujundusele, mis edastab sõnumeid teiste kontekstide ja taustateenuse töötaja vahel.
  • CORS-i taotluste teisaldamine sisuskriptides taustateenuse töötajale: Manifesti V3 järgimiseks võib osutuda vajalikuks teisaldada sisuskriptides olevad CORS-i päringud taustateenuse töötajale.
  • Välise koodi või suvaliste stringide käivitamisest loobumine: Manifest V3 ei luba enam välist loogikat kasutades chrome.scripting.executeScript({code: '...'}), eval()ja new Function(). Võib osutuda vajalikuks teisaldada kogu väline kood (JavaScript, WebAssembly, CSS) laienduspaketti, värskendada skripti- ja stiiliviiteid, et laadida ressursse laienduspaketist ja kasutada chrome.runtime.getURL() ressursi URL-ide loomiseks käitusajal.
  • Teatud skriptimise ja CSS-i meetodite värskendamine Tabs API-s: Nagu varem mainitud, liiguvad mitmed meetodid Manifesti V3-s Tabs API-lt skriptimise API-le. Õige manifesti V3 API kasutamiseks võib osutuda vajalikuks nende meetodite kõnede värskendamine.

Ja paljud teised!

Võtke julgelt aega, et end kõigi muudatustega kursis saada. Lõppude lõpuks on see muudatus vältimatu ja kui te ei soovi, et teie Manifest V2 laiendused selle ülemineku vältimise tõttu kaotsi läheksid, siis kulutage aega, et varustada end vajalike teadmistega.

Teisest küljest, kui olete Chrome'i laienduste programmeerimises uus ja soovite alustada, on suurepärane võimalus sukelduda Chrome'i veebiarendaja tööriistade maailma. Tegin seda kursuse kaudu LinkedIn õppimine, mis sai mind üsna kiiresti hoogu juurde. Kui teil on need baasteadmised olemas, tulge tagasi selle artikli juurde ja tõlkige teadmised Manifest V3-sse!

Niisiis, kuidas ma edaspidi uue Manifest V3 funktsioone kasutan?

Minu jaoks on üleminek Manifest V3-le ja selle eemaldamine chrome.webRequest API näib nihutavat laiendusi andmekesksetelt kasutusjuhtudelt (nt reklaamiblokeerijad) funktsionaalsematele ja rakenduspõhistele kasutustele. Olen viimasel ajal rakenduste arendamisest eemale hoidnud, kuna see võib üsna muutuda ressursimahukas mõnikord. See nihe võib aga olla see, mis mind tagasi toob!

AI-tööriistade esilekerkimine viimasel ajal, millest paljud on saadaval kasutatavate API-dega, on tekitanud palju uusi ja värskeid SaaS-i rakendusi. Isiklikult arvan, et see saabub õigel ajal üleminekuga rohkem rakenduspõhistele Chrome'i laiendustele! Kuigi paljud vanemad laiendused võivad sellest üleminekust välja jääda, tuleb nende asemele palju uusi, mis on üles ehitatud uudsete SaaS-ideedele.

Seetõttu on see põnev värskendus vanade laienduste uuendamiseks või uute loomiseks! Isiklikult näen API-de kasutamises palju võimalusi, mis hõlmavad tehisintellekti kasutamist laiendustes, et parandada kasutaja sirvimiskogemust. Kuid see on tegelikult vaid jäämäe tipp. Kui soovite oma professionaalsete laiendustega asjadesse tõeliselt süveneda või pöörduda ettevõtete poole, et neile laiendusi luua/värskendada, soovitan oma Gmaili konto uuendamine eeliste eest, mida see Chrome'i veebipoe laienduste koostööl, arendamisel ja avaldamisel annab.

Kuid pidage meeles, et iga arendaja nõuded on erinevad, seega uurige, mida vajate oma praeguste laiendite või uute laienduste töös hoidmiseks!

Ajatempel:

Veel alates CSSi trikid