Bug 309542 Fix a11y problems and crop="right" is deprecated in page info dialog

p=me r=db48x sr=neil.parkwaycc.co.uk
This commit is contained in:
bugzilla%arlen.demon.co.uk 2005-10-02 00:09:37 +00:00
Родитель 8e1f134c7a
Коммит 7e9cc2edcf
8 изменённых файлов: 68 добавлений и 450 удалений

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

@ -1,231 +0,0 @@
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla 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/MPL/
*
* 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 the Platform for Privacy Preferences.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Samir Gehani <sgehani@netscape.com>
* Harish Dhurvasula <harishd@netscape.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTopWin = null;
var gTopDoc = null;
var gIOService = null;
function initTopDocAndWin()
{
if ("arguments" in window && window.arguments.length > 0 &&
window.arguments[0])
{
gTopWin = null;
gTopDoc = window.arguments[0];
}
else
{
if ("gBrowser" in window.opener)
gTopWin = window.opener.gBrowser.contentWindow;
else
gTopWin = window.opener.frames[0];
gTopDoc = gTopWin.document;
}
}
function initP3PTab()
{
initTopDocAndWin();
var mainLinkNode = document.getElementById("mainLink");
mainLinkNode.setAttribute("label", gTopDoc.location.href);
// now select the main link
var tree = document.getElementById("linkList");
tree.view.selection.select(0);
var linkTypes =
[
// Tag Attr List node ID
["a", "href", "linkKids"],
["applet", "code", "appletKids"],
["area", "href", "imageMapKids"],
["form", "action", "formKids"],
["frame", "src", "frameKids"],
["iframe", "src", "frameKids"],
["img", "src", "imageKids"],
["image", "src", "imageKids"],
["link", "href", "externalDocKids"],
["object", "codebase", "objectKids"],
["object", "data", "objectKids"],
["script", "src", "scriptKids"]
];
var list, i, j;
var length = linkTypes.length;
for (i = 0; i < length; ++i)
{
list = getLinksFor(linkTypes[i][0], linkTypes[i][1], gTopWin, gTopDoc);
// now add list items under appropriate link type in the tree
var len = list.length;
for (j = 0; j < len; ++j)
{
addRow(linkTypes[i][2], list[j]);
}
}
}
function makeURLAbsolute(url, base)
{
if (url.indexOf(':') > -1)
return url;
if (!gIOService) {
gIOService =
Components.classes["@mozilla.org/network/io-service;1"].getService(nsIIOService);
}
var baseURI = gIOService.newURI(base, null, null);
return gIOService.newURI(baseURI.resolve(url), null, null).spec;
}
function getLinksFor(aTagName, aAttrName, aWin, aDoc)
{
var i, frame, length, list = new Array;
// cycle through frames
if (aWin)
{
length = aWin.frames.length;
for (i = 0; i < length; ++i)
{
frame = aWin.frames[i];
list = list.concat(getLinksFor(aTagName, aAttrName,
frame, frame.document));
}
}
// now look for tags in the leaf document
var elts = aDoc.getElementsByTagName(aTagName);
length = elts.length;
for (i = 0; i < length; ++i)
{
var url = elts[i].getAttribute(aAttrName);
if (url) {
try {
// The user sees the links as absolute when mousing over.
// The link list does not show the base URL for the user,
// so this is the only way we can indicate where things
// really point to in the link list.
list.push(makeURLAbsolute(url, elts[i].baseURI));
} catch (e) {
// XXX Ignore for now, most likely bad URL, but could also be
// something really serious like out of memory.
}
}
}
return list;
}
function addRow(aRootID, aLabel)
{
const kXULNS =
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
var root = document.getElementById(aRootID);
var item = document.createElementNS(kXULNS, "treeitem");
root.appendChild(item);
var row = document.createElementNS(kXULNS, "treerow");
item.appendChild(row);
var cell = document.createElementNS(kXULNS, "treecell");
cell.setAttribute("label", aLabel);
row.appendChild(cell);
}
function getSelectedURI()
{
var URI = null;
var tree = document.getElementById("linkList");
var selectedItem = tree.contentView.getItemAtIndex(tree.currentIndex);
if (selectedItem)
{
var selectedRow =
selectedItem.getElementsByTagName("treerow")[0];
if (selectedRow)
{
var selectedCell =
selectedRow.getElementsByTagName("treecell")[0];
if (selectedCell)
URI = selectedCell.getAttribute("label");
}
}
return URI;
}
//---------------------------------------------------------------------------
// Interface to P3P backend
//---------------------------------------------------------------------------
var gPolicyViewer = null; // one policy viewer per page info window
var gPrivacyTabInfo = null;
function onMachineReadable()
{
if (!gPolicyViewer) {
gPolicyViewer = new nsPolicyViewer(gTopDoc);
}
gPolicyViewer.load(getSelectedURI(), LOAD_SUMMARY);
}
function onHumanReadable()
{
if (!gPolicyViewer) {
gPolicyViewer = new nsPolicyViewer(gTopDoc);
}
gPolicyViewer.load(getSelectedURI(), LOAD_POLICY);
}
function onOptInOptOut()
{
if (!gPolicyViewer) {
gPolicyViewer = new nsPolicyViewer(gTopDoc);
}
gPolicyViewer.load(getSelectedURI(), LOAD_OPTIONS);
}
function finalizePolicyViewer()
{
if (gPolicyViewer)
gPolicyViewer.finalize();
}
addEventListener("unload", finalizePolicyViewer, false);

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

@ -62,16 +62,10 @@
// Get the window for this information
var w;
#ifdef MOZ_PHOENIX
if (window.arguments[0] && window.arguments[0].doc)
if ("arguments" in window && window.arguments.length > 0 &&
window.arguments[0] && window.arguments[0].doc)
{
w = window.arguments[0].doc;
#else
if ("arguments" in window && window.arguments.length > 0 && window.arguments[0])
{
w = window.arguments[0];
#endif
// w = window.arguments[0].doc;
// We don't have separate info for a frame, return null until further notice
// (see bug 138479)
return null;

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

@ -20,7 +20,7 @@ pippki.jar:
content/pippki/ssl2ciphers.xul (content/ssl2ciphers.xul)
content/pippki/ssl3tlsciphers.xul (content/ssl3tlsciphers.xul)
content/pippki/ssl3tlsciphers2.xul (content/ssl3tlsciphers2.xul)
* content/pippki/PageInfoOverlay.xul (content/PageInfoOverlay.xul)
content/pippki/PageInfoOverlay.xul (content/PageInfoOverlay.xul)
content/pippki/newserver.js (content/newserver.js)
* content/pippki/newserver.xul (content/newserver.xul)
content/pippki/downloadcert.js (content/downloadcert.js)

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

@ -1,72 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla 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/MPL/
*
* 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.
*
* The Initial Developer of the Original Code is Daniel Brooks.
* Portions created by the Initial Developer are Copyright (C) 2001-2004
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the LGPL or the GPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK *****
*/
@import "chrome://global/skin/";
tree {
margin: .5em;
}
textbox,
textbox > .textbox-internal-box,
textbox > .textarea-internal-box {
background: transparent !important;
border: none;
padding: 0px;
-moz-appearance: none;
}
textbox.header {
margin-left: 0;
}
.iframe {
margin: .5em;
background: white;
overflow: auto;
}
#thepreviewimage {
margin: 1em;
}
.fixedsize {
height: 8.5em;
}
textbox[disabled] {
font-style: italic;
}

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

@ -1,72 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla 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/MPL/
*
* 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.
*
* The Initial Developer of the Original Code is Daniel Brooks.
* Portions created by the Initial Developer are Copyright (C) 2001-2004
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the LGPL or the GPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK *****
*/
@import "chrome://global/skin/";
tree {
margin: .5em;
}
textbox,
textbox > .textbox-internal-box,
textbox > .textarea-internal-box {
background: transparent !important;
border: none;
padding: 0px;
}
textbox.header {
margin-left: 0;
}
.iframe {
margin: .5em;
background: white;
overflow: auto;
}
#thepreviewimage {
margin: 1em;
}
.fixedsize {
height: 8.5em;
}
textbox[disabled]
{
font-style: italic;
}

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

@ -1715,13 +1715,12 @@ function BrowserViewSourceOfURL(url, charset, pageCookie)
}
// doc=null for regular page info, doc=owner document for frame info.
function BrowserPageInfo(doc, tab)
function BrowserPageInfo(doc, initialTab)
{
window.openDialog("chrome://navigator/content/pageInfo.xul",
"_blank",
"chrome,dialog=no",
doc,
tab);
{doc: doc, initialTab: initialTab});
}
function hiddenWindowStartup()

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

@ -245,8 +245,10 @@ const XHTMLre = RegExp(XHTMLNSre + "|" + XHTML2NSre, "");
var onLoadRegistry = [ ];
/* Called when PageInfo window is loaded. Arguments are:
* window.arguments[0] - document to use for source (null=Page Info, otherwise Frame Info)
* window.arguments[1] - tab name to display first (may be null)
* window.arguments[0] - (optional) an object consisting of
* - doc: (optional) document to use for source. if not provided,
* the calling window's document will be used
* - initialTab: (optional) id of the inital tab to display
*/
function onLoadPageInfo()
{
@ -274,10 +276,11 @@ function onLoadPageInfo()
gStrings.mediaInput = theBundle.getString("mediaInput");
var docTitle = "";
if ("arguments" in window && window.arguments.length >= 1 && window.arguments[0])
if ("arguments" in window && window.arguments.length >= 1 &&
window.arguments[0] && window.arguments[0].doc)
{
theWindow = null;
theDocument = window.arguments[0];
theDocument = window.arguments[0].doc;
docTitle = theBundle.getString("frameInfo.title");
}
else
@ -305,21 +308,18 @@ function onLoadPageInfo()
onLoadRegistry[x]();
}
/* Select the requested tab, if the name is specified */
if ("arguments" in window && window.arguments.length > 1)
{
var tabName = window.arguments[1];
if (tabName)
{
var tabControl = document.getElementById("tabbox");
var tab = document.getElementById(tabName);
if (tabControl && tab)
if (tabControl)
{
/* Select the requested tab, if the name is specified */
if ("arguments" in window && window.arguments.length >= 1 &&
window.arguments[0] && window.arguments[0].initialTab)
{
var tab = document.getElementById(window.arguments[0].initialTab);
if (tab)
tabControl.selectedTab = tab;
}
}
tabControl.selectedTab.focus();
}
}

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

@ -102,7 +102,7 @@
<!-- General page information -->
<vbox>
<textbox class="header" readonly="true" crop="right" id="titletext"/>
<textbox class="header" readonly="true" id="titletext"/>
<grid>
<columns>
<column/>
@ -111,60 +111,60 @@
</columns>
<rows>
<row>
<label value="&generalURL;"/>
<label control="urltext" value="&generalURL;"/>
<separator/>
<textbox readonly="true" crop="right" id="urltext"/>
<textbox readonly="true" id="urltext"/>
</row>
<row>
<separator class="thin"/>
</row>
<row>
<label value="&generalType;"/>
<label control="typetext" value="&generalType;"/>
<separator/>
<textbox readonly="true" crop="right" id="typetext"/>
<textbox readonly="true" id="typetext"/>
</row>
<row>
<label value="&generalMode;"/>
<label control="modetext" value="&generalMode;"/>
<separator/>
<textbox readonly="true" crop="right" id="modetext"/>
<textbox readonly="true" id="modetext"/>
</row>
<row>
<label value="&generalSource;"/>
<label control="sourcetext" value="&generalSource;"/>
<separator/>
<textbox readonly="true" crop="right" id="sourcetext"/>
<textbox readonly="true" id="sourcetext"/>
</row>
<row>
<label value="&generalEncoding;"/>
<label control="encodingtext" value="&generalEncoding;"/>
<separator/>
<textbox readonly="true" crop="right" id="encodingtext"/>
<textbox readonly="true" id="encodingtext"/>
</row>
<row>
<label value="&generalSize;"/>
<label control="sizetext" value="&generalSize;"/>
<separator/>
<textbox readonly="true" crop="right" id="sizetext"/>
<textbox readonly="true" id="sizetext"/>
</row>
<row>
<label value="&generalReferrer;"/>
<label control="refertext" value="&generalReferrer;"/>
<separator/>
<textbox readonly="true" crop="right" id="refertext"/>
<textbox readonly="true" id="refertext"/>
</row>
<row>
<separator class="thin"/>
</row>
<row>
<label value="&generalModified;"/>
<label control="modifiedtext" value="&generalModified;"/>
<separator/>
<textbox readonly="true" crop="right" id="modifiedtext"/>
<textbox readonly="true" id="modifiedtext"/>
</row>
<row>
<label value="&generalExpires;"/>
<label control="expirestext" value="&generalExpires;"/>
<separator/>
<textbox readonly="true" crop="right" id="expirestext"/>
<textbox readonly="true" id="expirestext"/>
</row>
</rows>
</grid>
<separator class="thin"/>
<text id="metahead" class="header" value="&generalMeta;"/>
<label id="metahead" control="metatree" class="header" value="&generalMeta;"/>
<tree id="metatree" flex="1" contextmenu="picontext">
<treecols>
<treecol persist="hidden width" flex="1" id="meta-name" label="&generalMetaName;"/>
@ -202,18 +202,18 @@
</columns>
<rows>
<row>
<label value="&formEncoding;"/>
<label control="formenctype" value="&formEncoding;"/>
<separator/>
<textbox readonly="true" crop="right" id="formenctype"/>
<textbox readonly="true" id="formenctype"/>
</row>
<row>
<label value="&formTarget;"/>
<label control="formtarget" value="&formTarget;"/>
<separator/>
<textbox readonly="true" crop="right" class="label" id="formtarget"/>
<textbox readonly="true" class="label" id="formtarget"/>
</row>
</rows>
</grid>
<text class="header" value="&formFields;"/>
<label control="formpreview" class="header" value="&formFields;"/>
<tree id="formpreview" flex="1" contextmenu="picontext">
<treecols>
<treecol sortSeparators="true" persist="hidden width" flex="3"
@ -284,59 +284,59 @@
</columns>
<rows>
<row>
<label value="&mediaURL;"/>
<label control="imageurltext" value="&mediaURL;"/>
<separator/>
<textbox readonly="true" crop="right" id="imageurltext"/>
<textbox readonly="true" id="imageurltext"/>
</row>
<row>
<label value="&mediaTitle;"/>
<label control="imagetitletext" value="&mediaTitle;"/>
<separator/>
<textbox readonly="true" crop="right" id="imagetitletext"/>
<textbox readonly="true" id="imagetitletext"/>
</row>
<row>
<label value="&mediaAlt;"/>
<label control="imagealttext" value="&mediaAlt;"/>
<separator/>
<textbox readonly="true" crop="right" id="imagealttext"/>
<textbox readonly="true" id="imagealttext"/>
</row>
<row>
<label value="&mediaLongdesc;"/>
<label control="imagelongdesctext" value="&mediaLongdesc;"/>
<separator/>
<textbox readonly="true" crop="right" id="imagelongdesctext"/>
<textbox readonly="true" id="imagelongdesctext"/>
</row>
<row>
<label value="&generalType;"/>
<label control="imagetypetext" value="&generalType;"/>
<separator/>
<textbox readonly="true" crop="right" id="imagetypetext"/>
<textbox readonly="true" id="imagetypetext"/>
</row>
<row>
<label value="&generalSource;"/>
<label control="imagesourcetext" value="&generalSource;"/>
<separator/>
<textbox readonly="true" crop="right" id="imagesourcetext"/>
<textbox readonly="true" id="imagesourcetext"/>
</row>
<row>
<label value="&generalSize;"/>
<label control="imagesizetext" value="&generalSize;"/>
<separator/>
<textbox readonly="true" crop="right" id="imagesizetext"/>
<textbox readonly="true" id="imagesizetext"/>
</row>
<row>
<label value="&generalExpires;"/>
<label control="imageexpirestext" value="&generalExpires;"/>
<separator/>
<textbox readonly="true" crop="right" id="imageexpirestext"/>
<textbox readonly="true" id="imageexpirestext"/>
</row>
<row>
<label value="&mediaDimensions;"/>
<label control="imageSize" value="&mediaDimensions;"/>
<separator/>
<textbox readonly="true" crop="right" id="imageSize"/>
<textbox readonly="true" id="imageSize"/>
</row>
<row id="physRow" collapsed="true">
<label value="&mediaPhysDimensions;"/>
<label control="physSize" value="&mediaPhysDimensions;"/>
<separator/>
<textbox readonly="true" crop="right" id="physSize"/>
<textbox readonly="true" id="physSize"/>
</row>
</rows>
</grid>
<hbox align="end">
<label value="&mediaPreview;" class="header"/>
<label control="thepreviewimage" value="&mediaPreview;" class="header"/>
<spacer flex="1"/>
<button label="&mediaSaveAs;" accesskey="&mediaSaveAs.accesskey;"
id="imagesaveasbutton" disabled="true"