browser/metro/base/content/browser.xul
author Allison Naaktgeboren <ally@mozilla.com>
Wed, 07 Aug 2013 10:29:40 -0700
changeset 154574 85c1aed7e525f5dad8d52775e203f099ea2c72ed
parent 154457 ebd25ccd7c8780263055e8df2461f02d364a665f
child 154581 7b37baf1e8b812f6dd4d0d376f745773b4c7517e
permissions -rw-r--r--
Bug 895921 - Defect - Tab bar not appearing when selecting links from flyouts.r=?

<?xml version="1.0"?>

<!-- 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/. -->

<?xml-stylesheet href="chrome://browser/skin/platform.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/cssthrobber.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/tiles.css" type="text/css"?>

<!DOCTYPE window [
<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
%globalDTD;
<!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd">
%browserDTD;
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
%brandDTD;
<!ENTITY % prefsDTD SYSTEM "chrome://browser/locale/preferences.dtd">
%prefsDTD;
<!ENTITY % aboutPanelDTD SYSTEM "chrome://browser/locale/aboutPanel.dtd">
%aboutPanelDTD;
#ifdef MOZ_SERVICES_SYNC
<!ENTITY % syncBrandDTD SYSTEM "chrome://browser/locale/syncBrand.dtd">
%syncBrandDTD;
<!ENTITY % syncDTD SYSTEM "chrome://browser/locale/sync.dtd">
%syncDTD;
#endif
]>

<window id="main-window"
        onload="Browser.startup();"
        onunload="Browser.shutdown();"
        onclose="return Browser.closing();"
        windowtype="navigator:browser"
        chromedir="&locale.dir;"
        title="&brandShortName;"
        width="1366"
        height="768"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        xmlns:svg="http://www.w3.org/2000/svg"
        xmlns:html="http://www.w3.org/1999/xhtml">

  <script type="application/javascript" src="chrome://browser/content/browser.js"/>
  <script type="application/javascript" src="chrome://browser/content/browser-scripts.js"/>
  <script type="application/javascript" src="chrome://browser/content/browser-ui.js"/>
  <script type="application/javascript" src="chrome://browser/content/Util.js"/>
  <script type="application/javascript" src="chrome://browser/content/input.js"/>
  <script type="application/javascript" src="chrome://browser/content/appbar.js"/>
  <script type="application/javascript" src="chrome://browser/content/apzc.js"/>
  <broadcasterset id="broadcasterset">
    <broadcaster id="bcast_contentShowing" disabled="false"/>
    <broadcaster id="bcast_urlbarState" mode="view"/>
    <broadcaster id="bcast_preciseInput" input="precise"/>
    <broadcaster id="bcast_windowState" viewstate=""/>
  </broadcasterset>

  <observerset id="observerset">
    <observes id="observe_contentShowing" element="bcast_contentShowing" attribute="disabled" onbroadcast="BrowserUI.updateUIFocus();"/>
  </observerset>

  <commandset id="mainCommandSet">
    <!-- basic navigation -->
    <command id="cmd_back" disabled="true" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_forward" disabled="true" oncommand="CommandUpdater.doCommand(this.id);" observes="bcast_urlbarState"/>
    <command id="cmd_handleBackspace" oncommand="BrowserUI.handleBackspace();" />
    <command id="cmd_handleShiftBackspace" oncommand="BrowserUI.handleShiftBackspace();" />
    <command id="cmd_reload" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_forceReload" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_stop" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_go" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_openLocation" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_home" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_openFile" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_savePage" oncommand="CommandUpdater.doCommand(this.id);"/>

    <!-- tabs -->
    <command id="cmd_newTab" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_closeTab" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_undoCloseTab" oncommand="CommandUpdater.doCommand(this.id);"/>
#ifdef MOZ_SERVICES_SYNC
    <command id="cmd_remoteTabs" oncommand="CommandUpdater.doCommand(this.id);"/>
#endif

    <!-- misc -->
    <command id="cmd_close" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_quit" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_actions" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_panel" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_flyout_back" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_addBookmark" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_bookmarks" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_history" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_sanitize" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_contextUI" oncommand="CommandUpdater.doCommand(this.id);"/>

    <!-- screen/display -->
    <command id="cmd_lockscreen" oncommand="CommandUpdater.doCommand(this.id);"/>

    <command id="cmd_volumeLeft" observes="bcast_contentShowing" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_volumeRight" observes="bcast_contentShowing" oncommand="CommandUpdater.doCommand(this.id);"/>

    <!-- scrolling -->
    <command id="cmd_scrollPageUp" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_scrollPageDown" oncommand="CommandUpdater.doCommand(this.id);"/>

    <!-- editing -->
    <command id="cmd_cut" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_copy" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_copylink" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_paste" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_delete" oncommand="CommandUpdater.doCommand(this.id);"/>
    <command id="cmd_selectAll" oncommand="CommandUpdater.doCommand(this.id);"/>

    <!-- find -->
    <command id="cmd_findPrevious" oncommand="FindHelperUI.goToPrevious();"/>
    <command id="cmd_findNext" oncommand="FindHelperUI.goToNext();"/>
    <command id="cmd_findClose" oncommand="FindHelperUI.hide();"/>
    <command id="cmd_find" oncommand="FindHelperUI.show();"/>
  </commandset>

  <keyset id="mainKeyset">
    <!-- basic navigation -->
    <key id="key_back" keycode="VK_LEFT" command="cmd_back" modifiers="alt"/>
    <key id="key_forward" keycode="VK_RIGHT" command="cmd_forward" modifiers="alt"/>
    <key id="key_backspace" keycode="VK_BACK" command="cmd_handleBackspace"/>
    <key id="key_shift_backspace" keycode="VK_BACK" command="cmd_handleShiftBackspace" modifiers="shift"/>
    <key id="key_reload" keycode="VK_F5" command="cmd_reload"/>
    <key id="key_reload2" key="r" modifiers="accel" command="cmd_reload"/>
    <key id="key_forceReload" keycode="VK_F5" modifiers="shift" command="cmd_forceReload"/>
    <key id="key_forceReload2" key="r" modifiers="accel,shift" command="cmd_forceReload"/>
    <key id="key_focusURL" key="l" modifiers="accel" command="cmd_openLocation"/>
    <key id="key_focusURL2" key="&urlbar.accesskey;" modifiers="alt" command="cmd_openLocation"/>
    <key id="key_home" keycode="VK_HOME" modifiers="accel" command="cmd_home"/>
    <key id="key_open" key="o" modifiers="accel" command="cmd_openFile"/>
    <key id="key_save" key="s" modifiers="accel" command="cmd_savePage"/>

    <!-- misc -->
    <key id="key_find" key="f" modifiers="accel" command="cmd_find"/>
    <key id="key_find" key="/" command="cmd_find"/>
    <key id="key_findNext" keycode="VK_F3" command="cmd_findNext"/>
    <key id="key_findNext2" key="g" modifiers="accel" command="cmd_findNext"/>
    <key id="key_findPrevious" keycode="VK_F3" modifiers="shift" command="cmd_findPrevious"/>
    <key id="key_findPrevious2" key="g" modifiers="accel,shift" command="cmd_findPrevious"/>
    <key id="key_quit" key="q" modifiers="accel" command="cmd_quit"/>
    <key id="key_addBoomkark" key="d" modifiers="accel" command="cmd_addBookmark"/>
    <key id="key_console" key="j" modifiers="accel,shift" oncommand="PanelUI.show('console-container')"/>
    <key id="key_options" key="o" modifiers="accel,shift" oncommand="FlyoutPanelsUI.show('PrefsFlyoutPanel')" />
#ifdef MOZ_SERVICES_SYNC
    <key id="key_options" key="s" modifiers="accel,shift" oncommand="FlyoutPanelsUI.show('SyncFlyoutPanel')" />
#endif
    <key id="key_options" key="a" modifiers="accel,shift" oncommand="FlyoutPanelsUI.show('AboutFlyoutPanel')" />

    <!-- manage tabs -->
    <key id="key_newTab" key="t" modifiers="accel" command="cmd_newTab"/>
    <key id="key_newTab2" key="n" modifiers="accel" command="cmd_newTab"/>
    <key id="key_closeTab" key="w" modifiers="accel" command="cmd_closeTab"/>
    <key id="key_closeTab2" keycode="VK_F4" modifiers="accel" command="cmd_closeTab"/>
    <key id="key_undoCloseTab" key="t" modifiers="accel,shift" command="cmd_undoCloseTab"/>

    <!-- tab selection -->
    <key id="key_nextTab" oncommand="BrowserUI.selectNextTab();" keycode="VK_TAB" modifiers="accel"/>
    <key id="key_nextTab2" oncommand="BrowserUI.selectNextTab();" keycode="VK_PAGE_DOWN" modifiers="accel"/>
    <key id="key_prevTab" oncommand="BrowserUI.selectPreviousTab();" keycode="VK_TAB" modifiers="accel,shift"/>
    <key id="key_prevTab2" oncommand="BrowserUI.selectPreviousTab();" keycode="VK_PAGE_UP" modifiers="accel"/>
    <key id="key_selectTab1" oncommand="BrowserUI.selectTabAtIndex(0);" key="1" modifiers="accel"/>
    <key id="key_selectTab2" oncommand="BrowserUI.selectTabAtIndex(1);" key="2" modifiers="accel"/>
    <key id="key_selectTab3" oncommand="BrowserUI.selectTabAtIndex(2);" key="3" modifiers="accel"/>
    <key id="key_selectTab4" oncommand="BrowserUI.selectTabAtIndex(3);" key="4" modifiers="accel"/>
    <key id="key_selectTab5" oncommand="BrowserUI.selectTabAtIndex(4);" key="5" modifiers="accel"/>
    <key id="key_selectTab6" oncommand="BrowserUI.selectTabAtIndex(5);" key="6" modifiers="accel"/>
    <key id="key_selectTab7" oncommand="BrowserUI.selectTabAtIndex(6);" key="7" modifiers="accel"/>
    <key id="key_selectTab8" oncommand="BrowserUI.selectTabAtIndex(7);" key="8" modifiers="accel"/>
    <key id="key_selectLastTab" oncommand="BrowserUI.selectTabAtIndex(-1);" key="9" modifiers="accel"/>
  </keyset>

  <stack id="stack" flex="1">
    <observes element="bcast_urlbarState" attribute="*"/>
    <!-- Page Area -->
    <vbox id="page">
      <vbox id="tray" class="tray-toolbar" observes="bcast_windowState" >
        <!-- Tabs -->
        <hbox id="tabs-container" observes="bcast_windowState">
          <box id="tabs" flex="1"
                observes="bcast_preciseInput"
                onselect="BrowserUI.selectTabAndDismiss(this);"
                onclosetab="BrowserUI.closeTab(this);"/>
          <vbox id="tabs-controls">
            <toolbarbutton id="newtab-button" command="cmd_newTab" label="&newtab.label;"/>
          </vbox>
        </hbox>

        <!-- Start UI -->
        <hbox id="start-container" flex="1" observes="bcast_windowState" class="meta content-height content-width">
          <!-- portrait/landscape/filled view -->

          <scrollbox id="start-scrollbox" observes="bcast_preciseInput" flex="1">
            <vbox id="start-topsites" class="meta-section" expanded="true">
              <label class="meta-section-title wide-title" value="&topSitesHeader.label;"/>
              <html:div class="meta-section-title narrow-title" onclick="StartUI.onNarrowTitleClick('start-topsites')">
                &narrowTopSitesHeader.label;
              </html:div>
              <richgrid id="start-topsites-grid" set-name="topSites" rows="3" columns="3" tiletype="thumbnail" seltype="multiple" flex="1"/>
            </vbox>

            <vbox id="start-bookmarks" class="meta-section">
              <label class="meta-section-title wide-title" value="&bookmarksHeader.label;"/>
              <html:div class="meta-section-title narrow-title" onclick="StartUI.onNarrowTitleClick('start-bookmarks')">
                &narrowBookmarksHeader.label;
              </html:div>
              <richgrid id="start-bookmarks-grid" set-name="bookmarks" seltype="multiple" flex="1"/>
            </vbox>

            <vbox id="start-history" class="meta-section">
              <label class="meta-section-title wide-title" value="&recentHistoryHeader.label;"/>
              <html:div class="meta-section-title narrow-title" onclick="StartUI.onNarrowTitleClick('start-history')">
                &narrowRecentHistoryHeader.label;
              </html:div>
              <richgrid id="start-history-grid" set-name="recentHistory" seltype="multiple" flex="1"/>
            </vbox>

            <vbox id="start-remotetabs" class="meta-section">
              <label class="meta-section-title wide-title" value="&remoteTabsHeader.label;"/>
              <html:div id="snappedRemoteTabsLabel" class="meta-section-title narrow-title" onclick="StartUI.onNarrowTitleClick('start-remotetabs')">
                &narrowRemoteTabsHeader.label;
              </html:div>
              <richgrid id="start-remotetabs-grid" set-name="remoteTabs" seltype="multiple" flex="1"/>
            </vbox>

            <!-- Spacer to take extra space in snapped mode. -->
            <spacer flex="999"/>
          </scrollbox>

        </hbox>
      </vbox> <!-- end tray -->

      <!-- Content viewport -->
      <stack id="content-viewport">
        <deck id="browsers" flex="1" observes="bcast_preciseInput"/>
        <box id="vertical-scroller" class="scroller" orient="vertical" end="0" top="0"/>
        <box id="horizontal-scroller" class="scroller" orient="horizontal" left="0" bottom="0"/>

        <!-- Content touch selection overlay -->
        <box class="selection-overlay-hidden" id="content-selection-overlay"/>
      </stack>
    </vbox>

    <html:div id="overlay-back" class="overlay-button"
              observes="cmd_back"></html:div>
    <html:div id="overlay-plus" class="overlay-button"
              observes="cmd_back"></html:div>

    <!-- Navigation bar -->
    <appbar id="navbar" mousethrough="never" observes="bcast_windowState">
      <hbox id="progress-container" layer="true">
        <hbox id="progress-control" />
      </hbox>

      <vbox id="toolbar-overlay" flex="1">
        <!-- Autocomplete -->
        <scrollbox flex="1">
          <hbox id="urlbar-autocomplete" observes="bcast_windowState"/>
        </scrollbox>

        <!-- Main toolbar -->
        <toolbar id="toolbar" flex="1" observes="bcast_windowState">
          <toolbarbutton id="back-button" class="appbar-primary"
                         command="cmd_back"/>
          <toolbarbutton id="forward-button" class="appbar-primary"
                         command="cmd_forward"/>

          <hbox id="urlbar" flex="1" observes="bcast_urlbarState">
            <box id="identity-box" align="center" role="button">
              <image id="identity-icon"/>
            </box>

            <textbox id="urlbar-edit" type="url" flex="1"
                     autocompletesearch="history"
                     autocompletepopup="urlbar-autocomplete"
                     completeselectedindex="true"
                     placeholder="&urlbar.emptytext;"/>

            <toolbarbutton id="go-button" class="urlbar-button"
                           command="cmd_go"/>
            <toolbarbutton id="reload-button" class="urlbar-button"
                           oncommand="CommandUpdater.doCommand(
                                        event.shiftKey ? 'cmd_forceReload'
                                                       : 'cmd_reload');"/>
            <toolbarbutton id="stop-button" class="urlbar-button"
                           command="cmd_stop"/>
          </hbox>

          <stack id="toolbar-contextual">
            <observes element="bcast_windowState" attribute="*"/>
            <observes element="bcast_urlbarState" attribute="*"/>

            <hbox id="toolbar-context-page" pack="end">
              <circularprogressindicator id="download-progress"
                                     oncommand="Appbar.onDownloadButton()"/>
              <toolbarbutton id="star-button" class="appbar-primary"
                             type="checkbox"
                             oncommand="Appbar.onStarButton()"/>
              <toolbarbutton id="pin-button" class="appbar-primary"
                             type="checkbox"
                             oncommand="Appbar.onPinButton()"/>
              <toolbarbutton id="menu-button" class="appbar-primary"
                             oncommand="Appbar.onMenuButton(event)"/>
            </hbox>

            <hbox id="toolbar-context-autocomplete" pack="end">
              <toolbarbutton id="close-button" class="appbar-secondary"
                             oncommand="Appbar.onAutocompleteCloseButton()"/>
            </hbox>
          </stack>
        </toolbar>
      </vbox>
    </appbar>

    <vbox id="panel-container" class="window-width window-height meta"
          hidden="true" observes="bcast_windowState">
      <hbox id="panel-header">
        <toolbarbutton id="panel-close-button" class="appbar-primary"
                       command="cmd_panel"/>
      </hbox>

      <deck id="panel-items" selectedIndex="0" flex="1" >
        <scrollbox id="bookmarks-container" flex="1">
          <richgrid id="bookmarks-list" class="canSnapTiles"
                    set-name="bookmarks" seltype="multiple" flex="1"/>
        </scrollbox>
        <scrollbox id="history-container" flex="1">
          <richgrid id="history-list" class="canSnapTiles"
                    set-name="recentHistory" seltype="multiple" flex="1"/>
        </scrollbox>
        <scrollbox id="remotetabs-container" flex="1">
          <richgrid id="remotetabs-list" class="canSnapTiles"
                    set-name="remoteTabs" seltype="single" flex="1"/>
        </scrollbox>
        <vbox id="console-container" flex="1">
          <vbox id="console-header" class="panel-list">
            <label class="panel-header" value="&consoleHeader.label;"/>
            <hbox align="center">
              <label value="&consoleCodeEval.label;"
                     control="console-eval-textbox"/>
              <textbox id="console-eval-textbox" class="toolbar search-bar"
                       value="" flex="1"
                       onkeypress="ConsolePanelView.onEvalKeyPress(event)"/>
              <button id="console-button-eval" class="show-text"
                      label="&consoleEvaluate.label;"
                      oncommand="ConsolePanelView.evaluateTypein()"/>
            </hbox>
            <hbox align="center" pack="end">
              <radiogroup id="console-filter"
                          oncommand="ConsolePanelView.changeMode();">
                <radio id="console-filter-all" value="all" selected="true"
                       label="&consoleAll.label;"/>
                <radio id="console-filter-messages" value="message"
                       label="&consoleMessages.label;" />
                <radio id="console-filter-warnings" value="warning"
                       label="&consoleWarnings.label;"/>
                <radio id="console-filter-errors" value="error"
                       label="&consoleErrors.label;"/>
              </radiogroup>
              <button id="console-clear" class="show-text"
                      label="&consoleClear.label;"
                      oncommand="ConsolePanelView.clearConsole();"/>
            </hbox>
          </vbox>

          <richlistbox id="console-box" class="panel-list console-box" flex="1"
                       onkeypress="ConsolePanelView.onConsoleBoxKeyPress(event)"
                       oncontextmenu="ConsolePanelView.onContextMenu(event);"/>
        </vbox>
      </deck>
    </vbox>

    <!-- Find bar -->
    <appbar id="findbar" class="window-width" pack="start">
      <textbox id="findbar-textbox" type="search"
               oncommand="FindHelperUI.search(this.value)"
               oninput="FindHelperUI.updateCommands(this.value); "/>

      <toolbarbutton id="findbar-previous-button" class="appbar-secondary"
                     command="cmd_findPrevious"/>
      <toolbarbutton id="findbar-next-button" class="appbar-secondary"
                     command="cmd_findNext"/>

      <spacer flex="1"/>

      <toolbarbutton id="findbar-close-button" class="appbar-secondary"
                     command="cmd_findClose"/>
    </appbar>

    <!-- Context button bar -->
    <appbar id="contextappbar">
      <toolbar id="contextualactions-tray" labelled="true" flex="1">
        <toolbarbutton id="pin-selected-button" class="appbar-secondary"
                       label-uses-set-name="true" hidden="true" fade="true"
                       oncommand="Appbar.dispatchContextualAction('pin')"/>
        <toolbarbutton id="unpin-selected-button" class="appbar-secondary"
                       label-uses-set-name="true" hidden="true" fade="true"
                       oncommand="Appbar.dispatchContextualAction('unpin')"/>
        <toolbarbutton id="delete-selected-button" class="appbar-secondary"
                       hidden="true" fade="true"
                       oncommand="Appbar.dispatchContextualAction('delete')"/>
        <toolbarbutton id="restore-selected-button" class="appbar-secondary"
                       hidden="true" fade="true"
                       oncommand="Appbar.dispatchContextualAction('restore')"/>
        <toolbarbutton id="clear-selected-button" class="appbar-secondary"
                       hidden="true" fade="true"
                       oncommand="Appbar.dispatchContextualAction('clear')"/>
      </toolbar>
    </appbar>

    <autoscroller class="autoscroller" id="autoscrollerid"/>

    <flyoutpanel id="about-flyoutpanel" class="flyout-narrow" headertext="&aboutHeader.title;">
      <label id="about-product-label" value="&aboutHeader.product.label;"/>
      <label value="&aboutHeader.company.label;"/>
#expand <label id="about-version-label">__MOZ_APP_VERSION__</label>
      <vbox id="updateBox">
#ifdef MOZ_UPDATER
        <deck id="updateDeck" orient="vertical">
          <hbox id="updateButtonBox" align="center">
            <button id="updateButton" align="start"
                    oncommand="FlyoutPanelsUI.AboutFlyout.appUpdater.buttonOnCommand();"/>
            <spacer flex="1"/>
          </hbox>
          <hbox id="checkingForUpdates" align="center">
            <image class="update-throbber"/><label>&update.checkingForUpdates;</label>
          </hbox>
          <hbox id="checkingAddonCompat" align="center">
            <image class="update-throbber"/><label>&update.checkingAddonCompat;</label>
          </hbox>
          <hbox id="downloading" align="center">
            <image class="update-throbber"/><label>&update.downloading.start;</label><label id="downloadStatus"/><label>&update.downloading.end;</label>
          </hbox>
          <hbox id="applying" align="center">
            <image class="update-throbber"/><label>&update.applying;</label>
          </hbox>
          <hbox id="downloadFailed" align="center">
            <label>&update.failed.start;</label><label id="failedLink" class="text-link">&update.failed.linkText;</label><label>&update.failed.end;</label>
          </hbox>
          <hbox id="adminDisabled" align="center">
            <label>&update.adminDisabled;</label>
          </hbox>
          <hbox id="noUpdatesFound" align="center">
            <label>&update.noUpdatesFound;</label>
          </hbox>
          <hbox id="otherInstanceHandlingUpdates" align="center">
            <label>&update.otherInstanceHandlingUpdates;</label>
          </hbox>
          <hbox id="manualUpdate" align="center">
            <label>&update.manual.start;</label><label id="manualLink" class="text-link"/><label>&update.manual.end;</label>
          </hbox>
        </deck>
#endif
      </vbox>

#if MOZ_UPDATE_CHANNEL != release
#ifdef MOZ_UPDATER
      <description class="text-blurb" id="currentChannelText">&channel.description.start;<label id="currentChannel"/></description>
      <description class="text-blurb" id="currentChannelText2">&channel.description.end;</description>
#endif
#endif
      <label id="about-policy-label"
            onclick="if (event.button == 0) { BrowserUI.onAboutPolicyClick(); }"
            class="text-link" value="&aboutHeader.policy.label;"/>
    </flyoutpanel>

#ifdef MOZ_SERVICES_SYNC
    <flyoutpanel id="sync-flyoutpanel" class="flyout-narrow" headertext="&sync.flyout.title;">

      <vbox id="sync-presetup-container" collapsed="true">
        <description>&sync.flyout.presetup.description1;</description>
        <separator />
        <hbox onclick="FlyoutPanelsUI.SyncFlyoutPanel.startEasySetup();"
              align="center"
              class="text-link">
          <image src="chrome://browser/skin/images/plus-34.png" />
          <separator />
          <label value="&sync.flyout.presetup.setup.label;"
                 class="text-link" />
          <spacer flex="1" />
        </hbox>
      </vbox>

      <vbox id="sync-setup-container" collapsed="true">
        <description>&sync.flyout.setup.description1;</description>
        <description>&sync.flyout.setup.description2;</description>
        <separator />
        <vbox flex="1" pack="center" align="start">
          <textbox id="sync-setup-code1"
                   class="syncJPAKECode"
                   placeholder="...."
                   disabled="true" />
          <textbox id="sync-setup-code2"
                   class="syncJPAKECode"
                   placeholder="...."
                   disabled="true" />
          <hbox>
            <textbox id="sync-setup-code3"
                         class="syncJPAKECode"
                         placeholder="...."
                         disabled="true" />
            <vbox flex="1" pack="center" align="center">
              <cssthrobber id='sync-setup-throbber'
                           flex='1'
                           class='syncThrobber'
                           collapsed='true'
                           disabled='true' />
            </vbox>
          </hbox>
        </vbox>
        <separator />
        <description class="text-link"
                     flex="1"
                     onclick="FlyoutPanelsUI.SyncFlyoutPanel.abortEasySetup();
                              FlyoutPanelsUI.SyncFlyoutPanel.showManualSetup()">
          &sync.flyout.setup.manual.label;
        </description>
        <separator />
        <description>&sync.flyout.setup.description3;</description>
        <description>&sync.flyout.setup.description4;</description>
        <description class="syncInstructionText">
          &sync.flyout.setup.description5;
        </description>
        <description class="syncInstructionText">
          &sync.flyout.setup.description6;
        </description>
      </vbox>

      <vbox id="sync-manualsetup-container" collapsed="true">
        <description>&sync.flyout.manualsetup.description1;</description>
        <separator/>
        <textbox id="sync-manualsetup-account"
                 placeholder="&sync.flyout.manualsetup.account.placeholder;"
                 oninput="FlyoutPanelsUI.SyncFlyoutPanel.updateManualSetupConnectButtonState();"/>
        <textbox id="sync-manualsetup-password"
                 placeholder="&sync.flyout.manualsetup.password.placeholder;"
                 type="password"
                 oninput="FlyoutPanelsUI.SyncFlyoutPanel.updateManualSetupConnectButtonState();"/>
        <textbox id="sync-manualsetup-syncKey"
                 placeholder="&sync.flyout.manualsetup.recoveryKey.placeholder;"
                 oninput="FlyoutPanelsUI.SyncFlyoutPanel.updateManualSetupConnectButtonState();"/>
        <description id="sync-manualsetup-failure"
                     class="syncErrorText"
                     collapsed="true" />
        <separator />
        <hbox>
          <button id="sync-manualsetup-connect"
                  class="syncButton"
                  oncommand="FlyoutPanelsUI.SyncFlyoutPanel.manualSetupConnect();"
                  label="&sync.flyout.manualsetup.connect.label;"
                  disabled="true" />
          <spacer flex="1" />
        </hbox>
      </vbox>

      <vbox id="sync-setupsuccess-container" collapsed="true">
        <description>&sync.flyout.setupsuccess.description1;</description>
        <description>&sync.flyout.setupsuccess.description2;</description>
      </vbox>

      <vbox id="sync-setupfailure-container" collapsed="true">
        <description>&sync.flyout.setupfailure.description;</description>
        <hbox>
          <button class="syncButton"
                  oncommand="FlyoutPanelsUI.SyncFlyoutPanel.onCancelButton();"
                  label="&sync.flyout.setupfailure.cancelButton;" />
          <button class="syncButton"
                  oncommand="FlyoutPanelsUI.SyncFlyoutPanel.onTryAgainButton();"
                  label="&sync.flyout.setupfailure.tryAgainButton;" />
        </hbox>
      </vbox>

      <vbox id="sync-connected-container" collapsed="true">
        <description id="sync-connected-account"
                     class="syncHeader" />
        <separator />
        <hbox>
          <vbox>
            <description id="sync-connected-device"
                         class="syncHeader" />
            <description id="sync-connected-lastSynced"
                         class="syncSecondaryText" />
          </vbox>
          <cssthrobber id="sync-connected-throbber"
                       class="syncThrobber"
                       collapsed="true"
                       disabled="true" />
        </hbox>
        <label id="sync-disconnect-label"
               class="text-link"
               onclick="FlyoutPanelsUI.SyncFlyoutPanel.onDisconnectLink();">
          &sync.flyout.connected.disconnect;
        </label>
        <separator />
        <vbox id="sync-disconnect-warning" collapsed="true">
          <description class="syncHeader">
            &sync.flyout.connected.disconnectWarningHeader;
          </description>
          <description class="syncSecondaryText">
            &sync.flyout.connected.disconnectWarning;
          </description>
          <hbox>
            <separator />
            <button label="&sync.flyout.connected.cancel;"
                    oncommand="FlyoutPanelsUI.SyncFlyoutPanel.onDisconnectCancel();" />
            <button label="&sync.flyout.connected.disconnect;"
                    oncommand="FlyoutPanelsUI.SyncFlyoutPanel.onDisconnectButton();" />

          </hbox>
          <separator />
        </vbox>
        <hbox onclick="FlyoutPanelsUI.SyncFlyoutPanel.onPairDeviceLink();"
              class="text-link">
          <image src="chrome://browser/skin/images/plus-24.png" />
          <separator />
          <label>&sync.flyout.connected.pair;</label>
        </hbox>
      </vbox>

      <vbox id="sync-pair-container" collapsed="true">
        <description>&sync.flyout.pairNewDevice.description;</description>
        <separator />
        <hbox>
          <vbox>
            <textbox id="sync-pair-entry1"
                     class="syncJPAKECode"
                     maxlength="4"
                     oninput="FlyoutPanelsUI.SyncFlyoutPanel.updatePairButtonState();" />
            <textbox id="sync-pair-entry2"
                     class="syncJPAKECode"
                     maxlength="4"
                     oninput="FlyoutPanelsUI.SyncFlyoutPanel.updatePairButtonState();" />
            <textbox id="sync-pair-entry3"
                     class="syncJPAKECode"
                     maxlength="4"
                     oninput="FlyoutPanelsUI.SyncFlyoutPanel.updatePairButtonState();" />
          </vbox>
          <spacer flex="1" />
        </hbox>
        <description id="sync-pair-failure"
                     class="syncErrorText"
                     collapsed="true">
          &sync.flyout.pairNewDevice.failure;
        </description>
        <hbox>
          <button id="sync-pair-button"
                  label="&sync.flyout.pairNewDevice.pair;"
                  oncommand="FlyoutPanelsUI.SyncFlyoutPanel.onPairButton();"
                  disabled="true" />
          <spacer flex="1" />
        </hbox>
        <description>&sync.flyout.pairNewDevice.note1;</description>
        <description>&sync.flyout.pairNewDevice.note2;</description>
        <description class="syncInstructionText">
          &sync.flyout.pairNewDevice.note3;
        </description>
        <description class="syncInstructionText">
          &sync.flyout.pairNewDevice.note4;
        </description>
      </vbox>

      <vbox id="sync-pair-success-container" collapsed="true">
        <description>&sync.flyout.pairSuccess.description1;</description>
        <description>&sync.flyout.pairSuccess.description2;</description>
      </vbox>

    </flyoutpanel>
#endif

    <flyoutpanel id="prefs-flyoutpanel" class="flyout-narrow" headertext="&optionsHeader.title;">
      <settings id="prefs-startup" label="&optionsHeader.startup.title;"> <!-- note, this element has a custom margin-top -->
        <setting id="prefs-homepage" title="&optionsHeader.homepage.title;" type="menulist" pref="browser.startup.sessionRestore" class="setting-expanded">
          <menulist id="prefs-homepage-options">
            <menupopup id="prefs-homepage-popup" position="after_end">
              <menuitem id="prefs-homepage-default" label="&optionsHeader.homepage.startPage.button;" value="false"/>
              <menuitem id="prefs-homepage-session" label="&optionsHeader.homepage.sessionRestore.button;" value="true"/>
            </menupopup>
          </menulist>
        </setting>
      </settings>
      <settings id="prefs-charencoding" label="&optionsHeader.char.title;">
        <setting pref="browser.menu.showCharacterEncoding" title="&optionsHeader.char.options.label;" type="bool"/>
      </settings>
      <settings id="prefs-privdata" label="&clearPrivateData.title;">
        <description>&clearPrivateData.label;</description>

        <checkbox id="prefs-privdata-history" itemName="history" label="&clearPrivateData.history;" checked="true" />

        <checkbox id="prefs-privdata-other" label="&clearPrivateData.otherdata;"/>
        <hbox id="prefs-privdata-subitems" >
          <checkbox class="privdata-subitem-item" checked="true" itemName="downloads" label="&clearPrivateData.downloadHist;"/>
          <checkbox class="privdata-subitem-item" checked="true" itemName="formdata" label="&clearPrivateData.formSearchHist;"/>
          <checkbox class="privdata-subitem-item" checked="true" itemName="cookies" label="&clearPrivateData.cookies;"/>
          <checkbox class="privdata-subitem-item" checked="true" itemName="passwords" label="&clearPrivateData.passwords;"/>
          <checkbox class="privdata-subitem-item" checked="true" itemName="cache" label="&clearPrivateData.cache;"/>
          <checkbox class="privdata-subitem-item" checked="true" itemName="offlineApps" label="&clearPrivateData.offline;"/>
          <checkbox class="privdata-subitem-item" checked="true" itemName="siteSettings" label="&clearPrivateData.sitePref;"/>
          <checkbox class="privdata-subitem-item" checked="true" itemName="sessions" label="&clearPrivateData.logins;"/>
        </hbox>

        <hbox align="center">
          <button id="prefs-clear-data" label="&clearPrivateData.button;" command="cmd_sanitize" flex="1" />
          <deck id="clear-notification" flex="2" selectedIndex="0" align="center">
            <spacer id="clear-notification-empty"/>
            <hbox id="clear-notification-clearing" align="center">
              <cssthrobber id="clearprivacythrobber"/>
            </hbox>
            <description id="clear-notification-done">&clearPrivateData.done;</description>
          </deck>
        </hbox>
      </settings>
      <setting pref="signon.rememberSignons" title="&optionsHeader.privacy.passwords.label;" type="bool"/>
      <settings id="prefs-reporting" label="&optionsHeader.reporting.title;">
        <setting pref="app.crashreporter.autosubmit" type="bool" title="&optionsHeader.reporting.crashes.label;" oncommand="BrowserUI.crashReportingPrefChanged(this.value);"/>
      </settings>
      <settings id="prefs-telemetry" label="&optionsHeader.telemetry.title;">
        <setting pref="toolkit.telemetry.enabled" type="bool" title="&optionsHeader.telemetry.label;"/>
      </settings>
      <settings id="prefs-dnt" label="&doNotTrack.title;">
        <description>&doNotTrack.desc;</description>
        <setting id="prefs-dnt-value" pref="privacy.donottrackheader.value" type="radio" >
          <radiogroup id="prefs-dnt-options">
            <radio id="prefs-dnt-notrack" label="&doNotTrack.options.trackingNotOkay;" value="1"/>
            <radio id="prefs-dnt-nopref" label="&doNotTrack.options.noPreference;" value="-1"/>
            <radio id="prefs-dnt-oktrack" label="&doNotTrack.options.trackingOkay;" value="0"/>
          </radiogroup>
        </setting>
      </settings>
    </flyoutpanel>

    <!-- Chrome touch selection overlay -->
    <box class="selection-overlay-hidden" id="chrome-selection-overlay"/>

    <box onclick="event.stopPropagation();" id="context-container" class="menu-container" hidden="true">
      <vbox id="context-popup" class="menu-popup">
        <richlistbox id="context-commands" bindingType="contextmenu" flex="1">
          <!-- priority="low" items are hidden by default when a context is being displayed
               for two or more media types. (e.g. a linked image) -->
          <!-- content types preceeded by '!' act as exclusion rules, the menu item will not
               be displayed if the content type is present. -->
          <!-- Note the order of richlistitem here is important as it is reflected in the
               menu itself. -->
          <!-- ux spec: https://bug782810.bugzilla.mozilla.org/attachment.cgi?id=714804 -->

          <!-- Text related -->
          <!-- for text inputs, this will cut selected text -->
          <richlistitem id="context-cut" type="cut" onclick="ContextCommands.cut();">
            <label value="&contextTextCut.label;"/>
          </richlistitem>
          <!-- for text inputs, this will copy selected text -->
          <richlistitem id="context-copy" type="copy" onclick="ContextCommands.copy();">
            <label value="&contextTextCopy.label;"/>
          </richlistitem>
          <!-- Search Bing for "(text..)", displayed on selected content text only -->
          <richlistitem id="context-search" type="selected-text,!input-text" onclick="ContextCommands.searchText(this);">
            <label id="context-search-label" value=""/>
          </richlistitem>
          <!-- only displayed in inputs with text that do not have selection -->
          <richlistitem id="context-select" type="selectable" onclick="ContextCommands.select();">
            <label value="&contextTextSelect.label;"/>
          </richlistitem>
          <!-- only displayed in inputs with text that do not have selection -->
          <richlistitem id="context-select-all" type="selectable" onclick="ContextCommands.selectAll();">
            <label value="&contextTextSelectAll.label;"/>
          </richlistitem>
          <!-- only displayed if there is text on the clipboard -->
          <richlistitem id="context-paste" type="paste" onclick="ContextCommands.paste();">
            <label value="&contextTextPaste.label;"/>
          </richlistitem>
          <!-- only display if there is text on the clipboard and the target is the urlbar -->
          <richlistitem id="context-paste-n-go" type="paste-url" onclick="ContextCommands.pasteAndGo();">
            <label value="&contextTextPasteAndGo.label;"/>
          </richlistitem>

          <!-- Image related -->
          <!-- save image to user pictures library -->
          <richlistitem id="context-save-image-lib" type="image" onclick="ContextCommands.saveImageToLib();">
            <label value="&contextSaveImageLib.label;"/>
          </richlistitem>
          <!-- copy image data to clipboard -->
          <richlistitem id="context-copy-image" type="image" onclick="ContextCommands.copyImage();">
            <label value="&contextCopyImage.label;"/>
          </richlistitem>
          <!-- copy the uri of the image src -->
          <richlistitem id="context-copy-image-loc" type="image" onclick="ContextCommands.copyImageSrc();">
            <label value="&contextCopyImageLocation.label;"/>
          </richlistitem>
          <!-- open the uri of the image src in a new tab -->
          <richlistitem id="context-open-image-tab" type="image" priority="low" onclick="ContextCommands.openImageInNewTab();">
            <label value="&contextOpenImageTab.label;"/>
          </richlistitem>

          <!-- Video related -->
          <!-- save video to user videos library -->
          <richlistitem id="context-save-video-lib" type="video" onclick="ContextCommands.saveVideoToLib();">
            <label value="&contextSaveVideoLib.label;"/>
          </richlistitem>
          <!-- copy the uri of the video src -->
          <richlistitem id="context-copy-video-loc" type="video" onclick="ContextCommands.copyVideoSrc();">
            <label value="&contextCopyVideoLocation.label;"/>
          </richlistitem>
          <!-- open the uri of the video src in a new tab -->
          <richlistitem id="context-open-video-tab" type="video" priority="low" onclick="ContextCommands.openVideoInNewTab();">
            <label value="&contextOpenVideoTab.label;"/>
          </richlistitem>

          <!-- Link related -->
          <!-- all of these apply to underlying link href values -->
          <richlistitem id="context-open-in-new-tab" type="link" onclick="ContextCommands.openLinkInNewTab();">
            <label value="&contextOpenLinkTab.label;"/>
          </richlistitem>
          <richlistitem id="context-copy-link" type="link" onclick="ContextCommands.copyLink();">
            <label value="&contextCopyLinkHref.label;"/>
          </richlistitem>
          <richlistitem id="context-bookmark-link" type="link" priority="low" onclick="ContextCommands.bookmarkLink();">
            <label value="&contextBookmarkLinkHref.label;"/>
          </richlistitem>

          <!-- App bar: 'more' button context menu -->
          <!-- developer buttons - shown in metrodesktop mode only -->
          <richlistitem id="context-error-console" type="open-error-console" onclick="ContextCommands.errorConsole();">
            <label value="&appbarErrorConsole.label;"/>
          </richlistitem>
          <richlistitem id="context-jsshell" type="open-jsshell" onclick="ContextCommands.jsShell();">
            <label value="&appbarJSShell.label;"/>
          </richlistitem>

          <!-- standard buttons -->
          <richlistitem id="context-findinpage" type="find-in-page" onclick="ContextCommands.findInPage();">
            <label value="&appbarFindInPage2.label;"/>
          </richlistitem>
          <richlistitem id="context-viewondesktop" type="view-on-desktop" onclick="ContextCommands.viewOnDesktop();">
            <label value="&appbarViewOnDesktop2.label;"/>
          </richlistitem>
        </richlistbox>
      </vbox>
    </box>

    <vbox id="select-container" class="menu-container" hidden="true">
      <vbox id="select-popup" class="select-popup">
        <richlistbox id="select-commands" flex="1"/>
      </vbox>
    </vbox>

    <box id="menucontrol-container" class="menu-container" hidden="true">
      <vbox id="menucontrol-popup" class="menu-popup">
        <richlistbox id="menupopup-commands" onclick="if (event.target != this) MenuControlUI.selectByIndex(this.selectedIndex);" flex="1"/>
      </vbox>
    </box>

    <box id="autofill-container" class="menu-container" hidden="true">
      <vbox id="autofill-popup" class="menu-popup">
        <richlistbox id="menupopup-commands" onclick="if (event.target != this) AutofillMenuUI.selectByIndex(this.selectedIndex);" flex="1"/>
      </vbox>
    </box>

    <!-- alerts for content -->
    <hbox id="alerts-container" hidden="true" align="start" bottom="0" onclick="AlertsHelper.click(event);">
      <image id="alerts-image"/>
      <vbox flex="1">
        <label id="alerts-title" value=""/>
        <description id="alerts-text" flex="1"/>
      </vbox>
    </hbox>
  </stack>

</window>