FireBreathを使用して簡単なWebブラウザープラグインを作成する

以前にHabréで書かれたように、FireBreathはNPAPI [1]テクノロジーとActiveXコントロールホストを使用してクロスプラットフォームプラグインを開発するためのフレームワークであり、次のブラウザーでプラグインを使用できます:Gecko / Firefox、Google Chrome、Apple Safari、Opera、Microsoft Internet Explorer 6、7、および8。

このフレームワークは次の点で私にとって有用でした:プロジェクト(Webアプリケーション)はJavaアプレットを使用してPDFファイルを直接プリンターに印刷しましたが、Javaポリシーと権限に関するさまざまな問題により、アプレットの安定した動作+さまざまな小さなバグを達成できませんでした。ロード後にフォーカスアプレットをキャプチャするか、印刷中にブラウザがフリーズします。 たぶんそれは曲がった手です。 一般的に、マスコミは機能したかどうかに関わらず、誰にも適していない。

オプションとして、アプレットを削除してファイルを迅速かつ確実に印刷するプラグインを作成しようとすることが決定されました。 実際、印刷は同じJavaコードを実装し、jarファイルとして書き換えられています。 ただし、Javaとクライアントコードの間でやり取りするレイヤーはブラウザープラグインです。

次に、ローカルファイルシステムのファイルにデータを書き込む単純な「何もしないことを検討する」プラグインを作成しましょう。

Firebreathをインストールする



alex@alex-laptop:~$ git clone git://github.com/firebreath/FireBreath.git -b firebreath-1.5 firebreath-1.5
Initialized empty Git repository in /home/alex/firebreath-1.5/.git/
remote: Counting objects: 16089, done.
remote: Compressing objects: 100% (4841/4841), done.
remote: Total 16089 (delta 12322), reused 14495 (delta 11066)
Receiving objects: 100% (16089/16089), 11.28 MiB | 535 KiB/s, done.
Resolving deltas: 100% (12322/12322), done.
alex@alex-laptop:~$ cd firebreath-1.5/
alex@alex-laptop:~/firebreath-1.5$ python fbgen.py
Plugin Name []: readFile
Plugin Identifier [readFile]:
Plugin Prefix [RFI]:
Plugin MIME type [application/x-readfile]:
Plugin Description []:
Invalid syntax: Description must be one or more characters long!
Plugin Description []: Read test.txt from ~ folder
Plugin has no UI [false]:
Company Name []:
Invalid syntax: Name must be at least one character, and may not contain carriage returns.
Company Name []: Takeforce
Company Identifier [Takeforce]:
Company Domain [takeforce.com]:
Done. Files placed in /home/alex/firebreath-1.5/projects/readFile


プラグインアセンブリ


動作するには、次のパッケージが必要です。
  1. CMakeバージョン2.8
  2. libgtk2.0-dev
  3. Git
Ubuntu / Debianでは、次のコマンドを使用してインストールできます。
apt-get install cmake libgtk2.0-dev git


実装


その結果、npreadFile.soファイルはbuild / bin / readFileフォルダーに表示されます。このフォルダーは、〜/ .mozilla / pluginsをコピーする必要があります。chromeおよびfirefoxで見つけることができます。 その後、ブラウザを起動して、ファイルbuild / projects / readFile / gen / FBControl.htmを開くことができます
ページには、プラグインが正常にロードされたことが表示され、コンソールで試してみることができます。
plugin().write('Hello');
そして、「Hello」が表示されている/home/alex/log.txtファイルを見てください。

結論


他の方法では実行できないブラウザ権限でクライアント上で何かを実行する必要がある場合、またはいくつかの重い操作を実行する必要がある場合、同時にクライアントコンピューターにソフトウェアをインストールする必要があることをうれしく思います。ファイアブレス

FireBreathで作成されたプラグインがGoogle Chome、Mozilla Firefox、IE8バージョンで動作することを確認しました。 Opera、Safari、IE6-7で動作するのと同じ方法で記述されていますが、テストしていません。

参照:


1) en.wikipedia.org/wiki/NPAPI
2) www.firebreath.org

Source: https://habr.com/ru/post/J118897/


All Articles