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



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 6 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2010年12月01日(水) 00:41 
オフライン

登録日時: 2010年6月27日(日) 17:45
記事: 14
ダウンロードの方法「次のフォルダに保存する」と「ファイルごとに保存先を指定する」をトグルするアドオンを作りたいのですがうまくいきません。

about:config に browser.download.useDownloadDir という項目があるので、これを変更すれば良いと思い、user_pref 関数を使ってみたのですが、アドオンの javascript 上では使用できないようです。

config 情報を変更するにはどのようにすればいいのでしょうか?


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2010年12月01日(水) 06:04 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
  1. browser.download.useDownloadDir を書換えることで希望される挙動が実現されるのか
  2. 拡張で既存の項目を書換えることの是非(拡張の機能の実行を終了したタイミングで元の状態に戻せば倫理的にOK?)

ということを考慮しなければならないとは思うのですが、とりあえずはnsIPrefBranch Interfaceを利用すれば可能です。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2010年12月01日(水) 21:08 
オフライン

登録日時: 2005年12月19日(月) 23:05
記事: 105
rk さんが書きました:
config 情報を変更するにはどのようにすればいいのでしょうか?
browser.download.useDownloadDirをトグルする項目をContentAreaContextMenuに追加するuserChrome.js用のスクリプトです。
拡張を作ったことが無いのでこれが参考になるかはわかりませんが……。
コード:
(function() {
  var menuitem = document.createElement("menuitem");
  menuitem.setAttribute("id", "toggleUseDir");
  menuitem.setAttribute("label", "toggleUseDIr");

  menuitem.addEventListener("click", function(aEvent) {
    try {
      var useDir = gBrowser.mPrefs.getBoolPref("browser.download.useDownloadDir");
    } catch(ex) {
      gBrowser.mPrefs.setBoolPref("browser.download.useDownloadDir", false);
    }

    if (useDir) { gBrowser.mPrefs.setBoolPref("browser.download.useDownloadDir", false); }
    else        { gBrowser.mPrefs.setBoolPref("browser.download.useDownloadDir", true); }
  }, false);

  var Popup = document.getElementById("contentAreaContextMenu");

  Popup.insertBefore(menuitem, Popup.firstChild);
})();


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2010年12月03日(金) 08:18 
オフライン

登録日時: 2010年6月27日(日) 17:45
記事: 14
お返事ありがとうございます。 目的の動作をさせることができました。

しかし
mitsugu さんが書きました:
[list=1]
[*]browser.download.useDownloadDir を書換えることで希望される挙動が実現されるのか
[*]拡張で既存の項目を書換えることの是非(拡張の機能の実行を終了したタイミングで元の状態に戻せば倫理的にOK?)

確かにこれは考えなければいけない問題ですね。
僕が実装したかった機能は、一般的にはどのように実装するのでしょうか?


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2010年12月03日(金) 10:01 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
rkさん さんが書きました:
僕が実装したかった機能は、一般的にはどのように実装するのでしょうか?

 正解は存在しないと思いますが「私ならこうする」ということであれば次のようになります。
  1. Firefox の設定情報をトグルする機能を実装する。
  2. リリース・ノート等に設定をトグルすることを明記し、ユーザに示す。
  3. AMO エディタにもその旨伝える。
  4. AMO エディタの判断にまかせる。

 拡張作者としてできるのは 3 までかと思います。場合によっては「AMO エディタを説得する」というのも加えてもいいかもしれません。
 私個人としてはユーザさんのブラウザの設定を、拡張がユーザさんに無断で変更することは、それが一時的なものであるにせよ避けたいと思っています。拡張固有の設定項目を増やす分には問題ないと考えていますが。

 他にいい方法があったり、そこまでしなくてもよいという考えを持っておられる拡張作者さんもいらっしゃるでしょうから、自分も他の拡張作者さんの意見を伺いたいところです。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2010年12月09日(木) 23:48 
オフライン

登録日時: 2010年6月27日(日) 17:45
記事: 14
mitsugu さんが書きました:
拡張がユーザさんに無断で変更することは、それが一時的なものであるにせよ避けたいと思っています。

そうですね。 個人で使うために作っているアドオンですが、公開する場合はそのことを明記します。

お返事くださったみなさん、ありがとうございました!


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 6 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[19人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

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