<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this file,
   - You can obtain one at http://mozilla.org/MPL/2.0/.  -->

<script type="application/javascript"
        src="chrome://browser/content/preferences/in-content/advanced.js"/>

<preferences id="advancedPreferences">
  <preference id="browser.preferences.advanced.selectedTabIndex"
              name="browser.preferences.advanced.selectedTabIndex"
              type="int"/>

  <!-- General tab -->
  <preference id="accessibility.browsewithcaret"
              name="accessibility.browsewithcaret"
              type="bool"/>
  <preference id="accessibility.typeaheadfind"
              name="accessibility.typeaheadfind"
              type="bool"/>
  <preference id="accessibility.blockautorefresh"
              name="accessibility.blockautorefresh"
              type="bool"/>

  <preference id="general.autoScroll"
              name="general.autoScroll"
              type="bool"/>
  <preference id="general.smoothScroll"
              name="general.smoothScroll"
              type="bool"/>
  <preference id="layers.acceleration.disabled"
              name="layers.acceleration.disabled"
              type="bool"
              inverted="true"
              onchange="gAdvancedPane.updateHardwareAcceleration()"/>
  <preference id="gfx.direct2d.disabled"
              name="gfx.direct2d.disabled"
              type="bool"
              inverted="true"/>
  <preference id="layout.spellcheckDefault"
              name="layout.spellcheckDefault"
              type="int"/>

  <preference id="browser.shell.checkDefaultBrowser"
              name="browser.shell.checkDefaultBrowser"
              type="bool"/>

  <preference id="pref.general.disable_button.default_browser"
              name="pref.general.disable_button.default_browser"
              type="bool"/>

  <preference id="toolkit.telemetry.enabled"
              name="toolkit.telemetry.enabled"
              type="bool"/>

  <!-- Network tab -->
  <preference id="browser.cache.disk.capacity"
              name="browser.cache.disk.capacity"
              type="int"/>
  <preference id="browser.offline-apps.notify"
              name="browser.offline-apps.notify"
              type="bool"/>

  <preference id="browser.cache.disk.smart_size.enabled"
              name="browser.cache.disk.smart_size.enabled"
              inverted="true"
              type="bool"/>

 <!-- Update tab -->
  <preference id="app.update.enabled"
              name="app.update.enabled"
              type="bool"/>
  <preference id="app.update.auto"
              name="app.update.auto"
              type="bool"/>
  <preference id="app.update.mode"
              name="app.update.mode"
              type="int"/>

  <preference id="app.update.disable_button.showUpdateHistory"
              name="app.update.disable_button.showUpdateHistory"
              type="bool"/>

  <preference id="app.update.service.enabled"
              name="app.update.service.enabled"
              type="bool"/>

  <preference id="browser.search.update"
              name="browser.search.update"
              type="bool"/>

  <!-- Encryption tab -->
  <preference id="security.default_personal_cert"
              name="security.default_personal_cert"
              type="string"/>

  <preference id="security.disable_button.openCertManager"
              name="security.disable_button.openCertManager"
              type="bool"/>
  <preference id="security.disable_button.openDeviceManager"
              name="security.disable_button.openDeviceManager"
              type="bool"/>
</preferences>

  <stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/>
  <stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
  <stringbundle id="bundlePreferences" src="chrome://browser/locale/preferences/preferences.properties"/>

<hbox class="heading" data-category="paneAdvanced" hidden="true">
  <image class="preference-icon" type="advanced"/>
  <html:h1>&paneAdvanced.title;</html:h1>
</hbox>

<tabbox id="advancedPrefs" flex="1"
        data-category="paneAdvanced" hidden="true"
        onselect="gAdvancedPane.tabSelectionChanged();">

  <tabs id="tabsElement">
    <tab id="generalTab" label="&generalTab.label;" helpTopic="prefs-advanced-general"/>
    <tab id="dataChoicesTab" label="&dataChoicesTab.label;" helpTopic="prefs-advanced-data-choices"/>
    <tab id="networkTab" label="&networkTab.label;" helpTopic="prefs-advanced-network"/>
    <tab id="updateTab" label="&updateTab.label;"  helpTopic="prefs-advanced-update"/>
    <tab id="encryptionTab" label="&certificateTab.label;" helpTopic="prefs-advanced-encryption"/>
  </tabs>

  <tabpanels flex="1">

    <!-- General -->
    <tabpanel id="generalPanel" orient="vertical">
      <!-- Accessibility -->
      <groupbox id="accessibilityGroup" align="start">
        <caption label="&accessibility.label;"/>

        <checkbox id="useCursorNavigation"
                  label="&useCursorNavigation.label;"
                  accesskey="&useCursorNavigation.accesskey;"
                  preference="accessibility.browsewithcaret"/>
        <checkbox id="searchStartTyping"
                  label="&searchStartTyping.label;"
                  accesskey="&searchStartTyping.accesskey;"
                  preference="accessibility.typeaheadfind"/>
        <checkbox id="blockAutoRefresh"
                  label="&blockAutoRefresh.label;"
                  accesskey="&blockAutoRefresh.accesskey;"
                  preference="accessibility.blockautorefresh"/>
      </groupbox>
      <!-- Browsing -->
      <groupbox id="browsingGroup" align="start">
        <caption label="&browsing.label;"/>

        <checkbox id="useAutoScroll"
                  label="&useAutoScroll.label;"
                  accesskey="&useAutoScroll.accesskey;"
                  preference="general.autoScroll"/>
        <checkbox id="useSmoothScrolling"
                  label="&useSmoothScrolling.label;"
                  accesskey="&useSmoothScrolling.accesskey;"
                  preference="general.smoothScroll"/>
        <checkbox id="allowHWAccel"
                  label="&allowHWAccel.label;"
                  accesskey="&allowHWAccel.accesskey;"
                  preference="layers.acceleration.disabled"/>
        <checkbox id="checkSpelling"
                  label="&checkSpelling.label;"
                  accesskey="&checkSpelling.accesskey;"
                  onsyncfrompreference="return gAdvancedPane.readCheckSpelling();"
                  onsynctopreference="return gAdvancedPane.writeCheckSpelling();"
                  preference="layout.spellcheckDefault"/>
      </groupbox>
      <!-- System Defaults -->
      <groupbox id="systemDefaultsGroup" orient="vertical">
        <caption label="&systemDefaults.label;"/>

        <checkbox id="alwaysCheckDefault" preference="browser.shell.checkDefaultBrowser"
                  label="&alwaysCheckDefault.label;" accesskey="&alwaysCheckDefault.accesskey;"
                  flex="1"/>
        <hbox class="indent">
          <deck id="setDefaultPane">
            <button id="setDefaultButton"
                    label="&setDefault.label;" accesskey="&setDefault.accesskey;"
                    oncommand="gAdvancedPane.setDefaultBrowser();"
                    preference="pref.general.disable_button.default_browser"/>
            <description>&isDefault.label;</description>
          </deck>
        </hbox>
      </groupbox>
    </tabpanel>
    <!-- Data Choices -->
    <tabpanel id="dataChoicesPanel" orient="vertical">
      <groupbox>
        <caption label="&telemetrySection.label;"/>
        <description>&telemetryDesc.label;</description>
        <hbox>
          <checkbox id="submitTelemetryBox"
                    preference="toolkit.telemetry.enabled"
                    label="&enableTelemetry.label;"
                    accesskey="&enableTelemetry.accesskey;"/>
          <spacer flex="1"/>
          <label id="telemetryLearnMore"
                 class="text-link"
                 value="&telemetryLearnMore.label;"/>
        </hbox>
      </groupbox>
      <groupbox>
        <caption label="&healthReportSection.label;"/>
        <description>&healthReportDesc.label;</description>
        <hbox>
          <checkbox id="submitHealthReportBox"
                    oncommand="gAdvancedPane.updateSubmitHealthReport();"
                    label="&enableHealthReport.label;"
                    accesskey="&enableHealthReport.accesskey;"/>
          <spacer flex="1"/>
          <label id="FHRLearnMore"
                 class="text-link"
                 value="&healthReportLearnMore.label;"/>
        </hbox>
      </groupbox>
      <groupbox>
        <caption label="&crashReporterSection.label;"/>
        <description>&crashReporterDesc.label;</description>
        <hbox>
          <checkbox id="submitCrashesBox"
                    oncommand="gAdvancedPane.updateSubmitCrashes();"
                    label="&enableCrashReporter.label;"
                    accesskey="&enableCrashReporter.accesskey;"/>

          <spacer flex="1"/>
          <label id="crashReporterLearnMore"
                 class="text-link"
                 value="&crashReporterLearnMore.label;"/>
        </hbox>
      </groupbox>
    </tabpanel>

    <!-- Network -->
    <tabpanel id="networkPanel" orient="vertical">

      <!-- Connection -->
      <groupbox id="connectionGroup">
        <caption label="&connection.label;"/>

        <hbox align="center">
          <description flex="1" control="connectionSettings">&connectionDesc.label;</description>
          <button id="connectionSettings" icon="network" label="&connectionSettings.label;"
                  accesskey="&connectionSettings.accesskey;"
                  oncommand="gAdvancedPane.showConnections();"/>
        </hbox>
      </groupbox>

      <!-- Cache -->
      <groupbox id="cacheGroup">
        <caption label="&httpCache.label;"/>

        <hbox align="center">
          <label id="actualDiskCacheSize" flex="1"/>
          <button id="clearCacheButton" icon="clear"
                  label="&clearCacheNow.label;" accesskey="&clearCacheNow.accesskey;"
                  oncommand="gAdvancedPane.clearCache();"/>
        </hbox>
        <checkbox preference="browser.cache.disk.smart_size.enabled"
                  id="allowSmartSize" flex="1"
                  onsyncfrompreference="return gAdvancedPane.readSmartSizeEnabled();"
                  label="&overrideSmartCacheSize.label;"
                  accesskey="&overrideSmartCacheSize.accesskey;"/>
        <hbox align="center" class="indent">
          <label id="useCacheBefore" control="cacheSize"
                accesskey="&limitCacheSizeBefore.accesskey;"
                value="&limitCacheSizeBefore.label;"/>
          <textbox id="cacheSize" type="number" size="4" max="1024"
                  preference="browser.cache.disk.capacity"
                  onsyncfrompreference="return gAdvancedPane.readCacheSize();"
                  onsynctopreference="return gAdvancedPane.writeCacheSize();"
                  aria-labelledby="useCacheBefore cacheSize useCacheAfter"/>
          <label id="useCacheAfter" flex="1">&limitCacheSizeAfter.label;</label>
        </hbox>
      </groupbox>

      <!-- Offline apps -->
      <groupbox id="offlineGroup">
        <caption label="&offlineStorage2.label;"/>

        <hbox align="center">
          <label id="actualAppCacheSize" flex="1"/>
          <button id="clearOfflineAppCacheButton" icon="clear"
                  label="&clearOfflineAppCacheNow.label;" accesskey="&clearOfflineAppCacheNow.accesskey;"
                  oncommand="gAdvancedPane.clearOfflineAppCache();"/>
        </hbox>
        <hbox align="center">
          <checkbox id="offlineNotify" flex="1"
                    label="&offlineNotify.label;" accesskey="&offlineNotify.accesskey;"
                    preference="browser.offline-apps.notify"
                    onsyncfrompreference="return gAdvancedPane.readOfflineNotify();"/>
          <button id="offlineNotifyExceptions"
                  label="&offlineNotifyExceptions.label;"
                  accesskey="&offlineNotifyExceptions.accesskey;"
                  oncommand="gAdvancedPane.showOfflineExceptions();"/>
        </hbox>
        <hbox>
          <vbox flex="1">
            <label id="offlineAppsListLabel">&offlineAppsList2.label;</label>
            <listbox id="offlineAppsList"
                    style="height: &offlineAppsList.height;;"
                    flex="1"
                    aria-labelledby="offlineAppsListLabel"
                    onselect="gAdvancedPane.offlineAppSelected(event);">
            </listbox>
          </vbox>
          <vbox pack="end">
            <button id="offlineAppsListRemove"
                    disabled="true"
                    label="&offlineAppsListRemove.label;"
                    accesskey="&offlineAppsListRemove.accesskey;"
                    oncommand="gAdvancedPane.removeOfflineApp();"/>
          </vbox>
        </hbox>
      </groupbox>
    </tabpanel>

    <!-- Update -->
    <tabpanel id="updatePanel" orient="vertical">
      <groupbox id="updateApp">
        <caption label="&updateApp.label;"/>
        <radiogroup id="updateRadioGroup"
                    oncommand="gAdvancedPane.updateWritePrefs();">
          <radio id="autoDesktop"
                 value="auto"
                 label="&updateAuto1.label;"
                 accesskey="&updateAuto1.accesskey;"/>
          <hbox class="indent">
            <checkbox id="warnIncompatible"
                      label="&updateAutoAddonWarn.label;"
                      accesskey="&updateAutoAddonWarn.accesskey;"
                      preference="app.update.mode"
                      onsyncfrompreference="return gAdvancedPane.readAddonWarn();"
                      onsynctopreference="return gAdvancedPane.writeAddonWarn();"/>
          </hbox>
          <radio value="checkOnly"
                label="&updateCheck.label;"
                accesskey="&updateCheck.accesskey;"/>
          <radio value="manual"
                label="&updateManual.label;"
                accesskey="&updateManual.accesskey;"/>
        </radiogroup>

        <hbox>
          <button id="showUpdateHistory"
                  label="&updateHistory.label;"
                  accesskey="&updateHistory.accesskey;"
                  preference="app.update.disable_button.showUpdateHistory"
                  oncommand="gAdvancedPane.showUpdates();"/>
        </hbox>

        <checkbox id="useService"
                  label="&useService.label;"
                  accesskey="&useService.accesskey;"
                  preference="app.update.service.enabled"/>
      </groupbox>
      <groupbox id="updateOthers">
        <caption label="&updateOthers.label;"/>
        <checkbox id="enableSearchUpdate"
                  label="&enableSearchUpdate.label;"
                  accesskey="&enableSearchUpdate.accesskey;"
                  preference="browser.search.update"/>
      </groupbox>
    </tabpanel>

    <!-- Certificates -->
    <tabpanel id="encryptionPanel" orient="vertical">

        <description id="CertSelectionDesc" control="certSelection">&certSelection.description;</description>

        <!--
          The values on these radio buttons may look like l12y issues, but
          they're not - this preference uses *those strings* as its values.
          I KID YOU NOT.
        -->
        <radiogroup id="certSelection" orient="horizontal" preftype="string"
                    preference="security.default_personal_cert"
                    aria-labelledby="CertSelectionDesc">
          <radio label="&certs.auto;" accesskey="&certs.auto.accesskey;"
                value="Select Automatically"/>
          <radio label="&certs.ask;" accesskey="&certs.ask.accesskey;"
                value="Ask Every Time"/>
        </radiogroup>

        <separator/>

        <hbox>
          <button id="viewCertificatesButton"
                  label="&viewCerts.label;" accesskey="&viewCerts.accesskey;"
                  oncommand="gAdvancedPane.showCertificates();"
                  preference="security.disable_button.openCertManager"/>
          <button id="verificationButton"
                  label="&verify2.label;" accesskey="&verify2.accesskey;"
                  oncommand="gAdvancedPane.showOCSP();"/>
          <button id="viewSecurityDevicesButton"
                  label="&viewSecurityDevices.label;" accesskey="&viewSecurityDevices.accesskey;"
                  oncommand="gAdvancedPane.showSecurityDevices();"
                  preference="security.disable_button.openDeviceManager"/>
        </hbox>
    </tabpanel>
  </tabpanels>
</tabbox>
