著者:Alan D Moore(http://www.alandmoore.com、電子メールme_at_alandmoore_dot_com)
貢献者:
Admbrowserは、Webキオスクで使用するためのブラウザです。これは、Pyqt5とQtwebengine(Chromium/Blink)に基づいており、ロックダウンを非常にシンプルで痛みのないものにするように設計されています。
もともとは、FirefoxやChromeなどの増え続ける機能リストを備えたブラウザが、正しくかつ完全にロックダウンするにはあまりにも多くの作業であることが明らかになったときに、もともとライブラリカタログ端子で使用するために考案されていました。また、SSHの上の端末でスローワンを介して手作業で編集できるシンプルなテキストファイルを使用して簡単に構成できるように設計されているため、ここにはデータベース、XML、またはクレイジーバイナリはありません。
AdmbrowserはWCGBrowserのフォークであり、これらの重要な違いがあります。
WCGBrowserにある多くの機能は、QtwebengineがQtwebkitとは異なる方法で行うという理由だけで壊れているか利用できません。
任意のプラットフォームで動作するはずですが、Arch Linux、Debian、Ubuntuでのみテストされています。
付属のadmbrowser.yamlファイルには、文書化された例構成が表示されます。それを使用するには、/etc/admbrowser.yaml、〜/.admbrowser.yamlにコピーするか、-c(-config-file)スイッチで指定します。 admbrowser.py実行可能ファイルを作成するか、Pythonを使用して起動することもできます。
python admbrowser.py
少なくとも、configファイルまたは-lスイッチのいずれかを使用してstart_urlを指定する必要があります。そうしないと、ブラウザがあまり使用されません。高度な構成はおそらく構成ファイルで最もよく実行されますが、これらのスイッチを使用してコマンドラインで多くの基本機能を有効または無効にすることができます。
| スイッチ | 説明 |
|---|---|
| -debug_log | 指定されたファイルにデバッグ出力を送信します |
| - サイズ | 初期のウィンドウサイズを「<width> x <height>」(「800x600」など)、最大化するために「最大」、またはフルスクリーンの「フル」として設定します。 |
| -Proxy_Server | プロキシサーバーホストとポートをフォームに設定します<HOST>:<port> |
| -c、-config-file | 使用する構成ファイルを指定します |
| -d、 - debug | stdoutにデバッグ出力を提供します |
| -e、-allow_external | ブラウザがMIMEタイプを介して外部プログラムでコンテンツを開くことを許可します |
| -g、-allow_plugins | Flash、Javaなどなどのプラグインを使用できます。 |
| -H、 - ヘルプ | コマンドラインの構文で迅速なヘルプを表示します |
| -i、-icon-theme | 使用するアイコンテーマ。これらのテーマを自分でインストールする必要があります |
| -l、-url | ブラウザの「場所の開始」。これは、ロードされる初期URLであり、リセット時に戻る場所です。 |
| -n、-no-navigation | ナビゲーションパネル(後ろ、前方、家、ショートカットなど)をオフにします。 |
| -p、 - ポップアップ | 新しいウィンドウで開くリンクがクリックされた場合、またはJavaScriptがウィンドウを開こうとする新しいウィンドウの作成を有効にします |
| -t、-timeout | 非アクティブモニターのタイムアウト。この数秒の不活動の後、ブラウザをリセットします |
| -u、-user | サイトが認証を要求するときに、デフォルトのユーザー名を送信する |
| -w、 - password | サイトが認証を要求するときに、デフォルトのパスワードを送信するように設定します |
| -Z、-Zoom | コンテンツのデフォルトのズームファクター。 0これを無視します。 1はデフォルト、2は2倍のサイズ、0.5はハーフサイズなどです。 |
Admbrowserは、組み込みのQTコマンドライン引数も受け入れます。これは、いくつかの低レベルのオーバーライドを提供します。これらのスイッチのドキュメントは、https://doc.qt.io/qt-5/qapplication.html#qapplicationにあります。
サンプル構成ファイルは完全にコメントされているため、読み通すだけで簡単に構成できます。ゼロから始めたい場合は、アプリケーションで利用可能な現在の構成オプションを以下に示します。
| オプション名 | デフォルト値 | 説明 |
|---|---|---|
| Allow_external_content | 間違い | 非HTMLコンテンツを許可するかどうか、たとえばPDFファイル。これが本当なら、MIMEタイプまたは404エラーのコンテンツハンドラー、「ネットワークエラー」、または空白ページがユーザーに表示される可能性が高い場合があります。 |
| Alow_plugins | 間違い | Trueの場合、Flash、Javaなどのプラグインを使用してください。 |
| Alow_Popups | 間違い | javaScript window.open()の呼び出しまたは「_blank」のターゲットとのリンクなど、新しいブラウザウィンドウを開く必要があるナビゲーションを許可するかどうか。 falseの場合、ナビゲーションは無視されます。 Trueの場合、予想どおりに新しいウィンドウが作成されます。 |
| force_js_confirm | "聞く" | 「受け入れる」または「拒否」に設定されている場合、指定された回答を使用してJavaScriptがnow-Sure-want-to-exitのダイアログボックスをオーバーライドします。 |
| suppress_alerts | 間違い | Trueの場合、JavaScriptのポップアップアラートが表示されるのをブロックするか、falseの場合に表示します。 |
| Alow_printing | 間違い | コンテキストメニューまたはツールバーからのWebページの印刷を有効にします。 |
| print_settings | (空の) | デフォルトのプリンター設定を指定します。以下を参照してください。 |
| default_password | (空の) | ページが認証を要求したときに送信するデフォルトのパスワード |
| default_user | (空の) | ページが認証を要求したときに送信するデフォルトのユーザー名 |
| icon_theme | (QT5デフォルト) | ナビゲーションアイコンに使用するアイコンテーマ |
| ナビゲーション | 真実 | 上部にナビゲーションバーを表示します(バック/フォワード/リロード/ブックマーク/終了) |
| navigation_layout | (以下を参照してください) | ナビゲーションバーのレイアウトを設定します。以下の詳細な説明を参照してください。 |
| network_down_html | (空の) | 現在_brokenstart_urlページをロードできないときに表示されるHTMLを含むファイルへのフルパスは、おそらく何らかのネットワークエラーを示しています。 |
| page_unavailable_html | (空の) | 現在、ページをロードできないときに表示されるHTMLを含むファイルへのフルパスを現在_BROKENは、セキュリティ制限によってアクセスできないかブロックされていないためです。 |
| privacy_mode | 真実 | プライベートブラウジングモードを有効または無効にします |
| user_agent | (QT5デフォルト) | デフォルトのユーザーエージェント文字列をオーバーライドします。 |
| proxy_server | (空の) | HTTPプロキシ用のプロキシサーバー文字列を設定します。フォームホスト:ポート、または8080のデフォルトポートを使用する場合はホストだけです。 |
| QUIT_BUTTON_MODE | リセット | timeout_modeと同じように、これは終了ボタンが押されたときに実行されるアクションです(同じオプション) |
| QUIT_BUTTON_TEXT | 「私は終わった」 | quit/resetボタンに表示するテキスト。アクセラレータインジケーター(&)を含めることができます。 |
| screensaver_url | 概要:空白 | アイドル時に訪問するURL。 timeout_modeが「スクリーンセーバー」であり、「タイムアウト」がゼロである場合にのみ重要です。 |
| SSL_MODE | 厳しい | ブラウザがSSL証明書エラーを処理する方法を定義します。 「Strict」は、エラーを与え、問題のあるURLへのアクセスを防ぎます。 「無視」は静かにエラーを無視し、アクセスを許可します。 |
| start_url | 概要:空白 | 開始URL |
| StyleSheet | (空の) | アプリケーションウィンドウのスタイリングに使用するQSS-Format StyleSheetのファイル名。ファイルの例を参照してください。 |
| タイムアウト | 0 | ブラウザが閉じるかリセットされる前の不活動の数秒数。値0は機能を無効にします。 |
| timeout_mode | リセット | アクションは、非アクティブタイムアウトで実行されました。値は、「リセット」(スタートURLおよびクリア履歴に戻るため)、「閉じる」(プログラムを閉じる)、または「スクリーンセーバー」(アイドル中にスクリーンセーバー_urlを表示するために)を「 |
| ホワイトリスト | (空の) | アクセスを許可するWebドメインまたはホストのリスト(以下を参照)。 |
| window_icon | (空の) | ウィンドウマネージャーが表示するアイコンファイルのフルパス。 |
| window_size | 「マックス」 | このサイズにウィンドウをデフォルトにします。 <width> x <height>(例: "800x600")、「最大」の「最大」、またはフルスクリーンの「フル」にすることができます。 |
| window_title | "ブラウザ" | ウィンドウマネージャーが表示するカスタムウィンドウタイトル。 |
| Zoom_Factor | 1.0 | ページに適用されるズームの量。 .5はハーフサイズ、2.0は2倍のサイズなどです。 |
ブックマークは、この形式で「ブックマーク」と呼ばれるYAMLリストに作成されます。
ブックマーク:
1:
名前:「ブックマーク名」
URL:「http://bookmark.url/」
説明:「ツールチップ用のブックマークの簡単な説明」
2:
名前:「別のブックマーク名」:
URL:「http://example.com/some_bookmark」
説明:「このブックマークの簡単な説明」
ブックマーク名には、アクセラレータキーを指定するアンパサンドを含めることができます。次のようなブックマークエントリを指定することもできます。
ブックマーク:
「ブックマーク名」:
URL:「http://bookmark.url/」
説明:「ツールチップ用のブックマークの簡単な説明」
これはよりコンパクトですが、マイナス面は、ブックマークの順序を制御できないことです(キーによって順序付けられているため、名前でアルファベット順になります)。このモードは本当に後方互換性のためのものですが、アルファベット順にしてタイピングを保存したいブックマークがたくさんある場合は、これが進むべき方法かもしれません。
外部コンテンツの起動を許可する場合、「content_handlers」アレイを使用すると、外部コンテンツがMIMEタイプごとに開くプログラムを指定できます。構文は次のようになります:
content_handlers: 「アプリケーション/PDF」:「XPDF」 "Application/vnd.oasis.opendocument.text": "libreoffice"
AdmbrowserはファイルをTEMPディレクトリにダウンロードし、2番目の列で指定したコマンドへの引数としてそれを渡します。これに注意してください。場合によっては、ある種のラッパースクリプトを作成して、引数を適切に扱わないいくつかのタイプのファイルやプログラムに対処することをお勧めします。
「navigation_layout」パラメーターは、表示している場合、ナビゲーションバーに配置するアイテムのリストです。以下から選択できます。
このリストは、有効なYAMLリスト形式で指定できますが、正方形のブレースに囲み、コンマで分離することをお勧めします。 「セパレーター」と「スペーサー」は何度も使用することができます。
ホワイトリスト機能は、キオスクページのすべてのリンクを完全に制御できず、ユーザーが奇妙なサイトに出かけないようにしたい場合、キオスクをロックダウンするのに役立つ便利なものとして追加されます。それはファイアウォールやコンテンツフィルターではなく、あなたがそれをどのように期待するかを正確に振る舞わないかもしれません。したがって、それを使用する予定がある場合は、それが何をするのか、何がしていないのかを少し読んでください。
ホワイトリスト機能を使用したくない場合は、コメントしたり、リストを空のままにしたり、「false」の値を与えてください。
ホワイトリストにドメインまたはホストのリストを提供します。
ホワイトリスト:["somehost.example.com"、 "some-local-host"、 "mydomain.org"]]
ユーザーがリンクをクリックしたり、ページに移動しようとしたりするたびに、ホスト名は要求されたURLから抽出され、ホワイトリストと一致します。一致がある場合、ページが表示されます。そうでない場合、エラーテキストが表示されます。
いくつかのものは自動的です:
start_urlをホワイトリストに登録してURLをブックマークしたい場合は、構成ファイルでこれを行うことができます。
ホワイトリスト:本当
自動ホワイトリストに依存する場合、これらのURLの完全なホスト文字列がホワイトリストであることを理解することが重要です。したがって、たとえば、start_urlが「http://example.com」の場合、「Example.com」がホワイトリストに追加されます(したがって、foo.example.com、bar.example.comなどのExample.comのすべてのサブドメイン)。ただし、「http://www.example.com」をstart_urlとして指定すると、「www.example.com」がホワイトリストに追加されます。したがって、「foo.example.com」はホワイトリストに載っていません。
また、別のホストに転送するURLをホワイトライストする場合は、ホワイトリストに両方のホストを指定する必要があることに注意してください。
スクリーンセーバーモードは、ブラウザがアイドル状態の場合にのみ特定のURLを表示できる特別なタイムアウトモードです。次のような構成を検討してください。
start_url: 'http://example.com/kiosk' タイムアウト:1800 Timeout_mode: 'ScreenSaver' screensaver_url: 'http://example.com/slides'
この構成は次のことを行います。
ScreenSaver_urlは、たとえば、画像回転子、広告のあるページ、ウェルカムメッセージなどです。それは実際には重要ではありませんが、マウスまたはキーボードに触れるとすぐにstarte_urlがロードされるため、ユーザーは実際にスクリーンセーバーページと対話できないことに留意してください。
Admbrowserでは、HTTPプロキシにホスト(名前またはIP)とポート番号を設定できます。 HTTPS、FTP、靴下、または認証されたプロキシは現在サポートされていません。プロキシ設定を3つの方法のいずれかのいずれかを設定できます。
プロキシサーバーを設定するには、これらの例のように、フォーマットホスト:ポートを使用します。
proxyServer.mynetwork.local:3128 LocalHost:8080 192.168.1.1:8880
ポートを含めることを怠り、IPアドレスまたはホスト名を配置するだけの場合、ポート8080はデフォルトで使用されます。
この機能は、一部のOSで動作しない場合があります。現在、http_proxy環境変数の設定に依存しています(すべてのシステムで尊重されない場合があるHTTP_Proxy環境変数(構成に使用する方法に関係なく)。それは間違いなくLinux、そしておそらくUnixのようなシステムで動作します。
Admbrowserは、デフォルトのプリンター設定の設定をサポートし、ダイアログボックスを表示せずに印刷を許可します。オプションは、print_settings変数で設定されています。例えば:
print_settings:
サイレント:本当
マージン:[5、5、3、3]
オリエンテーション:「風景」
次のオプションがサポートされています。
| オプション名 | デフォルト値 | 説明 |
|---|---|---|
| 静けさ | 間違い | Trueの場合、Admbrowserは[印刷]ダイアログボックスを表示せずにすぐに印刷します。 |
| オリエンテーション | 「ポートレート」 | ポートレートまたはランドスケープオリエンテーションでの印刷を指定します。 |
| size_unit | "ミリメートル" | Paper_sizeおよびマージン変数で使用される測定単位を指定します。 「ミリメートル」、「ポイント」、「インチ」、「ピカ」、「ディドット」、「シケロ」、または「デバイスピクセル」にすることができます。 |
| マージン | (プリンターのデフォルト) | プリンターのマージンをフォームのリストとして指定します:[左、上、右、下]。例:[5、3.5、6、2.4]。ユニットは、size_unit変数によって指定されています。 |
| Paper_size | (プリンターのデフォルト) | ペーパーサイズをフォームのリストとして指定します:[幅、高さ]。例:[500、650.5]。ユニットは、size_unit変数によって指定されています。 |
| 解決 | (プリンターのデフォルト) | PPI(1インチあたりのピクセル)のプリンターの解像度を指定します。 |
| モード | "画面" | プリンタが使用する解像度「画面」:画面の解像度(デフォルト)または「ハイ」:プリンターの最大解像度を設定します |
以下は既知の制限です。
次の問題は、QtwebkitからQtwebengineへのポートに表示されました。
バグが見つかった場合は、プロジェクトのgithubページ(http://github.com/alandmoore/admbrowser/issues)で「問題」として報告してください。 「バグ」が本当に機能要求である場合は、以下を参照してください。
Admbrowserは、理論的にはRaspberry Piで動作できますが、Raspbian 10では動作できません。 AdmbrowserにはQtwebengineが必要です。これは(2020年1月現在)Raspbian 10用にパッケージ化されていません。
Admbrowserを使用するには、QTWebengineの作業バージョンを提供する配布を使用する必要があります。 2020年1月の時点で、さまざまなソリューションが次の結果でテストされています(PI 3B+でテストされています)。
| ディストリビューション | アーチ | 作品? | 説明 |
|---|---|---|---|
| opensuse leap 15.1 | ARM64 | はい | やや遅いものの、完璧に機能しているようです。 |
| Ubuntu Mate 20.04 Alpha | ARMHF | はい | 完璧に機能しているようですが、非常に遅いようです。 opensuseよりも遅い。 |
| Ubuntu Mate 18.04 | ARMHF | ほとんど | 起動しますが、ページを読み込んでいる間は頻繁にsegfaultsがあります。 |
| Ubuntuサーバー19.10 | ARM64 | いいえ | qtwebenginewidgetsがインポートされている場合、qapplicationの作成に関するpyqtスクリプトSegfaults。 |
| Fedberry 27 | ARMV7 | いいえ | segv_maperr qwebengineviewを表示しようとしているとき |
Raspberry PIサポートの継続的な議論については、問題#16を参照してください。
ブラウザの精神と意図と一致している限り、貢献は歓迎されます。つまり、キオスク、看板、またはその他のロックダウン状況に役立つ機能であり、ブラウザの構成を簡単に保ちます。また、機能や動作の変更がオプトインであることを好みます(それらを有効にするにはスイッチが必要です)。
コードを寄付している場合は、これらのベストプラクティスに従ってください。
このプロジェクトでサポートされている機能がある場合、それらを実装する3つのオプションがあります。
Admbrowserは、GNU GPL V3の条件の下でリリースされます。