6
Webワーカーでnew Function
を動作させるのに問題があります。 Web Workerを生成するHTMLページがあります。このWebワーカーはnew Function(str)
でコードを実行します。私はパッケージ化されたChromeアプリケーションでこれを使用しようとしています。この場合、eval
のようなコードを明示的にマニフェストのサンドボックスページとして表示する必要があります。CSPのWebワーカーで「新しい機能」を有効にする
今、2つのオプションがあります。
- ページがサンドボックス化されるリストを行います。私がそうした場合、私は
new Function
を使うことができますが、私は要求をすることができないのでWebワーカーを生成できません(サンドボックスされたページには固有の起源があります)。new Worker(...)
はSECURITY_ERR
をスローします。サンドボックス new Worker
が原因独特の原点にサンドボックスで失敗し
new Function
作品ページをサンドボックス化されていないリストを行います。私がそうすれば、私はWebワーカーを生成することができますが、従業員はサンドボックス化されていないのでnew Function
を使用できません。new Function(...)
は、その使用について文句をEvalError
がスローします。sandbox allow-scripts script-src 'self' 'unsafe-eval'; object-src 'self'
私は何をすることができます:次のように起因する非サンドボックス
eval
様
new Worker
作品 であることに私のCSPがある
new Function
は、非サンドボックスに失敗しましたウェブワーカーでnew Function
を働かせるにはどうすればよいですか?
同じ起源の問題のために 'data:' URLは機能しませんでしたが、(記事の)ブロブからの 'createObjectURL' URLは機能します。ワーカースクリプト全体をメインページにインライン展開するのはあまり便利ではありませんが、それを有効にする唯一の方法と思われます。ありがとう。 – pimvdb
ああ、答えの中でオブジェクトURLの代わりにデータURLを使用したことがわかりました。申し訳ありません。より便利にするために、ビルドの手順を実行することもできます。 – molnarg