Firecookieにdecodeしたcookieも見られる機能追加してみた

Firecookieを入れるまでは

console.log(document.cookie)

で、いちいちcookieを表示していたけれど、


これはFirebugを拡張してcookieタブを追加してくれるから、
簡単に確認できてとても便利。


その上、ドメイン、パス、有効期限など詳しい情報を見やすく出してくれるのもありがたい。

decodeしたcookieもみたいなぁ

ってことで、更に拡張DA!

Firecookieの場所

WinXPで説明します。

C:\Documents and Settings\[ユーザ名]\Application Data\Mozilla\Firefox\Profiles\[ランダムな文字].default\extensions\firecookie@janodvarko.cz

ラベル追加するよ

chrome\locale\en-US\firecookie.properties
に対し

// この行の下に
firecookie.info.valuetab.label=Value

// 以下の行を追加
firecookie.info.decodetab.label=Decode

タブ追加するよ

chrome\content\firecookie\fireCookie.js
に対し

bodyTag:
    DIV({class: "cookieInfoBody", _repObject: "$cookie"},
        DIV({class: "cookieInfoTabs"},
            A({class: "cookieInfoValueTab cookieInfoTab", onclick: "$onClickTab",
                view: $FC_STR("firecookie.info.valuetab.label")},
                "Value"
            ),
            // 追加
            A({class: "cookieInfoDecodeTab cookieInfoTab", onclick: "$onClickTab",
                 view: $FC_STR("firecookie.info.decodetab.label")},
                 "Decode"
            )
        ),
        DIV({class: "cookieInfoValueText cookieInfoText"},
            TABLE({class: "cookieInfoValueTable", cellpadding: 0, cellspacing: 0},
                TBODY()
            )
        ),
        // 追加
        DIV({class: "cookieInfoDecodeText cookieInfoText"},
            TABLE({class: "cookieInfoDecodeTable", cellpadding: 0, cellspacing: 0},
                TBODY()
            )
        ),
        DIV({class: "cookieInfoEditorText cookieInfoText"},
            TABLE({class: "cookieInfoEditorTable", cellpadding: 0, cellspacing: 0},
                TBODY()
            )
        )
    ),

bodyTagにdecodeタブ追加してます。

updateInfo: function(cookieInfoBody, cookie, context)
{
    var tab = cookieInfoBody.selectedTab;
    if (hasClass(tab, "cookieInfoValueTab"))
    {
        var valueBox = getChildByClass(cookieInfoBody, "cookieInfoValueText");
        if (!cookieInfoBody.valuePresented)
        {
            cookieInfoBody.valuePresented = true;

            var text = cookie.cookie.value;
            if (text != undefined)
                insertWrappedText(text, valueBox);
        }
    }

    // 追加
    if (hasClass(tab, "cookieInfoDecodeTab"))
    {
        var decodeBox = getChildByClass(cookieInfoBody, "cookieInfoDecodeText");
        if (!cookieInfoBody.decodePresented)
        {
            cookieInfoBody.decodePresented = true;

            var text = decodeURIComponent(cookie.cookie.value);
            if (text != undefined)
                insertWrappedText(text, decodeBox);
        }
    }	
},

updateInfoにdecodeしたcookieを挿入する処理追加してます。

Firefoxを再起動すると

Vallueタブの横にDecodeタブついてます。


わっほい