― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - RSSの購読が自動に消えてしまう問題
作成者 メッセージ
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
以前「検証はもうパス」と匙を投げたのですが、Bugzillaで新しくpatchが出ていた(attachment8693232)のが気になって試してみました。言動不一致ですみません。
(試した結果はComment79以降に書いています)

Bugzillaで以前要請されていたのは、patch当てたうえでフィードアカウントを作り、フィードの購読を行ったあと、フィードのフォルダ名を
decomposed char(NFD)
composed char(NFC)
CJK互換文字
に変えてみて、faviconの表示がどうなるか試してみる
Thunderbird再起動後にもう一度上記を行ってみる

という内容でしたが、これらを試している間に少し気になる現象がありましたので、ここで訊いてみます。

patch後の環境では、フィードのフォルダ名がNFC(feeds.rdfの中身がNFC)の状態のときのみThunderbird再起動後にfavicon消失+更新ができなくなります。
ここから以下の手順を踏むとフィードを復活できます。
(あらかじめプロファイルフォルダで/Mail/Feed/以下を開いておきます)
  1. 更新できなくなったフィードのフォルダ(例:スラド)がある
  2. フォルダ名を一度関係ない名前に変える(スラド→あ)
  3. フォルダ名を1.と同じ名前に変える(あ→スラド)。コピペではなくキーボードから直接入力します。
  4. プロファイルフォルダ内のフォルダ名(スラドという名前)をコピー&ペーストする
3.の時点でfaviconが復活します。
ただし、この時点ではまだfeeds.rdfがNFCで書かれているため、これをNFDに変更します。4.でその作業をしています。

それで気になったのは、未patchでも上記の動作は可能かどうか、ということでした。
当方の日本語版はpatch済みのため、未patchの英語版Thunderbird38.3.0で行ってみると出来たので、日本語版でも大丈夫そうに思いますが未検証です。

もしこれが可能ですと、feeds.rdfの直接編集をせずに済むため、フィードの復活が大幅に楽になります。
どなたか未patch状態で試していただけると助かります。
投稿記事 Posted: 2015年12月09日(水) 23:14
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
遅ればせですがattachment 8684700を試してみました。
例によってスラドのRSSです。
前と変わらず、
  • フィードのアカウントを新しく作り直し、Feedの購読を行った後再起動をすると更新不可
  • Feeds.rdfの中身はNFCで書かれる

    コード:
    <fz:destFolder RDF:resource="mailbox://nobody@Feeds-4/%E3%82%B9%E3%83%A9%E3%83%89"/>
  • フィードのフォルダをメッセージフィルタのコピー先にすると、actionValue=にはNFDで書かれる

    コード:
    ersion="9"
    logging="yes"
    name="件名 に次を含む: ト"
    enabled="yes"
    type="17"
    action="Copy to folder"
    actionValue="mailbox://nobody@Feeds-4/%E3%82%B9%E3%83%A9%E3%83%88%E3%82%99"
    condition="AND (subject,contains,ト)"
ローカルフォルダのフィルタについては、別途あちらに書くことにします。
投稿記事 Posted: 2015年11月12日(木) 22:47
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
普通のローカルのメールフォルダーのメッセージフィルターのケースについては、以下のトピックを開きました。
viewtopic.php?f=3&t=15766
以降は、そちらでお願いします。
投稿記事 Posted: 2015年11月10日(火) 18:22
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
WADAさん

メッセージフィルタの再現条件が違っていたので訂正を入れました
ご指摘を受けてもう一度見直してみると、
meeyar さんが書きました:
以下は、メールアドレス(xxx@xxx.yyy.jp)のアカウントに「ブログ」というサブフォルダを作成し、メッセージフィルタでのコピー先を「ブログ」に設定した例です。

と書いた後、無効になったメッセージフィルタは作り直しをしたのですが、フォルダを新しく作り直すのを忘れていようで、「再起動後にメッセージフィルタを作成」の状況になっていたと思われます。
なので、patch済の環境でも「フォルダ作成後、再起動前にメッセージフィルタを作った場合はNFCで記述され、再起動後に再現する」の理解で良いと思います。
検証が甘く失礼しました。
投稿記事 Posted: 2015年11月10日(火) 07:40
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
WADA さんが書きました:
Mac OS X上のTb 38で、"スラド"のようなメッセージフォルダーを作ったすぐ後に、再起動を挟まず、"スラド"をメッセージフィルターのコピー先・移動先のフォルダーに指定したり、検索フォルダーの検索対象のフォルダーに指定したりすると、
(中略)
再起動に、フィルタールールに指定されているmailbox URIのフォルダーが見つからず、
フィルタールールが無効化されたり、検索フォルダーがなくなる可能性があります(最後の検索対象フォルダーが無くなると、検索フォルダーが消される)。
Mac OS Xで、フォルダー名にウムラウトなどがある文字が使われているときのバグ報告の一部は、こういった問題かもしれません。
KTBN さんが書きました:
試行しました。
すぐ再起動してもフィルターに引っかかるメールはないので、メッセージフィルタウィンドウ内で「今すぐ実行」を押した結果です。
警告:「スラドフォルダが見つからなかったので、このフォルダに関連付けられたフィルタは無効になります。フォルダが存在しており、フィルタが有効な対象フォルダを指している事を確認してください。」
予想どおりだと思います。
meeyar さんが書きました:
こちらも見てみました。
全く杞憂ではなく、フィードアカウントの場合でも、メールアカウントの場合でも再現します。

以下は、メールアドレス(xxx@xxx.yyy.jp)のアカウントに「ブログ」というサブフォルダを作成し、メッセージフィルタでのコピー先を「ブログ」に設定した例です。
msgFilterRules.datのactionValueは、
コード:
mailbox://xxx%xxx.yyy.jp@xxx.yyy.jp/%E3%83%96%E3%83%AD%E3%82%B0
Mailbox URIはNFCなので、再起動後にはフィルタが機能しなくなります。
KTBNさん、meeyarさん、早速の検証、ありがとうございます。

やっぱり、こっちも、ビンゴ、かぁ...
nImsgFolder.URIを直接使っていて、Mac OS Xだと、feeds.rdfだけでなく、msgFilterRules.datとvirtualFolders.datでも、ある時にはNFC(composed form)が書かれ、ある時にはNFD(decomposed form)が書かれる、とくれば、
Mac OS Xで再起動したらフィルターが軒並み無効化されたとか検索フォルダーが消えたとか検索対象からはずされた、といった現象の原因は、もう、「これっきゃない」。

meeyar さんが書きました:
ただし、attachment 8683313
引用:
this.server.rootMsgFolder.QueryInterface(Ci.nsIMsgLocalMailFolder).createLocalSubfolder(this.folderName);
⇒ this.server.rootMsgFolder.createSubfolder(this.folderName);
を行った後のメールアカウントに対する、メッセージフィルタについて同じことをしてみると、再起動後も問題なく動作しています。
この時のmsgFilterRules.datのactionValueは
コード:
mailbox://xxx%xxx.yyy.jp@xxx.yyy.jp@xxx.yyy.jp/%E3%83%95%E3%82%99%E3%83%AD%E3%82%AF%E3%82%99"
であり、NFDの記述ですね。
これは、ちょっと解せない。
actionValueのmailbox URIがフィードのフォルダーならば、 これは、そのパッチで行っている、フィードにおいて、this.folder=...create...()⇒...create...()と、結果のオブジェクトへの参照を行っていないため、ということで説明がつくが、
普通のローカルのメールフォルダーに関しては一切の変更は無いから、普通のローカルのメールフォルダーに関してはパッチによる違いはあってはならないはず。
もし、普通のローカルのメールフォルダーならば、
(1) 新規にフォルダーを作成、再起動を挟まず、直ぐにメッセージフィルターのactionValueに設定(NFC)⇒再起動後に、フィルターでの問題が起こる、
(2) 新規にフォルダーを作成し、再起動を行い、メッセージフィルターのactionValueに設定(NFD)⇒再起動後に、フィルターでの問題は起こらない、
くらいしか考えられない。
普通のローカルのメールフォルダーだと、(1)/(2)の中間の、
(3) 新規にフォルダーを作成し、再起動を行う前ではあるが、(3-X) 何らかの事象が発生し、その後にメッセージフィルターのactionValueに設定=>NFDが書かれる⇒再起動後に、フィルターでの問題は起こらない、
(4) 新規にフォルダーを作成し、再起動を行う前にメッセージフィルターのactionValueに設定=>NFCが書かれる⇒(4-X) 何らかの事象が発生し、それがNFC⇒NFDへのリネームと同等と判断される⇒メッセージフィルターのactionValueがNFDに更新される⇒再起動後に、フィルターでの問題は起こらない、
あたりが起こる可能性はあるけれど。

(オフトピック)
KTBN さんが書きました:
画像がペーストされてないかもしれないので、(略)

折角、まともなdata URIの[ img ]data:image/png;base64,...[ /img ] で書いても、
プレビューで、[ IMG ]http : //forums.mozillazine.jp/data:image/png;base64,...[ /IMG ] に書き換えちゃうから、
プレビューした後にポストすると、折角添付したイメージが表示されない。
ポストする直前に、「Swich BBCode/HTML View」で、「BBCode」モード(全てのBBCodeを手入力)に切り替え、
[ IMG ]http : //forums.mozillazine.jp/data:...[ /IMG ] を [ img ]data:image/png;base64,...[ /img ] に戻し、プレビューせずにポスト、
あるいは、ポスト後に、「編集」、「BBCode」モード、で、ちゃんとしたdata URIの[ img ]data:image/png;base64,...[ /img ] に書き換えて、プレビューせずにポスト、
で、イメージを表示させられるはずです。
投稿記事 Posted: 2015年11月09日(月) 19:19
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
meeyar さんが書きました:
お願い文を読んだ時点では、未patchかpatch済のどちらで行えばいいのか判断できなかったのでpatch済でやってしまいました。
未patchとpatch済の両方が必要だったから、全く問題なし。どっちが先でも、足りない方を後でおねがいすりゃぁいい(^^)
未patchの方は、Mac OS X上のTb 38で、ローカルのメッセージフォルダーでの問題が起こるかどうか、の判断に必要で、
patch済の方だと、そのパッチの手法が、問題を回避できる手法の一つである、と、判断できます。

meeyar さんが書きました:
WADA さんが書きました:
バグにも書いたんですが、
this.server.rootMsgFolder.QueryInterface(Ci.nsIMsgLocalMailFolder).createLocalSubfolder(this.folderName);
⇒ this.server.rootMsgFolder.createSubfolder(this.folderName);
に書き換えると、どうなりますか?
createLocalSubfolderはnsIMsgFolderオブジェクトを返すので、ファイルを作った後にグローバルオブジェクト内にオブジェクトを作りますが、
createSubfolderはnsIMsgFolderオブジェクトを返さないので、ファイルを作った後にグローバルオブジェクト内にオブジェクトを作らない、といった違いがあるはずです。
これを行ってみました。
書き換えの前と変わらないような印象。
createLocalSubfolderでもcreateSubfolderでも、直後に得られるnsImsgFolder.URIには、NFCの形式のデータがセットされているようですね。
これは、ローカルのメッセージフォルダーのメッセージフィルターや検索フォルダーのテスト結果と合致します。
メッセージフィルターなどの他のタスクからのフォルダーへのアクセスでは、フィードに対するパッチの後は、フィードがファイルを作った時に内部的に作られたnsImsgFolderオブジェクトを参照しないことによって、再起動後と同様に、nsImsgFolder.URIにNFDの形式のデータがセットされているオブジェクトが返されるようです。

alta88は、Mac OS Xでの実際のテストを自分ではできなくても、そのあたりは理解しているようで、新バージョンの 8684700 では、feeds.rdfのアクセスキーとしては、常にNFC(composed form)に変換したnsImsgFolder.URIのデータを使う、と言う方針に見えます。
meeyarさんのテスト結果をあのバグでalta88に伝える、というようなことはしていませんから、誰かMac OS Xを使える人に簡単なテストを依頼するとかしているのかもしれませんね。

meeyar さんが書きました:
プログラミングのスキル皆無なので、コードの詳細な内容は正直読めないのですが、(略)
その点は、alta88がプロフェッショナルだから、安心。
そして、今回のバグのメッセンジャーボーイをしながら、自分のテスト用に作ったアドオンで、ローカルのメールフォルダーに好きなようにTrashだのDraftsだのArchiveだのの属性をセットしてアイコンも変えて遊んでいる、私の担当分野。
「Trash」よりも先に見つかるフォルダーに「Trash」の属性を付けると、メールの削除もゴミ箱を空にするも、そっちを使うので、Thunderbirdに意地悪をして遊べる(^^)
(メールの削除・ゴミ箱を空にする、の現在の仕様がそうなっている、というだけなんですけどね)

meeyar さんが書きました:
確認作業が滞って申し訳ありません。
そんなことは無いですよ。
alta88は、現象・原因については良くわかってくれていて、これはまだ最終版じゃないから、パッチの細かいことを気にするな、とかいいながら、いろんなところでの修正案を、パッチという形で提示してくれていて、既に、新バージョンの 8684700 がでています。
ドイツとかフランスとかスペインとかで、ダイアクリティカル・マーク(Diacritical Mark = 補助記号)、
 アキュート ( ́ ) 上ドット ( ˙ ) 上フック ( ̉ ) 上リング ( ̊ ) オゴネク ( ˛ ) キャロン ( ̌ )
  グレーブ ( ̀ ) サーカムフレックス ( ̂ ) 下コンマ ( ̦ ) 下ドット ( ̣ ) ストローク ( / )
 セディラ (̧) ダイエレシス ( ̈ ) ダブルアキュート ( ̋ ) チルド ( ̃ )
 ブリーブ ( ̆ ) ホーン ( ̛ ) マクロン ( ̄ )
を多用したフィードをたくさん作ってくれれば、ヨーロッパの人もパッチのテストに参加してくれるだろうけど、
今は、meeyarさんだけが頼りで、KTBNさんが、omni.jaを解凍してソースをエディットしてomni.jaに圧縮、の裏技を習得してくれることを望むのみ(^^)

問題自体は、細かなところを除いて、既にかなり良くわかってきていて、デベロッパーも良くわかっていて、後は最も良い変更を見つけ出すだけ、という段階ですから、あわてることはない。
alta88がパッチを提示してきたら、ちょこっとテストして、ちゃんと直っていないから却下、と宣告するだけでいい(^^)

フィードの問題は、パッチはまだ確定してはいなくても、既に非常に簡単な回復手順が提示されていて、影響を受けるユーザーの数も、現時点では圧倒的に限られています。
むしろ、影響を受けるユーザーの数がフィードに比べると遙かに多い、ローカルのメールフォルダーのメッセージフィルター・検索フォルダー問題の方が重要。
投稿記事 Posted: 2015年11月09日(月) 16:54
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
WADA さんが書きました:
フォルダーペインでの普通のメッセージフォルダーの作成などでも、NewFolder=ParentFolder.createLocalSubfolder(NFCのフォルダー名);が使われているので、
Mac OS X上のTb 38で、"スラド"のようなメッセージフォルダーを作ったすぐ後に、再起動を挟まず、"スラド"をメッセージフィルターのコピー先・移動先のフォルダーに指定したり、検索フォルダーの検索対象のフォルダーに指定したりすると、
(中略)
フォルダーが見つからず、
フィルタールールが無効化されたり、検索フォルダーがなくなる可能性があります(最後の検索対象フォルダーが無くなると、検索フォルダーが消される)。
Mac OS Xで、フォルダー名にウムラウトなどがある文字が使われているときのバグ報告の一部は、こういった問題かもしれません。

こちらも見てみました。
全く杞憂ではなく、フィードアカウントの場合でも、メールアカウントの場合でも再現します。
以下は、メールアドレス(xxx@xxx.yyy.jp)のアカウントに「ブログ」というサブフォルダを作成し、メッセージフィルタでのコピー先を「ブログ」に設定した例です。msgFilterRules.datの中身は、
コード:
name="件名 に次を含む: 例"
enabled="no"
type="17"
action="Copy to folder"
actionValue="mailbox://xxx%xxx.yyy.jp@xxx.yyy.jp/%E3%83%96%E3%83%AD%E3%82%B0"
condition="AND (subject,contains,例)"


Mailbox URIはNFCなので、再起動後にはフィルタが機能しなくなります。
KTBNさんがご指摘のメッセージはおそらく添付画像のものと思われます。

ただし、attachment 8683313に
引用:
this.server.rootMsgFolder.QueryInterface(Ci.nsIMsgLocalMailFolder).createLocalSubfolder(this.folderName);
⇒ this.server.rootMsgFolder.createSubfolder(this.folderName);

を行った後のメールアカウントに対する、メッセージフィルタについて同じことをしてみると、再起動後も問題なく動作しています。

(訂正)実施条件が違ってたので訂正します。
  • 新規にサブフォルダを作る
  • メッセージフィルタを作成する
の間に再起動を挟んでいたようです。この場合は
コード:
name="件名 に次を含む: 例"
enabled="yes"
type="17"
action="Copy to folder"
actionValue="mailbox://xxx%xxx.yyy.jp@xxx.yyy.jp@xxx.yyy.jp/%E3%83%95%E3%82%99%E3%83%AD%E3%82%AF%E3%82%99"
condition="AND (subject,contains,例)"

であり、NFDの記述になります。
すみません。


添付ファイル:
error.png
error.png [ 38.83 KiB | 表示数: 6169 回 ]
投稿記事 Posted: 2015年11月09日(月) 14:54
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
確認作業が滞って申し訳ありません。

お願い文を読んだ時点では、未patchかpatch済のどちらで行えばいいのか判断できなかったのでpatch済でやってしまいました。
KTBNさんに未パッチ状態のを提示していただき助かりました。ありがとうございます。

プログラミングのスキル皆無なので、コードの詳細な内容は正直読めないのですが、
WADA さんが書きました:
バグにも書いたんですが、
this.server.rootMsgFolder.QueryInterface(Ci.nsIMsgLocalMailFolder).createLocalSubfolder(this.folderName);
⇒ this.server.rootMsgFolder.createSubfolder(this.folderName);
に書き換えると、どうなりますか?
createLocalSubfolderはnsIMsgFolderオブジェクトを返すので、ファイルを作った後にグローバルオブジェクト内にオブジェクトを作りますが、
createSubfolderはnsIMsgFolderオブジェクトを返さないので、ファイルを作った後にグローバルオブジェクト内にオブジェクトを作らない、といった違いがあるはずです。

これを行ってみました。
書き換えの前と変わらないような印象。
※一度、「書き換えた後のFeeds.jsをThunderbird.appないのomni.jaに反映していなかった(-o-;)のが判明したのでやり直します。すみません。」と書いていたのですが、やり直してもやっぱり前のと変わらない印象なので横線を消しました。

新しくフィードのアカウントを追加した後、MozilaJapanのブログ
http://www.mozilla.jp/blog/feed/
で行っています。

msgFilterRules.datの中身。
コード:
version="9"
logging="no"
name="件名 に次を含む: Firefox"
enabled="no"
type="17"
action="Copy to folder"
actionValue="mailbox://nobody@Feeds-3/Mozilla%20Japan%20%E3%83%95%E3%82%99%E3%83%AD%E3%82%AF%E3%82%99"
condition="AND (subject,contains,Firefox)"

feeds.rdfでは
コード:
<fz:destFolder RDF:resource="mailbox://nobody@Feeds-3/Mozilla%20Japan%20%E3%83%96%E3%83%AD%E3%82%B0"/>

並べてみると、
Mozilla%20Japan%20%E3%83%95%E3%82%99%E3%83%AD%E3%82%AF%E3%82%99
Mozilla%20Japan%20%E3%83%96%E3%83%AD%E3%82%B0
となり、やはりmsgFilterRules.datではNFD、feeds.rdfではNFCに見えます。

Bugzillaのattachment 8684700はまだ試してません・・・
投稿記事 Posted: 2015年11月09日(月) 13:51
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
試行しました。
すぐ再起動してもフィルターに引っかかるメールはないので、メッセージフィルタウィンドウ内で「今すぐ実行」を押した結果です。

画像がペーストされてないかもしれないので、メッセージボックスの内容を
警告:「スラドフォルダが見つからなかったので、このフォルダに関連付けられたフィルタは無効になります。フォルダが存在しており、フィルタが有効な対象フォルダを指している事を確認してください。」

予想どおりだと思います。
投稿記事 Posted: 2015年11月09日(月) 08:47
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
杞憂かもしれないですが。

フォルダーペインでの普通のメッセージフォルダーの作成などでも、NewFolder=ParentFolder.createLocalSubfolder(NFCのフォルダー名);が使われているので、
Mac OS X上のTb 38で、"スラド"のようなメッセージフォルダーを作ったすぐ後に、再起動を挟まず、"スラド"をメッセージフィルターのコピー先・移動先のフォルダーに指定したり、検索フォルダーの検索対象のフォルダーに指定したりすると、
msgFilterRules.datやvirtualFolders.datの中にNFC(composed form)のmaibox URIが書かれ、
再起動すると、nsImsgFolderでは、HFS+上のNFD(decomposed form)のファイル名から作られたnsImsgFolder.URIがセットされているので、フォルダーが見つからず、
フィルタールールが無効化されたり、検索フォルダーがなくなる可能性があります(最後の検索対象フォルダーが無くなると、検索フォルダーが消される)。
Mac OS Xで、フォルダー名にウムラウトなどがある文字が使われているときのバグ報告の一部は、こういった問題かもしれません。

KTBNさん、meeyarさん、余裕がある時に、確認しておいてください。
投稿記事 Posted: 2015年11月08日(日) 16:50
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
meeyar さんが書きました:
Bug121904のattachment 8683313適用済み+新規プロファイルです。

feeds.rdfのdestFolder。
コード:
mailbox://nobody@Feeds/%E3%82%B9%E3%83%A9%E3%83%89
なので、NFC(composed form)で書かれています。

msgFilterRules.datのactionValue。
コード:
mailbox://nobody@Feeds/%E3%82%B9%E3%83%A9%E3%83%88%E3%82%99
Mailbox URIはNFD(Decomposed Form)の記載ですね。

またまた的確なデータの提供、ありがとうございます、

パッチによって、this.folder=...createLocalSubfolder("スラド") ⇒ ...createLocalSubfolder("スラド") に変えてあるので、createLocalSubfolderで作られた、Tbのグローバルなオブジェクト内の”スラド"というフォルダーのnsIMsgFolderオブジェクトへの参照は行われなくて、
それで、メッセージフィルターがフォルダーを見に行った時には、ある程度時間が経っているので、参照されていないそのオブジェクトは消えていて、nsIMsgFolder.URIは、ファイルシステムのファイル名からセットされていた、という感じですね。
しかし、フィードがfeeds.rdfにセットするために、createLocalSubfolder("スラド") の直後にthis.folder = this.server.rootMsgFolder.getChildNamed("スラド");を行った時点では、nsIMsgFolder.URIがNFC(composed form)のnsIMsgFolderオブジェクトから作られたオブジェクトが渡された、という感じがします。

バグにも書いたんですが、
this.server.rootMsgFolder.QueryInterface(Ci.nsIMsgLocalMailFolder).createLocalSubfolder(this.folderName);
⇒ this.server.rootMsgFolder.createSubfolder(this.folderName);
に書き換えると、どうなりますか?
createLocalSubfolderはnsIMsgFolderオブジェクトを返すので、ファイルを作った後にグローバルオブジェクト内にオブジェクトを作りますが、
createSubfolderはnsIMsgFolderオブジェクトを返さないので、ファイルを作った後にグローバルオブジェクト内にオブジェクトを作らない、といった違いがあるはずです。
投稿記事 Posted: 2015年11月08日(日) 16:19
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
KTBN さんが書きました:
私の環境はpatchは導入していませんがいいのでしょうか
「アップル - ホットニュース」で行った結果です

やっと、バグを開いてくれたKTBN さんが、feeds.rdfの中身を見てくれた...(^^)
パッチがあたっていない、素のThunderbrd 38での結果が重要。
で、長くなって見づらいから、「スラド」って言ったのにぃ...

KTBN さんが書きました:
actionValue="mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB%20-%20%E3%83%9B%E3%83%83%E3%83%88%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9"
比較用にfeeds.rdf
<fz:destFolder RDF:resource="mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB%20-%20%E3%83%9B%E3%83%83%E3%83%88%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9"/>

「%20-%20%」の前が「アップル」に対応するから、そこだけを抜き出して並べると、
feeds.rdfのfz:feedの下のfz:destFolder RDF:resource
コード:
mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB
msgFilterRules.datのactionValue
コード:
mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB

%E3%82%A2 = 「ア」のutf-8の%エスケープ
%E3%83%83 = 「ッ」のutf-8の%エスケープ
%E3%83%97 = 「プ」のNFC(composed form)のutf-8の%エスケープ
%E3%83%AB = 「ル」のutf-8の%エスケープ
再起動すると、HFS+に書かれているNFD(decomposed form)のファイル名を元にセットされたmsgFolder.URIで検索するので、NFC(composed form)で書かれているfeeds.rdfの中のエントリーを見つけられない、というのが、このトピックの問題なんですが、
msgFolder=this.server.rootMsgFolder.QueryInterface(Ci.nsIMsgLocalMailFolder).createLocalSubfolder(this.folderName);
のようにして、作ったフィードのフォルダーをオープンした状態にするので、
メッセージフィルターを作る時にも、NFC(composed form)のmsgFolder.URIが使われて、
そのために、再起動するとメッセージフィルターが動かなくなる、ということも起こりそうですね。
通常のメールフォルダーのメッセージフィルターの場合にどうなるかは、フィードのフォルダーのデータだけでは、不明ですけど。
フィードのfeeds.rdfのfz:feedのエントリーの検索は、mailbox URIの形式で表した「文字列」である「検索のためのキー」での検索ですが、
メッセージフィルターなどの「メッセージフォルダー」のアクセスでは、「mailbox URI」という、「フォルダーの実体」をある文字列で表現した「メッセージフォルダーへのポインター」を使っての「メッセージフォルダー」のアクセス、という違いがあります。

パッチをあてたmeeyar さんのデータだと、この「再起動後にメッセージフィルターでも問題が起こるはず」ということが見えなくなってしまうので、パッチがあたっていない、現在の素のThunderbrd 38での結果が重要なんです。
meeyar さんのパッチをあてた後のデータを見ると、
パッチをあてた後は、作ったフィードのフォルダーをオープンした状態にはしないので、
メッセージフィルターにおいて、msgFilterRules.datにはNFD(decomposed form)のmailbox URIが書かれるから、
「msgFilterRules.datにNFC(composed form)のmailbox URIが書かれているために、再起動後には、NFD(decomposed form)のmailbox URIでアクセスするのでメッセージフィルターでも再起動後に問題が起こるはず」という方は解消するけれど、
新規に購読した時にフォルダーを作ると、パッチをあてた後でもfeeds.rdfにはNFC(composed form)の方が書かれて、再起動後にfz:feedのエントリーが見つからない、という問題の方は、まだ解決しないようですが。
投稿記事 Posted: 2015年11月08日(日) 02:37
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
私の環境はpatchは導入していませんがいいのでしょうか

長い方で申し訳ないんですが、「アップル - ホットニュース」で行った結果です
msgFilterRules.dat
actionValue="mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB%20-%20%E3%83%9B%E3%83%83%E3%83%88%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9"

比較用に
feeds.rdf
<fz:destFolder RDF:resource="mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB%20-%20%E3%83%9B%E3%83%83%E3%83%88%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9"/>

ということで良いのでしょうか。違っても文句言わないでくださいね
投稿記事 Posted: 2015年11月07日(土) 21:53
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
KTBN さんが書きました:
ルールとしてはおかしな事ですが、移動元は新しく購読した「A」だけれど、移動先も同じ「A」でルールを作って
提示はmsgFilterRules.datの中身ということで良いのでしょうか?
他の情報も必要でしたら言ってください。

はい、その理解で良いかと思います。
WADAさんより「ルール自体は、「無効」にしておく。」とある通り、フィルターを用いることが目的ではないのです。
フィルターの設定を行った時にMailbox URIの文字列がどうなっているか、というのが知りたいことなので、「AのRSSについて、フィルターによる移動先もAにする」という書き方でも良いと思います。自分もそのようにしました。

前便の添付画像でのフォルダ名は、RSSのタイトルがそのまま自動的に入るはずですから、フィルターの設定ファイル(msgFilterRules.dat)にも問題となっている部分の文字列が反映されるはず、と解釈しています。
投稿記事 Posted: 2015年11月07日(土) 21:36
  記事の件名:  Re: RSSの購読が自動に消えてしまう問題  引用付きで返信する
ルールとしてはおかしな事ですが、移動元は新しく購読した「A」だけれど、移動先も同じ「A」でルールを作って
提示はmsgFilterRules.datの中身ということで良いのでしょうか?
他の情報も必要でしたら言ってください。
投稿記事 Posted: 2015年11月07日(土) 21:19

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean