new cookie viewer from Ben Goodger

This commit is contained in:
morse%netscape.com 1999-09-14 21:53:54 +00:00
Родитель 0e7b06253d
Коммит 29d26c0497
10 изменённых файлов: 583 добавлений и 379 удалений

Просмотреть файл

@ -1310,10 +1310,10 @@ sub MakeResourceAliases()
_InstallResources(":mozilla:xpfe:components:xfer:resources:locale:MANIFEST", "$global_chrome_dir:locale");
# the WALLET
my($wallet_chrome_dir) = "$chrome_dir" . "Wallet";
_InstallResources(":mozilla:extensions:wallet:cookieviewer:MANIFEST", "$wallet_chrome_dir:content:default", 0);
_InstallResources(":mozilla:extensions:wallet:signonviewer:MANIFEST", "$wallet_chrome_dir:content:default", 0);
_InstallResources(":mozilla:extensions:wallet:walletpreview:MANIFEST", "$wallet_chrome_dir:content:default", 0);
_InstallResources(":mozilla:extensions:wallet:editor:MANIFEST", "$wallet_chrome_dir:content:default", 0);
_InstallResources(":mozilla:extensions:wallet:cookieviewer:MANIFEST", "$wallet_chrome_dir:content:default:", 0);
_InstallResources(":mozilla:extensions:wallet:signonviewer:MANIFEST", "$wallet_chrome_dir:content:default:", 0);
_InstallResources(":mozilla:extensions:wallet:walletpreview:MANIFEST", "$wallet_chrome_dir:content:default:", 0);
_InstallResources(":mozilla:extensions:wallet:editor:MANIFEST", "$wallet_chrome_dir:content:default:", 0);
_InstallResources(":mozilla:extensions:wallet:cookieviewer:MANIFEST_PROPERTIES", "$wallet_chrome_dir:locale:en-US:", 0);
_InstallResources(":mozilla:extensions:wallet:signonviewer:MANIFEST_PROPERTIES", "$wallet_chrome_dir:locale:en-US:", 0);
@ -1321,6 +1321,8 @@ sub MakeResourceAliases()
_InstallResources(":mozilla:extensions:wallet:editor:MANIFEST_PROPERTIES", "$wallet_chrome_dir:locale:en-US:", 0);
_InstallResources(":mozilla:extensions:wallet:src:MANIFEST_PROPERTIES", "$wallet_chrome_dir:locale:en-US:", 0);
_InstallResources(":mozilla:extensions:wallet:cookieviewer:MANIFEST_SKIN", "$wallet_chrome_dir:skin:default:", 0);
{
my($pref_chrome_dir) = "$chrome_dir" . "Pref";
_InstallResources(":mozilla:xpfe:components:prefwindow:resources:content:MANIFEST", "$pref_chrome_dir:content:default:", 0);

Просмотреть файл

@ -0,0 +1,84 @@
window {
min-width: 400px;
min-height: 400px;
}
box.tabpanel {
border: 1px outset #CCCCDD;
padding: 10px;
}
tab {
padding-left: 10px;
padding-right: 10px;
}
treehead > treerow > treecell {
border: 1px outset #CCCCDD;
padding-top: 1px;
padding-bottom: 1px;
padding-left: 5px;
padding-right: 5px;
background-color: #CCCCDD;
color: #000000;
}
treechildren > treeitem > treerow > treecell {
border-right: 1px solid #CCCCDD;
border-bottom: 1px solid #CCCCDD;
color: inherit;
padding-left: 10px;
padding-top: 1px;
padding-bottom: 1px;
}
treechildren > treeitem > treerow > treecell.fieldcell {
border-right: 1px solid #CCCCDD;
border-bottom: 1px solid #CCCCDD;
color: inherit;
padding: 0px;
margin: 0px;
}
treechildren > treeitem > treerow [selectedrow ~= false] {
background-color: white;
color: black;
}
treechildren > treeitem > treerow [selectedrow ~= true] {
background-color: #666699;
color: white;
}
tree#infotree treechildren > treeitem > treerow [selectedrow ~= false] {
background-color: white;
color: black;
}
tree#infotree treechildren > treeitem > treerow [selectedrow ~= true] {
background-color: white;
color: black;
}
tree {
border: 1px inset #CCCCDD;
}
a {
color: #0000FF;
text-decoration: underline;
}
a:hover {
color: #FF0000;
text-decoration: underline;
}
tree treechildren > treeitem > treerow[selectedrow=true] > treecell > a:link {
color: #FFFFFF;
}
tree treechildren > treeitem > treerow[selectedrow ~= true] > treecell > a:hover {
color: #FFFFFF;
}

Просмотреть файл

@ -0,0 +1,25 @@
<!ENTITY tab.cookiesonsystem.label "Stored Cookies">
<!ENTITY tab.bannedservers.label "Website Setup">
<!ENTITY div.bannedservers.label "Select Internet websites that can and cannot store Cookies on your computer.">
<!ENTITY div.cookiesonsystem.label "View and Remove Cookies that are stored on your computer.">
<!ENTITY treehead.cookiename.label "Cookie Name">
<!ENTITY treehead.cookiedomain.label "Cookie Domain">
<!ENTITY treehead.infoselected.label "Information about the selected Cookie">
<!ENTITY button.removecookie.label "Remove Cookie">
<!ENTITY props.name.label "Cookie Name:">
<!ENTITY props.value.label "Data Stored in Cookie:">
<!ENTITY props.domain.label "Server which set the Cookie:">
<!ENTITY props.path.label "Path:">
<!ENTITY props.secure.label "Is Cookie secure?">
<!ENTITY props.expires.label "Cookie will expire on:">
<!ENTITY treehead.sitename.label "Domain Name">
<!ENTITY treehead.status.label "Status">
<!ENTITY windowtitle.label "Cookie Manager">
<!ENTITY addpermission.label "New Site">
<!ENTITY removepermission.label "Remove Site">
<!ENTITY canSet.label "can set cookies">
<!ENTITY cannotSet.label "cannot set cookies">

Просмотреть файл

@ -1,313 +1,312 @@
/* for localization */
var Bundle = srGetStrBundle("chrome://wallet/locale/CookieViewer.properties");
var siteCookiename = Bundle.GetStringFromName("siteCookiename");
var cookiesTab = Bundle.GetStringFromName("cookiesTab");
var permissionsTab = Bundle.GetStringFromName("permissionsTab");
var cookiesStored = Bundle.GetStringFromName("cookiesStored");
var name = Bundle.GetStringFromName("name");
var value = Bundle.GetStringFromName("value");
var path = Bundle.GetStringFromName("path");
var secure = Bundle.GetStringFromName("secure");
var expires = Bundle.GetStringFromName("expires");
var permissionsStored = Bundle.GetStringFromName("permissionsStored");
var removeCmdLabel = Bundle.GetStringFromName("removeCmdLabel");
var okCmdLabel = Bundle.GetStringFromName("okCmdLabel");
var cancelCmdLabel = Bundle.GetStringFromName("cancelCmdLabel");
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Mozilla Communicator client code, released March
* 31, 1998.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are Copyright (C) 1998
* Netscape Communications Corporation. All Rights Reserved.
*
* Contributor(s):
* Ben Goodger
*/
/* for xpconnect */
var cookieviewer =
Components.classes
["component://netscape/cookieviewer/cookieviewer-world"].createInstance();
cookieviewer = cookieviewer.QueryInterface(Components.interfaces.nsICookieViewer);
/* Author's Notes:
* This is a new CookieViewer.js file. It contains functions for the
* presentation of cookie information in the Cookie Viewer dialog. All dialog
* updating is performed using DOM calls. Localizable strings are stored in
* applicable .dtd and .properties files, style settings in .css and document
* structure in .xul.
*
* - Ben Goodger (14/09/1999)
*/
/*
* The cookieList is a sequence of items separated by the BREAK character. These
* items are:
* empty
* number for first cookie
* name for first cookie
* value for first cookie
* domain indicator ("Domain" or "Host") for first cookie
* domain or host name for first cookie
* path for first cookie
* secure indicator ("Yes" or "No") for first cookie
* expiration for first cookie
* with the eight items above repeated for each successive cookie
*/
function DoGetCookieList()
// global variables
var cookieviewer = null; // cookieviewer interface
var cookieList = []; // array of cookies (OLD STREAM)
var cookies = []; // array of cookeis (NEW OBJECT)
var permissionList = []; // array of permissions (OLD STREAM)
var permissions = []; // array of permissions (NEW OBJECT)
var deleted_cookies = [];
var deleted_permissions = [];
// for dealing with the interface:
var gone_c = "";
var gone_p = "";
// string bundle
var bundle = null;
// CHANGE THIS WHEN MOVING FILES - strings localization file!
var JS_STRINGS_FILE = "chrome://wallet/locale/CookieViewer.properties";
// function : <CookieViewer.js>::Startup();
// purpose : initialises the cookie viewer dialog
function Startup()
{
// xpconnect to cookieviewer interface
cookieviewer = Components.classes["component://netscape/cookieviewer/cookieviewer-world"].createInstance();
cookieviewer = cookieviewer.QueryInterface(Components.interfaces.nsICookieViewer);
// intialise string bundle for
bundle = srGetStrBundle(JS_STRINGS_FILE);
// get cookies into an array
list = cookieviewer.GetCookieValue();
BREAK = list[0];
cookieList = list.split(BREAK);
// get permissions into an array
list = cookieviewer.GetPermissionValue();
BREAK = list[0];
permissionList = list.split(BREAK);
loadCookies();
loadPermissions();
doSetOKCancel(OKHandler, null);
}
/*** =================== COOKIES CODE =================== ***/
// function : <CookieViewer.js>::CreateCookieList();
// purpose : creates an array of cookie objects from the cookie stream
function CreateCookieList()
{
count = 0;
for(i = 0; i < cookieList.length; i+=8)
{
cookies[count] = new Cookie();
cookies[count].number = cookieList[i+1];
cookies[count].name = cookieList[i+2];
cookies[count].value = cookieList[i+3];
cookies[count].domaintype = cookieList[i+4];
cookies[count].domain = cookieList[i+5];
cookies[count].path = cookieList[i+6];
cookies[count].secure = cookieList[i+7];
cookies[count].expire = cookieList[i];
count++;
}
}
// function : <CookieViewer.js>::Cookie();
// purpose : an home-brewed object that represents a individual cookie in the stream
function Cookie(number,name,value,domaintype,domain,path,secure,expire)
{
this.number = (arguments.length) ? number : null;
this.name = (arguments.length) ? name : null;
this.value = (arguments.length) ? value : null;
this.domaintype = (arguments.length) ? domaintype : null;
this.domain = (arguments.length) ? domain : null;
this.path = (arguments.length) ? path : null;
this.secure = (arguments.length) ? secure : null;
this.expire = (arguments.length) ? expire : null;
}
// function : <CookieViewer.js>::loadCookies();
// purpose : loads the list of cookies into the cookie list treeview
function loadCookies()
{
CreateCookieList(); // builds an object array from cookiestream
var cookielist = document.getElementById("cookielist");
for(i = 1; i < cookies.length-1; i++)
{
var item = document.createElement("treeitem");
var row = document.createElement("treerow");
var cell = document.createElement("treecell");
var domain = cookies[i].domain;
if(domain.charAt(0) == ".") // get rid of the ugly dot on the start of some domains
domain = domain.substring(1,domain.length);
var text = document.createTextNode(domain);
cell.appendChild(text);
row.appendChild(cell);
var cell = document.createElement("treecell");
var text = document.createTextNode(cookies[i].name);
cell.appendChild(text);
row.appendChild(cell);
item.appendChild(row);
item.setAttribute("id","tree_" + i);
cookielist.appendChild(item);
}
}
// function : <CookieViewer.js>::ViewSelectedCookie();
// purpose : displays information about the selected cookie in the info fieldset
function ViewCookieSelected(node)
{
var cookietree = document.getElementById("cookietree");
if(cookietree.nodeName != "tree")
return false;
if(cookietree.selectedItems.length > 1)
return false;
cookie = node;
if(cookie.getAttribute("id").indexOf("tree_") == -1)
return false;
var idx = parseInt(cookie.getAttribute("id").substring(5,cookie.getAttribute("id").length));
var props = [cookies[idx].number, cookies[idx].name, cookies[idx].value,
cookies[idx].domaintype, cookies[idx].domain, cookies[idx].path,
cookies[idx].secure, cookies[idx].expire];
rows =
[null,"ifl_name","ifl_value","ifl_domaintype","ifl_domain","ifl_path","ifl_secure","ifl_expires"];
for(i = 1; i < props.length; i++)
{
if(i == 3) {
var dtypecell = document.getElementById("ifl_domaintype");
if(dtypecell.hasChildNodes()) {
dtypecell.removeChild(dtypecell.lastChild);
}
if(cookies[idx].domaintype == "Domain")
var contentStr = bundle.GetStringFromName("domain");
else
var contentStr = bundle.GetStringFromName("host");
var content = document.createTextNode(contentStr);
dtypecell.appendChild(content);
continue;
}
var row = document.getElementById(rows[i]);
if(row.hasChildNodes())
row.removeChild(row.lastChild);
// TODO: put the actual values into borderless TEXT FIELDS so they don't overrun
// and so that their values can be copied.
var cell = document.createElement("html:td");
var content = props[i];
var text = document.createTextNode(content);
cell.appendChild(text);
row.appendChild(cell);
if(rows[i] == "ifl_expires") break;
}
}
// function : <CookieViewer.js>::DeleteCookieSelected();
// purpose : deletes all the cookies that are selected
function DeleteCookieSelected() {
var cookietree = document.getElementById("cookietree");
selitems = cookietree.selectedItems;
for(i = 0; i < selitems.length; i++)
{
var itemid = parseInt(selitems[i].getAttribute("id").substring(5,selitems[i].getAttribute("id").length));
// do we need this now? : deleted_cookies[itemid] = 1;
gone_c += (itemid + ","); // compatibility with old version and with interface
document.getElementById("cookielist").removeChild(selitems[i]);
rows = ["ifl_name","ifl_value","ifl_domain","ifl_path","ifl_secure","ifl_expires"];
for(k = 0; k < rows.length; k++)
{
return cookieviewer.GetCookieValue();
var row = document.getElementById(rows[k]);
row.removeChild(row.lastChild);
}
}
}
function DoGetPermissionList()
{
return cookieviewer.GetPermissionValue();
}
/*** =================== PERMISSIONS CODE =================== ***/
function DoSave(value)
{
cookieviewer.SetValue(value, window);
}
/* end of xpconnect stuff */
// function : <CookieViewer.js>::CreatePermissionList();
// purpose : creates an array of permission objects from the permission stream
function CreatePermissionList()
{
count = 0;
for(i = 0; i < permissionList.length; i+=2)
{
permissions[count] = new Permission();
permissions[count].number = permissionList[i];
permStr = permissionList[i+1];
permissions[count].type = permStr.substring(0,1);
permissions[count].domain = permStr.substring(1,permStr.length);
count++;
}
}
index_frame = 0;
title_frame = 1;
spacer1_frame = 2;
list_frame = 3;
spacer2_frame = 4;
prop_frame = 5;
spacer3_frame = 6;
button_frame = 7;
// function : <CookieViewer.js>::Permission();
// purpose : an home-brewed object that represents a individual permission in the stream
function Permission(number,type,domain)
{
this.number = (arguments.length) ? number : null;
this.type = (arguments.length) ? type : null;
this.domain = (arguments.length) ? domain : null;
}
var cookie_mode;
var cookieList = [];
var permissionList = [];
deleted_cookies = new Array;
deleted_permissions = new Array;
// function : <CookieViewer.js>::loadPermissions();
// purpose : loads the list of permissions into the permission list treeview
function loadPermissions()
{
CreatePermissionList(); // builds an object array from permissionstream
var permissionlist = document.getElementById("permissionslist");
for(i = 0; i < permissions.length; i++)
{
var item = document.createElement("treeitem");
var row = document.createElement("treerow");
// create permission domain cell
var cell = document.createElement("treecell");
var domain = permissions[i].domain;
if(domain.charAt(0) == ".") // get rid of the ugly dot on the start of some domains
domain = domain.substring(1,domain.length);
var text = document.createTextNode(domain);
cell.appendChild(text);
row.appendChild(cell);
// create permission status cell
var cell = document.createElement("treecell");
// TODO: (possibly) allow user to edit +/- settings
if(permissions[i].type == "+")
contentStr = bundle.GetStringFromName("can");
else if(permissions[i].type == "-")
contentStr = bundle.GetStringFromName("cannot");
contentStr = document.createTextNode(contentStr);
var content = document.createTextNode(contentStr);
cell.appendChild(contentStr);
row.appendChild(cell);
item.appendChild(row);
item.setAttribute("id","permtree_" + i);
permissionlist.appendChild(item);
}
}
function DeleteItemSelected() {
if (cookie_mode == 0) {
DeleteCookieSelected();
} else if (cookie_mode == 1) {
DeletePermissionSelected();
}
}
// function : <CookieViewer.js>::DeletePermissionSelected();
// purpose : deletes all the permissions that are selected
function DeletePermissionSelected() {
var permissiontree = document.getElementById("permissionstree");
selitems = permissiontree.selectedItems;
for(i = 0; i < selitems.length; i++)
{
var id = selitems[i].getAttribute("id");
var itemid = parseInt(id.substring(9,id.length));
// do we need this now? : deleted_permissions[itemid] = 1;
gone_p += (itemid + ","); // compatibility with old version and with interface
document.getElementById("permissionslist").removeChild(selitems[i]);
}
// dump("gone_c: " + gone_c + "\n"); // useful for debugging
// dump("gone_p: " + gone_p + "\n");
}
function DeleteCookieSelected() {
selname = top.frames[list_frame].document.fSelectCookie.selname;
goneC = top.frames[button_frame].document.buttons.goneC;
var p;
var i;
for (i=selname.options.length; i>0; i--) {
if (selname.options[i-1].selected) {
selname.options[i-1].selected = 0;
goneC.value = goneC.value + selname.options[i-1].value + ",";
deleted_cookies[selname.options[i-1].value] = 1;
selname.remove(i-1);
}
}
top.frames[prop_frame].document.open();
top.frames[prop_frame].document.close();
}
function DeletePermissionSelected() {
selname = top.frames[list_frame].document.fSelectPermission.selname;
goneP = top.frames[button_frame].document.buttons.goneP;
var p;
var i;
for (i=selname.options.length; i>0; i--) {
if (selname.options[i-1].selected) {
selname.options[i-1].selected = 0;
goneP.value = goneP.value + selname.options[i-1].value + ",";
deleted_permissions[selname.options[i-1].value] = 1;
selname.remove(i-1);
}
}
}
function loadCookies(){
cookie_mode = 0;
top.frames[index_frame].document.open();
top.frames[index_frame].document.write(
"<body bgcolor='#c0c0c0'>" +
"<table border='0' width='100%'>" +
"<tr>" +
"<td align='center' valign='middle' bgcolor='#ffffff'>" +
"<font size='2' color='#666666'>" +
"<b>" + cookiesTab + "</b>" +
"</font>" +
"</td>" +
"<td align='center' valign='middle' bgcolor='#c0c0c0'>" +
"<a onclick='top.loadPermissions();' href=''>" +
"<font size='2'>" + permissionsTab + "</font>" +
"</a>" +
"</td>" +
"</tr>" +
"</table>" +
"</body>"
);
top.frames[index_frame].document.close();
top.frames[title_frame].document.open();
top.frames[title_frame].document.write
("&nbsp;" + cookiesStored);
top.frames[title_frame].document.close();
top.frames[prop_frame].document.open();
top.frames[prop_frame].document.close();
loadCookiesList();
}
function ViewCookieSelected() {
index = 8*(top.frames[list_frame].document.fSelectCookie.selname.selectedIndex) + 1;
top.frames[prop_frame].document.open();
top.frames[prop_frame].document.write(
"<nobr><b>" + name + "</b> " + cookieList[index+1] + "</nobr><br/>" +
"<nobr><b>" + value + "</b> " + cookieList[index+2] + "</nobr><br/>" +
"<nobr><b>" + cookieList[index+3] + ": </b>" + cookieList[index+4] + "</nobr><br/>" +
"<nobr><b>" + path + "</b> " + cookieList[index+5] + "</nobr><br/>" +
"<nobr><b>" + secure + "</b> " + cookieList[index+6] + "</nobr><br/>" +
"<nobr><b>" + expires + "</b> " + cookieList[index+7] + "</nobr><br/>"
);
top.frames[prop_frame].document.close();
}
function loadCookiesList(){
top.frames[list_frame].document.open();
top.frames[list_frame].document.write(
"<form name='fSelectCookie'>" +
"<p>" +
"<b>" + Bundle.GetStringFromName("siteCookiename") + " </b>" +
"<table border='0'>" +
"<tr>" +
"<td width='100%' valign='top'>" +
"<center>" +
"<p>" +
"<select name='selname' size='10' multiple='multiple' onchange='top.ViewCookieSelected();'>"
);
for (i=1; !(i>=cookieList.length); i+=8) {
if (!deleted_cookies[cookieList[i]]) {
top.frames[list_frame].document.write(
"<option value=" + cookieList[i] + ">" +
cookieList[i+4] + ":" + cookieList[i+1] +
"</option>"
);
}
}
top.frames[list_frame].document.write(
"</select>" +
"</p>" +
"</center>" +
"</td>" +
"</tr>" +
"</table>" +
"</p>" +
"</form>"
);
top.frames[list_frame].document.close();
}
function loadPermissions(){
cookie_mode = 1;
top.frames[index_frame].document.open();
top.frames[index_frame].document.write(
"<body bgcolor='#c0c0c0'>" +
"<table border='0' width='100%'>" +
"<tr>" +
"<td align='center' valign='middle' bgcolor='#c0c0c0'>" +
"<a onclick='top.loadCookies();' href=''>" +
"<font size='2'>" + cookiesTab + "</font>" +
"</a>" +
"</td>" +
"<td align='center' valign='middle' bgcolor='#ffffff'>" +
"<font size='2' color='#666666'>" +
"<b>" + permissionsTab + "</b>" +
"</font>" +
"</td>" +
"<td>&nbsp;&nbsp;&nbsp;</td>" +
"</tr>" +
"</table>" +
"</body>"
);
top.frames[index_frame].document.close();
top.frames[title_frame].document.open();
top.frames[title_frame].document.write
("&nbsp;" + permissionsStored + "");
top.frames[title_frame].document.close();
top.frames[prop_frame].document.open();
top.frames[prop_frame].document.close();
loadPermissionsList();
}
function loadPermissionsList(){
top.frames[list_frame].document.open();
top.frames[list_frame].document.write(
"<form name='fSelectPermission'>" +
"<p>" +
"<table border='0'>" +
"<tr>" +
"<td width='100%' valign='top'>" +
"<center>" +
"<p>" +
"<select name='selname' size='10' multiple='multiple'> "
);
for (i=1; !(i>=permissionList.length); i+=2) {
if (!deleted_permissions[permissionList[i]]) {
top.frames[list_frame].document.write(
"<option value=" + permissionList[i] + ">" +
permissionList[i+1] +
"</option>"
);
}
}
top.frames[list_frame].document.write(
"</select>" +
"</p>" +
"</center>" +
"</td>" +
"</tr>" +
"</table>" +
"</p>" +
"</form>"
);
top.frames[list_frame].document.close();
}
function loadButtons(){
top.frames[button_frame].document.open();
top.frames[button_frame].document.write(
"<form name='buttons'>" +
"<br/>" +
"&nbsp;" +
"<button onclick='top.DeleteItemSelected();'>" + removeCmdLabel + "</button>" +
"<div align='right'>" +
"<button onclick='parent.Save();'>" + okCmdLabel + "</button>" +
" &nbsp;&nbsp;" +
"<button onclick='parent.Cancel();'>" + cancelCmdLabel + "</button>" +
"</div>" +
"<input type='hidden' name='goneC' value='' size='-1'/>" +
"<input type='hidden' name='goneP' value='' size='-1'/>" +
"<input type='hidden' name='cookieList' value='' size='-1'/>" +
"<input type='hidden' name='permissionList' value='' size='-1'/>" +
"</form>"
);
top.frames[button_frame].document.close();
}
function loadFrames(){
/*
* The cookieList is a sequence of items separated by the BREAK character. These
* items are:
* empty
* number for first cookie
* name for first cookie
* value for first cookie
* domain indicator ("Domain" or "Host") for first cookie
* domain or host name for first cookie
* path for first cookie
* secure indicator ("Yes" or "No") for first cookie
* expiration for first cookie
* with the eight items above repeated for each successive cookie
*/
list = DoGetCookieList();
BREAK = list[0];
cookieList = list.split(BREAK);
/*
* The permissionList is a sequence of items separated by the BREAK character. These
* items are:
* empty
* number for first permission
* +/- hostname for first permission
* with the above two items repeated for each successive permission
*/
list = DoGetPermissionList();
BREAK = list[0];
permissionList = list.split(BREAK);
loadCookies();
loadButtons();
}
function Save(){
var goneC = top.frames[button_frame].document.buttons.goneC;
var goneP = top.frames[button_frame].document.buttons.goneP;
var result = "|goneC|"+goneC.value+"|goneP|"+goneP.value+"|";
DoSave(result);
}
function Cancel(){
var result = "|goneC||goneP||";
DoSave(result);
}
/*** =================== GENERAL CODE =================== ***/
// function : <CookieViewer.js>::doOKButton();
// purpose : saves the changed settings and closes the dialog.
function OKHandler(){
var result = "|goneC|" + gone_c + "|goneP|" + gone_p + "|";
cookieviewer.SetValue(result, window);
self.close();
}

Просмотреть файл

@ -1,13 +1,24 @@
siteCookiename = site:cookie-name
cookiesTab = View stored cookies
permissionsTab = View sites that can or cannot store cookies
cookiesStored = Cookies stored on your system
permissionsStored = Sites that can(+) or cannot(-) store cookies
name = Name:
value = Value:
path = Path:
secure = Secure:
expires = Expires:
removeCmdLabel = Remove
okCmdLabel = OK
cancelCmdLabel = Cancel
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# Contributor(s):
# Ben Goodger
# note this section of the code may require some tinkering in other languages =(
# format in dialog: site [can/cannot] set cookies
can=site can set cookies
cannot=site cannot set cookies
domain=Domain for which this cookie applies:
host=Server which set the cookie:

Просмотреть файл

@ -1,62 +1,140 @@
<?xml version="1.0"?>
<!DOCTYPE window>
<xul:window xmlns="http://www.w3.org/TR/REC-html40"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!--
The contents of this file are subject to the Netscape Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/NPL/
Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is Mozilla Communicator client code, released
March 31, 1998.
The Initial Developer of the Original Code is Netscape
Communications Corporation. Portions created by Netscape are
Copyright (C) 1998-1999 Netscape Communications Corporation. All
Rights Reserved.
Contributor(s):
Ben Goodger
-->
<script src="chrome://global/content/strres.js"/>
<script src="CookieViewer.js"/>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<!-- CHANGE THIS WHEN MOVING FILES -->
<?xml-stylesheet href="chrome://wallet/skin/CookieViewer.css" type="text/css"?>
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<frameset rows = "10,10,125,50" border="0" framespacing="0" onload="loadFrames();">
<frame src="about:blank"
name="index_frame"
scrolling="no"
marginwidth="1"
marginheight="1"
noresize="noresize"/>
<frame src="about:blank"
name="title_frame"
scrolling="no"
marginwidth="1"
marginheight="1"
noresize="noresize"/>
<frameset cols="5,*,10,*,5" border="0" framespacing="0">
<frame src="about:blank"
name="spacer1_frame"
scrolling="auto"
marginwidth="0"
marginheight="0"
noresize="noresize"/>
<frame src="about:blank"
name="list_frame"
scrolling="auto"
marginwidth="0"
marginheight="0"
noresize="noresize"/>
<frame src="about:blank"
name="spacer2_frame"
scrolling="auto"
marginwidth="0"
marginheight="0"
noresize="noresize"/>
<frame src="about:blank"
name="prop_frame"
scrolling="auto"
marginwidth="0"
marginheight="0"
noresize="noresize"/>
<frame src="about:blank"
name="spacer3_frame"
scrolling="auto"
marginwidth="0"
marginheight="0"
noresize="noresize"/>
</frameset>
<frame src="about:blank"
name="button_frame"
scrolling="no"
marginwidth="1"
marginheight="1"
noresize="noresize"/>
</frameset>
<!-- CHANGE THIS WHEN MOVING FILES -->
<!DOCTYPE window SYSTEM "chrome://wallet/locale/CookieViewer.dtd" >
<window id="cookieviewer"
width="400" height="400"
title="&windowtitle.label;"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
align="vertical"
onload="Startup()">
<html:script src="CookieViewer.js"/>
<html:script language="javascript" src="chrome://global/content/strres.js" />
<tabcontrol flex="100%" align="vertical">
<tabbox>
<tab>&tab.cookiesonsystem.label;</tab>
<tab>&tab.bannedservers.label;</tab>
</tabbox>
<tabpanel align="horizontal" flex="100%">
<box class="tabpanel" id="system" flex="100%" align="vertical">
<box><html:div>&div.cookiesonsystem.label;</html:div></box>
<spring style="height: 10px;"/>
<tree id="cookietree" flex="100%" style="height: 150px;" align="vertical" onclick="ViewCookieSelected(event.target.parentNode.parentNode)">
<treecol width="30%"/>
<treecol width="70%"/>
<treehead>
<treerow>
<treecell>&treehead.cookiedomain.label;</treecell>
<treecell>&treehead.cookiename.label;</treecell>
</treerow>
</treehead>
<treechildren id="cookielist"/>
</tree>
<spring style="height: 5px;"/>
<html:fieldset style="border: 2px groove #CCCCDD;">
<html:legend>&treehead.infoselected.label;</html:legend>
<box align="horizontal">
<!-- labels -->
<html:table>
<html:tr>
<html:td>&props.name.label;</html:td>
</html:tr>
<html:tr>
<html:td>&props.value.label;</html:td>
</html:tr>
<html:tr>
<html:td>&props.domain.label;</html:td>
</html:tr>
<html:tr>
<html:td>&props.path.label;</html:td>
</html:tr>
<html:tr>
<html:td>&props.secure.label;</html:td>
</html:tr>
<html:tr>
<html:td>&props.expires.label;</html:td>
</html:tr>
</html:table>
<!-- values -->
<html:table>
<html:tr id="ifl_name"/>
<html:tr id="ifl_value"/>
<html:tr id="ifl_domain"/>
<html:tr id="ifl_path"/>
<html:tr id="ifl_secure"/>
<html:tr id="ifl_expires"/>
</html:table>
</box>
</html:fieldset>
<spring flex="5%"/>
<box align="horizontal">
<titledbutton value="&button.removecookie.label;" onclick="DeleteCookieSelected();"/>
</box>
</box>
<box class="tabpanel" id="servers" flex="100%" align="vertical">
<html:div>&div.bannedservers.label;</html:div>
<spring flex="5%"/>
<tree id="permissionstree" flex="100%" style="height: 150px;" align="vertical">
<treehead>
<treerow>
<treecell>&treehead.sitename.label;</treecell>
<treecell>&treehead.status.label;</treecell>
</treerow>
</treehead>
<treechildren id="permissionslist"/>
</tree>
<spring style="height: 5px;"/>
<box align="horizontal">
<titledbutton value="&removepermission.label;" onclick="DeletePermissionSelected();"/>
</box>
<spring style="height: 5px;"/>
</box>
</tabpanel>
</tabcontrol>
<!-- from dialogOverlay.xul -->
<box id="okCancelButtons"/>
<popup id="cancannot">
<menu>
<menupopup>
<menuitem value="&canSet.label;"/>
<menuitem value="*cannotSet.label;"/>
</menupopup>
</menu>
</popup>
</window>
</xul:window>

Просмотреть файл

@ -1 +0,0 @@
CookieViewer.properties

Просмотреть файл

@ -0,0 +1 @@
CookieViewer.css

Просмотреть файл

@ -40,5 +40,6 @@ include $(topsrcdir)/config/rules.mk
install:: $(TARGETS)
$(INSTALL) $(srcdir)/CookieViewer.xul $(srcdir)/CookieViewer.js $(DIST)/bin/chrome/wallet/content/default
$(INSTALL) $(srcdir)/CookieViewer.properties $(DIST)/bin/chrome/wallet/locale/en-US
$(INSTALL) $(srcdir)/CookieViewer.properties $(srcdir)/CookieViewer.dtd $(DIST)/bin/chrome/wallet/locale/en-US
$(INSTALL) $(srcdir)/CookieViewer.css $(DIST)/bin/chrome/wallet/skin/default

Просмотреть файл

@ -51,9 +51,13 @@ clobber::
rm -f $(DIST)\lib\$(LIBRARY_NAME).lib
rm -f $(DIST)\bin\chrome\wallet\content\default\CookieViewer.xul
rm -f $(DIST)\bin\chrome\wallet\content\default\CookieViewer.js
rm -f $(DIST)\bin\chrome\wallet\skin\default\CookieViewer.css
rm -f $(DIST)\bin\chrome\wallet\locale\en-US\CookieViewer.properties
rm -f $(DIST)\bin\chrome\wallet\locale\en-US\CookieViewer.dtd
install:: $(DLL)
$(MAKE_INSTALL) CookieViewer.xul $(DIST)\bin\chrome\wallet\content\default
$(MAKE_INSTALL) CookieViewer.js $(DIST)\bin\chrome\wallet\content\default
$(MAKE_INSTALL) CookieViewer.css $(DIST)\bin\chrome\wallet\skin\default
$(MAKE_INSTALL) CookieViewer.properties $(DIST)\bin\chrome\wallet\locale\en-US
$(MAKE_INSTALL) CookieViewer.dtd $(DIST)\bin\chrome\wallet\locale\en-US