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



All times are UTC + 9 hours

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

トピックのレビュー - [XULRunnerアプリケーション]初期化処理のタイミングが分からない
作成者 メッセージ
  記事の件名:  ちゃんと動くことを確認してきました。  引用付きで返信する
 あさん、どうも確認のお手間を取らせてすみませんでした。
 つい先ほど、テストを頼んだ友人のところに行って、WindowsXP マシンを借りて正常動作していることを確認しました。友人は郵便番号を入力せずに検索ボタンを押していたようです。
 人と人とのインターフェースの問題でした。
 お騒がせしてすいませんでした。

# 参考までに nightly を公開している URL は以下のところです。
# http://www.hcn.zaq.ne.jp/cahpa908/
投稿記事 Posted: 2008年10月04日(土) 15:24
  記事の件名:  Re: [XULRunnerアプリケーション]初期化処理のタイミングが分からない  引用付きで返信する
あさん さんが書きました:
mitsugu さんが書きました:
【現象】
 以下のコードが Ubuntu 8.04.1 のアプリケーション起動時は動作し、WindowsXP SP3、Windows2000 SP? では動作しない。
Windows で Firefox で試してみましたが、そのコードは動作しました。
原因はそのコードの他のどこかにあるのでは?

 一応上記コードを呼び出している XUL ファイルを転記します。
コード:
<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<?xml-stylesheet type="text/css" href="chrome://addressbook/skin/addressbook.css"?>

<!DOCTYPE window SYSTEM "chrome://addressbook/locale/addressbook.dtd">
<window windowtype="xulmine" id='mainmenu' title='&addressbook_title;' xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul' onload='init();'>
   <script type="application/x-javascript" src="chrome://addressbook/content/addressbook.js"/>

   <vbox id="main_box">

      <description id='main_title' value='&addressbook_title;'/>

      <spacer flex="1"/>
      <button id='ad_input' tabindex='1' label='&edit_address;' tooltiptext='&edit_address_tip;' onclick="window.open('chrome://addressbook/content/edit_address.xul','','chrome,centerscreen,modal')"/>

      <spacer flex="1"/>
      <button id='ad_disp' tabindex='2' label='&disp_address;' tooltiptext='&disp_address_tip;'/>

      <spacer flex="1"/>
      <button id='ad_print' tabindex='3' label='&print_address;' tooltiptext='&print_address_tip;'/>

      <spacer flex="1"/>

      <button id='ad_delete' tabindex='4' label='&delete_address;' tooltiptext='&delete_address_tip;'/>

      <spacer flex="1"/>

      <hbox>
         <spacer flex="1"/>

         <button id="exit" tabindex='5' label='&exit;' tooltiptext='&exit_tip;' onclick='window.close();'/>

      </hbox>

   </vbox>

</window>


 この window 要素がアプリケーションのメインウィンドウになります。
 それで私が期待している動作は、このアプリケーションを初めて起動したときにプロファイルが作成され、そこに zip.sqlite ファイルが移動することです。
 Ubuntu では期待通りの動作をするのですが、知人の Windows XP、Windows2000 では、プロファイルは作成されるものの、zip.sqlite ファイルが消失するという現象が生じています。

 また、Windows ではプロファイルの作成が終わるより先に moveTo が走ってるんじゃないかと思い、試しに ad_input を id とするボタンを押したときに表示される chrome://addressbook/content/edit_address.xul の onload 時に、上記コードを実行するように変更しても結果は同じで、Ubuntu では zip.sqlite はプロファイルに移動し、Windows ではファイルが消失するという結果になっています。
投稿記事 Posted: 2008年10月03日(金) 07:20
  記事の件名:  Re: [XULRunnerアプリケーション]初期化処理のタイミングが分からない  引用付きで返信する
mitsugu さんが書きました:
【現象】
 以下のコードが Ubuntu 8.04.1 のアプリケーション起動時は動作し、WindowsXP SP3、Windows2000 SP? では動作しない。
Windows で Firefox で試してみましたが、そのコードは動作しました。
原因はそのコードの他のどこかにあるのでは?
投稿記事 Posted: 2008年10月02日(木) 22:20
  記事の件名:  Re: [XULRunnerアプリケーション]初期化処理のタイミングが分からない  引用付きで返信する
【追記】
 WindowsXP と Windows2000 でのテストは、自宅に Windows マシンがないため、友人を電話とチャットでリモートコントロールしてテストしてもらいました。
 それと、Ubuntu 上の wine でテストしたら、当然動きました orz
投稿記事 Posted: 2008年10月02日(木) 10:17
  記事の件名:  [XULRunnerアプリケーション]初期化処理のタイミングが分からない  引用付きで返信する
【現象】
 以下のコードが Ubuntu 8.04.1 のアプリケーション起動時は動作し、WindowsXP SP3、Windows2000 SP? では動作しない。
コード:
function   init()
{
   var src;
   var   dest;

   // get full-path-name of zip database file
   var   file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);
   file.append("zip.sqlite");
   if (!(file.exists()))
   {
      src = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("CurProcD", Components.interfaces.nsIFile);
      src.append("zip.sqlite");
      dest = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);
      src.moveTo(dest,'');
   }
   return;
}



【環境】
 OS:Ubuntu 8.04.1
    WindowsXP SP3
    Windows2000 SP は不明
 プラットフォーム:
    XULRunner 1.9.0.3 ( Linux 版、Windows 版 の xulrunner-sub をアプリケーション名に変更して application.ini のあるディレクトリに移動し、起動 )
    または
    Firefox3.0.3 ( -app オプションにより起動 )


【実行のタイミング】
 アプリケーションのメインウィンドウの onload イベント発生時。


【コードの概要】
 アプリケーションディレクトリの zip.sqlite ファイルを、作成されたプロファイルにコピーする。


# Linux 版と Windows 版では nsIFile の moveTo メソッドの実装がかなり異なるのでしょうか?
投稿記事 Posted: 2008年10月02日(木) 10:01

All times are UTC + 9 hours


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