過去ログ表示


過去ログ 268 を表示

トピック内全 9 記事中の 1 〜 9 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0]

(環境: WinXP SP2/Firefox2.0)

Tb2.0.0.12 にメッセージペイン(でいいのかな?)のコンテキストメニューに階層化された(ポップアップする)メニューを追加するアドオンをインストールし、メール作成(返信・転送)ウィンドウのメッセージペイン上でコンテキストメニューを表示させると、エラーコンソールにエラーが表示されます。再現環境、方法等は以下の通りです。

MUA:
 Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080213 Thunderbird/2.0.0.12
現象が起こることを確認したアドオン:
 Signature Switch 1.6、ConQuery(mod-2) 1.7.3

1.メール作成(返信・転送)ウィンドウのメッセージペインでコンテキストメニューを表示させる
2.マウスカーソルをアドオンのメニューの位置まで移動させる
3.エラーコンソールに以下のエラーが表示される
エラー: uncaught exception:
-----
[Exception... "Component returned failure code: 0x8000ffff
(NS_ERROR_UNEXPECTED) [nsIDOMXULDocument_MOZILLA_1_8_BRANCH.popupRangeParent]"
nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame
:: chrome://messenger/content/messengercompose/MsgComposeCommands.js
:: openEditorContextMenu :: line 616" data: no]
-----

Tb の jar ファイルをばらして MsgComposeCommands.js を覗いてみたところ、スペルチェッカー関係?の openEditorContextMenu() 内 InlineSpellCheckerUI.initFromEvent(document.popupRangeParent, document.popupRangeOffset); の呼び出しで document.popupRangeParent のデータ(オブジェクト?)がないのでエラーになっているようです(エラーメッセージそのままの説明ですね)。

このエラーはアドオン側で何か対処すべきことなのでしょうか?それとも Tb側の問題でしょうか?

一応、一通りググってみたり、Bugzilla(jp)で検索してみたりしたのですが、それらしい情報は見つからなかったです。各種動作に問題はなく、事実上無害のようですが(以前、エラーコンソールにメッセージが溜まり過ぎると動作が重くなるという問題を聞いた気もしますが)…
また、Tb1.5系のときはこのようなエラーは起こっていなかったと記憶しています。

(環境: WinXP SP2/Firefox2.0)

色々ググっていたら以下のようなものを見つけました。
http://groups.google.com/group/mozilla.dev.apps.thunderbird/browse_thread/thread/2b5b663b35ead0a4/524be5aad4f29f20?#524be5aad4f29f20

どういう状況でこのエラーに遭遇したのかが記述されていませんが、去年の夏頃に newsgroup の mozilla.dev.apps.thunderbird に投稿されています。投稿者は 「bugzilla のアカウントを持っているから、(何か掴んだら?バグだと確信したら?)報告するかも」と締めくくっています。が、bugzilla で改めて探しましたがやはりこの件についてのレポートはないようです。

引き続き情報を募集中です。

#trunk 使いじゃないと、bugzilla(-jp)に投稿できない… んですよね?

(環境: Mac/Minefield)

> #trunk 使いじゃないと、bugzilla(-jp)に投稿できない… んですよね?

アドオン側だけでなく Thunderbird 側に問題があること、
その問題が trunk にあるかどうか、は確認する必要はあります。
が、trunk を常用しないといけないとかそういった縛りはありません。

(環境: WinXP SP2/Firefox2.0)

しばらく某拡張の他の問題解決を行っていたので、この問題は放置プレイ状態だったのですが、ようやく進展がありました。
詳細は、私のブログ記事 http://mozilla-ext-ja.way-nifty.com/blog/2008/05/conquery_173_1a7a.html を参照していただきたいのですが、概要を記すと以下の通りです。

確認環境:
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5
Thunderbird version 2.0.0.14 (20080421)
Thunderbird version 2.0.0.15pre (20080512)(lastest-trunk)

単純にメニュー項目/ポップアップだけ(XULのみ)を追加する拡張を作って試したところ、Tb 2 でエラーが発生することを確認。Fx 2/3 beta 5 ではこのエラーは起こらない。つまり、Tb 2 のスペルチェッカ側のバグと推測します。

エラー確認のための拡張 http://mozilla-ext-ja.way-nifty.com/blog/files/SimplePopup.xpi

補足、ご意見等ありましたらよろしくお願いします。

(環境: WinXP SP2/Firefox2.0)

がびん…
branch と trunk の区別がきちんと付いていなかったです。
Tb 3.0a2pre (2008051303)でも試してみました。エラーコンソールにエラーこそ発生しませんが、Tb 2.0.0.14 (20080421)、Tb 2.0.0.15pre (20080512)/(20080513) と同様に、スペルチェッカによる単語の候補がコンテキストメニューから消えます。

(環境: Mac/Minefield)

> つまり、Tb 2 のスペルチェッカ側のバグと推測します。

確かに Tb との相性は悪いですが、だからといって Tb のバグとするのは酷だと思います。

> エラー確認のための拡張 http://mozilla-ext-ja.way-nifty.com/blog/files/SimplePopup.xpi

これだけコンパクトになっていると追いやすいですね。

ポップアップ(コンテキストメニューやその子メニューでも)が開こうとするときに popupshowing イベントが発生するのですが、もともとそこには子メニューなんてありませんので、Thunderbird としては子メニューからのイベントなんてものを想定していません。
そこにイベントが発生するようなものを追加したのはアドオンなんですから、そのイベントで余計なことが起こらないように対処するのはアドオン側でするしかないと思います。
# どのメニューも、子メニューを追加可能なようにあらかじめ作っておかないといけない、なんて規則はありませんから。

simplepopup-mail.xul に、以下のように追加する(あるいは、別ファイルにして読み込む)と良いと思います。
<script type="application/x-javascript">
<![CDATA[
window.addEventListener("load", function() {
var p = document.getElementById("msgComposeContext");
if (p) {
var a = p.getAttribute("onpopupshowing");
if (a) {
p.setAttribute("onpopupshowing", "if (event.target != this) return;" + a
);
}
}
}, false);
]]>
</script>

(環境: WinXP SP2/Firefox2.0/Thunderbird2.0)

> 確かに Tb との相性は悪いですが、だからといって Tb のバグとするのは酷だと
> 思います。
(中略)
> Thunderbird としては子メニューからのイベントなんてものを想定していません。
> そこにイベントが発生するようなものを追加したのはアドオンなんですから、

あ さんの意見は Tb (のスペルチェッカ関連のコード)に寛容すぎると思います。
逆に言えば、XUL のオーバーレイによって追加されたメニューアイテムからの
イベントを受ける形で、受ける位置に追加したのは Tb のスペルチェッカ側です。
他のコードによって発生するイベントに関してまったくケアしないというのは
手落ちと考えます。

(中略)
> # どのメニューも、子メニューを追加可能なようにあらかじめ作っておかないと
> いけない、なんて規則はありませんから。

#(コメント)行ですし、あ さんに文句を言っても始まりませんが、あえて突っ込みを
入れると、丸々ひっくり返すと
(デフォルトのルートの)親のメニューに遠慮しながら XUL のオーバーレイをする
というのも変じゃないですか?ならば XUL オーバーレイのフレームワークとして、
noOutGoingEvent とか noInComingEvent みたいなオプションが欲しいですね。

まぁ、Fx のスペルチェッカのコードのように対応・修正するかどうかは中の人の
胸先三寸ですが。

> simplepopup-mail.xul に、以下のように追加する(あるいは、別ファイルにして
> 読み込む)と良いと思います。

のコードは、暫定的な対応コードとして参考にさせていただきます。
ありがとうございます。

(環境: Mac/Minefield)

> まぁ、Fx のスペルチェッカのコードのように対応・修正するかどうかは中の人の
> 胸先三寸ですが。

オープンソースですから、中の人・外の人のような区別はありません。
決定権を持った人・そうでない人の区別はありますが、大多数の開発者が賛成するような内容であれば、却下されることはまずないと思います。
Thunderbird あるいはプラットフォームの手落ちだと考えるのであれば、本家 Bugzilla でそう主張するなり自分で修正するなりしてはどうでしょうか。

(環境: WinXP SP2/Firefox2.0/Thunderbird2.0)

> Thunderbird あるいはプラットフォームの手落ちだと考えるのであれば、本家 Bugzilla でそう主張するなり自分で修正するなりしてはどうでしょうか。

すでに、本家 Bugzilla には file (と表現するのですよね?)しました。
https://bugzilla.mozilla.org/show_bug.cgi?id=433690
#英語がつたないのは、笑って見逃してやってください…

何か反応があればその旨の主張はもちろんしますが、修正(パッチ)作成まで時間が取れるかどうかは微妙です。多分、同様のコードを Tb のスペルチェッカ関係に仕込むか、.popupRangeParent の参照が正しくなるように何とかすればいいのでしょうが。

ConQuery の方は、お教えいただいたコードを用いた暫定対策版を先ほど公開しました。msgComposeContext のメニューの onpopupshowing に仕掛けているので副作用(?)で、他のポップアップメニューを持つ拡張にも効いてしまって一石二鳥な状態になるのですね。確認用の拡張では、個別作用版も作ってみました。


このトピックの全ページ / [0]

返信不可


- Child Tree -