зеркало из https://github.com/mozilla/pjs.git
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:
Родитель
e3bc560aae
Коммит
557ee32a6f
|
@ -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="©.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="©.label;" command="cmd_copy" accesskey="©.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;
|
||||
}
|
||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 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;
|
||||
}
|
||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче