Visit Mozilla.org

nsISessionStore

出典: MDC

nsISessionStore インタフェースは、ブラウザのセッション、タブやウィンドウと関連付けてデータを保存する手段を拡張機能やコードへ提供します。 Session store API も参照してください。

この API は最上位の browser.xul ウィンドウに対して機能します。詳細については #Note on windows を参照してください。

APIの呼び出しを成功させるためには、ユーザ設定値 browser.sessionstore.enabled は true でなければなりません。 [1] を参照してください。

目次

nsISessionStore browser/components/sessionstore/nsISessionStore.idl で定義されています。これは scriptable非凍結です。 (Mozilla 1.8.1から更新されていません)

継承元: nsISupports

[編集] メソッドの概要

void deleteTabValue(in nsIDOMNode aTab, in AString aKey);
void deleteWindowValue(in nsIDOMWindow aWindow, in AString aKey);
nsIDOMNode duplicateTab(in nsIDOMWindow aWindow, in nsIDOMNode aTab); Firefox 3 の新機能
AString getBrowserState();
unsigned long getClosedTabCount(in nsIDOMWindow aWindow);
AString getClosedTabData(in nsIDOMWindow aWindow);
AString getTabState(in nsIDOMNode aTab); Firefox 3 の新機能
AString getTabValue(in nsIDOMNode aTab, in AString aKey);
AString getWindowState(in nsIDOMWindow aWindow);
AString getWindowValue(in nsIDOMWindow aWindow, in AString aKey);
void init(in nsIDOMWindow aWindow);
void persistTabAttribute(in AString aName);
void setBrowserState(in AString aState);
void setTabState(in nsIDOMNode aTab, in AString aState); Firefox 3 の新機能
void setTabValue(in nsIDOMNode aTab, in AString aKey, in AString aStringValue);
void setWindowState(in nsIDOMWindow aWindow, in AString aState, in boolean aOverwrite);
void setWindowValue(in nsIDOMWindow aWindow, in AString aKey, in AString aStringValue);
void undoCloseTab(in nsIDOMWindow aWindow, in unsigned long aIndex);

[編集] メソッド

[編集] deleteTabValue()

指定されたウィンドウ【訳注: 「タブ」の誤り?】から値を削除する。

 void deleteTabValue(
   in nsIDOMNode aTab,
   in AString aKey
 );
[編集] 引数
aTab
どのタブから値を削除するか。
aKey
どのキーに対する値を削除するか。

[編集] deleteWindowValue()

指定されたウィンドウから値を削除する。

 void deleteWindowValue(
   in nsIDOMWindow aWindow,
   in AString aKey
 );
[編集] 引数
aWindow
どのウィンドウから値を削除するか。
aKey
どのキーに対する値を削除するか。

[編集] duplicateTab()

Firefox 3 における注記

このメソッドは Firefox 3 にて導入されました。

指定されたタブをできるだけ完全な形で複製する。

 nsIDOMNode duplicateTab(
   in nsIDOMWindow aWindow,
   in nsIDOMNode aTab
 );
[編集] 引数
aWindow
複製するタブが属するウィンドウ。
aTab
複製するタブ。
[編集] 戻り値

新しいタブを表す nsIDOMNode で、その内容は aTab の複製である。

[編集] getBrowserState()

すべてのウィンドウとそのすべてのタブを含む、ブラウザ全体の現在の状態を返す。

 AString getBrowserState();
[編集] 戻り値

ブラウザ上のすべてのウィンドウについて、現在の状態を表す JSON 文字列。

[編集] getClosedTabCount()

引数で渡されたウィンドウについて、何個のタブを復元できるかを返す。

 unsigned long getClosedTabCount(
   in nsIDOMWindow aWindow
 );
[編集] 引数
aWindow
どのウィンドウから復元可能なタブの個数を取得するか。
[編集] 戻り値

そのウィンドウの復元可能なタブの個数。

[編集] getClosedTabData()

指定されたウィンドウについて、閉じたタブのリストを返す。

 AString getClosedTabData(
   in nsIDOMWindow aWindow
 );
[編集] 引数
aWindow
どのウィンドウからタブのリストを取得するか。
[編集] 戻り値

aWindow で指定したウィンドウについての閉じたタブのリストを表す JSON 文字列。リストは Last In / First Out (LIFO) の順序であり、リストの先頭のアイテムは最後に閉じられたタブである。

[編集] getTabState()

Firefox 3 における注記

このメソッドは Firefox 3 にて導入されました。

指定されたタブの状態を返す。

 AString getTabState(
   in nsIDOMNode aTab
 );
[編集] 引数
aTab
どのタブの状態を返すか。
[編集] 戻り値

指定されたタブの状態を表す JSON 文字列。

註: 戻り値の文字列は Cookie を含みません。もし Cookie も取得したいのであれば、代わりに getWindowState() を使う必要があります。

[編集] getTabValue()

引数で渡されたウィンドウについて、キーに対応する値を返す。

 AString getTabValue(
   in nsIDOMNode aTab,
   in AString aKey
 );
[編集] 引数
aTab
どのタブから値を取得するか。
aKey
どのキーに対応する値を取得するか。
[編集] 戻り値

setTabValue() によって以前に aKey に対して割り当てられた文字列の値。

[編集] getWindowState()

ブラウザ上の指定されたひとつのウィンドウについて、現在の状態を返す。

 AString getWindowState(
   in nsIDOMWindow aWindow
 );
[編集] 引数
aWindow
どのウィンドウの状態から状態を取得するか。 #Note on windows を参照。
[編集] 戻り値

aWindow によって指定されたウィンドウのみを含む、セッション状態を表す JSON 文字列。

browser.sessionstate.enabled が false の場合にこのメソッドを呼び出すと、 "aWindows[i] has no properties" というメッセージの例外が発生する。

[編集] getWindowValue()

あるウィンドウについて、引数で指定されたキーと関連付けられた値を返す。

 AString getWindowValue(
   in nsIDOMWindow aWindow,
   in AString aKey
 );
[編集] 引数
aWindow
どのウィンドウから値を取得するか。
aKey
どのキーに対応する値を取得するか。
[編集] 戻り値

指定されたキーに対して以前保存された文字列の値。もしキーに対する値がセットされていなければ、空の文字列を返す。

[編集] init()

セッションストアサービスを初期化する。

注意: この関数はブラウザのみから利用されることを意図しており、拡張機能はこれを呼び出すべきではありません。
 void init(
   in nsIDOMWindow aWindow
 );
[編集] 引数
aWindow
どのウィンドウに対してサービスを初期化するか。

[編集] setBrowserState()

現在のブラウザの状態をセットする。

 void setBrowserState(
   in AString aState
 );
[編集] 引数
aState
使用するセッション状態を表す JSON 文字列。
注意: setBrowserState() を呼び出すと、現在のセッションが直ちに置き換わり、引数 aState で渡したアプリケーション全体の状態が復元されます。

[編集] persistTabAttribute()

すべての XUL のタブに対して、保存と復元を行う tab 要素の属性名をセットする。

 void persistTabAttribute(
   in AString aName
 );
注意: 今のところ、どのタブに対して永続化する属性をセットするかを選択する手段はありません。このメソッドはすべてのタブに対して区別無く影響します。
[編集] 引数
aName
すべてのタブに対して、保存復元する属性の名前。

[編集] setTabState()

Firefox 3 における注記

このメソッドは Firefox 3 にて導入されました。

指定されたタブに対して、状態をセットする。

 void setTabState(
   in nsIDOMNode aTab,
   in AString aState
 );
[編集] 引数
aTab
どのタブへ状態をセットするか。
aState
タブへセットする、タブの状態を表す JSON 文字列。例えば getTabState() によって取得したもの。

[編集] setTabValue()

タブに対して指定されたキーに対する値をセットする。

 void setTabValue(
   in nsIDOMNode aTab,
   in AString aKey,
   in AString aStringValue
 );
[編集] 引数
aTab
どのタブに対して値をセットするか。
aKey
どのキーに対する値をセットするか。
aStringValue
キー aKey に対する値としてセットする文字列。 JavaScript のオブジェクトについては toSource() メソッドを利用することができる。また、 eval() 関数を使うことによって、より複雑なデータ(あるいはオブジェクト全体までも)が値として割り当てることができる。

[編集] setWindowState()

保存された状態を引数として渡し、ひとつのウィンドウへ状態をセットする。

 void setWindowState(
   in nsIDOMWindow aWindow,
   in AString aState,
   in boolean aOverwrite
 );
[編集] 引数
aWindow
aState で示した状態をどの ブラウザウィンドウ に対してセットするか。
aState
指定したウィンドウに対して適用する、保存された状態。
aOverwrite
もしこの引数が true であるなら、現在開かれているすべてのタブは削除され、状態 aState のタブへと置き換わります。もし false であれば、ウィンドウにすでにあるタブに aState のタブが追加されます。

[編集] setWindowValue()

指定したウィンドウに対し、引数で渡したキーに対応する値をセットする。

 void setWindowValue(
   in nsIDOMWindow aWindow,
   in AString aKey,
   in AString aStringValue
 );
[編集] 引数
aWindow
どのウィンドウに対して値をセットするか。
aKey
どのキーに対する値をセットするか。
aStringValue
キー aKey に対する値としてセットする文字列。 JavaScript のオブジェクトについては toSource() メソッドを利用することができる。また、 eval() 関数を使うことによって、より複雑なデータ(あるいはオブジェクト全体までも)が値として割り当てることができる。

[編集] undoCloseTab()

指定したウィンドウにて、閉じたタブを開きなおす。

 void undoCloseTab(
   in nsIDOMWindow aWindow,
   in unsigned long aIndex
 );
[編集] 引数
aWindow
どのウィンドウで閉じたタブを開きなおすか。
aIndex
閉じたタブのうち、どのインデックス番号のタブを復元するか。この値は、0よりも大きく、 getClosedTabCount() で返される値よりも小さくなければならない。閉じたタブのリストは Last In / First Out (LIFO) の順序で保存されており、インデックス番号が0のタブは最後に閉じたタブである。

[編集] Note on windows

The nsISessionStore API stores state information for certain windows inside the web brower. These windows are nsIDOMWindow objects that contain the tabbrowser that users see as tabs; the document in these windows is browser.xul.

For many extensions, those that overlay browser.xul, the appropriate window object for nsISessionStore is the global object 'window'.

For Javascript running in windows other than the one you want to use in nsISessionStore, you need a nsIDOMWindow object containing browser.xul. This will be the outermost or root nsIDOMWindow in a nsIXULWindow (the window seen by users as a moveable frame on the display). This kind of DOMWindow object can be obtained from other nsIDOMWindow objects (like the sidebar window object) by applying the 'mainWindow' statement from Working_with_windows_in_chrome_code. This outermost or root window can also be obtained from the list returned by nsIWindowMediator; see example #3 in Working_with_windows_in_chrome_code. It can also be obtained from an nsIXULWindow using

if (xul_win.docShell instanceof nsIInterfaceRequestor)  {
   var win = xul_win.docShell.getInterface(nsIDOMWindow);
   ...

[編集] 参考

nsISupports