Bug 339102 - New Page Info dialog. work done by Florian Queze <f.qu@queze.net>, ui-r=beltzner, r=me.

This commit is contained in:
mozilla.mano%sent.com 2007-04-13 01:26:39 +00:00
Родитель e3bc560aae
Коммит 557ee32a6f
19 изменённых файлов: 2505 добавлений и 42 удалений

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

@ -2218,8 +2218,8 @@ function BrowserPageInfo(doc, initialTab)
var args = {doc: doc, initialTab: initialTab};
toOpenDialogByTypeAndUrl("Browser:page-info",
doc ? doc.location : window.content.document.location,
"chrome://browser/content/pageInfo.xul",
"chrome,dialog=no",
"chrome://browser/content/pageinfo/pageInfo.xul",
"chrome,toolbar,dialog=no,resizable",
args);
}
@ -4221,7 +4221,7 @@ function onViewToolbarCommand(aEvent)
function displaySecurityInfo()
{
BrowserPageInfo(null, "securityTab");
BrowserPageInfo(null, "security");
}
/**

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

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

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

@ -0,0 +1,78 @@
# -*- Mode: C++; tab-width: 8; 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 feed tab for Page Info.
#
# The Initial Developer of the Original Code is
# Florian QUEZE <f.qu@queze.net>
# Portions created by the Initial Developer are Copyright (C) 2006
# 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 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 *****
function initFeedTab()
{
const feedTypes = {
"application/rss+xml": gBundle.getString("feedRss"),
"application/atom+xml": gBundle.getString("feedAtom")
};
// get the feeds
var linkNodes = gDocument.getElementsByTagName("link");
var length = linkNodes.length;
for (var i = 0; i < length; i++) {
if (linkNodes[i].rel == "alternate" &&
linkNodes[i].type in feedTypes &&
linkNodes[i].href) {
addRow(linkNodes[i].title,
feedTypes[linkNodes[i].type],
linkNodes[i].href);
}
}
var feedListbox = document.getElementById("feedListbox");
if (feedListbox.getRowCount() > 0)
document.getElementById("feedTab").hidden = false;
}
function onSubscribeFeed()
{
var listbox = document.getElementById("feedListbox");
openUILink(listbox.selectedItem.getAttribute("feedURL"),
null, false, true, false, null);
}
function addRow(name, type, url)
{
var item = document.createElement("richlistitem");
item.setAttribute("feed", "true");
item.setAttribute("name", name);
item.setAttribute("type", type);
item.setAttribute("feedURL", url);
document.getElementById("feedListbox").appendChild(item);
}

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

@ -0,0 +1,64 @@
<?xml version="1.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 the feed tab for Page Info.
#
# The Initial Developer of the Original Code is
# Florian QUEZE <f.qu@queze.net>
# Portions created by the Initial Developer are Copyright (C) 2006
# 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 *****
<!DOCTYPE bindings [
<!ENTITY % pageInfoDTD SYSTEM "chrome://browser/locale/pageInfo.dtd">
%pageInfoDTD;
]>
<bindings id="feedBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="feed" extends="chrome://global/content/bindings/richlistbox.xml#richlistitem">
<content>
<xul:vbox flex="1">
<xul:hbox flex="1">
<xul:textbox flex="1" readonly="true" xbl:inherits="value=name"
class="feedTitle"/>
<xul:label xbl:inherits="value=type"/>
</xul:hbox>
<xul:textbox xbl:inherits="value=feedURL" readonly="true"/>
<xul:hbox flex="1" class="feed-subscribe">
<xul:spacer flex="1"/>
<xul:button label="&feedSubscribe;" oncommand="onSubscribeFeed()"/>
</xul:hbox>
</xul:vbox>
</content>
</binding>
</bindings>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -0,0 +1,395 @@
<?xml version="1.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, released
# March 31, 1998.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998-1999
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Simeon Morrison <smorrison@gte.com>
# Chris McAfee <mcafee@netscape.com>
# Daniel Brooks <db48x@yahoo.com>
# Gervase Markham <gerv@gerv.net>
# Florian QUEZE <f.qu@queze.net>
#
# 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 *****
<?xml-stylesheet href="chrome://browser/content/pageinfo/pageInfo.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/pageInfo.css" type="text/css"?>
<!DOCTYPE window [
<!ENTITY % pageInfoDTD SYSTEM "chrome://browser/locale/pageInfo.dtd">
%pageInfoDTD;
]>
#ifdef XP_MACOSX
<?xul-overlay href="chrome://browser/content/macBrowserOverlay.xul"?>
#endif
<window id="main-window"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
windowtype="Browser:page-info"
onload="onLoadPageInfo()"
onunload="onUnloadPageInfo()"
align="stretch"
screenX="10" screenY="10"
width="&pageInfoWindow.width;" height="&pageInfoWindow.height;"
persist="screenX screenY width height sizemode">
<script type="application/x-javascript" src="chrome://global/content/globalOverlay.js"/>
<script type="application/x-javascript" src="chrome://global/content/contentAreaUtils.js"/>
<script type="application/x-javascript" src="chrome://browser/content/pageinfo/pageInfo.js"/>
<script type="application/x-javascript" src="chrome://browser/content/pageinfo/feeds.js"/>
<script type="application/x-javascript" src="chrome://browser/content/pageinfo/permissions.js"/>
<script type="application/x-javascript" src="chrome://browser/content/pageinfo/security.js"/>
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<script type="application/x-javascript" src="chrome://help/content/contextHelp.js"/>
<script type="application/x-javascript" src="chrome://browser/content/utilityOverlay.js"/>
<stringbundleset id="pageinfobundleset">
<stringbundle id="pageinfobundle" src="chrome://browser/locale/pageInfo.properties"/>
</stringbundleset>
<commandset id="pageInfoCommandSet">
<command id="cmd_close" oncommand="window.close();"/>
<command id="cmd_help" oncommand="doHelpButton();"/>
<command id="cmd_copy" oncommand="doCopy();"/>
<command id="cmd_selectall" oncommand="doSelectAll();"/>
<!-- permissions tab -->
<command id="cmd_imageDef" oncommand="onCheckboxClick('image');"/>
<command id="cmd_popupDef" oncommand="onCheckboxClick('popup');"/>
<command id="cmd_cookieDef" oncommand="onCheckboxClick('cookie');"/>
<command id="cmd_installDef" oncommand="onCheckboxClick('install');"/>
<command id="cmd_imageToggle" oncommand="onRadioClick('image');"/>
<command id="cmd_popupToggle" oncommand="onRadioClick('popup');"/>
<command id="cmd_cookieToggle" oncommand="onRadioClick('cookies');"/>
<command id="cmd_installToggle" oncommand="onRadioClick('install');"/>
</commandset>
<keyset>
<key key="&closeWindow.key;" modifiers="accel" command="cmd_close"/>
<key keycode="VK_ESCAPE" command="cmd_close"/>
#ifdef XP_MACOSX
<key key="." modifiers="meta" command="cmd_close"/>
#endif
<key keycode="VK_F1" command="cmd_help"/>
<key key="&copy.key;" modifiers="accel" command="cmd_copy"/>
<key key="&selectall.key;" modifiers="accel" command="cmd_selectall"/>
<key key="&selectall.key;" modifiers="alt" command="cmd_selectall"/>
</keyset>
<menupopup id="picontext">
<menuitem label="&selectall.label;" command="cmd_selectall" accesskey="&selectall.accesskey;"/>
<menuitem label="&copy.label;" command="cmd_copy" accesskey="&copy.accesskey;"/>
</menupopup>
<stack id="topStackBar">
<radiogroup id="viewGroup" class="viewSelector chromeclass-toolbar" orient="horizontal">
<radio id="generalTab" label="&generalTab;" accesskey="&generalTab.accesskey;"
oncommand="showTab('general');"/>
<radio id="mediaTab" label="&mediaTab;" accesskey="&mediaTab.accesskey;"
oncommand="showTab('media'); ensureSelection(gImageView)" hidden="true"/>
<radio id="feedTab" label="&feedTab;" accesskey="&feedTab.accesskey;"
oncommand="showTab('feed');" hidden="true"/>
<radio id="permTab" label="&permTab;" accesskey="&permTab.accesskey;"
oncommand="showTab('perm');"/>
<radio id="securityTab" label="&securityTab;" accesskey="&securityTab.accesskey;"
oncommand="showTab('security');"/>
<!-- Others added by overlay -->
</radiogroup>
</stack>
<deck id="mainDeck" flex="1">
<!-- General page information -->
<vbox id="generalPanel">
<textbox class="header" readonly="true" id="titletext"/>
<grid>
<columns>
<column/>
<column class="gridSeparator"/>
<column flex="1"/>
</columns>
<rows>
<row>
<label control="urltext" value="&generalURL;"/>
<separator/>
<textbox readonly="true" id="urltext"/>
</row>
<row>
<separator class="thin"/>
</row>
<row>
<label control="typetext" value="&generalType;"/>
<separator/>
<textbox readonly="true" id="typetext"/>
</row>
<row>
<label control="encodingtext" value="&generalEncoding;"/>
<separator/>
<textbox readonly="true" id="encodingtext"/>
</row>
<row>
<label control="sizetext" value="&generalSize;"/>
<separator/>
<textbox readonly="true" id="sizetext"/>
</row>
<row>
<label control="refertext" value="&generalReferrer;"/>
<separator/>
<textbox readonly="true" id="refertext"/>
</row>
<row>
<separator class="thin"/>
</row>
<row>
<label control="modifiedtext" value="&generalModified;"/>
<separator/>
<textbox readonly="true" id="modifiedtext"/>
</row>
</rows>
</grid>
<separator class="thin"/>
<groupbox id="metaTags" flex="1">
<caption id="metaTagsCaption" onclick="toggleGroupbox('metaTags');"/>
<tree id="metatree" flex="1" contextmenu="picontext">
<treecols>
<treecol id="meta-name" label="&generalMetaName;"
ignoreincolumnpicker="true" persist="width" flex="1"/>
<splitter class="tree-splitter"/>
<treecol id="meta-content" label="&generalMetaContent;"
ignoreincolumnpicker="true" persist="width" flex="4"/>
</treecols>
<treechildren flex="1"/>
</tree>
</groupbox>
<groupbox id="securityBox">
<caption label="&securityHeader;" onclick="toggleGroupbox('securityBox');"/>
<description id="general-security-identity" class="header"/>
<description id="general-security-privacy" class="header"/>
<hbox align="right">
<button id="security-view-more" label="&generalSecurityMore;"
accesskey="&generalSecurityMore.accesskey;"
oncommand="onClickMore();"/>
</hbox>
</groupbox>
</vbox>
<!-- Media information -->
<vbox id="mediaPanel">
<tree id="imagetree" onselect="onImageSelect();" contextmenu="picontext"
ondraggesture="onBeginLinkDrag(event,'image-address','image-alt')">
<treecols>
<treecol sortSeparators="true" persist="hidden width" flex="10"
width="10" id="image-address" label="&mediaAddress;"/>
<splitter class="tree-splitter"/>
<treecol sortSeparators="true" persist="hidden width" flex="2"
width="2" id="image-type" label="&mediaType;"/>
<splitter class="tree-splitter"/>
<treecol sortSeparators="true" hidden="true" persist="hidden width" flex="2"
width="2" id="image-size" label="&mediaSize;"/>
<splitter class="tree-splitter"/>
<treecol sortSeparators="true" hidden="true" persist="hidden width" flex="4"
width="4" id="image-alt" label="&mediaAltHeader;"/>
<splitter class="tree-splitter"/>
<treecol sortSeparators="true" hidden="true" persist="hidden width" flex="1"
width="1" id="image-count" label="&mediaCount;"/>
</treecols>
<treechildren flex="1"/>
</tree>
<splitter orient="vertical" id="mediaSplitter"/>
<vbox flex="1" id="mediaPreviewBox" collapsed="true">
<grid>
<columns>
<column/>
<column class="gridSeparator"/>
<column flex="1"/>
</columns>
<rows>
<row>
<label control="imageurltext" value="&mediaURL;"/>
<separator/>
<textbox readonly="true" id="imageurltext"/>
</row>
<row>
<label control="imagetitletext" value="&mediaTitle;"/>
<separator/>
<textbox readonly="true" id="imagetitletext"/>
</row>
<row>
<label control="imagealttext" value="&mediaAlt;"/>
<separator/>
<textbox readonly="true" id="imagealttext"/>
</row>
<row>
<label control="imagelongdesctext" value="&mediaLongdesc;"/>
<separator/>
<textbox readonly="true" id="imagelongdesctext"/>
</row>
<row>
<label control="imagetypetext" value="&generalType;"/>
<separator/>
<textbox readonly="true" id="imagetypetext"/>
</row>
<row>
<label control="imagesourcetext" value="&generalSource;"/>
<separator/>
<textbox readonly="true" id="imagesourcetext"/>
</row>
<row>
<label control="imagesizetext" value="&generalSize;"/>
<separator/>
<textbox readonly="true" id="imagesizetext"/>
</row>
<row>
<label control="imageSize" value="&mediaDimensions;"/>
<separator/>
<textbox readonly="true" id="imageSize"/>
</row>
<row>
<label control="physSize" value="&mediaPhysDimensions;"/>
<separator/>
<textbox readonly="true" id="physSize"/>
</row>
</rows>
</grid>
<hbox align="end">
<vbox>
<checkbox id="blockImage" hidden="true" oncommand="onBlockImage()"/>
<label control="thepreviewimage" value="&mediaPreview;" class="header"/>
</vbox>
<spacer flex="1"/>
<button label="&mediaSaveAs;" accesskey="&mediaSaveAs.accesskey;"
icon="save" id="imagesaveasbutton"
oncommand="saveMedia();"/>
</hbox>
<vbox class="inset iframe" flex="1" pack="center">
<hbox id="theimagecontainer" pack="center">
<image id="thepreviewimage"/>
</hbox>
<hbox id="brokenimagecontainer" pack="center" collapsed="true">
<image id="brokenimage" src="resource:///res/broken-image.gif"/>
</hbox>
</vbox>
</vbox>
<hbox id="mediaSaveBox" collapsed="true">
<spacer flex="1"/>
<button label="&mediaSaveAs;" accesskey="&mediaSaveAs.accesskey;"
icon="save" oncommand="saveMedia();"/>
</hbox>
</vbox>
<!-- Feeds -->
<vbox id="feedPanel">
<richlistbox id="feedListbox" flex="1"/>
</vbox>
<!-- Permissions -->
<vbox id="permPanel">
<hbox>
<label value="&permissionsFor;" control="hosttext" />
<textbox id="hostText" class="header" readonly="true"
crop="end" flex="1"/>
</hbox>
<vbox id="permList" flex="1">
<vbox>
<label value="&permImage;"/>
<hbox>
<checkbox id="imageDef" command="cmd_imageDef" label="&permUseDefault;"/>
<spacer flex="1"/>
<radiogroup id="imageRadioGroup" orient="horizontal">
<radio id="image#1" command="cmd_imageToggle" label="&permAllow;"/>
<radio id="image#2" command="cmd_imageToggle" label="&permBlock;"/>
</radiogroup>
</hbox>
</vbox>
<vbox>
<label value="&permPopup;"/>
<hbox>
<checkbox id="popupDef" command="cmd_popupDef" label="&permUseDefault;"/>
<spacer flex="1"/>
<radiogroup id="popupRadioGroup" orient="horizontal">
<radio id="popup#1" command="cmd_popupToggle" label="&permAllow;"/>
<radio id="popup#2" command="cmd_popupToggle" label="&permBlock;"/>
</radiogroup>
</hbox>
</vbox>
<vbox>
<label value="&permCookie;"/>
<hbox>
<checkbox id="cookieDef" command="cmd_cookieDef" label="&permUseDefault;"/>
<spacer flex="1"/>
<radiogroup id="cookieRadioGroup" orient="horizontal">
<radio id="cookie#1" command="cmd_cookieToggle" label="&permAllow;"/>
<radio id="cookie#8" command="cmd_cookieToggle" label="&permAllowSession;"/>
<radio id="cookie#2" command="cmd_cookieToggle" label="&permBlock;"/>
</radiogroup>
</hbox>
</vbox>
<vbox>
<label value="&permInstall;"/>
<hbox>
<checkbox id="installDef" command="cmd_installDef" label="&permUseDefault;"/>
<spacer flex="1"/>
<radiogroup id="installRadioGroup" orient="horizontal">
<radio id="install#1" command="cmd_installToggle" label="&permAllow;"/>
<radio id="install#2" command="cmd_installToggle" label="&permBlock;"/>
</radiogroup>
</hbox>
</vbox>
</vbox>
</vbox>
<vbox id="securityPanel">
<textbox id="security-identity" readonly="true" class="header"/>
<description id="security-identity-text" control="security-identity" flex="1"/>
<hbox align="center">
<button id="security-view-cert" label="&securityView.label;"
accesskey="&securityView.accesskey;"
oncommand="security.viewCert();"/>
<description id="security-view-text" control="security-view-cert" flex="1"/>
</hbox>
<separator class="groove"/>
<description id="security-privacy" class="header"/>
<textbox id="security-privacy" readonly="true" multiline="true" class="header"/>
<vbox flex="1">
<description id="security-privacy-msg1" control="security-privacy"/>
<description id="security-privacy-msg2" control="security-privacy"/>
</vbox>
</vbox>
<!-- Others added by overlay -->
</deck>
#ifdef XP_MACOSX
#include ../browserMountPoints.inc
#endif
</window>

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

@ -0,0 +1,166 @@
# ***** 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 permission tab for Page Info.
#
# The Initial Developer of the Original Code is
# Florian QUEZE <f.qu@queze.net>
# Portions created by the Initial Developer are Copyright (C) 2006
# 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 *****
const ALLOW = nsIPermissionManager.ALLOW_ACTION; // 1
const BLOCK = nsIPermissionManager.DENY_ACTION; // 2
const SESSION = nsICookiePermission.ACCESS_SESSION;// 8
var gPermURI;
var gPrefs;
var gPermObj = {
image: function getImageDefaultPermission()
{
if (gPrefs.getIntPref("permissions.default.image") == 2)
return BLOCK;
return ALLOW;
},
cookie: function getCookieDefaultPermission()
{
if (gPrefs.getIntPref("network.cookie.cookieBehavior") == 2)
return BLOCK;
if (gPrefs.getIntPref("network.cookie.lifetimePolicy") == 2)
return SESSION;
return ALLOW;
},
popup: function getPopupDefaultPermission()
{
if (gPrefs.getBoolPref("dom.disable_open_during_load"))
return BLOCK;
return ALLOW;
},
install: function getInstallDefaultPermission()
{
if (gPrefs.getBoolPref("xpinstall.whitelist.required"))
return BLOCK;
return ALLOW;
}
};
var permissionObserver = {
observe: function (aSubject, aTopic, aData)
{
if (aTopic == "perm-changed") {
var permission = aSubject.QueryInterface(Components.interfaces.nsIPermission);
if (permission.host == gPermURI.host && permission.type in gPermObj)
initRow(permission.type);
}
}
};
function onLoadPermission()
{
gPrefs = Components.classes[PREFERENCES_CONTRACTID]
.getService(Components.interfaces.nsIPrefBranch2);
var uri = gDocument.documentURIObject;
if(/^https?/.test(uri.scheme)) {
gPermURI = uri;
var hostText = document.getElementById("hostText");
hostText.value = gPermURI.host;
for (var i in gPermObj)
initRow(i);
var os = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
os.addObserver(permissionObserver, "perm-changed", false);
onUnloadRegistry.push(onUnloadPermission);
}
else
document.getElementById("permTab").hidden = true;
}
function onUnloadPermission()
{
var os = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
os.removeObserver(permissionObserver, "perm-changed");
}
function initRow(aPartId)
{
var permissionManager = Components.classes[PERMISSION_CONTRACTID]
.getService(nsIPermissionManager);
var checkbox = document.getElementById(aPartId + "Def");
var command = document.getElementById("cmd_" + aPartId + "Toggle");
var perm = permissionManager.testPermission(gPermURI, aPartId);
if (perm) {
checkbox.checked = false;
command.removeAttribute("disabled");
}
else {
checkbox.checked = true;
command.setAttribute("disabled", "true");
perm = gPermObj[aPartId]();
}
setRadioState(aPartId, perm);
}
function onCheckboxClick(aPartId)
{
var permissionManager = Components.classes[PERMISSION_CONTRACTID]
.getService(nsIPermissionManager);
var command = document.getElementById("cmd_" + aPartId + "Toggle");
var checkbox = document.getElementById(aPartId + "Def");
if (checkbox.checked) {
permissionManager.remove(gPermURI.host, aPartId);
command.setAttribute("disabled", "true");
var perm = gPermObj[aPartId]();
setRadioState(aPartId, perm);
}
else {
onRadioClick(aPartId);
command.removeAttribute("disabled");
}
}
function onRadioClick(aPartId)
{
var permissionManager = Components.classes[PERMISSION_CONTRACTID]
.getService(nsIPermissionManager);
var radioGroup = document.getElementById(aPartId + "RadioGroup");
var id = radioGroup.selectedItem.id;
var permission = id.split('#')[1];
permissionManager.add(gPermURI, aPartId, permission);
}
function setRadioState(aPartId, aValue)
{
var radio = document.getElementById(aPartId + "#" + aValue);
radio.radioGroup.selectedItem = radio;
}

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

@ -0,0 +1,221 @@
# -*- Mode: Java; 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 mozilla.org code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corp.
# Portions created by the Initial Developer are Copyright (C) 2001
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Terry Hayes <thayes@netscape.com>
# Florian QUEZE <f.qu@queze.net>
#
# 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 security = {
// Display the server certificate (static)
viewCert : function () {
var cert = security._cert;
viewCertHelper(window, cert);
},
_getSecurityInfo : function() {
const nsIX509Cert = Components.interfaces.nsIX509Cert;
const nsIX509CertDB = Components.interfaces.nsIX509CertDB;
const nsX509CertDB = "@mozilla.org/security/x509certdb;1";
const nsISSLStatusProvider = Components.interfaces.nsISSLStatusProvider;
const nsISSLStatus = Components.interfaces.nsISSLStatus;
// We don't have separate info for a frame, return null until further notice
// (see bug 138479)
if (gWindow != gWindow.top)
return null;
var hName = null;
try {
hName = gWindow.location.host;
}
catch (exception) { }
var ui = security._getSecurityUI();
var status = null;
var sp = null;
var isBroken = false;
if (ui) {
isBroken = (ui.state == Components.interfaces.nsIWebProgressListener.STATE_IS_BROKEN);
sp = ui.QueryInterface(nsISSLStatusProvider);
if (sp)
status = sp.SSLStatus;
}
if (status) {
status = status.QueryInterface(nsISSLStatus);
}
if (status) {
var cert = status.serverCert;
var issuerName;
issuerName = this.mapIssuerOrganization(cert.issuerOrganization);
if (!issuerName) issuerName = cert.issuerName;
return {
hostName : hName,
cAName : issuerName,
encryptionAlgorithm : status.cipherName,
encryptionStrength : status.secretKeyLength,
isBroken : isBroken,
cert : cert
};
} else {
return {
hostName : hName,
cAName : "",
encryptionAlgorithm : "",
encryptionStrength : 0,
isBroken : isBroken,
cert : null
};
}
},
// Find the secureBrowserUI object (if present)
_getSecurityUI : function() {
if ("gBrowser" in window.opener)
return window.opener.gBrowser.securityUI;
return null;
},
// Interface for mapping a certificate issuer organization to
// the value to be displayed.
// Bug 82017 - this implementation should be moved to pipnss C++ code
mapIssuerOrganization: function(name) {
if (!name) return null;
if (name == "RSA Data Security, Inc.") return "Verisign, Inc.";
// No mapping required
return name;
},
_cert : null
};
function securityOnLoad() {
var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
var info = security._getSecurityInfo();
if (!info) {
document.getElementById("securityTab").setAttribute("hidden", true);
document.getElementById("securityBox").collapsed = true;
return;
}
var idHdr;
var message1;
var message2;
/* Set the identification messages */
if (info.cert) {
idHdr = bundle.GetStringFromName("pageInfo_WebSiteVerified");
message1 = bundle.formatStringFromName("pageInfo_Identity_Verified",
[ info.hostName, info.cAName ],
2);
setText("security-identity-text", message1);
var viewText = bundle.GetStringFromName("pageInfo_ViewCertificate");
setText("security-view-text", viewText);
security._cert = info.cert;
}
else {
idHdr = bundle.GetStringFromName("pageInfo_SiteNotVerified");
var viewCert = document.getElementById("security-view-cert");
viewCert.collapsed = true;
}
setText("general-security-identity", idHdr);
setText("security-identity", idHdr);
var hdr;
var msg1;
var msg2;
/* Set the encryption messages */
if (info.isBroken) {
hdr = bundle.GetStringFromName("pageInfo_MixedContent");
msg1 = bundle.GetStringFromName("pageInfo_Privacy_Mixed1");
msg2 = bundle.GetStringFromName("pageInfo_Privacy_None2");
}
else if (info.encryptionStrength >= 90) {
hdr = bundle.formatStringFromName("pageInfo_StrongEncryption",
[ info.encryptionAlgorithm, info.encryptionStrength + "" ], 2);
msg1 = bundle.GetStringFromName("pageInfo_Privacy_Strong1");
msg2 = bundle.GetStringFromName("pageInfo_Privacy_Strong2");
security._cert = info.cert;
}
else if (info.encryptionStrength > 0) {
hdr = bundle.formatStringFromName("pageInfo_WeakEncryption",
[ info.encryptionAlgorithm, info.encryptionStrength + "" ], 2);
msg1 = bundle.formatStringFromName("pageInfo_Privacy_Weak1", [ info.hostName ], 1);
msg2 = bundle.GetStringFromName("pageInfo_Privacy_Weak2");
}
else {
hdr = bundle.GetStringFromName("pageInfo_NoEncryption");
if (info.hostName != null)
msg1 = bundle.formatStringFromName("pageInfo_Privacy_None1", [ info.hostName ], 1);
else
msg1 = bundle.GetStringFromName("pageInfo_Privacy_None3");
msg2 = bundle.GetStringFromName("pageInfo_Privacy_None2");
}
setText("general-security-privacy", hdr);
setText("security-privacy", hdr);
setText("security-privacy-msg1", msg1);
setText("security-privacy-msg2", msg2);
}
function setText(id, value)
{
var element = document.getElementById(id);
if (!element)
return;
if (element.localName == "textbox")
element.value = value;
else {
if (element.hasChildNodes())
element.removeChild(element.firstChild);
var textNode = document.createTextNode(value);
element.appendChild(textNode);
}
}
function viewCertHelper(parent, cert)
{
if (!cert)
return;
var cd = Components.classes[CERTIFICATEDIALOGS_CONTRACTID].getService(nsICertificateDialogs);
cd.viewCert(parent, cert);
}

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

@ -1,6 +1,5 @@
browser.jar:
% content browser %content/browser/ xpcnativewrappers=yes
% overlay chrome://browser/content/pageInfo.xul chrome://pippki/content/PageInfoOverlay.xul
#ifdef XP_MACOSX
% overlay chrome://mozapps/content/downloads/downloads.xul chrome://browser/content/downloadManagerOverlay.xul
% overlay chrome://mozapps/content/extensions/extensions.xul chrome://browser/content/extensionsManagerOverlay.xul
@ -23,13 +22,18 @@ browser.jar:
* content/browser/EULA.xul (content/EULA.xul)
* content/browser/metaData.js (content/metaData.js)
* content/browser/metaData.xul (content/metaData.xul)
* content/browser/pageinfo/pageInfo.xul (content/pageinfo/pageInfo.xul)
* content/browser/pageinfo/pageInfo.js (content/pageinfo/pageInfo.js)
* content/browser/pageinfo/pageInfo.css (content/pageinfo/pageInfo.css)
* content/browser/pageinfo/feeds.js (content/pageinfo/feeds.js)
* content/browser/pageinfo/feeds.xml (content/pageinfo/feeds.xml)
* content/browser/pageinfo/permissions.js (content/pageinfo/permissions.js)
* content/browser/pageinfo/security.js (content/pageinfo/security.js)
* content/browser/openLocation.js (content/openLocation.js)
* content/browser/openLocation.xul (content/openLocation.xul)
* content/browser/pageInfo.js (content/pageInfo.js)
* content/browser/pageInfo.xul (content/pageInfo.xul)
* content/browser/pageReport.js (content/pageReport.js)
* content/browser/pageReport.xul (content/pageReport.xul)
* content/browser/pageReportFirstTime.xul (content/pageReportFirstTime.xul)
* content/browser/pageReportFirstTime.xul (content/pageReportFirstTime.xul)
* content/browser/safeMode.js (content/safeMode.js)
* content/browser/safeMode.xul (content/safeMode.xul)
* content/browser/sanitize.js (content/sanitize.js)

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

@ -19,6 +19,7 @@
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Daniel Brooks <db48x@yahoo.com>
# Florian QUEZE <f.qu@queze.net>
#
# 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
@ -57,9 +58,10 @@
<!ENTITY generalModified "Modified:">
<!ENTITY generalExpires "Expires:">
<!ENTITY generalEncoding "Encoding:">
<!ENTITY generalMeta "Meta:">
<!ENTITY generalMetaName "Name">
<!ENTITY generalMetaContent "Content">
<!ENTITY generalSecurityMore "More">
<!ENTITY generalSecurityMore.accesskey "M">
<!ENTITY formsTab "Forms">
<!ENTITY formsTab.accesskey "F">
@ -89,6 +91,7 @@
<!ENTITY mediaAltHeader "Alternate Text">
<!ENTITY mediaAddress "Address">
<!ENTITY mediaType "Type">
<!ENTITY mediaSize "Size">
<!ENTITY mediaCount "Count">
<!ENTITY mediaDimensions "Specified Dimensions:">
<!ENTITY mediaPhysDimensions "Actual Dimensions:">
@ -97,3 +100,25 @@
<!ENTITY mediaSaveAs "Save As...">
<!ENTITY mediaSaveAs.accesskey "A">
<!ENTITY mediaPreview "Media Preview:">
<!ENTITY feedTab "Feeds">
<!ENTITY feedTab.accesskey "F">
<!ENTITY feedSubscribe "Subscribe">
<!ENTITY permTab "Permissions">
<!ENTITY permTab.accesskey "P">
<!ENTITY permUseDefault "Use Default">
<!ENTITY permAllow "Allow">
<!ENTITY permAllowSession "Allow for Session">
<!ENTITY permBlock "Block">
<!ENTITY permissionsFor "Permissions for:">
<!ENTITY permImage "Load Images">
<!ENTITY permPopup "Open Popup Windows">
<!ENTITY permCookie "Set Cookies">
<!ENTITY permInstall "Install Extensions or Themes">
<!ENTITY securityTab "Security">
<!ENTITY securityTab.accesskey "S">
<!ENTITY securityHeader "Security information for this page">
<!ENTITY securityView.label "View">
<!ENTITY securityView.accesskey "V">

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

@ -36,9 +36,9 @@
#
# ***** END LICENSE BLOCK *****
pageInfo.title=Page Info
frameInfo.title=Frame Info
pageInfo.page.title=Page Info - %S
pageInfo.frame.title=Frame Info - %S
noPageTitle=Untitled Page:
pageTitle=%S:
unknown=Unknown
@ -77,10 +77,18 @@ mediaObject=Object
mediaEmbed=Embed
mediaLink=Icon
mediaInput=Input
mediaFileSize=%S KB
mediaSize=%Spx \u00D7 %Spx
mediaSelectFolder=Select a Folder to Save the Images
mediaBlockImage=Block Images from %S
generalDiskCache=Disk cache
generalMemoryCache=Memory cache
generalHTTPCache=HTTP cache
generalFTPCache=FTP cache
generalSize=%S KB (%S bytes)
generalMetaTag=Meta (1 tag)
generalMetaTags=Meta (%S tags)
feedRss=RSS
feedAtom=Atom

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

@ -14,6 +14,7 @@ classic.jar:
skin/classic/browser/page-livemarks.png
skin/classic/browser/livemark-item.png
skin/classic/browser/pageInfo.css
skin/classic/browser/pageInfo.png
skin/classic/browser/Popup-blocked.png
skin/classic/browser/searchbar.css
skin/classic/browser/search-bar-background-mid.png

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

@ -19,8 +19,9 @@
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Kevin Gerich (webmail@kmgerich.com)
* Kevin Gerich <webmail@kmgerich.com>
* Daniel Brooks <db48x@yahoo.com>
* Florian QUEZE <f.qu@queze.net>
*
* 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
@ -37,39 +38,210 @@
* ***** END LICENSE BLOCK ***** */
@import "chrome://global/skin/";
/* View buttons */
#viewGroup radio {
list-style-image: url("chrome://browser/skin/pageInfo.png");
-moz-box-orient: vertical;
-moz-box-align: center;
-moz-appearance: none;
}
.viewSelector {
padding: 0 5px;
border-bottom: 1px solid #a3a3a3;
background: url("chrome://global/skin/toolbar/toolbar-pinstripe-overlay.png") repeat;
margin: 0;
}
#generalTab {
-moz-image-region: rect(0px, 32px, 32px, 0px)
}
#generalTab:hover, #generalTab[selected="true"] {
-moz-image-region: rect(32px, 32px, 64px, 0px)
}
#mediaTab {
-moz-image-region: rect(0px, 64px, 32px, 32px)
}
#mediaTab:hover, #mediaTab[selected="true"] {
-moz-image-region: rect(32px, 64px, 64px, 32px)
}
#feedTab {
-moz-image-region: rect(0px, 96px, 32px, 64px)
}
#feedTab:hover, #feedTab[selected="true"] {
-moz-image-region: rect(32px, 96px, 64px, 64px)
}
#permTab {
-moz-image-region: rect(0px, 128px, 32px, 96px)
}
#permTab:hover, #permTab[selected="true"] {
-moz-image-region: rect(32px, 128px, 64px, 96px)
}
#securityTab {
-moz-image-region: rect(0px, 160px, 32px, 128px)
}
#securityTab:hover, #securityTab[selected="true"] {
-moz-image-region: rect(32px, 160px, 64px, 128px)
}
deck {
padding: 10px 10px 10px 10px;
}
/* Misc */
tree {
margin: .5em;
margin: .5em;
}
textbox,
textbox > .textbox-internal-box,
textbox > .textarea-internal-box {
background: transparent !important;
border: none;
padding: 0px;
-moz-appearance: none;
.gridSeparator {
width: .5em;
}
textbox {
background: transparent !important;
border: none;
padding: 0px;
margin-top: 1px;
-moz-appearance: none;
}
textbox.header {
margin-left: 0;
-moz-margin-start: 0;
}
.iframe {
margin: .5em;
background: white;
overflow: auto;
}
#thepreviewimage {
margin: 1em;
margin: .5em;
background: white;
overflow: auto;
}
.fixedsize {
height: 8.5em;
height: 8.5em;
}
textbox[disabled] {
font-style: italic;
font-style: italic;
}
/* General Tab */
.caption-icon {
width: 11px;
height: 11px;
background-repeat: no-repeat;
background-position: center;
-moz-margin-end: 2px;
}
groupbox caption .caption-icon {
background-image: url("chrome://global/skin/arrow/arrow-dn.gif");
}
groupbox[closed="true"] caption .caption-icon {
background-image: url("chrome://global/skin/arrow/arrow-rit.gif");
}
groupbox tree {
margin: 0;
border: none;
}
#metaTags .groupbox-body {
padding: 0;
}
#securityBox description {
-moz-margin-start: 10px;
}
/* Media Tab */
#imagetree {
min-height: 10em;
}
#thepreviewimage {
margin: 1em;
}
treechildren::-moz-tree-cell-text(broken) {
font-style: italic;
color: graytext;
}
/* Feeds Tab */
#feedtree {
margin-bottom: 0px;
}
#feedListbox richlistitem {
padding-top: 6px;
padding-bottom: 6px;
-moz-padding-start: 7px;
-moz-padding-end: 7px;
min-height: 25px;
border-bottom: 1px dotted #C0C0C0;
}
#feedListbox richlistitem[selected="true"] {
background-color: -moz-Dialog;
color: -moz-DialogText;
}
#feedListbox {
border: 2px solid;
-moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
}
.feedTitle {
font-weight: bold;
}
/* Permissions Tab */
#permList {
margin-top: .5em;
overflow: auto;
border: 2px solid;
-moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
background-color: -moz-field;
}
#permList > vbox {
padding-top: 6px;
padding-bottom: 6px;
-moz-padding-start: 7px;
-moz-padding-end: 7px;
min-height: 25px;
border-bottom: 1px dotted #C0C0C0;
}
#permList > vbox > label {
font-weight: bold;
}
#permList > vbox:hover {
background-color: -moz-dialog;
}
/* Security Tab */
#securityTab textbox {
-moz-margin-start: 4px;
}
#securityTab textarea {
overflow: hidden;
}

Двоичные данные
browser/themes/pinstripe/browser/pageInfo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 17 KiB

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

@ -5,6 +5,7 @@ classic.jar:
* skin/classic/browser/engineManager.css (engineManager.css)
skin/classic/browser/Info.png
skin/classic/browser/pageInfo.css
skin/classic/browser/pageInfo.png
skin/classic/browser/page-livemarks.png
skin/classic/browser/livemark-item.png
skin/classic/browser/livemark-item-rtl.png

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

@ -19,8 +19,9 @@
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Kevin Gerich (webmail@kmgerich.com)
* Kevin Gerich <webmail@kmgerich.com>
* Daniel Brooks <db48x@yahoo.com>
* Florian QUEZE <f.qu@queze.net>
*
* 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
@ -38,16 +39,81 @@
@import "chrome://global/skin/";
/* View buttons */
#viewGroup radio {
list-style-image: url("chrome://browser/skin/pageInfo.png");
-moz-box-orient: vertical;
-moz-box-align: center;
-moz-appearance: none;
padding: 5px 3px 1px 3px;
}
.viewSelector {
border-bottom: 2px groove ThreeDFace;
margin: 0;
-moz-padding-start: 10px;
background-color: -moz-Field;
color: -moz-FieldText;
}
#generalTab {
-moz-image-region: rect(0px, 32px, 32px, 0px)
}
#generalTab:hover, #generalTab[selected="true"] {
-moz-image-region: rect(32px, 32px, 64px, 0px)
}
#mediaTab {
-moz-image-region: rect(0px, 64px, 32px, 32px)
}
#mediaTab:hover, #mediaTab[selected="true"] {
-moz-image-region: rect(32px, 64px, 64px, 32px)
}
#feedTab {
-moz-image-region: rect(0px, 96px, 32px, 64px)
}
#feedTab:hover, #feedTab[selected="true"] {
-moz-image-region: rect(32px, 96px, 64px, 64px)
}
#permTab {
-moz-image-region: rect(0px, 128px, 32px, 96px)
}
#permTab:hover, #permTab[selected="true"] {
-moz-image-region: rect(32px, 128px, 64px, 96px)
}
#securityTab {
-moz-image-region: rect(0px, 160px, 32px, 128px)
}
#securityTab:hover, #securityTab[selected="true"] {
-moz-image-region: rect(32px, 160px, 64px, 128px)
}
deck {
padding: 10px 10px 10px 10px;
}
/* Misc */
tree {
margin: .5em;
}
textbox,
textbox > .textbox-internal-box,
textbox > .textarea-internal-box {
.gridSeparator {
width: .5em;
}
textbox {
background: transparent !important;
border: none;
padding: 0px;
margin-top: 1px;
-moz-appearance: none;
}
@ -61,10 +127,6 @@ textbox.header {
overflow: auto;
}
#thepreviewimage {
margin: 1em;
}
.fixedsize {
height: 8.5em;
}
@ -72,3 +134,121 @@ textbox.header {
textbox[disabled] {
font-style: italic;
}
/* General Tab */
.caption-icon {
width: 9px;
height: 9px;
background-repeat: no-repeat;
background-position: center;
-moz-margin-start: 1px;
-moz-margin-end: 3px;
}
groupbox caption .caption-icon {
background-image: url("chrome://global/skin/tree/twisty-open.png");
}
groupbox[closed="true"] {
border: none;
}
groupbox[closed="true"] caption .caption-icon {
background-image: url("chrome://global/skin/tree/twisty-clsd.png");
}
groupbox tree {
margin: 0;
border: none;
}
#metaTags .groupbox-body {
padding-top: 0;
}
#securityBox description {
-moz-margin-start: 10px;
}
/* Media Tab */
#imagetree {
min-height: 10em;
}
#thepreviewimage {
margin: 1em;
}
treechildren::-moz-tree-cell-text(broken) {
font-style: italic;
color: graytext;
}
/* Feeds Tab */
#feedtree {
margin-bottom: 0px;
}
#feedListbox richlistitem {
padding-top: 6px;
padding-bottom: 6px;
-moz-padding-start: 7px;
-moz-padding-end: 7px;
min-height: 25px;
border-bottom: 1px dotted #C0C0C0;
}
#feedListbox richlistitem[selected="true"] {
background-color: -moz-Dialog;
color: -moz-DialogText;
}
#feedListbox {
border: 2px solid;
-moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
}
.feedTitle {
font-weight: bold;
}
/* Permissions Tab */
#permList {
margin-top: .5em;
overflow: auto;
border: 2px solid;
-moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
background-color: -moz-field;
}
#permList > vbox {
padding-top: 6px;
padding-bottom: 6px;
-moz-padding-start: 7px;
-moz-padding-end: 7px;
min-height: 25px;
border-bottom: 1px dotted #C0C0C0;
}
#permList > vbox > label {
font-weight: bold;
}
#permList > vbox:hover {
background-color: -moz-dialog;
}
/* Security Tab */
#securityTab textbox {
-moz-margin-start: 4px;
}
#securityTab textarea {
overflow: hidden;
}

Двоичные данные
browser/themes/winstripe/browser/pageInfo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 17 KiB

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

@ -13,7 +13,9 @@ pippki.jar:
content/pippki/pref-security.js (content/pref-security.js)
content/pippki/pref-ssl.xul (content/pref-ssl.xul)
content/pippki/pref-certs.xul (content/pref-certs.xul)
#ifndef MOZ_PHOENIX
content/pippki/PageInfoOverlay.xul (content/PageInfoOverlay.xul)
#endif
content/pippki/newserver.js (content/newserver.js)
content/pippki/newserver.xul (content/newserver.xul)
content/pippki/downloadcert.js (content/downloadcert.js)