最近、私のクライアントの1人が「時代遅れ」だったため、私の拡張機能を拒否しました。マニフェストV3オンラインに関する情報が不足しており、理解することは困難です。
いくつかの努力の後、私はついにタスクを完了しましたが、研究結果を無駄にしたくなかったので、学習経験を共有することにしました。
Manifest v3は、Chrome拡張機能がブラウザと対話する方法を管理する現在のAPI Manifest V2の後継者であるChromeのGoogleのAPIです。 Manifest V3は、拡張機能のルールに大きな変更を加えました。その一部は、使用に慣れているV2の新しい柱になります。
マニフェストv3の移行は次のように要約できます。
Googleの移行に追いつくことが重要です。これは、ユーザーセキュリティと全体的なブラウザエクスペリエンスを向上させるために設計された拡張機能の新しいルールを導入し、これらのルールに準拠していない拡張機能が最終的にChrome Webストアから削除されるためです。
要するに、可能な限り迅速に移行しないと、Manifest V2を使用する拡張機能を作成するためのすべての努力が無駄になります。
マニフェストv2とv3の間の重要な違い
2つの間には多くの違いがありますが、Chromeの「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>
をマニフェストする方法
V3を4つの重要な領域にマニフェストする移行を要約しました。もちろん、古いマニフェストV2から実装する必要がある新しいマニフェストV3には多くの新機能がありますが、これらの4つの領域を変更すると、最終的な移行のためにクロム拡張機能が準備されます。リストの基本構造を更新します。
ホスト権限を変更します。
マニフェストを更新する基本構造は、マニフェストv3に移動するための最初のステップです。必要な最も重要な変更は、「manifest_version」要素の値を3に変更することです。つまり、マニフェストV3機能セットを使用しています。
マニフェストv3では、「browser_action」および「page_action」属性が単一の「アクション」属性にマージされます。これらのプロパティをマニフェストの「アクション」に置き換える必要があります。同様に、Manifest V3のChrome.BrowseractionおよびChrome.Pageaction APIは、移行する必要がある単一の「アクション」APIに統合されます。
一般に、更新マニフェストの基本構造は、このバージョンのAPIで導入された新しい機能と変更を活用できるため、V3をマニフェストするための移行の重要なステップです。
マニフェストv3に移行する2番目のステップは、ホスト許可を変更することです。マニフェストv2では、マニフェストファイルの「許可」フィールドにホスト権限を指定します。マニフェストv3では、ホスト権限は、マニフェストファイルの「host_permissions」フィールドで指定する必要がある個別の要素です。
以下は、ホスト権限を変更する方法の例です。
<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>
マニフェスト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の更新を作成することは、マニフェストV3の拡張機能のセキュリティと安定性を確保するために重要です。
<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>
これらの変更をコードに変更することは、マニフェストV3の下で拡張機能が適切に機能し続けることを確認するために非常に重要です。マニフェストを変更してマニフェストv3:
でマニフェストを変更する方法の例を示します。
また、chrome.webrequest APIの代わりにextensiveneTrequest APIを使用するには、拡張機能コードを更新する必要があります。
<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>
私が紹介したのは、氷山の一角にすぎません。もちろん、すべてをカバーしたい場合は、数日間ここにいるかもしれません。GoogleのChrome開発者ガイドは意味がありません。私がカバーしたものは、あなたのクロム拡張機能をこの移行に十分に安全にしますが、ここにあなたの拡張機能が適切に機能することを確認するためにチェックアウトしたいことがあります。
chrome.browserAction
chrome.pageAction
および
chrome.runtime.getBackgroundPage()
chrome.extension.getBackgroundPage()
chrome.extension.getExtensionTabs()
マニフェストV2の背景コンテキストの期待の関数を移行します:chrome.extension.getViews()
マニフェストv3のサービス労働者の採用は、chrome.scripting.executeScript({code: '...'})
eval()
new Function()
外部コードまたは任意の文字列の実行から離れて移行します:chrome.runtime.getURL()
マニフェストv3は、タブAPI:
のいくつかのスクリプトとCSSメソッドを更新してください。前述のように、いくつかのメソッドはTAB APIからマニフェストv3のスクリプトAPIに移動します。これらのメソッドへの呼び出しは、正しいマニフェストV3 APIを使用するために更新する必要がある場合があります。
など!
chrome.webRequestAPI
では、将来、新しいマニフェストV3の機能を使用するにはどうすればよいですか?
近年の人工知能ツールの台頭は、利用可能なAPIを提供しており、多数の新しいSaaSアプリケーションに影響を与えています。個人的には、これはアプリケーションに基づいたより多くのChrome拡張機能に向けた時までだと思います!この移行によって多くの古い拡張機能がクリアされる可能性がありますが、新しいSaaSのアイデアを中心に構築された多くの新しい拡張機能が置き換えられます。
これは、古い拡張機能を改善したり、新しい拡張機能を構築するために使用できるエキサイティングなアップデートです!個人的には、ユーザーブラウジングエクスペリエンスを強化するために、拡張機能に人工知能を含むAPIを使用する多くの可能性があると思います。しかし、これは本当に氷山の一角にすぎません。独自のプロフェッショナルな拡張機能を実際に使用するか、会社に連絡して拡張機能を構築/更新する場合は、ChmailアカウントをChrome Webストアに協力、開発、公開するのに利点があるため、Gmailアカウントをアップグレードすることをお勧めします。
ただし、各開発者は違った方法で必要なので、現在の拡張機能を実行し続けるために必要なものを学ぶか、新しい拡張機能を実行してください。以上がChrome拡張機能のv3をマニフェストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。