[Webkit-unassigned] [Bug 18006] New: javascript is broken, , , can display
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Mar 21 22:25:06 PDT 2008
http://bugs.webkit.org/show_bug.cgi?id=18006
Summary: javascript is broken,,, can display
Product: WebKit
Version: 526+ (Nightly build)
Platform: Macintosh
OS/Version: Mac OS X 10.5
Status: UNCONFIRMED
Severity: Normal
Priority: P2
Component: JavaScriptCore
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: jason.hu at etcc.com
here is the source code for the page, the original url needs a login.
<HTML>
<!-- Version=7.5 -->
<!-- Copyright (c) 1999-2006 Replicon Inc. All rights reserved. -->
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="Fri Jan 1 12:00:00 PST 1999">
<TITLE>Replicon Web TimeSheet 7.5</TITLE>
<link rel="stylesheet" type="text/css" href="../html/styles/style154621.css"
title="Default Stylesheet" />
<!-- Version=7.5 -->
<!-- Copyright (c) 1999-2006 Replicon Inc. All rights reserved. -->
<SCRIPT LANGUAGE="Javascript"><!--
function TryCatch(tryFunc,catchFunc)
{
tryFunc();
}
function InstanceOf(obj,c)
{
return null;
}
//--></SCRIPT ><SCRIPT LANGUAGE="Javascript"><!--
function jsLoaderObject()
{
this.isLoadedArray=new Array();
this.addList=new Array();
this.add=jsLoaderObject_add;
this.loadFrom=jsLoaderObject_loadFrom;
this.isLoaded=jsLoaderObject_isLoaded;
}
function jsLoaderObject_add(item,type)
{
var o=new Object();
o.object=item;
o.type=type;
this.addList[this.addList.length]=o;
}
function jsLoaderObject_isLoaded(signature) { return
this.isLoadedArray[signature]!=null; }
function jsLoaderObject_loadFrom(win,signature)
{
for (var i=0;i<this.addList.length;i++)
{
var object=win[this.addList[i].object];
if (this.addList[i].type=='function' || typeof(object)=='function')
{
var o=String(object);
var
body=o.substring(o.indexOf('{')+1,o.lastIndexOf('}')).replace(/\\/g,"\\\\").replace(/\r/g,"\\n").replace(/\n/g,"\\n").replace(/'/g,"\\'");
var
params=o.substring(o.indexOf('(')+1,o.indexOf(')')).replace(/,/g,"','");
if (params!="")
params+="','";
window.eval(String(this.addList[i].object)+"=new
Function('"+String(params+body)+"')");
var c=window[this.addList[i].object];
if (this.addList[i].type=='class')
{
for (var j in object.prototype)
{
var o=String(object.prototype[j]);
var
body=o.substring(o.indexOf('{')+1,o.lastIndexOf('}')).replace(/\\/g,"\\\\").replace(/\r/g,"\\n").replace(/\n/g,"\\n").replace(/'/g,"\\'");
var
params=o.substring(o.indexOf('(')+1,o.indexOf(')')).replace(/,/g,"','");
if (params!="")
params+="','";
window.eval(String(this.addList[i].object)+".prototype."+j+"=new
Function('"+String(params+body)+"')");
}
if (object.statics)
{
window[this.addList[i].object].statics = new Object();
for (var j in object.statics)
{
var obj=object.statics[j];
if (typeof(obj)=='function')
{
var o=String(obj);
var
body=o.substring(o.indexOf('{')+1,o.lastIndexOf('}')).replace(/\\/g,"\\\\").replace(/\r/g,"\\n").replace(/\n/g,"\\n").replace(/'/g,"\\'");
var
params=o.substring(o.indexOf('(')+1,o.indexOf(')')).replace(/,/g,"','");
if (params!="")
params+="','";
window.eval(String(this.addList[i].object)+".statics."+j+"=new
Function('"+String(params+body)+"')");
}
else
window[this.addList[i].object].statics[j] = obj;
}
}
}
}
else if (this.addList[i].type=='image')
{
window[this.addList[i].object]=new Image();
window[this.addList[i].object].src=object.src;
}
else
window[this.addList[i].object]=object;
}
this.addList.length=0;
this.isLoadedArray[signature]=new Date().getTime();
}
function jsLoaderFileManager(loadWindow)
{
this.addList=new Array();
this.dependencyMap=new Array();
this.jsLoaderObject=new jsLoaderObject();
this.loadWindow=loadWindow;
this.fileMap=new Array();
}
jsLoaderFileManager.prototype.add = function(signature,file)
{
if (this.jsLoaderObject.isLoaded(signature))
return;
this.fileMap[signature]=file;
var d=this.dependencyMap[signature];
if (!d)
{
d=new Object();
d.map=new Array();
d.list=new Array();
this.dependencyMap[signature]=d;
}
for (var i=0;i<d.list.length;i++)
this.add(d.list[i],this.fileMap[d.list[i]]);
var o=new Object();
o.file=file;
o.signature=signature;
this.addList[this.addList.length]=o;
if (this.addList.length==1)
this.loadFile();
}
jsLoaderFileManager.prototype.addDependency =
function(signature,dependencySignature,file)
{
var d=this.dependencyMap[signature];
if (!d)
{
d=new Object();
d.map=new Array();
d.list=new Array();
this.dependencyMap[signature]=d;
}
if (d.map[dependencySignature])
return;
d.map[dependencySignature]=true;
d.list[d.list.length]=dependencySignature;
this.fileMap[dependencySignature]=file;
}
jsLoaderFileManager.prototype.isLoaded = function()
{
for (var i=0;i<arguments.length;i++)
{
var signature=arguments[i];
if (!this.jsLoaderObject.isLoaded(signature))
return false;
var dependencyMap=this.dependencyMap[signature];
if (dependencyMap)
{
var dependencyList=dependencyMap.list;
for (var j=0;j<dependencyList.length;j++)
if (!this.isLoaded(dependencyList[j]))
return false;
}
}
return true;
}
jsLoaderFileManager.prototype.loadFile = function(file)
{
if (file==null)
{
function getDependency(loader,signature)
{
var dependencyMap=loader.dependencyMap[signature];
if (dependencyMap)
{
var dependencyList=dependencyMap.list;
for (var j=0;j<dependencyList.length;j++)
if (!loader.jsLoaderObject.isLoaded(dependencyList[j]))
return getDependency(loader,dependencyList[j]);
}
return signature;
}
if (this.addList.length>0)
{
var s=getDependency(this,this.addList[0].signature);
for (var i=0;i<this.addList.length;i++)
if (this.addList[i].signature==s)
{
file=this.addList[i].file;
break;
}
}
}
if (file!=null)
{
var f=file;
if (f.substring(file.length-5,file.length)!=".html")
f="rt.exe?nextpage="+f;
this.loadWindow.load.location=f;
window.setTimeout('jsLoader.loadContent("'+file+'")',100);
}
}
jsLoaderFileManager.prototype.loadContent = function(file)
{
for (var i=0;i<this.addList.length;i++)
if (this.addList[i].file==file &&
!this.jsLoaderObject.isLoaded(this.addList[i].signature))
{
window.setTimeout('jsLoader.loadContent("'+file+'")',100);
return;
}
var displace=0;
for (var i=0;i<this.addList.length;i++)
{
this.addList[i-displace]=this.addList[i];
if (this.addList[i].file==file)
displace++;
}
this.addList.length-=displace;
this.loadFile();
}
jsLoaderFileManager.prototype.getJSLoaderObject = function() { return
this.jsLoaderObject; }
function getSlash() { return "\\"; }
jsLoader=new jsLoaderFileManager(window);
//--></SCRIPT ><SCRIPT
type="text/javascript"src="../html/javascript/subclass.js"></SCRIPT ><SCRIPT
LANGUAGE="Javascript"SRC="../html/javascript/jsdepend.js"></SCRIPT ><SCRIPT
TYPE="text/javascript"SRC="../html/javascript/gui/rjscontrolelement.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/utilities/RBrowserDetector.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/gui/rjsbutton.js"></SCRIPT
><SCRIPT LANGUAGE="Javascript"><!--
subclass(RJSButtonSave,RJSButton);
function RJSButtonSave(map,js,tt) { this.RJSButton(map, 'Save', js, 'Save');
if(tt) this.toolTip = tt; }
subclass(RJSButtonCancel,RJSButton);
function RJSButtonCancel(map,js,tt) { this.RJSButton(map, 'Cancel', js,
'Cancel'); if(tt) this.toolTip = tt; }
subclass(RJSButtonOK,RJSButton);
function RJSButtonOK(map,js,tt) { this.RJSButton(map, 'OK', js, 'OK'); if(tt)
this.toolTip = tt; }
subclass(RJSButtonDelete,RJSButton);
function RJSButtonDelete(map,js,tt) { this.RJSButton(map, 'Delete', js,
'Delete'); if(tt) this.toolTip = tt; }
subclass(RJSButtonAdd,RJSButton);
function RJSButtonAdd(map,js,tt) { this.RJSButton(map, 'Add', js, 'Add');
if(tt) this.toolTip = tt; }
subclass(RJSButtonClose,RJSButton);
function RJSButtonClose(map,js,tt) { this.RJSButton(map, 'Close', js, 'Close');
if(tt) this.toolTip = tt; }
subclass(RJSButtonYes,RJSButton);
function RJSButtonYes(map,js,tt) { this.RJSButton(map, 'Yes', js, 'Yes');
if(tt) this.toolTip = tt; }
subclass(RJSButtonNo,RJSButton);
function RJSButtonNo(map,js,tt) { this.RJSButton(map, 'No', js, 'No'); if(tt)
this.toolTip = tt; }
subclass(RJSButtonReset,RJSButton);
function RJSButtonReset(map,js,tt) { this.RJSButton(map, 'Reset', js, 'Reset');
if(tt) this.toolTip = tt; }
subclass(RJSButtonApply,RJSButton);
function RJSButtonApply(map,js,tt) { this.RJSButton(map, 'Apply', js, 'Apply');
if(tt) this.toolTip = tt; }
subclass(RJSButtonContinue,RJSButton);
function RJSButtonContinue(map,js,tt) { this.RJSButton(map, 'Continue', js,
'Continue'); if(tt) this.toolTip = tt; }
subclass(RJSButtonSelect,RJSButton);
function RJSButtonSelect(map,js,tt) { this.RJSButton(map, 'Select', js,
'Select'); if(tt) this.toolTip = tt; }
subclass(RJSButtonPrint,RJSButton);
function RJSButtonPrint(map,js,tt) { this.RJSButton(map, 'Print', js, 'Print');
if(tt) this.toolTip = tt; }
subclass(RJSButtonOffline,RJSButton);
function RJSButtonOffline(map,js,tt) { this.RJSButton(map, 'Offline', js,
'Offline'); if(tt) this.toolTip = tt; }
subclass(RJSButtonApprove,RJSButton);
function RJSButtonApprove(map,js,tt) { this.RJSButton(map, 'Approve', js,
'Approve'); if(tt) this.toolTip = tt; }
subclass(RJSButtonReject,RJSButton);
function RJSButtonReject(map,js,tt) { this.RJSButton(map, 'Reject', js,
'Reject'); if(tt) this.toolTip = tt; }
subclass(RJSButtonEdit,RJSButton);
function RJSButtonEdit(map,js,tt) { this.RJSButton(map, 'Edit', js, 'Edit');
if(tt) this.toolTip = tt; }
subclass(RJSButtonCopyFrom,RJSButton);
function RJSButtonCopyFrom(map,js,tt) { this.RJSButton(map, 'Copy From', js,
'Copy From'); if(tt) this.toolTip = tt; }
subclass(RJSButtonSubmit,RJSButton);
function RJSButtonSubmit(map,js,tt) { this.RJSButton(map, 'Submit', js,
'Submit'); if(tt) this.toolTip = tt; }
subclass(RJSButtonResubmit,RJSButton);
function RJSButtonResubmit(map,js,tt) { this.RJSButton(map, 'Resubmit', js,
'Resubmit'); if(tt) this.toolTip = tt; }
subclass(RJSButtonUnsubmit,RJSButton);
function RJSButtonUnsubmit(map,js,tt) { this.RJSButton(map, 'Unsubmit', js,
'Unsubmit'); if(tt) this.toolTip = tt; }
subclass(RJSButtonAddRemoveTask,RJSButton);
function RJSButtonAddRemoveTask(map,js,tt) { this.RJSButton(map, 'Add/Remove
Tasks', js, 'Add/Remove Tasks'); if(tt) this.toolTip = tt; }
subclass(RJSButtonAccumulate,RJSButton);
function RJSButtonAccumulate(map,js,tt) { this.RJSButton(map, 'Accumulate', js,
'Accumulate'); if(tt) this.toolTip = tt; }
subclass(RJSButtonOverwrite,RJSButton);
function RJSButtonOverwrite(map,js,tt) { this.RJSButton(map, 'Overwrite', js,
'Overwrite'); if(tt) this.toolTip = tt; }
subclass(RJSButtonDiscard,RJSButton);
function RJSButtonDiscard(map,js,tt) { this.RJSButton(map, 'Discard', js,
'Discard'); if(tt) this.toolTip = tt; }
subclass(RJSButtonAddTimeOff,RJSButton);
function RJSButtonAddTimeOff(map,js,tt) { this.RJSButton(map, 'Add Time Off',
js, 'Add Time Off'); if(tt) this.toolTip = tt; }
subclass(RJSButtonViewPeriod,RJSButton);
function RJSButtonViewPeriod(map,js,tt) { this.RJSButton(map, 'View Period',
js, 'View Period'); if(tt) this.toolTip = tt; }
subclass(RJSButtonAddProject,RJSButton);
function RJSButtonAddProject(map,js,tt) { this.RJSButton(map, 'Add Project',
js, 'Add Project'); if(tt) this.toolTip = tt; }
subclass(RJSButtonSummary,RJSButton);
function RJSButtonSummary(map,js,tt) { this.RJSButton(map, 'Summary', js,
'Summary'); if(tt) this.toolTip = tt; }
subclass(RJSButtonSettings,RJSButton);
function RJSButtonSettings(map,js,tt) { this.RJSButton(map, 'Settings', js,
'Settings'); if(tt) this.toolTip = tt; }
subclass(RJSButtonSend,RJSButton);
function RJSButtonSend(map,js,tt) { this.RJSButton(map, 'Send', js, 'Send');
if(tt) this.toolTip = tt; }
subclass(RJSButtonTransferLeftSmall,RJSButton);
function RJSButtonTransferLeftSmall(map,js,tt) { this.RJSButton(map, '<<', js,
'', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
subclass(RJSButtonTransferRightSmall,RJSButton);
function RJSButtonTransferRightSmall(map,js,tt) { this.RJSButton(map, '>>', js,
'', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
subclass(RJSButtonExpandSmall,RJSButton);
function RJSButtonExpandSmall(map,js,tt) { this.RJSButton(map, 'Expand', js,
'Expand', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
subclass(RJSButtonCollapseSmall,RJSButton);
function RJSButtonCollapseSmall(map,js,tt) { this.RJSButton(map, 'Collapse',
js, 'Collapse', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip =
tt; }
subclass(RJSButtonListSmall,RJSButton);
function RJSButtonListSmall(map,js,tt) { this.RJSButton(map, 'List', js,
'List', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
subclass(RJSButtonEditSmall,RJSButton);
function RJSButtonEditSmall(map,js,tt) { this.RJSButton(map, 'Edit', js,
'Edit', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
subclass(RJSButtonApprovalsSmall,RJSButton);
function RJSButtonApprovalsSmall(map,js,tt) { this.RJSButton(map, 'Approvals',
js, 'Approvals', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip =
tt; }
subclass(RJSButtonNewSmall,RJSButton);
function RJSButtonNewSmall(map,js,tt) { this.RJSButton(map, 'New', js, 'New',
null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
subclass(RJSButtonDeleteSmall,RJSButton);
function RJSButtonDeleteSmall(map,js,tt) { this.RJSButton(map, 'Delete', js,
'Delete', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
subclass(RJSButtonDetailSmall,RJSButton);
function RJSButtonDetailSmall(map,js,tt) { this.RJSButton(map, 'Detail', js,
'Detail', null, RJSButton.statics.eClass_SMALL); if(tt) this.toolTip = tt; }
//--></SCRIPT ><SCRIPT LANGUAGE="JavaScript"><!--
function outsideNew(func,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
{
return new func(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
}
//-->
</SCRIPT ><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/vector.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/objectset.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/user.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/project.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/client.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/task.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/role.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/timeoff.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/recenttasklist.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/activity.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/dataobjects/department.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/gui/htmlappend.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/gui/rjshtmlreferencemap.js"></SCRIPT
><SCRIPT type="text/javascript"src="../html/javascript/gui/rjscss.js"></SCRIPT
><SCRIPT type="text/javascript"src="../html/javascript/gui/rjspage.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/timesheet/rjsfullnamepopupgui.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/utilities/util.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/utilities/coordinates.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/gui/divdropdown.js"></SCRIPT
><SCRIPT
type="text/javascript"src="../html/javascript/timesheet/cell.js"></SCRIPT
><SCRIPT LANGUAGE="Javascript"><!--
var reportpopupwindow;
//--></SCRIPT ><SCRIPT LANGUAGE="JavaScript"><!--
function OpenPopUpWindow(link,windowName,sizeX,sizeY,resize,scroll)
{
var x=window.outerWidth,y=window.outerHeight;
if (document.all)
{
x=screen.width;
y=screen.height;
}
x=(x-sizeX)/2;
y=(y-sizeY)/2;
var windowprops =
'width='+sizeX+',height='+sizeY+',screenX='+x+',screenY='+y+',left='+x+',top='+y+',resizable='+resize+',scrollbars='+scroll;
var windowId=window.open(link,windowName,windowprops);
try
{
windowId.focus();
return windowId;
}
catch(e) { }
return null;
}
function KillMe(StayAlive)
{
setTimeout("self.close()",StayAlive * 1000);
}
//--></SCRIPT ><SCRIPT LANGUAGE="JavaScript"><!--
var resetTimer=false; // set to 'true' to have the idle timer reset on the
next user info window refresh
//-->
</SCRIPT ><SCRIPT LANGUAGE="JavaScript"><!--
function LoadInitialPages()
{
while(!window.mainmenu.mainmenuloaded)
{
}
window.mainmenu.SelectMenu('timesheet','','');
}
var windowObject = new Array();
function OpenPopupWindow(link,windowId,sizeX,sizeY,scrollable)
{
var x=window.outerWidth;
var y=window.outerHeight;
if(document.all)
{
x=screen.width;
y=screen.height;
}
x=(x-sizeX)/2;
y=(y-sizeY)/2;
var bScrollable = 0;
if(scrollable != null && scrollable != undefined)
{
bScrollable = scrollable;
}
var s = new Array();
s[s.length] = 'width=';
s[s.length] = sizeX;
s[s.length] = ',height=';
s[s.length] = sizeY;
s[s.length] = ',screenX=';
s[s.length] = x;
s[s.length] = ',screenY=';
s[s.length] = y;
s[s.length] = ',left=';
s[s.length] = x;
s[s.length] = ',top=';
s[s.length] = y;
s[s.length] = ',resizable=';
s[s.length] = bScrollable;
windowObject[windowId] = window.open(link,windowId,s.join(''));
try
{
windowObject[windowId].focus();
}
catch(e) { }
}
function OpenInterview()
{
var url =
"http://www.replicon.com/tutorials/interview{0}/Login.aspx?LoginId={1}";
url = url.replace(/\{0\}/, "7.5");
url = url.replace(/\{1\}/, "f4d4f15f-d38a-413c-88ad-ee82ad908f93");
OpenPopupWindow(url,'idGuidedSetup',800,500,1);
}
function OpenSetupDashboard()
{
OpenPopupWindow('/cgi/rt.exe/TimeSheet/admin/SetupDashboard/Dashboard.aspx','idGuidedSetup',800,600,1);
}
function OpenAdminOrientation()
{
OpenPopupWindow('/cgi/rt.exe/TimeSheet/admin/adminsplashscreen.aspx','idAdminOrientation',800,600,1);
}
//-->
</SCRIPT ><FRAMESET ROWS="23,*" BORDER=0 ONLOAD="LoadInitialPages()"
NAME="mainfs" ID="mainfs">
<FRAMESET COLS="*,0,0,0" BORDER=0 NAME="menufs" ID="menufs">
<FRAME NAME="mainmenu" SRC="rt.exe?nextpage=menu/mainmenu" SCROLLING=AUTO
MARGINHEIGHT=0 MARGINWIDTH=0 noresize>
<FRAME NAME="staticframe" SRC="../html/common/html/static.html" SCROLLING=AUTO
MARGINHEIGHT=0 noresize>
<FRAME NAME="hidden" SRC="rt.exe?nextpage=registerkeys" SCROLLING=NO
MARGINHEIGHT=0 noresize>
<FRAME NAME="load" SRC="../html/common/html/blank.html" SCROLLING=NO
MARGINHEIGHT=0 noresize>
</FRAMESET>
<FRAMESET COLS="200,0,*" BORDER=0 NAME="verticalfs" ID="verticalfs">
<FRAMESET ROWS="*,55" BORDER=0>
<FRAME NAME="menu" SRC="../html/common/html/blank.html" SCROLLING=AUTO
MARGINHEIGHT=0 MARGINWIDTH=0 noresize>
<FRAME NAME="userinfo" SRC="rt.exe?nextpage=userinfo" SCROLLING=NO
MARGINHEIGHT=1 MARGINWIDTH=1 noresize>
</FRAMESET>
<FRAME NAME="thinmenu" SRC="rt.exe?nextpage=menu/thinmenu" SCROLLING=NO
MARGINHEIGHT=0 noresize>
<FRAME NAME="body"
SRC="rt.exe?donotremember&nextpage=bannerPage&assign=messageKey,GeneratingTimesheet"
SCROLLING=AUTO MARGINHEIGHT=0 noresize>
</FRAMESET>
</FRAMESET>
</HTML>
--
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the webkit-unassigned
mailing list