web-dev-qa-db-ja.com

「未チェックのruntime.lastError:応答を受信する前にメッセージポートが閉じました」の修正方法chrome issue?

私はVueJSとLaravel=をプロジェクトに使用しています。この問題は最近明らかになり始め、古いgitブランチでも見られます。

このエラーは、Chromeブラウザでのみ表示されます。

94

Chrome-私のために動作します。エラーなしでコンソールをクリアしました。

106
MirekH

chrome:// extensions / に移動すると、各拡張機能を1つずつ切り替えて、実際に問題を引き起こしている拡張機能を確認できます。

拡張機能をオフに切り替えたら、エラーが表示されているページを更新し、マウスを動かしてクリックするか、クリックします。マウスアクションは、エラーをスローしているものです。

そのため、実際に問題を引き起こしている拡張機能を特定し、無効にすることができました。

35
Aguayma

あなたが拡張機能の開発者であり、このエラーの発生を止めようとしてここであなたの方法をグーグルで調べた場合:

CORがブロックされているため、問題はCORBではありません 警告としてのマニフェスト like-

クロスオリジンリードブロッキング(CORB)は、クロスオリジンレスポンスをブロックしました https://www.example.com/example.html MIMEタイプtext/html。詳細については、 https://www.chromestatus.com/feature/5629709824032768 をご覧ください。

この問題は、ほとんどの場合、runtime.sendMessageに対する誤った処理の非同期応答です。 MDNによる

非同期応答を送信するには、2つのオプションがあります。

  • イベントリスナーからtrueを返します。これにより、リスナーが戻った後もsendResponse関数が有効になり、後で呼び出すことができます。
  • イベントリスナーからPromiseを返し、応答があるときに解決します(またはエラーの場合は拒否します)。

非同期応答を送信したが、これらのメカニズムのいずれかを使用できない場合、sendResponseに指定されたsendMessage引数は範囲外になり、結果はエラーメッセージのとおりです:メッセージポート(応答が受信される前に、メッセージ受け渡し装置が閉じられます。

Webextension-polyfillの作成者は、 2018年6月にそれについて既に記述されています です。

結論として、これらのエラーの原因となっている拡張機能が見つかった場合は、すべてのonMessageリスナーを詳しく調べてください。そのうちのいくつかは、おそらくプロミスを返すことを開始する必要があります(非同期としてマークするだけで十分です)。

23
Ofek Shilon

this で答えました。

私の場合、問題はVideo Downloader professionalAdBlockが原因でした

要するに、この問題はいくつかのグーグルchromeプラグインが原因で発生します

14
nokieng

ポストはかなり古く、Chrome拡張機能の開発と密接な関係はありませんが、ここに置いてください。

コールバックでメッセージに応答するときに同じ問題が発生しました。解決策は、バックグラウンドメッセージリスナーでtrueを返すことです。

background.jsの簡単な例を示します。 popup.jsからのメッセージに応答します。

chrome.runtime.onMessage.addListener(function(rq, sender, sendResponse) {
    // setTimeout to simulate any callback (even from storage.sync)
    setTimeout(function() {
        sendResponse({status: true});
    }, 1);
    // return true;  // uncomment this line to fix error
});

popup.jsは、ポップアップでメッセージを送信します。 background.jsファイルの「return true」行のコメントを外すまで、例外が発生します。

document.addEventListener("DOMContentLoaded", () => {
    chrome.extension.sendMessage({action: "ping"}, function(resp) {
        console.log(JSON.stringify(resp));
    });
});

manifest.json、念のため:)アラーム許可セクションに注意してください!

{
  "name": "TestMessages",
  "version": "0.1.0",
  "manifest_version": 2,
  "browser_action": {
    "default_popup": "src/popup.html"
  },
  "background": {
    "scripts": ["src/background.js"],
    "persistent": false
  },
  "permissions": [
    "alarms"
  ]
}
13
Aleksej Vasinov

エラーの理由が拡張機能である場合は、シークレットモードを使用します Ctrl+Shift+N。シークレットモードではChromeには拡張子がありません。

PD。シークレットモードで拡張機能が必要な場合ReduxDevToolsまたはその他、拡張設定で「シークレットモードで許可」をオンにします

7
airush

Chrome 73でこのエラーをデバッグするためにここに来る人にとって、1つの可能性は、Chrome 73以降はコンテンツスクリプトでクロスオリジンリクエストを許可しないためです。

もっと読む:

  1. https://www.chromestatus.com/feature/5629709824032768
  2. https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

これは多くのChrome拡張機能の作成者に影響を与えます。拡張機能の修正者はChromeが「ほとんどの拡張機能はこの変更の影響を受けないことを示しています」

(アプリのコードとは関係ありません)

[〜#〜] update [〜#〜]:CORの問題を修正しましたが、まだこのエラーが表示されます。ここにあるのはChromeのせいだと思う。

4
Jonathan Lin

私の場合、OneTab chrome extension。

2
Suleman

正しい構文を使用していることを確認してください。

リスニングした後、sendMessage()メソッドを使用する必要があります。

contentScript.js It sendRequest to app.jsの簡単な例を示します。

contentScript.js

chrome.extension.sendRequest({
    title: 'giveSomeTitle', params: paramsToSend
  }, function(result) { 
    // Do Some action
});

app.js

chrome.extension.onRequest.addListener( function(message, sender, 
 sendResponse) {
  if(message.title === 'giveSomeTitle'){
    // Do some action with message.params
    sendResponse(true);
  }
});
1
Gopal B Shimpi

ブラウザにウイルス対策拡張機能がインストールされている場合は無効にします。私の場合、アンチウイルス拡張機能が原因でした。

0
Rajeet

あるタブから別のタブにコンソールログデータを送信していましたが、最初のコンソールは実際には必要ありませんでした。ただし、エラーメッセージにはバグがあったので、右クリックして「x Webサイトからのメッセージを表示しない」を選択しました。たぶんこれが最も簡単な修正です:)

0
Youss

私の場合、それは自分のページソースに設定されたブレークポイントでした。ブレークポイントを削除または無効にすると、エラーが解消されます。

ブレークポイントは、適度に複雑なレンダリングコードのチャンクにありました。ページの異なる部分にある他のブレークポイントには、このような効果はありませんでした。このエラーを常に引き起こす単純なテストケースを作成することはできませんでした。

0
AnthonyVO

私にとってはAuto Tab Discard、固定されたタブでそのエラーをスローします。バグレポート https://github.com/rNeomy/auto-tab-discard/issues/101 を作成しました。

0
RiZKiT