0

初めて Chrome 拡張機能に取り組んでおり、Bugsnag js エラー報告を統合しようとしています。

有益な情報がたくさん見つかりましたが、バグスナグを実際に拡張機能にロードする方法がわかりません。(たとえば、バックグラウンド スクリプト、コンテンツ スクリプト、background.html ページなど)。スクリプト タグをページに挿入するコードを記述しますか?

Bugsnagセットアップ ドキュメントでは構成が提案されています

<script src="//d2wy8f7a9ursnm.cloudfront.net/bugsnag-2.min.js"
     data-apikey="YOUR-API-KEY-HERE"></script>

background.htmlそれをページに追加しようとしましたが、うまくいきませんでした。また、拡張機能のコンテンツ スクリプトとバックグラウンド スクリプトに cloudfront スクリプトを追加しようとしましたが、読み込みに問題がありました。

Uncaught ReferenceError: Bugsnag is not defined

同様に、bugsnag スクリプトへの参照を配置して Bugsnag オブジェクトを変更するのに最適な場所はどこですか (例:

Bugsnag.beforeNotify = function (error, metaData) {
    error.stacktrace = error.stacktrace.replace(/chrome-extension:/g, "chromeextension:");
}

ここで提案されているように、拡張エラーがバグナグに到達できるようにします。

これは非常に基本的なセットアップの質問ですが、この特定のユース ケースの方向性を見つけるのに苦労したことを認識してください。ご提案ありがとうございます。

4

1 に答える 1

2

外部スクリプトを含めようとしています。それは難しいでしょう - 拡張機能は主に、すべてのリソースがバンドルされていることを期待しています。

拡張ページ (背景/ポップアップ) の場合、はい、含めることができますが、

  1. このコードを例外として許可する CSPを宣言する必要があります。

  2. 明示的にロードする必要があります。オリジンに URL があるためhttps://、プロトコル相対 URLは失敗します。//...chrome-extension://...

コンテンツ スクリプトの場合は、さらに複雑になります。タグ内のすべてのものは、コンテンツ スクリプト コンテキスト<script>ではなく、ページ コンテキストに移動するため、タグ メソッドは使用できません。

そのため、以前に XHR でダウンロードしてから、 で注入する必要があります (リモート URL を指定することはできませんが、コードを含む文字列を指定することはできます)。明らかに、別の方法でAPI キーを設定する必要があります。executeScriptexecuteScript


Bugsnagは、コードをローカルにバンドルする可能性について言及していることに注意してください。

余分なブロック リクエストを回避したい場合は、既存のスクリプト ファイルにインライン化されるように、アセットのコンパイル プロセスに JavaScript を含めることができます。確認すべき唯一のことは、オンロード ハンドラが実行される前に Bugsnag が含まれていることです。

そのため、上記のすべては安全に無視できます。ただし、スクリプトを最新の状態に保つのはあなた次第です。

于 2016-03-17T18:08:57.343 に答える