Closed dynamis closed 5 years ago
コマンドライン引数で指定したurlを受け取る方法を調査中。 https://dxr.mozilla.org/mozilla-esr60/source/browser/base/content/browser.js#1791 https://dxr.mozilla.org/mozilla-esr60/source/browser/base/content/browser.js#1669 browser.xulのwindow.argumentsに入るようだが、なぜか空文字になってしまっているので原因を探る。
https://github.com/webdino/amethyst/commit/c7d88b5cf0c369b4c1e3a2e67fae150444605214 コマンドラインで指定したURLを開けるようになりました。
./mach run https://www.renesas.com/
とすると、起動時に指定のページをロードします。
@dynamis
別に無くて良いかなと思っている機能:
@dynamis https://github.com/webdino/amethyst/commit/c86b3cf80e5c0830aec5d8bed57b0fd08b9ddfd2 backspaceで戻るができるようになりました。
そうですよね、browser 要素ですよね。(笑) https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/browser
Firefox のサイドバー内のブラウザビューとか今でも browser 要素のようだし。
コマンドライン引数受ける件は nsICommandLine なんてのもありましたね: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsICommandLine 使用例サンプルコード:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<script type="application/x-javascript"> <![CDATA[
function init_browser()
{
var cmdLine = window.arguments[0];
cmdLine = cmdLine.QueryInterface(Components.interfaces.nsICommandLine);
document.getElementById('id_browser').src = cmdLine.handleFlagWithParam("test", false));
}
]]></script>
<window id="main" title="Amethyst WebViewer" width="800" height="600"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="init_browser();">
<browser id='id_browser' type="content" src="http://google.com/" flex="1"/>
</window>
]]></script>
そして、昔 minimal なブラウザ実装のサンプルとか公開されたよねっていってたビルド、今頃やっと見つけましたので、これは参考にしましょう。10 年ぐらいぶりに見て懐かしいコードです:
@hATrayflood コマンドライン引数起動ですが、現状のコードだと第一引数が URL であることを要求しているかと思います。
firefox http://urls.jp/gemqa -start-debugger-server 6000
ならいいけど
firefox -start-debugger-serve http://urls.jp/gemqa
firefox -start-debugger-server 6000 http://urls.jp/gemqa
などだとダメになってしまう感じです。上記リンクした nsICommandLine なんかを使って第一引数以外でもハンドルできるようにして頂けないでしょうか。
了解です。対応します。
起動時 URL の件、今は引数なしだと空白ウィンドウで悲しい気持ちになるので何か開きたいですが、引数ちゃんと読むようにするついでに URL 指定が無い場合ホームページ設定を見に行くのが親切じゃないかと思っています (about:config などでも簡単に設定できるし)
今回の修正ついでに以下のようなフローにして頂ければ幸い:
browser.startup.homepage
pref に about:home
(amethyst では動作しないので開きたくない) 以外が設定されているか?
@dynamis url引数の件ですが、start-debugger-server の場合、直後の引数は常にポート番号を意味し、これは数値でなくともそう解釈するような動作になっているようです。例えば以下のような場合
firefox --start-debugger-server https://www.renesas.com/
https://www.renesas.com/ はポート番号として引数が消費されてしまい、ページを開くような動作にはなりませんでした。
firefox --start-debugger-server https://www.renesas.com/ https://www.google.com/
こうすると、googleのページだけ表示されました。
firefox --start-debugger-server 6000 https://www.renesas.com/ https://www.google.com/
この場合は、引数に与えられたurlはそれぞれ別々のタブに表示されました。 ですので、start-debugger-server に絡む動作としては firefox 本来のものと同じとなります。(この挙動自体もおかしいと思いますが)
@dynamis https://github.com/webdino/amethyst/commit/769786e65abd07d69c595d55717797442d38bd10 初期表示urlの変更対応しました。
webrtc, form validation メッセージなどいくつか細かな点が見つかって順次対応しているが、今後も個別の問題は個別 issue で扱うとしてこちらはもう完了済みとしてクローズ
amber.xul のような単純に web content 用の iframe を含むだけの xul window から始めて、iframe URL を固定値ではなくコマンドライン引数から受け取れるようにするなど、最低限 Web ビューとして使い勝手が良くなる程度まで実装したい。