<?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>
#   Ehsan Akhgari <ehsan.akhgari@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

<?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/javascript" src="chrome://global/content/globalOverlay.js"/>
  <script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
  <script type="application/javascript" src="chrome://browser/content/pageinfo/pageInfo.js"/>
  <script type="application/javascript" src="chrome://browser/content/pageinfo/feeds.js"/>
  <script type="application/javascript" src="chrome://browser/content/pageinfo/permissions.js"/>
  <script type="application/javascript" src="chrome://browser/content/pageinfo/security.js"/>
  <script type="application/javascript" src="chrome://browser/content/utilityOverlay.js"/>

  <stringbundleset id="pageinfobundleset">
    <stringbundle id="pageinfobundle" src="chrome://browser/locale/pageInfo.properties"/>
    <stringbundle id="pkiBundle" src="chrome://pippki/locale/pippki.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_geoDef"        oncommand="onCheckboxClick('geo');"/>
    <command id="cmd_indexedDBDef"  oncommand="onCheckboxClick('indexedDB');"/>
    <command id="cmd_imageToggle"   oncommand="onRadioClick('image');"/>
    <command id="cmd_popupToggle"   oncommand="onRadioClick('popup');"/>
    <command id="cmd_cookieToggle"  oncommand="onRadioClick('cookie');"/>
    <command id="cmd_installToggle" oncommand="onRadioClick('install');"/>
    <command id="cmd_geoToggle"     oncommand="onRadioClick('geo');"/>
    <command id="cmd_indexedDBToggle" oncommand="onRadioClick('indexedDB');"/>
  </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"/>
#else
    <key keycode="VK_F1"                           command="cmd_help"/>
#endif
    <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 id="menu_selectall" label="&selectall.label;" command="cmd_selectall" accesskey="&selectall.accesskey;"/>
    <menuitem id="menu_copy"      label="&copy.label;"      command="cmd_copy"      accesskey="&copy.accesskey;"/>
  </menupopup>

  <windowdragbox id="topBar" class="viewGroupWrapper">
    <radiogroup id="viewGroup" class="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');" 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>
  </windowdragbox>

  <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="modetext" value="&generalMode;"/>
            <separator/>
            <textbox readonly="true" crop="end" id="modetext"/>
          </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" class="collapsable treebox">
        <caption id="metaTagsCaption" onclick="toggleGroupbox('metaTags');"/>
        <tree id="metatree" flex="1" hidecolumnpicker="true" contextmenu="picontext">
          <treecols>
            <treecol id="meta-name"    label="&generalMetaName;"
                     persist="width" flex="1"/>
            <splitter class="tree-splitter"/>
            <treecol id="meta-content" label="&generalMetaContent;"
                     persist="width" flex="4"/>
          </treecols>
          <treechildren flex="1"/>
        </tree>        
      </groupbox>
      <groupbox id="securityBox">
        <caption id="securityBoxCaption" label="&securityHeader;"/>
        <description id="general-security-identity" class="header"/>
        <description id="general-security-privacy"  class="header"/>
        <hbox align="right">
          <button id="security-view-details" label="&generalSecurityDetails;"
                  accesskey="&generalSecurityDetails.accesskey;"
                  oncommand="onClickMore();"/>
        </hbox>
      </groupbox>
    </vbox>

    <!-- Media information -->
    <vbox id="mediaPanel">
      <tree id="imagetree" onselect="onImageSelect();" contextmenu="picontext"
            ondragstart="onBeginLinkDrag(event,'image-address','image-alt')">
        <treecols>
          <treecol sortSeparators="true" primary="true" persist="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 id="mediaGrid">
          <columns>
            <column id="mediaLabelColumn"/>
            <column class="gridSeparator"/>
            <column flex="1"/>
          </columns>
          <rows>
            <row>
              <label control="imageurltext" value="&mediaLocation;"/>
              <separator/>
              <textbox readonly="true" id="imageurltext"/>
            </row>
            <row>
              <label control="imagetypetext" value="&generalType;"/>
              <separator/>
              <textbox readonly="true" id="imagetypetext"/>
            </row>
            <row>
              <label control="imagesizetext" value="&generalSize;"/>
              <separator/>
              <textbox readonly="true" id="imagesizetext"/>
            </row>
            <row>
              <label control="imagedimensiontext" value="&mediaDimension;"/>
              <separator/>
              <textbox readonly="true" id="imagedimensiontext"/>
            </row>
            <row>
              <label control="imagetext" value="&mediaText;"/>
              <separator/>
              <textbox readonly="true" id="imagetext"/>
            </row>
            <row>
              <label control="imagelongdesctext" value="&mediaLongdesc;"/>
              <separator/>
              <textbox readonly="true" id="imagelongdesctext"/>
            </row>
          </rows>
        </grid>
        <hbox align="end">
          <vbox>
            <checkbox id="blockImage" hidden="true" oncommand="onBlockImage()"
                      accesskey="&mediaBlockImage.accesskey;"/>
            <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://gre-resources/broken-image.png"/>
          </hbox>
        </vbox>
      </vbox>
      <hbox id="mediaSaveBox" collapsed="true">
        <spacer flex="1"/>
        <button label="&mediaSaveAs;" accesskey="&mediaSaveAs2.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 class="permission">
          <label class="permissionLabel" id="permImageLabel"
                 value="&permImage;" control="imageRadioGroup"/>
          <hbox role="group" aria-labelledby="permImageLabel">
            <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 class="permission">
          <label class="permissionLabel" id="permPopupLabel"
                 value="&permPopup;" control="popupRadioGroup"/>
          <hbox role="group" aria-labelledby="permPopupLabel">
            <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 class="permission">
          <label class="permissionLabel" id="permCookieLabel"
                 value="&permCookie;" control="cookieRadioGroup"/>
          <hbox role="group" aria-labelledby="permCookieLabel">
            <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 class="permission">
          <label class="permissionLabel" id="permInstallLabel"
                 value="&permInstall;" control="installRadioGroup"/>
          <hbox role="group" aria-labelledby="permInstallLabel">
            <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 class="permission">
          <label class="permissionLabel" id="permGeoLabel"
                 value="&permGeo;" control="geoRadioGroup"/>
          <hbox role="group" aria-labelledby="permGeoLabel">
            <checkbox id="geoDef" command="cmd_geoDef" label="&permAskAlways;"/>
            <spacer flex="1"/>
            <radiogroup id="geoRadioGroup" orient="horizontal">
              <radio id="geo#1" command="cmd_geoToggle" label="&permAllow;"/>
              <radio id="geo#2" command="cmd_geoToggle" label="&permBlock;"/>
            </radiogroup>
          </hbox>
        </vbox>
        <vbox class="permission">
          <label class="permissionLabel" id="permIndexedDBLabel"
                 value="&permIndexedDB;" control="indexedDBRadioGroup"/>
          <hbox role="group" aria-labelledby="permIndexedDBLabel">
            <checkbox id="indexedDBDef" command="cmd_indexedDBDef" label="&permAskAlways;"/>
            <spacer flex="1"/>
            <vbox pack="center">
              <label id="indexedDBStatus" control="indexedDBClear"/>
            </vbox>
            <button id="indexedDBClear" label="&permClearStorage;"
                    accesskey="&permClearStorage.accesskey;" onclick="onIndexedDBClear();"/>
            <radiogroup id="indexedDBRadioGroup" orient="horizontal">
              <radio id="indexedDB#1" command="cmd_indexedDBToggle" label="&permAllow;"/>
              <radio id="indexedDB#2" command="cmd_indexedDBToggle" label="&permBlock;"/>
            </radiogroup>
          </hbox>
        </vbox>
      </vbox>
    </vbox>

    <!-- Security & Privacy -->
    <vbox id="securityPanel">
      <!-- Identity Section -->
      <groupbox id="security-identity-groupbox" flex="1">
        <caption id="security-identity" label="&securityView.identity.header;"/>
        <grid flex="1">
          <columns>
            <column/>
            <column flex="1"/>
          </columns>
          <rows>
            <row><!-- Domain -->
              <label id="security-identity-domain-label"
                     class="fieldLabel"
                     value="&securityView.identity.domain;"
                     control="security-identity-domain-value"/>
              <textbox id="security-identity-domain-value"
                       class="fieldValue" readonly="true"/>
            </row>
            <row><!-- Owner -->
              <label id="security-identity-owner-label"
                     class="fieldLabel"
                     value="&securityView.identity.owner;"
                     control="security-identity-owner-value"/>
              <textbox id="security-identity-owner-value"
                       class="fieldValue" readonly="true"/>
            </row>
            <row><!-- Verifier -->
              <label id="security-identity-verifier-label"
                     class="fieldLabel"
                     value="&securityView.identity.verifier;"
                     control="security-identity-verifier-value"/>
              <textbox id="security-identity-verifier-value"
                       class="fieldValue" readonly="true" />
            </row>
          </rows>
        </grid>
        <spacer flex="1"/>
        <hbox pack="end"><!-- Cert button -->
          <button id="security-view-cert" label="&securityView.certView;"
                  accesskey="&securityView.accesskey;"
                  oncommand="security.viewCert();"/>
        </hbox>
      </groupbox>
      
      <!-- Privacy & History section -->
      <groupbox id="security-privacy-groupbox" flex="1">
        <caption id="security-privacy" label="&securityView.privacy.header;" />
        <grid>
          <columns>
            <column flex="1"/>
            <column flex="1"/>
          </columns>
          <rows>
            <row><!-- History -->
              <label id="security-privacy-history-label"
                           control="security-privacy-history-value"
                           class="fieldLabel">&securityView.privacy.history;</label>
              <textbox id="security-privacy-history-value"
                       class="fieldValue"
                       value="&securityView.unknown;"
                       readonly="true"/>
            </row>
            <row><!-- Cookies -->
              <label id="security-privacy-cookies-label"
                           control="security-privacy-cookies-value"
                           class="fieldLabel">&securityView.privacy.cookies;</label>
              <hbox align="center">
                <textbox id="security-privacy-cookies-value"
                         class="fieldValue"
                         value="&securityView.unknown;"
                         flex="1"
                         readonly="true"/>
                <button id="security-view-cookies"
                        label="&securityView.privacy.viewCookies;"
                        accesskey="&securityView.privacy.viewCookies.accessKey;"
                        oncommand="security.viewCookies();"/>
              </hbox>
            </row>
            <row><!-- Passwords -->
              <label id="security-privacy-passwords-label"
                            control="security-privacy-passwords-value"
                            class="fieldLabel">&securityView.privacy.passwords;</label>
              <hbox align="center">
                <textbox id="security-privacy-passwords-value"
                         class="fieldValue"
                         value="&securityView.unknown;"
                         flex="1"
                         readonly="true"/>
                <button id="security-view-password"
                        label="&securityView.privacy.viewPasswords;"
                        accesskey="&securityView.privacy.viewPasswords.accessKey;"
                        oncommand="security.viewPasswords();"/>
              </hbox>
            </row>
          </rows>
        </grid>
      </groupbox>
      
      <!-- Technical Details section -->
      <groupbox id="security-technical-groupbox" flex="1">
        <caption id="security-technical" label="&securityView.technical.header;" />
        <vbox flex="1">
          <label id="security-technical-shortform" class="fieldValue"/>
          <description id="security-technical-longform1" class="fieldLabel"/>
          <description id="security-technical-longform2" class="fieldLabel"/>
        </vbox>
      </groupbox>
    </vbox>
    <!-- Others added by overlay -->
  </deck>

#ifdef XP_MACOSX
#include ../browserMountPoints.inc
#endif

</window>
