Chrome-laajennusten Manifest V3:een siirtyminen

Chrome-laajennusten Manifest V3:een siirtyminen

Kuinka siirtyä Manifest V3:een Chrome-laajennuksia varten PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Vaikka en olekaan tavallinen Chrome-laajennusten ohjelmoija, olen varmasti koodannut tarpeeksi laajennuksia ja minulla on riittävän laaja verkkokehitysportfolio tietääkseni tehtävän. Kuitenkin juuri äskettäin asiakas hylkäsi yhden laajennuksistani, koska sain palautetta, että laajennusni oli "vanhentunut".

Yrittäessäni selvittää, mikä oli vialla, pyyhkäisin hämmennykseni maton alle ja aloin heti syvään sukellustani takaisin Chrome Extensions -maailmaan. Valitettavasti tiedot Manifest V3:sta olivat niukat, ja minun oli vaikea ymmärtää nopeasti, mistä tässä siirrossa oli kyse.

Lienee tarpeetonta sanoa, että vireillä olevan työn vuoksi minun piti navigoida vaivattomasti Googlen Chrome-kehittäjien dokumentaatio ja selvittää asioita itse. Samalla kun sain työn valmiiksi, en halunnut, että tietämykseni ja tutkimukseni tällä alalla menevät hukkaan, ja päätin jakaa sen, mitä olisin voinut saada helposti oppimismatkallani.

Miksi siirtyminen Manifest 3:een on tärkeää

Manifest V3 on sovellusliittymä, jota Google käyttää Chrome-selaimessaan. Se on nykyisen API:n Manifest V2:n seuraaja, ja se hallitsee Chromen laajennusten vuorovaikutusta selaimen kanssa. Manifest V3 tuo merkittäviä muutoksia laajennuksia koskeviin sääntöihin, joista osa tulee olemaan uusi tukipilari V2:sta, johon olimme tottuneet.

Siirtyminen Manifest V3:een voidaan tiivistää näin:

  1. Siirto on jatkunut vuodesta 2018 lähtien.
  2. Manifest V3 alkaa virallisesti julkaista tammikuussa 2023.
  3. Kesäkuuhun 2023 mennessä Manifest V2:ta käyttävät laajennukset eivät ole enää saatavilla Chrome Web Storessa.
  4. Laajennukset, jotka eivät noudata Manifest V3:ssa käyttöön otettuja uusia sääntöjä, poistetaan lopulta Chrome Web Storesta.

Yksi Manifest V3:n päätavoitteista on parantaa käyttäjien turvallisuutta ja parantaa yleistä selainkokemusta. Aiemmin monet selainlaajennukset luottivat koodiin pilvessä, mikä tarkoitti, että se saattoi olla vaikeaa arvioida, oliko pidennys riskialtista. Manifest V3 pyrkii ratkaisemaan tämän vaatimalla, että laajennukset sisältävät kaiken niiden suorittaman koodin, jotta Google voi tarkistaa ne ja havaita mahdolliset riskit. Se myös pakottaa laajennukset pyytämään Googlelta lupaa muutoksiin, joita ne voivat toteuttaa selaimessa.

Pysy ajan tasalla Googlen siirtymisestä Manifest V3:een on tärkeää, koska se sisältää uusia sääntöjä laajennuksille, joiden tarkoituksena on parantaa käyttäjien turvallisuutta ja yleistä selainkokemusta, ja laajennukset, jotka eivät noudata näitä sääntöjä, poistetaan lopulta Chrome Webistä. Store.

Lyhyesti sanottuna kaikki kova työsi Manifest V2:ta käyttävien laajennusten luomiseksi voi olla turhaa, jos et tee tätä siirtymää tulevien kuukausien aikana.

tammikuu 2023 kesäkuu 2023 tammikuu 2024
Manifest V2 -laajennusten tuki poistetaan käytöstä Chromen Canary-, Dev- ja Beta-kanavilla. Chrome Web Store ei enää salli Manifest V2 -laajennusten julkaisemista näkyvyyden ollessa julkinen. Chrome Web Store poistaa kaikki jäljellä olevat Manifest V2 -laajennukset.
Manifest V3 vaaditaan Chrome Web Storen Suositeltu-tunnukselle. Olemassa olevat Manifest V2 -laajennukset, jotka on julkaistu ja jotka ovat julkisesti näkyvissä, muuttuvat luetteloimattomiksi. Manifest 2:n tuki päättyy kaikilla Chromen kanavilla, mukaan lukien vakaa kanava, ellei Enterprise-kanavaa laajenneta.

Tärkeimmät erot Manifest V2:n ja V3:n välillä

Näiden kahden välillä on monia eroja, ja vaikka suosittelen, että luet eteenpäin Chromen "Migrating to Manifest V3" -opas, tässä on lyhyt ja suloinen yhteenveto avainkohdista:

  1. Huoltotyöntekijät korvaa taustasivut Manifest V3:ssa.
  2. Verkkopyyntöjen muutos käsitellään uudella declarativeNetRequest API Manifest V3:ssa.
  3. Manifest V3:ssa laajennukset voivat suorittaa vain JavaScriptiä, joka sisältyy niiden pakkaukseen, eivätkä ne voi käyttää etäisännöityä koodia.
  4. Manifest V3 esittelee promise tukee monia menetelmiä, vaikka takaisinsoittoja tuetaan edelleen vaihtoehtona.
  5. Manifest V3:n isäntäoikeudet ovat erillinen elementti, ja ne on määritettävä "host_permissions" ala.
  6. Manifest V3:n sisällön suojauskäytäntö on objekti, jonka jäsenet edustavat vaihtoehtoisia CSP-konteksteja, eikä merkkijonoa, kuten se oli Manifest V2:ssa.

Yksinkertaisessa Chrome-laajennuksen manifestissa, joka muuttaa verkkosivun taustaa, se voi näyttää tältä:

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

Jos huomaat, että jotkin yllä olevista tunnisteista vaikuttavat sinulle vierailta, jatka lukemista saadaksesi selville, mitä sinun on tiedettävä.

Kuinka siirtyä sujuvasti Manifest V3:een

Olen tehnyt yhteenvedon Manifest V3:een siirtymisestä neljällä avainalueella. Vaikka uudessa Manifest V3:ssa on monia kelloja ja pillejä, jotka on otettava käyttöön vanhasta Manifest V2:sta, näiden neljän alueen muutosten toteuttaminen saa Chrome-laajennuksesi oikeille raiteille mahdollista siirtymistä varten.

Neljä avainaluetta ovat:

  1. Manifestin perusrakenteen päivittäminen.
  2. Muokkaa isäntäkäyttöoikeuksiasi.
  3. Päivitä sisällön suojauskäytäntö.
  4. Muokkaa verkkopyyntösi käsittelyä.

Näiden neljän alueen avulla Manifestin perusteet ovat valmiita Manifest V3:een siirtymistä varten. Katsotaanpa kutakin näistä tärkeimmistä näkökohdista yksityiskohtaisesti ja katsotaan, kuinka voimme työskennellä varmistaaksemme Chrome-laajennuksesi tulevaisuuden tämän siirtymän jälkeen.

Manifestin perusrakenteen päivittäminen

Luettelon perusrakenteen päivittäminen on ensimmäinen askel Manifest V3:een siirtymisessä. Tärkein muutos, joka sinun on tehtävä, on muuttaa arvoa "manifest_version" elementti 3, joka määrittää, että käytät Manifest V3 -ominaisuusjoukkoa.

Yksi suurimmista eroista Manifest V2:n ja V3:n välillä on taustasivujen korvaaminen yhdellä laajennuspalvelutyöntekijällä Manifest V3:ssa. Sinun tulee rekisteröidä palvelutyöntekijä alla "background" -kenttään käyttämällä "service_worker" avain ja määritä yksi JavaScript-tiedosto. Vaikka Manifest V3 ei tue useita taustaohjelmia, voit valinnaisesti ilmoittaa palvelutyön ES-moduuliksi määrittämällä "type": "module", jonka avulla voit tuoda lisää koodia.

Manifestissa V3 "browser_action" ja "page_action" ominaisuudet yhdistetään yhdeksi "action" omaisuutta. Sinun on korvattava nämä ominaisuudet "action" manifestissasi. Samoin, "chrome.browserAction" ja "chrome.pageAction" API:t on yhdistetty yhdeksi "Action" API:ksi Manifest V3:ssa, ja sinun on siirryttävä tähän sovellusliittymään.

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

Kaiken kaikkiaan luettelon perusrakenteen päivittäminen on ratkaiseva vaihe Manifest V3:een siirtymisessä, koska sen avulla voit hyödyntää sovellusliittymän tässä versiossa otettuja uusia ominaisuuksia ja muutoksia.

Muokkaa isäntäkäyttöoikeuksiasi

Toinen vaihe Manifest V3:een siirtymisessä on isäntäoikeuksien muokkaaminen. Manifest V2:ssa määrität isäntäkäyttöoikeudet "permissions" -kenttään manifestitiedostossa. Manifest V3:ssa isäntäoikeudet ovat erillinen elementti, ja sinun tulee määrittää ne kohdassa "host_permissions" -kenttään manifestitiedostossa.

Tässä on esimerkki isäntäkäyttöoikeuksien muokkaamisesta:

// 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": [ ":///*" ]

Päivitä sisällön suojauskäytäntö

Jotta voit päivittää Manifest V2 -laajennuksesi CSP:n Manifest V3:n mukaiseksi, sinun on tehtävä joitain muutoksia luettelotiedostoosi. Manifest V2:ssa CSP määritettiin merkkijonona "content_security_policy" manifestin kenttä.

Manifest V3:ssa CSP on nyt objekti, jonka eri jäsenet edustavat vaihtoehtoisia CSP-konteksteja. Yhden sijasta "content_security_policy" -kenttään, sinun on nyt määritettävä erilliset kentät "content_security_policy.extension_pages" ja "content_security_policy.sandbox", riippuen käyttämiesi laajennussivujen tyypistä.

Sinun tulee myös poistaa kaikki viittaukset ulkoisiin verkkotunnuksiin "script-src", "worker-src", "object-src"ja "style-src" ohjeita, jos niitä on. On tärkeää tehdä nämä päivitykset CSP:ään, jotta voidaan varmistaa laajennuksen turvallisuus ja vakaus Manifest V3:ssa.

// 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'"

Muokkaa verkkopyyntösi käsittelyä

Viimeinen vaihe Manifest V3:een siirtymisessä on verkkopyyntöjen käsittelyn muokkaaminen. Manifest V2:ssa olisit käyttänyt chrome.webRequest API verkkopyyntöjen muokkaamiseen. Tämä API on kuitenkin korvattu Manifest V3:lla declarativeNetRequest API.

Jotta voit käyttää tätä uutta APIa, sinun on määritettävä declarativeNetRequest lupa luettelossasi ja päivitä koodisi käyttämään uutta sovellusliittymää. Yksi keskeinen ero näiden kahden API:n välillä on, että declarativeNetRequest API edellyttää, että määrität luettelon ennalta määritetyistä osoitteista, jotka estetään sen sijaan, että pystyisit estämään kokonaisia ​​HTTP-pyyntöluokkia, kuten voisit chrome.webRequest API.

On tärkeää tehdä nämä muutokset koodiisi varmistaaksesi, että laajennuksesi toimii edelleen oikein Manifest V3:ssa. Tässä on esimerkki siitä, kuinka muokkaat luetteloasi käyttämään declarativeNetRequest API Manifest V3:ssa:

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

Sinun on myös päivitettävä laajennuskoodisi, jotta voit käyttää declarativeNetRequest API sijasta chrome.webRequest API.

Muut asiat, jotka sinun on tarkistettava

Se, mitä olen käsitellyt, on vain jäävuoren huippu. Tietysti, jos haluaisin kattaa kaiken, voisin olla täällä päiviä, eikä Googlen Chrome Developers -oppaissa olisi mitään järkeä. Vaikka kerroin, että olet riittävän tulevaisuudelta suojattu Chrome-laajennuksiesi käyttöön tässä siirrossa, tässä on joitain muita asioita, joita sinun kannattaa harkita varmistaaksesi, että laajennuksesi toimivat pelin huipulla.

  • Taustakomentosarjojen siirto palvelutyön suorituskontekstiin: Kuten aiemmin mainittiin, Manifest V3 korvaa taustasivut yhdellä laajennuspalvelutyöllä, joten voi olla tarpeen päivittää taustakomentosarjat mukautumaan palvelutyön suorituskontekstiin.
  • Yhdistäminen **chrome.browserAction** ja **chrome.pageAction** API: Nämä kaksi vastaavaa sovellusliittymää on yhdistetty yhdeksi API:ksi Manifest V3:ssa, joten saattaa olla tarpeen siirtyä Action API:hen.
  • Siirretään toimintoja, jotka odottavat Manifest V2 -taustakontekstia: Palvelutyöntekijöiden ottaminen käyttöön Manifest V3:ssa ei ole yhteensopiva muiden menetelmien kanssa chrome.runtime.getBackgroundPage(), chrome.extension.getBackgroundPage(), chrome.extension.getExtensionTabs()ja chrome.extension.getViews(). Saattaa olla tarpeen siirtyä malliin, joka välittää viestejä muiden kontekstien ja taustapalvelutyöntekijän välillä.
  • CORS-pyyntöjen siirtäminen sisältöskripteissä taustapalvelutyöntekijälle: Saattaa olla tarpeen siirtää CORS-pyynnöt sisältökomentosarjoissa taustapalvelutyöntekijälle manifestin V3:n noudattamiseksi.
  • Siirtyminen pois ulkoisen koodin tai mielivaltaisten merkkijonojen suorittamisesta: Manifest V3 ei enää salli ulkoisen logiikan suorittamista chrome.scripting.executeScript({code: '...'}), eval()ja new Function(). Saattaa olla tarpeen siirtää kaikki ulkoinen koodi (JavaScript, WebAssembly, CSS) laajennuspakettiin, päivittää komentosarja- ja tyyliviittaukset resurssien lataamiseksi laajennuspaketista ja chrome.runtime.getURL() luodaksesi resurssien URL-osoitteita suorituksen aikana.
  • Tiettyjen komentosarja- ja CSS-menetelmien päivittäminen Tabs API:ssa: Kuten aiemmin mainittiin, useat menetelmät siirtyvät Tabs API:sta Manifest V3:n komentosarjasovellusliittymään. Saattaa olla tarpeen päivittää kaikki näiden menetelmien kutsut käyttääksesi oikeaa Manifest V3 -sovellusliittymää.

Ja paljon muuta!

Voit vapaasti käyttää aikaa saadaksesi itsesi ajan tasalla kaikista muutoksista. Loppujen lopuksi tämä muutos on väistämätön, ja jos et halua Manifest V2 -laajennusten katoavan tämän siirtymän välttämisen vuoksi, käytä jonkin aikaa varustautumalla tarvittavalla tiedolla.

Toisaalta, jos olet uusi Chrome-laajennusten ohjelmoinnissa ja haluat päästä alkuun, hyvä tapa tehdä se on sukeltaa Chromen Web Developer -työkalujen maailmaan. Tein sen kurssin kautta Linkedin-oppiminen, joka sai minut vauhtiin melko nopeasti. Kun sinulla on perustiedot, palaa tähän artikkeliin ja käännä tietosi Manifest V3:ksi!

Joten miten aion käyttää uuden Manifest V3:n ominaisuuksia jatkossa?

No, minulle siirtyminen Manifest V3:een ja sen poistaminen chrome.webRequest API näyttää siirtävän laajennuksia pois tietokeskeisistä käyttötapauksista (kuten mainosten esto-ohjelmista) toiminnallisempiin ja sovelluspohjaisiin käyttötarkoituksiin. Olen pysynyt poissa sovelluskehityksestä viime aikoina, koska se voi mennä melkoiseksi resursseja kuluttava ajoittain. Tämä muutos saattaa kuitenkin saada minut takaisin!

Tekoälytyökalujen nousu viime aikoina, joista monet sisältävät käytettävissä olevia API-liittymiä, on synnyttänyt tonnia uusia ja tuoreita SaaS-sovelluksia. Henkilökohtaisesti uskon, että se tulee täydelliseen aikaan, kun siirrytään enemmän sovelluspohjaisiin Chrome-laajennuksiin! Vaikka monet vanhemmat laajennukset saatetaan pyyhkiä pois tästä siirtymisestä, paljon uusia, uusien SaaS-ideoiden ympärille rakennettuja, tulee tilalle.

Tästä syystä tämä on jännittävä päivitys, jonka avulla voit uudistaa vanhoja laajennuksia tai rakentaa uusia! Itse näen monia mahdollisuuksia käyttää sovellusliittymiä, joissa tekoälyä käytetään laajennuksissa käyttäjän selauskokemuksen parantamiseksi. Mutta se on oikeastaan ​​vain jäävuoren huippu. Jos haluat todella perehtyä asioihin omilla ammattilaajennuksillasi tai ottaa yhteyttä yrityksiin rakentaaksesi/päivittääksesi laajennuksia heille, suosittelen Gmail-tilisi päivittäminen eduista, joita se tarjoaa Chrome Web Store -laajennusten yhteistyössä, kehittämisessä ja julkaisemisessa.

Muista kuitenkin, että jokaisen kehittäjän vaatimukset ovat erilaiset, joten opi, mitä tarvitset pitääksesi nykyiset laajennuksesi pystyssä tai uudet laajennuksesi!

Aikaleima:

Lisää aiheesta CSS-temppuja