nsISessionStore

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

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

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


Please add a summary to this article.
  最終更新: Gecko 1.8.1 (Firefox 2 / Thunderbird 2 / SeaMonkey 1.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);
AString getBrowserState();
unsigned long getClosedTabCount(in nsIDOMWindow aWindow);
AString getClosedTabData(in nsIDOMWindow aWindow);
AString getTabState(in nsIDOMNode aTab);
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);
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
 );
引数
<tt>aTab</tt>
どのタブから値を削除するか。
<tt>aKey</tt>
どのキーに対する値を削除するか。

deleteWindowValue()

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

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

duplicateTab()

Firefox 3 における注記

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

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

 nsIDOMNode duplicateTab(
   in nsIDOMWindow aWindow,
   in nsIDOMNode aTab
 );
引数
<tt>aWindow</tt>
複製するタブが属するウィンドウ。
<tt>aTab</tt>
複製するタブ。
戻り値

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

getBrowserState()

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

 AString getBrowserState();
戻り値

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

getClosedTabCount()

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

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

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

getClosedTabData()

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

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

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

getTabState()

Firefox 3 における注記

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

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

 AString getTabState(
   in nsIDOMNode aTab
 );
引数
<tt>aTab</tt>
どのタブの状態を返すか。
戻り値

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

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

getTabValue()

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

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

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

getWindowState()

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

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

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

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

getWindowValue()

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

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

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

init()

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

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

setBrowserState()

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

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

persistTabAttribute()

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

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

setTabState()

Firefox 3 における注記

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

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

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

setTabValue()

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

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

setWindowState()

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

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

setWindowValue()

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

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

undoCloseTab()

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

 void undoCloseTab(
   in nsIDOMWindow aWindow,
   in unsigned long aIndex
 );
引数
<tt>aWindow</tt>
どのウィンドウで閉じたタブを開きなおすか。
<tt>aIndex</tt>
閉じたタブのうち、どのインデックス番号のタブを復元するか。この値は、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

Document Tags and Contributors

Contributors to this page: Gomita
最終更新者: Gomita,