Manifest V2が2023年以降は利用できなくなるので、エラーがでます。
その為Manifest V3へ対応方法
02 Chrome拡張機能2 をManifest V3に対応させてみる
browser_action→actionとbackgroundのscripts→service_workerなどが変わっています。
manifest.json
{
"name": "クリックアラート2",
"manifest_version": 3,
"version": "1.1",
"description": "クリックするとアラートを出すだけ2",
"action": {
"default_title": "EXTENTION_SAMPLE"
},
"background": {
"service_worker": "background.js"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["script.js"]
}]
}
background.js
chrome.action.onClicked.addListener(function (tab){
chrome.tabs.sendMessage(tab.id, "Action");
});
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if (message == "Action") {
hogehoge();
}
sendResponse();
return true;
});
function hogehoge() {
alert('AAAAA');
}
これが、Manifest V2がサポート終了である旨のえらー
Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details.
Manifest V3以降後のmessageのresponse関連のエラー
このメッセージは、送られたmessegeがレスポンスを受け取って、返す前にmessageがcloseされてしまっているようです。
Uncaught (in promise) Error: The message port closed before a response was received.
script.jsで、chrome.runtime.onMessage.addListener(async function (内の下記分を追加する事で、消えます。
sendResponse();