- levena_evenas
- 1301
- 2
- 0
- 0
お、xulをアドレスバーから読み込んだ際にクエリを指定するとuserChrome.cssを経由しない状態になるな。なんかに使えそうなバグだ
2016-04-29 17:53:32@levena_evenas @-moz-documentでurl()を使ってるとそうなりますね(仕様)。nanoでurl-prefix()を使っておいた方が安全です。developer.mozilla.org/ja/docs/Web/CS…
2016-04-29 17:57:27@piro_or へえ~仕様なんですか。 アドレスバーから入力された文字列がfirefox内部で@-moz-documentを通ってるってことですか?
2016-04-29 18:03:05@levena_evenas @-moz-document url(...) { } の中に書いた指定はURLが完全一致しないと反映されないので、前方一致のurl-prefix()の方が安心という事を言いたかったんですが、どうも前提を上手く共有できてない感ありますね……
2016-04-29 18:08:25@piro_or 申し訳ないです。。。xul始めたばっかりなので。。。
2016-04-29 18:13:50@levena_evenas いえいえ、色々前提知識が必要なのに説明を端折っちゃってたので……
2016-04-29 18:16:09@levena_evenas Firefox上では「chrome権限のあるウィンドウ」も「インラインフレーム」(Firefox上のコンテンツ領域もiframeの一種です)も「ドキュメントを読み込むフレーム」という点では差が無くて、
2016-04-29 18:16:21@levena_evenas そこに読み込まれたドキュメントに対して、userChrome.cssやuserContent.cssは一律で反映されるユーザースタイルシートなんです。
2016-04-29 18:17:24@levena_evenas でもすべてのドキュメントに同じ指定が反映されても困るので、指定ごとに@-moz-documentで反映対象のドキュメントを限定するというのが、userChrome.cssやuserContent.cssを使うときのセオリーになっています。
2016-04-29 18:18:13@levena_evenas @-moz-documentのマッチング指定は先に紹介したページに記載があるようにいくつかの種類があり、用途・状況に合わせて使い分ける必要があります。userChrome.cssの場合は普通はurl()でいいんですが、
2016-04-29 18:19:47@levena_evenas Cookieやポップアップブロックの例外を設定する画面とかはURLの末尾にクエリ文字列が付くことがありますし、そうでなくても何らかのアドオンがクエリ文字列付きでbrowser.xul等を読み込ませる可能性は無くはないので、
2016-04-29 18:21:17@levena_evenas そういった場合でも指定が反映されるように、url-prefix()を使っておくのが安全だろう、というのが自分の持っている知見なのでした。
2016-04-29 18:22:16@levena_evenas ちなみになんですが、近い将来予定されているXUL廃止というのは多分、XULという独自のマークアップ言語ではなくHTMLという一般的な言語を使うようにしていくという事になるのではないかと思ってます。
2016-04-29 18:24:48@piro_or なるほど! 超わかりやすかったです。ありがとうございます。 後で見返すためにtogetterにまとめたいのですが許可もらえますか?
2016-04-29 18:26:19@levena_evenas ブラウザウィンドウの実装がXULからHTMLに変わるけど、「chrome://browser/content/browser.html」のようなURLでアクセスされる「特権付きドキュメントだ」という大枠は変わらないんじゃないかなあと思ってます。
2016-04-29 18:27:04