5

構成ファイルからいくつかのパラメーターを初期化するクロム拡張機能を作成しようとしています。拡張機能がこれらのパラメーターを変更してファイルに保存できるようにして、次回拡張機能が読み込まれたときに新しい構成を使用できるようにしたいと考えています。

私は chrome.filesystem API を読んでいますが、ファイルを選択するにはユーザーの操作が必要です。ただし、この場合、プロセスはユーザーのアクションなしで自動的に実行される必要があります。

この構成ファイルは拡張機能によってのみアクセスされるため、サンドボックス化できますが、クロムが閉じられても永続的である必要があります。

XMLHttpRequest を使用してファイルを読み取ることができましたが、ファイルを変更する方法が見つかりませんでした。

Chrome拡張機能からこれを行うことは可能ですか?

4

2 に答える 2

9

これは古い質問ですが、残念ながら唯一の回答は間違っていました。

Chrome で HTML5 を使用してファイルを読み書きすることは間違いなく可能です。漠然とした「セキュリティ」の問題は言及されていません。HTML5 ファイルシステムは、仮想ファイルの書き込みと読み取りを行う保護されたサンドボックスを作成します。これは、Chrome によって管理されるファイル ベースのデータベースに書き込まれ、他の Chrome アプリや拡張機能、または他の OS ベースのアプリケーションからはアクセスできないファイルと考えることができます。これらのファイルは Web ブラウザーのファイル DB 内に存在するため、ユーザーは OS ファイル エクスプローラーを使用してこれらのファイルをコピーまたは移動することはできません。

特定のファイル パスに基づいて、ディスクから (ディスクに) 任意のファイルを読み取る (または書き込む) ことはできません。ディスクからファイルが必要な場合は、chrome.fileSystem.chooseEntry() を使用して、ユーザーが自分でファイルを選択できるようにするだけです。

ただし、HTML5 ファイルシステムから (へ) 独自のファイルを読み取る (および書き込む) ことはできます。

あなたの質問に答えるために:いいえ、構成ファイルをブラウザのファイルシステムに書き込むためにユーザーの操作は必要ありません。ファイルの代わりに、(永続化された) 構成のキーと値のペアを格納するための chrome storage、localstorage、または indexedDB を使用することもできます。

これについて読み始めるのに役立つリンクがいくつかあります。

HTML5 ファイルシステムをいじる

HTML5 ロックス

HTML5 デモ

于 2014-01-28T19:40:27.243 に答える
1

ユーザーが知らないうちにChrome拡張機能が構成ファイルに書き込むことを許可すると、セキュリティ上の問題が発生する可能性があると思います。おそらくセキュリティ機能にぶつかっています。潜在的な回避策は、常にオンになっているデスクトップ アプリケーションを構築し、Chrome アプリケーションがそれと通信することです。オートホットキーのようなものを使えば、(すべての詳細を知らなくても) 必要なことを実行できるかもしれません。

于 2013-01-13T13:57:14.730 に答える