Vor kurzem hat einer meiner Kunden meine Erweiterung abgelehnt, weil sie "veraltet" war, was mich dazu veranlasste, mich in das offensichtliche V3 von Chromverlängerungen zu graben. Es gibt einen Mangel an Informationen über Manifest V3 online und es ist schwer zu verstehen.
Nach einiger harter Arbeit habe ich die Aufgabe endgültig abgeschlossen, aber ich wollte nicht, dass meine Forschungsergebnisse verschwendet werden, also habe ich beschlossen, meine Lernerfahrung zu teilen.
Die Bedeutung der offensichtlichen V3 -Migration
Manifest V3 ist die API von Google für Chrome, der Nachfolger der aktuellen API -Manifest V2, die es verwaltet, wie Chromverlängerungen mit dem Browser interagieren. Manifest V3 hat wesentliche Änderungen an den Regeln der Erweiterung vorgenommen, von denen einige zu den neuen Säulen der V2 werden, die wir verwendet haben.
Die Migration von Manifest V3 kann wie folgt zusammengefasst werden:
- Die Migration ist seit 2018 im Gange.
- Manifest V3 wird im Januar 2023 offiziell mit dem Start beginnen.
- Bis Juni 2023 werden Erweiterungen Manifest V2 im Chrome -Webladen nicht mehr verfügbar sein.
- Erweiterungen, die nicht den neuen Regeln entsprechen, die in Manifest V3 eingeführt wurden, werden schließlich aus dem Chrome -Webladen entfernt.
Eines der Hauptziele des Manifest V3 ist die Verbesserung der Benutzersicherheit und die Verbesserung des gesamten Browsererlebnisses. Zuvor waren viele Browser-Erweiterungen vom Cloud-basierten Code abhängig, was bedeutete, dass es schwierig war zu bewerten, ob die Erweiterung riskant war. Manifest V3 wurde entwickelt, um dieses Problem zu lösen, indem die Erweiterung den gesamten Code einbezieht, der ausgeführt wird, sodass Google sie scannen und potenzielle Risiken erkennen können. Es erzwingt auch die Erweiterung, um die Erlaubnis von Google für Änderungen zu beantragen, die sie im Browser umsetzen kann.
Es ist wichtig, mit der Migration von Google auf dem Laufenden zu bleiben, um V3 zu manifestieren, da es neue Regeln für Erweiterungen zur Verbesserung der Sicherheit der Benutzer und des Gesamtbrowsererlebnisses einführt, und Erweiterungen, die diese Regeln nicht entsprechen, werden schließlich aus dem Chrome -Webladen entfernt.
Kurz gesagt, wenn Sie nicht so schnell wie möglich migrieren, können alle Ihre Bemühungen, Erweiterungen zu schaffen, die manifest V2 verwenden, verschwendet.Schlüsselunterschiede zwischen Manifest V2 und V3
Es gibt viele Unterschiede zwischen den beiden, und obwohl ich dringend empfehle, Chromes "Migrate to Manifest V3" -Ranal zu lesen, finden Sie hier eine kurze Zusammenfassung der wichtigsten Punkte:
- In Manifest V3 ersetzen Servicearbeiter die Backend -Seite. Die Änderung der Nettoanforderung
- wird in Manifest V3 unter Verwendung der neuen DeclarativenTrequest -API behandelt.
- In Manifest V3 können Erweiterungen nur JavaScript -Code ausführen, der in ihren Paketen enthalten ist, und kann nicht remote verwaltete Code verwenden.
- Manifest V3 führt vielversprechende Unterstützung für viele Methoden ein, obwohl Rückrufe immer noch als Alternative unterstützt werden.
- Host -Berechtigungen in Manifest V3 sind ein separates Element und müssen im Feld "Host_permissions" angegeben werden.
- Die Inhaltssicherheitsrichtlinie in Manifest V3 ist ein Objekt, dessen Mitglieder einen CSP -Kontext (Alternative Inhaltssicherheitsrichtlinie) darstellen, anstatt eine Zeichenfolge in Manifest V2.
In einer Liste von Chromerweiterungen, die einfach den Hintergrund einer Webseite ändern, sieht es möglicherweise so aus:
<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>
Wenn Sie einige der oben genannten Tags seltsam sehen, lesen Sie weiter, um zu erfahren, was Sie wissen müssen.
wie man migriert, um V3
zu manifestierenIch habe die Migration zusammengefasst, um V3 in vier Schlüsselbereiche zu manifestieren. Während es in der neuen Manifest V3 viele neue Funktionen gibt, die aus dem alten Manifest V2 implementiert werden müssen, werden Sie Ihre Chromerweiterung für die endgültige Migration vorbereiten.
Die vier Schlüsselbereiche sind:
- Aktualisieren Sie die Grundstruktur der Liste.
- Hostberechtigungen ändern.
- Aktualisieren von Inhaltssicherheitsrichtlinien.
- Verarbeitung von Netzwerkanforderungen ändern.
Durch diese vier Aspekte sind die Grundelemente Ihrer Liste bereit, um V3 zu migrieren. Schauen wir uns jeden wichtigen Aspekt im Detail an und lernen, wie man arbeitet, um Ihre Chromerweiterung vor dieser Migration zu schützen.
Grundstruktur der Aktualisierungsliste
Die Grundstruktur der Aktualisierung des Manifests ist der erste Schritt, um sich zum Manifest V3 zu bewegen. Die wichtigste Änderung, die Sie vornehmen müssen, besteht darin, den Wert des Elements "Manifest_version" auf 3 zu ändern, was bedeutet, dass Sie den Manifest V3 -Funktionssatz verwenden.
Einer der Hauptunterschiede zwischen Manifest V2 und V3 ist der Ersatz der Backend -Seite durch einen einzelnen Erweiterungsdienstarbeiter in Manifest V3. Sie müssen einen Servicearbeiter im Feld "Hintergrund" registrieren, den Schlüssel "service_worker" verwenden und eine einzelne JavaScript -Datei angeben. Auch wenn Manifest V3 nicht mehrere Hintergrundskripte unterstützt, können Sie den Service Worker als ES -Modul deklarieren, indem Sie "Typ": "Modul" angeben, mit dem Sie mehr Code importieren können.
In Manifest V3 werden die Attribute "browser_action" und "page_action" in ein einzelnes "Aktion" -Triput verschmolzen. Sie müssen diese Eigenschaften durch "Aktion" im Manifest ersetzen. In ähnlicher Weise werden das Chrom.Browseraction and Chrom.PageAction -APIs in Manifest V3 in eine einzelne "Aktion" -API zusammengeführt, auf die Sie migrieren müssen.
<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>
im Allgemeinen ist die Grundstruktur des Update -Manifests ein wichtiger Schritt in der Migration zum Manifest V3, da Sie neue Funktionen und Änderungen nutzen können, die in dieser Version der API eingeführt werden.
Hostberechtigungen
ändernDer zweite Schritt bei der Migration zum Manifest V3 besteht darin, die Hostberechtigungen zu ändern. In Manifest V2 geben Sie Host -Berechtigungen im Feld "Berechtigungen" der Manifest -Datei an. In Manifest V3 sind Host -Berechtigungen ein separates Element, das Sie im Feld "Host_permissions" der Manifest -Datei angeben sollten.
Folgendes ist ein Beispiel für die Änderung der Hostberechtigungen:
<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>
Inhaltssicherheitsrichtlinie aktualisieren
Um den CSP der Manifest V2 -Erweiterung zu aktualisieren, um mit dem Manifest V3 übereinzustimmen, müssen Sie einige Änderungen an der Manifestdatei vornehmen. In Manifest V2 wird CSP als Zeichenfolge im Feld "content_security_policy" des Manifest angegeben.
In Manifest V3 ist CSP jetzt ein Objekt, dessen unterschiedliche Mitglieder einen alternativen CSP -Kontext darstellen. Anstatt jetzt ein einzelnes Feld "content_security_policy" zu verwenden, müssen Sie separate Felder für "content_security_policy.extesion_pages" und "content_security_policy.sandbox" angeben, abhängig von der Art der Erweiterung Seite.
Wenn Sie eine externe Domäne in Ihrem aktuellen CSP haben, sollten Sie auch alle Referenzen aus den Direktiven "Skript-SRC", "Worker-SRC", "Object-SRC" und "Style-SRC" -Direktiven löschen. Es ist wichtig, diese CSP -Aktualisierungen zu erstellen, um die Sicherheit und Stabilität der Erweiterung in Manifest V3 sicherzustellen.
<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>
Verarbeitung von Netzwerkanforderungen
ändern
Der letzte Schritt bei der Migration zum Manifest V3 besteht darin, die Verarbeitung von Netzwerkanforderungen zu ändern. In Manifest V2 verwenden Sie die Chrome.WebRequest -API, um Netzwerkanforderungen zu ändern. Diese API wird jedoch durch die DeclarativenTrequest -API in Manifest V3 ersetzt.Um diese neue API zu verwenden, müssen Sie die deklarativenTrequest -Berechtigung im Manifest angeben und den Code aktualisieren, um die neue API zu verwenden. Ein wesentlicher Unterschied zwischen den beiden APIs besteht darin, dass die DeclarativenTequest-API eine Liste vordefinierter Adressen angeben muss, anstatt die gesamte Kategorie HTTP-Anforderungskategorie zu blockieren, wie die Verwendung der Chrome.WebRequest-API.
Es ist sehr wichtig, diese Änderungen am Code vorzunehmen, um sicherzustellen, dass die Erweiterung unter dem Manifest V3 weiterhin ordnungsgemäß funktioniert. Hier ist ein Beispiel dafür, wie Sie das Manifest ändern können, um die deklarativenTequest -API in Manifest V3:
<code>// Manifest V2 "permissions": [ "activeTab", "storage", "http://www.css-tricks.com/", ":///*" ]</code>zu verwenden
<code>// Manifest V3 "permissions": [ "activeTab", "scripting", "storage" ], "host_permissions": [ "http://www.css-tricks.com/" ], "optional_host_permissions": [ ":///*" ]</code>
Sie müssen auch den Erweiterungscode aktualisieren, um die DeclarativenTequest -API anstelle der Chrome.WebRequest -API zu verwenden.
Andere Aspekte, die überprüft werden müssen
Was ich vorgestellt habe, ist nur die Spitze des Eisbergs. Wenn ich alles abdecken wollte, könnte ich tagelang hier sein und der Chrome Developer -Leitfaden von Google macht keinen Sinn. Während das, was ich abgedeckt habe, Ihre Chrome -Erweiterung für diese Migration sicher genug macht, finden Sie hier einige andere Dinge, die Sie vielleicht überprüfen möchten, um sicherzustellen, dass Ihre Erweiterung ordnungsgemäß funktioniert.
- Hintergrundskripte migrieren in die Ausführung von Arbeitnehmerausführungen: Wie bereits erwähnt, ersetzt Manifest V3 die Hintergrundseite durch einen einzelnen Erweiterungsdienstarbeiter, sodass die Hintergrundskripte für den Ausführungskontext der Service Worker -Ausführung aktualisiert werden müssen.
- Unified
chrome.browserAction
undchrome.pageAction
API: Diese beiden äquivalenten APIs werden in Manifest V3 in eine einzelne API zusammengeführt, sodass sie möglicherweise in die Aktions -API migriert werden müssen. -
Erwartungsfunktionen des Manifest V2 Hintergrundkontext:
chrome.runtime.getBackgroundPage()
Die Einführung von Dienstangestellten in Manifest V3 ist mit Methoden wiechrome.extension.getBackgroundPage()
,chrome.extension.getExtensionTabs()
,chrome.extension.getViews()
und unvereinbar. Es kann erforderlich sein, zu einem Design zu migrieren, das Nachrichten zwischen anderen Kontexten und Backend -Service -Mitarbeitern übergibt. - CORS -Anforderungen im Inhaltskript in den Hintergrunddienstarbeiter verschieben: Um dem Manifest V3 einzuhalten, kann es erforderlich sein, CORS -Anforderungen im Inhaltskript an den Hintergrunddienstarbeiter zu verschieben.
-
Migrieren Sie von der Ausführung externer Code oder beliebiger Zeichenfolgen:
chrome.scripting.executeScript({code: '...'})
Manifest V3 darf keine externe Logik mithilfeeval()
,new Function()
undchrome.runtime.getURL()
ausführen. Es kann erforderlich sein, alle externen Code (JavaScript, WebAssembly, CSS) in das Erweiterungspaket zu verschieben, Skripte und Stilreferenzen zu aktualisieren, um Ressourcen aus dem Erweiterungspaket zu laden und die Ressourcen -URL zur Laufzeit mit zu erstellen. - Aktualisieren Sie einige Skripte und CSS -Methoden in der Registerkarte API: Wie bereits erwähnt, bewegen sich einige Methoden von der Registerkarte API zur Skript -API in Manifest V3. Alle Aufrufe dieser Methoden müssen möglicherweise aktualisiert werden, um die richtige Manifest V3 API zu verwenden.
und mehr!
Nehmen Sie sich etwas Zeit, um alle Änderungen zu verstehen. Schließlich ist diese Änderung unvermeidlich, und wenn Sie die offensichtliche V2 -Erweiterung nicht verlieren möchten, weil Sie diese Migration vermeiden, nehmen Sie sich etwas Zeit, um das erforderliche Wissen zu beherrschen.
Andererseits können Sie in der Welt der Webentwickler -Tools von Chrome in die Welt der Chrom -Tools von Chromen in die Welt der Chrom -Webentwickler -Tools eintauchen, wenn Sie neu sind. Ich habe dies mit einem Kurs über LinkedIn Learning gemacht, der mir einen kurzen Verständnis der Geschwindigkeit gab. Sobald Sie diese Grundlagen gemeistert haben, kehren Sie bitte zu diesem Artikel zurück und übersetzen Sie das, was Sie wissen, basierend auf Manifest V3!
Wie benutze ich die Funktionen im neuen Manifest V3 in der Zukunft?
chrome.webRequestAPI
für mich scheinen die Migration zum Manifest V3 und die Entfernung von
Der Aufstieg der Tools für künstliche Intelligenz in den letzten Jahren, von denen viele verfügbare APIs bieten, hat eine große Anzahl neuer und frischer SaaS -Anwendungen inspiriert. Ich persönlich denke, dass dies bis zu mehr Chromverlängerungen basierend auf Anwendungen ist! Während viele alte Erweiterungen durch diese Migration freigegeben werden können, werden viele neue Erweiterungen, die sich um neuartige SaaS -Ideen basieren, ersetzt.
Dies ist also ein aufregendes Update, mit dem alte Erweiterungen verbessert oder neue aufgebaut werden können! Ich persönlich denke, dass es viele Möglichkeiten gibt, APIs zu verwenden, die künstliche Intelligenz in Erweiterungen beinhalten, um die Erfahrung des Nutzers zu verbessern. Aber das ist wirklich nur die Spitze des Eisbergs. Wenn Sie Ihre eigene professionelle Erweiterung wirklich verwenden oder ein Unternehmen kontaktieren möchten, um Erweiterungen für sie zu erstellen/zu aktualisieren, empfehle ich, Ihr Google Mail -Konto zu aktualisieren, da es Vorteile bei der Zusammenarbeit, Entwicklung und Veröffentlichung von Erweiterungen im Chrome -Webladen hat.
Denken Sie jedoch daran, dass jeder Entwickler unterschiedlich benötigt. Erfahren Sie also, was Sie benötigen, um die aktuelle Erweiterung am Laufen zu halten, oder eine neue Erweiterung ausführen!
Das obige ist der detaillierte Inhalt vonWie man zum Veranlassenen von V3 für Chromverlängerungen übergeht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

CSS Grid ist ein leistungsstarkes Tool zum Erstellen komplexer, reaktionsschneller Weblayouts. Es vereinfacht das Design, verbessert die Zugänglichkeit und bietet mehr Kontrolle als ältere Methoden.

In Artikel wird CSS Flexbox erörtert, eine Layoutmethode zur effizienten Ausrichtung und Verteilung des Raums in reaktionsschnellen Designs. Es erklärt die Verwendung von Flexbox, vergleicht es mit CSS -Gitter und Details Browser -Unterstützung.

In dem Artikel werden Techniken zum Erstellen von reaktionsschnellen Websites mithilfe von CSS erörtert, einschließlich Ansichtsfenster -Meta -Tags, flexiblen Gitter, Flüssigkeitsmedien, Medienabfragen und relativen Einheiten. Es deckt auch mit CSS -Raster und Flexbox zusammen und empfiehlt CSS -Framework

In dem Artikel wird die CSS-Box-Größeneigenschaft erörtert, in der die Berechnung der Elementabmessungen steuert. Es erklärt Werte wie Inhaltsbox, Border-Box und Padding-Box sowie deren Auswirkungen auf das Layout-Design und die Form von Formularausrichtung.

In Artikel wird das Erstellen von Animationen mithilfe von CSS, Schlüsseleigenschaften und Kombination mit JavaScript erläutert. Hauptproblem ist die Browserkompatibilität.

In Artikel werden CSS für 3D -Transformationen, wichtige Eigenschaften, Browserkompatibilität und Leistungsüberlegungen für Webprojekte erläutert. (Charakterzahl: 159)

In dem Artikel werden CSS -Gradienten (linear, radial, wiederholt) beschrieben, um die Website -Visuals, das Hinzufügen von Tiefe, Fokus und moderne Ästhetik zu verbessern.

In Artikel werden Pseudoelemente in CSS, deren Verwendung bei der Verbesserung des HTML-Stylings und der Unterschiede zu Pseudoklassen erläutert. Bietet praktische Beispiele.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.
