問題タブ [firefox-addon-webextensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
280 参照

javascript - Webextensions に読み込まれる前に、コンテンツに基づいてリソースをブロックする方法は?

完全に読み込まれる前に、リソース (JavaScript ファイルや CSS ファイルなど) をブロックしたい。リソースがブロックされている場合の状態は、その内容によって異なります。実際、これを行うための解決策はありませんか?

私が知っていること: Webextensions は Chrome 拡張機能に似ているため、webRequest.onBeforeRequest リスナーもあります。リスナーはファイルをブロックすることを許可します:

この時点までは、すべて問題ありません。requestBody オプションもあるはずなので、ファイルの内容に基づいて決定できます。しかし、Mozilla Docは次のように述べています。

  1. Firefox は「requestBody」オプションをサポートしていません。

ああ、悪い話です。クールではありません。したがって、URL データを取得するには、非同期 XHR リクエストが必要です。

=>これは機能しません。返品{キャンセル: X}; return {cancel: doSth()};のような通常の関数を受け入れます。、ただし非同期コールバックはありません。結果をキャンセル JSON に「返す」オプションはありません。

他のスタックオーバーフローの質問では、 XPCOMの一部であるnsIContentPolicyについて読みました。
Firefox Webextension 環境でこれを使用する方法のヒント、例、または説明が見つかりませんでした。これは可能ですか?はいの場合、どのように?

両方が不可能な場合、どうすればそのような拡張を行うことができますか? 非推奨の XPCOM を Webextension なしで使用する必要がありますか?

0 投票する
1 に答える
428 参照

firefox - Firefox 拡張機能 : 拡張ストレージの JSON データを解析できません

Web Extension API を使用して Firefox 拡張機能を作成しました。予備審査に合格しましたが、審査担当者は、インストール時に完全な審査を進めることができないと言いました。次のエラーが表示されます -

「拡張ストレージの JSON データを解析できません」

しばらく調べてみたところ、Firefox は、特定の拡張機能のすべてのローカル ストレージ データを読み書きする各拡張機能のプロファイル フォルダーに「storage.js」というファイルを作成することがわかりました。また、このファイルが作成される前に拡張機能がこのファイルに書き込もうとすると、「拡張ストレージに JSON データを書き込めません」というエラーがスローされ、このファイルが作成される前に拡張機能コードがこのファイルから読み取ろうとすると、エラー「拡張ストレージの JSON データを解析できません」というメッセージがスローされます。

さて、私の懸念は、ファイルが作成され、書き込みまたは読み取りが可能であることを確認するにはどうすればよいですか?

PS : これは、拡張機能をインストールした直後に発生します。後続のセッションでは、そのファイルが欠落していないため、このエラーは発生しません。

0 投票する
1 に答える
714 参照

firefox - Firefox Web 拡張 API の captureVisibleTab が未定義を返す

Web 拡張 API を使用して Firefox アドオンを作成しようとしています。私のアドオンは、ユーザーが閲覧している現在のページのスクリーンショットを chrome.tabs.captureVisibleTab を使用して取得する必要がありますが、undefined が返されます。彼らは、 http://arewewebextensionsyet.com/の API に既に実装されていると言っていますが、動作させることができないようです。

これが私のコードです:

ドキュメントではオプションと書かれていますが、最初のパラメーターとして window.id を渡そうとしましたが、これもデータに対して未定義の値を返します。

誰かが特にこれについて何か経験がありますか?

0 投票する
1 に答える
666 参照

firefox - Firefox WebExtension notifications API: 通知がクリックされたときに関数を呼び出す方法

WebExtensions を使用して Firefox アドオンを開発しようとしています。私がやろうとしているのは、ユーザーが通知をクリックしたときに新しい Firefox タブまたはウィンドウを開くことです。しかし、うまくいきません。

通知をクリックしても何も起こりません。

次のような通知を作成しています。

どうすればこれを機能させることができますか?

0 投票する
1 に答える
4162 参照

firefox-addon - Firefox Webextensions でコマンドライン プログラムを実行するには?

単純な WebExtensions アドオンで引数を指定してコマンド (ディスク上のどこかで実行) を実行し、その stdout を取得したいと考えています。古い API は廃止されているため、WebExtensions でこれを行う方法はありますか?

0 投票する
2 に答える
568 参照

firefox - 異なるユーザーの chrome.extension.getUrl() で同じ値を取得するために Firefox WebExtension のリソースへのパスを決定する方法は?

拡張機能を使用する前に、ユーザーはログインする必要があります。いくつかのパラメーターを必要とする外部プロバイダーを使用します。リダイレクト URL はその中にあります。ユーザーがログインすると、xpi ファイルにあるページにリダイレクトされます。したがって、このページの URL を正確に知る必要があります。この URL をホワイトリストに追加する必要があり、この URL がすべてのユーザーに対して同じであることを確認する必要があります。

beastify 拡張機能 ( https://github.com/mdn/webextensions-examples/tree/master/beastify ) を別のコンピューターにインストールしました。同じボタンをクリックすると、画像へのさまざまなパスが表示されます。 2 番目の a4d4-f83e642ecf66/beasts/frog.jpg。

Firefox WebExtension で異なるユーザーの chrome.extension.getUrl() で同じ値を取得するにはどうすればよいですか?

UPD: manifest.json で「キー」を設定した後、Chrome で可能です (ただし、この方法は Firefox では機能しません)。次に、 chrome.extension.getUrl() 、 chrome.runtime.id、chrome.extension.id は、異なるユーザー/インストール/デバイスに対して 1 つの値を返します。Firefox でも同じ動作が必要です。

UPD2: https://bugzilla.mozilla.org/show_bug.cgi?id=1271663

0 投票する
1 に答える
655 参照

google-chrome-extension - RequireJS not loaing JavaScript in Firefox WebExtensions add-on

I'm trying to port a Chrome Extension to a Firefox add-on using the WebExtensions API. I am using RequireJS to load JavaScript files. The code below is working fine in my Chrome extension, but not in Firefox.

Anyone have any advice on this? Thanks.

manifest.json:

loader.js

requireInit.js:

csApp.js

Edit: console.log() inside jQuery works. But, console.log() inside csApp.js is not working.

0 投票する
2 に答える
1041 参照

css - Firefox WebExtension で @font-face を使用する方法

WebExtensions APIを使用して Chrome 拡張機能 Firefox アドオンを移植しようとしています。私が使用しているクロム拡張機能で

フォントを含める。Firefox WebExtension では何を使用すればよいですか?

CSS ファイルで browser.extension.getURL() を使用できないため、ローカル フォント ファイルで @font-face を使用するにはどうすればよいですか?

0 投票する
1 に答える
4342 参照

javascript - Firefox WebExtension からの XMLHttpRequest

Firefox アドオンから xhr リクエストを作成する例をたくさん見てきましたが、新しいWebExtensionsのもの (requireComponentsは未定義) を使用しようとしていますが、単純な XmlHttpRequest を送信できない理由がわかりません。拡張子内?

ajax リクエストはまったく別の URL に送信されますが、ホストにはすべてのオリジンを許可するように COR が設定されていることに注意してください。

.send()が解雇されるとすぐに、エラーが発生します。

[例外... "失敗" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS フレーム :: resource://gre/modules/ExtensionContent.jsm -> moz-extension://9ca18411-9a95-4fda-8184- 9dcd3448a41a/myapp.js :: GM_xmlhttpRequest :: 行 162" データ: いいえ]"1 whatsapp.js:166:9

コードは次のようになります。

manifest.json に webRequest パーミッションを追加しました。それが意味するものではないことに気付きましたが、何が ajax リクエストを止めているのか理解するのに苦労していますか? 何か案は?