Files
tubestation/browser/components/customizableui/content/panelUI.inc.xhtml
Greg Tatum b3fb1bfd84 Bug 1597378 - Create new UI for the profiler popup; r=julienw
This commit implements the actual UI changes. A follow-up commit adds the
tests for the changes. The CSS is a little bit awkard since it uses lots of
ID selectors rather than class selectors. I wanted to be able to write quick
selects, since it's selecting across the entire browser document. I feel
a little conflicted with the approach, as I would prefer to use classes in
general.

The panel.jsm.js file collects all of the UI handling changes rather than
having everything in menu-button.jsm.js, as the latter can get loaded
at startup. I'm not sure if it's completely worth the trouble of having
two files, as most of it should be pretty light.

This commit does not handle localization for the panel, as we should be moving
to Fluent. Rather than solve that here, I will follow-up with it in Bug 1599774.

Differential Revision: https://phabricator.services.mozilla.com/D62914
2020-02-25 16:47:19 +00:00

1039 lines
52 KiB
HTML

<!-- 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/. -->
<panel id="widget-overflow"
class="panel-no-padding"
role="group"
type="arrow"
noautofocus="true"
position="bottomcenter topright"
hidden="true">
<panelmultiview mainViewId="widget-overflow-mainView">
<panelview id="widget-overflow-mainView"
context="toolbar-context-menu">
<vbox class="panel-subview-body">
<vbox id="widget-overflow-list" class="widget-overflow-list"
overflowfortoolbar="nav-bar"/>
<toolbarseparator id="widget-overflow-fixed-separator" hidden="true"/>
<vbox id="widget-overflow-fixed-list" class="widget-overflow-list" hidden="true" />
</vbox>
<toolbarbutton command="cmd_CustomizeToolbars"
id="overflowMenu-customize-button"
class="subviewbutton panel-subview-footer"
accesskey="&overflowCustomizeToolbar.accesskey;"
label="&overflowCustomizeToolbar.label;"/>
</panelview>
</panelmultiview>
<!-- This menu is here because not having it in the menu in which it's used flickers
when hover styles overlap. See https://bugzilla.mozilla.org/show_bug.cgi?id=1378427 .
-->
<menupopup id="customizationPanelItemContextMenu"
onpopupshowing="gCustomizeMode.onPanelContextMenuShowing(event); ToolbarContextMenu.updateExtension(this)">
<menuitem oncommand="ToolbarContextMenu.openAboutAddonsForContextAction(this.parentElement)"
accesskey="&customizeMenu.manageExtension.accesskey;"
label="&customizeMenu.manageExtension.label;"
contexttype="toolbaritem"
class="customize-context-manageExtension"/>
<menuitem oncommand="ToolbarContextMenu.removeExtensionForContextAction(this.parentElement)"
accesskey="&customizeMenu.removeExtension.accesskey;"
label="&customizeMenu.removeExtension.label;"
contexttype="toolbaritem"
class="customize-context-removeExtension"/>
<menuitem oncommand="ToolbarContextMenu.reportExtensionForContextAction(this.parentElement, 'toolbar_context_menu')"
accesskey="&customizeMenu.reportExtension.accesskey;"
label="&customizeMenu.reportExtension.label;"
contexttype="toolbaritem"
class="customize-context-reportExtension"/>
<menuseparator/>
<menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
id="customizationPanelItemContextMenuPin"
accesskey="&customizeMenu.pinToOverflowMenu.accesskey;"
label="&customizeMenu.pinToOverflowMenu.label;"
closemenu="single"
class="customize-context-moveToPanel"/>
<menuitem oncommand="gCustomizeMode.addToToolbar(document.popupNode)"
id="customizationPanelItemContextMenuUnpin"
closemenu="single"
class="customize-context-moveToToolbar"
accesskey="&customizeMenu.unpinFromOverflowMenu.accesskey;"
label="&customizeMenu.unpinFromOverflowMenu.label;"/>
<menuitem oncommand="gCustomizeMode.removeFromArea(document.popupNode)"
closemenu="single"
class="customize-context-removeFromPanel"
accesskey="&customizeMenu.removeFromToolbar.accesskey;"
label="&customizeMenu.removeFromToolbar.label;"/>
<menuseparator/>
<menuitem command="cmd_CustomizeToolbars"
class="viewCustomizeToolbar"
accesskey="&viewCustomizeToolbar.accesskey;"
label="&viewCustomizeToolbar.label;"/>
</menupopup>
</panel>
<panel id="panic-button-success-notification"
type="arrow"
position="bottomcenter topright"
hidden="true"
role="alert"
orient="vertical">
<hbox id="panic-button-success-header">
<image id="panic-button-success-icon" alt=""/>
<vbox>
<description>&panicButton.thankyou.msg1;</description>
<description>&panicButton.thankyou.msg2;</description>
</vbox>
</hbox>
<button label="&panicButton.thankyou.buttonlabel;"
id="panic-button-success-closebutton"
oncommand="PanicButtonNotifier.close()"/>
</panel>
<panel id="appMenu-notification-popup"
class="popup-notification-panel panel-no-padding"
type="arrow"
position="after_start"
hidden="true"
flip="slide"
orient="vertical"
noautofocus="true"
noautohide="true"
nopreventnavboxhide="true"
role="alert">
<popupnotification id="appMenu-update-available-notification"
popupid="update-available"
data-lazy-l10n-id="appmenu-update-available"
data-l10n-attrs="buttonlabel, buttonaccesskey, secondarybuttonlabel, secondarybuttonaccesskey"
closebuttonhidden="true"
dropmarkerhidden="true"
checkboxhidden="true"
buttonhighlight="true"
hidden="true">
<popupnotificationcontent id="update-available-notification-content" orient="vertical">
<description id="update-available-description" data-lazy-l10n-id="appmenu-update-available-message"></description>
<label id="update-available-whats-new" is="text-link" data-lazy-l10n-id="appmenu-update-whats-new"/>
</popupnotificationcontent>
</popupnotification>
<popupnotification id="appMenu-update-manual-notification"
popupid="update-manual"
data-lazy-l10n-id="appmenu-update-manual"
data-l10n-attrs="buttonlabel, buttonaccesskey, secondarybuttonlabel, secondarybuttonaccesskey"
closebuttonhidden="true"
dropmarkerhidden="true"
checkboxhidden="true"
buttonhighlight="true"
hidden="true">
<popupnotificationcontent id="update-manual-notification-content" orient="vertical">
<description id="update-manual-description" data-lazy-l10n-id="appmenu-update-manual-message"></description>
<label id="update-manual-whats-new" is="text-link" data-lazy-l10n-id="appmenu-update-whats-new"/>
</popupnotificationcontent>
</popupnotification>
<popupnotification id="appMenu-update-unsupported-notification"
popupid="update-unsupported"
data-lazy-l10n-id="appmenu-update-unsupported"
data-l10n-attrs="buttonlabel, buttonaccesskey, secondarybuttonlabel, secondarybuttonaccesskey"
closebuttonhidden="true"
dropmarkerhidden="true"
checkboxhidden="true"
buttonhighlight="true"
hidden="true">
<popupnotificationcontent id="update-unsupported-notification-content" orient="vertical">
<description id="update-unsupported-description" data-lazy-l10n-id="appmenu-update-unsupported-message"></description>
</popupnotificationcontent>
</popupnotification>
<popupnotification id="appMenu-update-restart-notification"
popupid="update-restart"
data-lazy-l10n-id="appmenu-update-restart"
data-l10n-attrs="buttonlabel, buttonaccesskey, secondarybuttonlabel, secondarybuttonaccesskey"
closebuttonhidden="true"
dropmarkerhidden="true"
checkboxhidden="true"
buttonhighlight="true"
hidden="true">
<popupnotificationcontent id="update-restart-notification-content" orient="vertical">
<description id="update-restart-description" data-lazy-l10n-id="appmenu-update-restart-message"></description>
</popupnotificationcontent>
</popupnotification>
<popupnotification id="appMenu-addon-installed-notification"
popupid="addon-installed"
closebuttonhidden="true"
secondarybuttonhidden="true"
data-lazy-l10n-id="appmenu-addon-private-browsing-installed"
data-l10n-attrs="buttonlabel, buttonaccesskey"
dropmarkerhidden="true"
checkboxhidden="true"
buttonhighlight="true"
hidden="true">
<popupnotificationcontent class="addon-installed-notification-content" orient="vertical">
<description id="addon-install-description" data-lazy-l10n-id="appmenu-addon-post-install-message">
<image data-l10n-name="addon-install-icon" class="addon-addon-icon"></image>
<image data-l10n-name="addon-menu-icon" class="addon-toolbar-icon"></image>
</description>
<checkbox id="addon-incognito-checkbox"
data-lazy-l10n-id="appmenu-addon-post-install-incognito-checkbox"/>
</popupnotificationcontent>
</popupnotification>
</panel>
<menupopup id="customizationPaletteItemContextMenu"
onpopupshowing="gCustomizeMode.onPaletteContextMenuShowing(event)">
<menuitem oncommand="gCustomizeMode.addToToolbar(document.popupNode)"
class="customize-context-addToToolbar"
accesskey="&customizeMenu.addToToolbar.accesskey;"
label="&customizeMenu.addToToolbar.label;"/>
<menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
class="customize-context-addToPanel"
accesskey="&customizeMenu.addToOverflowMenu.accesskey;"
label="&customizeMenu.addToOverflowMenu.label;"/>
</menupopup>
<menupopup id="customizationPanelContextMenu">
<menuitem command="cmd_CustomizeToolbars"
accesskey="&customizeMenu.addMoreItems.accesskey;"
label="&customizeMenu.addMoreItems.label;"/>
</menupopup>
<panel id="appMenu-popup"
class="cui-widget-panel panel-no-padding"
role="group"
type="arrow"
hidden="true"
flip="slide"
position="bottomcenter topright"
noautofocus="true">
<panelmultiview id="appMenu-multiView" mainViewId="appMenu-mainView"
viewCacheId="appMenu-viewCache">
<panelview id="appMenu-mainView" class="PanelUI-subView"
descriptionheightworkaround="true">
<vbox class="panel-subview-body">
<vbox id="appMenu-addon-banners"/>
<toolbarbutton class="panel-banner-item"
label-update-available="&updateAvailable.panelUI.label;"
label-update-manual="&updateManual.panelUI.label;"
label-update-unsupported="&updateUnsupported.panelUI.label;"
label-update-restart="&updateRestart.panelUI.label2;"
oncommand="PanelUI._onBannerItemSelected(event)"
wrap="true"
hidden="true"/>
<toolbaritem id="appMenu-fxa-status"
class="sync-ui-item"
defaultlabel="&fxa.menu.signin.label;"
flex="1">
<image id="appMenu-fxa-avatar"/>
<toolbarbutton id="appMenu-fxa-label"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="&fxa.menu.signin.label;"
closemenu="none"
oncommand="gSync.toggleAccountPanel('PanelUI-fxa', this, event)"/>
</toolbaritem>
<toolbarseparator class="sync-ui-item"/>
<toolbaritem>
<toolbarbutton id="appMenu-protection-report-button"
class="subviewbutton subviewbutton-iconic"
oncommand="gProtectionsHandler.openProtections(); gProtectionsHandler.recordClick('open_full_report', null, 'app_menu');"
data-l10n-id="appmenuitem-protection-report-tooltip">
<image id="appMenu-protection-report-icon" class="toolbarbutton-icon"/>
<label id="appMenu-protection-report-text"
class="toolbarbutton-text"
data-l10n-id="appmenuitem-protection-report-title">
</label>
</toolbarbutton>
</toolbaritem>
<toolbarseparator id="appMenu-tp-separator"/>
<toolbarbutton id="appMenu-new-window-button"
class="subviewbutton subviewbutton-iconic"
label="&newNavigatorCmd.label;"
key="key_newNavigator"
command="cmd_newNavigator"/>
<toolbarbutton id="appMenu-private-window-button"
class="subviewbutton subviewbutton-iconic"
label="&newPrivateWindow.label;"
key="key_privatebrowsing"
command="Tools:PrivateBrowsing"/>
#ifdef NIGHTLY_BUILD
<toolbarbutton id="appMenu-fission-window-button"
class="subviewbutton subviewbutton-iconic"
label="New Fission Window"
accesskey="s"
command="Tools:FissionWindow"/>
<toolbarbutton id="appMenu-non-fission-window-button"
class="subviewbutton subviewbutton-iconic"
label="New Non-Fission Window"
accesskey="s"
command="Tools:NonFissionWindow"/>
#endif
<toolbarbutton id="appMenuRestoreLastSession"
label="&appMenuHistory.restoreSession.label;"
class="subviewbutton subviewbutton-iconic"
command="Browser:RestoreLastSession"/>
<toolbarseparator/>
<toolbaritem id="appMenu-zoom-controls" class="toolbaritem-combined-buttons" closemenu="none">
<!-- Use a spacer, because panel sizing code gets confused when using CSS methods. -->
<spacer class="before-label"/>
<label value="&fullZoom.label;"/>
<!-- This spacer keeps the scrollbar from overlapping the view. -->
<spacer class="after-label"/>
<toolbarbutton id="appMenu-zoomReduce-button"
class="subviewbutton subviewbutton-iconic"
command="cmd_fullZoomReduce"
data-l10n-id="appmenuitem-zoom-reduce"
tooltip="dynamic-shortcut-tooltip"/>
<toolbarbutton id="appMenu-zoomReset-button"
class="subviewbutton"
command="cmd_fullZoomReset"
tooltip="dynamic-shortcut-tooltip"/>
<toolbarbutton id="appMenu-zoomEnlarge-button"
class="subviewbutton subviewbutton-iconic"
command="cmd_fullZoomEnlarge"
data-l10n-id="appmenuitem-zoom-enlarge"
tooltip="dynamic-shortcut-tooltip"/>
<toolbarseparator orient="vertical"/>
<toolbarbutton id="appMenu-fullscreen-button"
class="subviewbutton subviewbutton-iconic"
label="&fullScreenCmd.label;"
observes="View:FullScreen"
type="checkbox"
closemenu="auto"
onclick="if (event.button == 0) this.closest('panel').hidePopup();"
tooltip="dynamic-shortcut-tooltip"/>
</toolbaritem>
<toolbarseparator/>
<toolbaritem id="appMenu-edit-controls" class="toolbaritem-combined-buttons" closemenu="none">
<!-- Use a spacer, because panel sizing code gets confused when using CSS methods. -->
<spacer class="before-label"/>
<label value="&editMenu.label;"/>
<!-- This spacer keeps the scrollbar from overlapping the view. -->
<spacer class="after-label"/>
<toolbarbutton id="appMenu-cut-button"
class="subviewbutton subviewbutton-iconic"
command="cmd_cut"
tooltip="dynamic-shortcut-tooltip"/>
<toolbarbutton id="appMenu-copy-button"
class="subviewbutton subviewbutton-iconic"
command="cmd_copy"
tooltip="dynamic-shortcut-tooltip"/>
<toolbarbutton id="appMenu-paste-button"
class="subviewbutton subviewbutton-iconic"
command="cmd_paste"
tooltip="dynamic-shortcut-tooltip"/>
</toolbaritem>
<toolbarseparator/>
<toolbarbutton id="appMenu-library-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="&places.library.title;"
closemenu="none"
oncommand="PanelUI.showSubView('appMenu-libraryView', this)"/>
<toolbarbutton id="appMenu-logins-button"
class="subviewbutton subviewbutton-iconic"
label="&logins.label;"
oncommand="LoginHelper.openPasswordManager(window, { entryPoint: 'mainmenu' })"
/>
<toolbarbutton id="appMenu-addons-button"
class="subviewbutton subviewbutton-iconic"
label="&addons.label;"
key="key_openAddons"
command="Tools:Addons"
/>
<toolbarbutton id="appMenu-ssb-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="Site Browsers"
closemenu="none"
oncommand="PanelUI.showSubView('appMenu-SSBView', this)"
hidden="true" persist="hidden"/>
<toolbarbutton id="appMenu-preferences-button"
class="subviewbutton subviewbutton-iconic"
#ifdef XP_WIN
label="&preferencesCmd2.label;"
#else
label="&preferencesCmdUnix.label;"
#ifdef XP_MACOSX
key="key_preferencesCmdMac"
#endif
#endif
oncommand="openPreferences()"
/>
<toolbarbutton id="appMenu-customize-button"
class="subviewbutton subviewbutton-iconic"
label="&viewCustomizeToolbar.label;"
command="cmd_CustomizeToolbars"
/>
<toolbarseparator/>
<toolbarbutton id="appMenu-open-file-button"
class="subviewbutton"
label="&openFileCmd.label;"
key="openFileKb"
command="Browser:OpenFile"
/>
<toolbarbutton id="appMenu-save-file-button"
class="subviewbutton"
data-l10n-id="toolbar-button-page-save"
key="key_savePage"
command="Browser:SavePage"
/>
<toolbarbutton id="appMenu-print-button"
class="subviewbutton subviewbutton-iconic"
label="&printCmd.label;"
#ifdef XP_MACOSX
key="printKb"
command="cmd_print"
#else
command="cmd_printPreview"
#endif
/>
<toolbarseparator/>
<toolbarbutton id="appMenu-find-button"
class="subviewbutton subviewbutton-iconic"
label="&findOnCmd.label;"
key="key_find"
command="cmd_find"/>
<toolbarbutton id="appMenu-more-button"
class="subviewbutton subviewbutton-nav"
label="&moreMenu.label;"
closemenu="none"
oncommand="PanelUI.showSubView('appMenu-moreView', this)"/>
<toolbarbutton id="appMenu-developer-button"
class="subviewbutton subviewbutton-nav"
label="&webDeveloperMenu.label;"
closemenu="none"
oncommand="PanelUI.showSubView('PanelUI-developer', this)"/>
<toolbarbutton id="appMenu-whatsnew-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
hidden="true"
closemenu="none"
oncommand="PanelUI.showSubView('PanelUI-whatsNew', this)"/>
<toolbarbutton id="appMenu-help-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="&appMenuHelp.label;"
closemenu="none"
oncommand="PanelUI.showSubView('PanelUI-helpView', this)"/>
#ifndef XP_MACOSX
<toolbarseparator/>
<toolbarbutton id="appMenu-quit-button"
class="subviewbutton subviewbutton-iconic"
#ifdef XP_WIN
label="&quitApplicationCmdWin2.label;"
tooltiptext="&quitApplicationCmdWin2.tooltip;"
#else
label="&quitApplicationCmd.label;"
#endif
key="key_quitApplication"
command="cmd_quitApplication"/>
#endif
</vbox>
</panelview>
<panelview id="PanelUI-history" flex="1">
<vbox class="panel-subview-body">
<toolbarbutton id="appMenuViewHistorySidebar"
label="&appMenuHistory.viewSidebar.label;"
label-checked="&appMenuHistory.hideSidebar.label;"
label-unchecked="&appMenuHistory.viewSidebar.label;"
type="checkbox"
class="subviewbutton subviewbutton-iconic"
key="key_gotoHistory"
oncommand="SidebarUI.toggle('viewHistorySidebar');">
<observes element="sidebar-box" attribute="positionend"/>
</toolbarbutton>
<toolbarbutton id="appMenuClearRecentHistory"
label="&appMenuHistory.clearRecent.label;"
class="subviewbutton subviewbutton-iconic"
command="Tools:Sanitize"/>
<toolbarseparator/>
<toolbarbutton id="appMenuRecentlyClosedTabs"
label="&historyUndoMenu.label;"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
closemenu="none"
oncommand="PanelUI.showSubView('appMenu-library-recentlyClosedTabs', this)"/>
<toolbarbutton id="appMenuRecentlyClosedWindows"
label="&historyUndoWindowMenu.label;"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
closemenu="none"
oncommand="PanelUI.showSubView('appMenu-library-recentlyClosedWindows', this)"/>
<toolbarseparator/>
<label value="&appMenuHistory.recentHistory.label;"
class="subview-subheader"/>
<toolbaritem id="appMenu_historyMenu"
orient="vertical"
smoothscroll="false"
flatList="true"
tooltip="bhTooltip">
<!-- history menu items will go here -->
</toolbaritem>
</vbox>
<toolbarbutton id="PanelUI-historyMore"
class="panel-subview-footer subviewbutton"
label="&appMenuHistory.showAll.label;"
oncommand="PlacesCommandHook.showPlacesOrganizer('History'); CustomizableUI.hidePanelForNode(this);"/>
</panelview>
<panelview id="appMenu-library-recentlyClosedTabs"/>
<panelview id="appMenu-library-recentlyClosedWindows"/>
<panelview id="PanelUI-remotetabs" flex="1" class="PanelUI-subView"
descriptionheightworkaround="true">
<vbox class="panel-subview-body">
<!-- this widget has 3 boxes in the body, but only 1 is ever visible -->
<!-- When Sync is ready to sync -->
<vbox id="PanelUI-remotetabs-main" hidden="true">
<vbox id="PanelUI-remotetabs-buttons">
<toolbarbutton id="PanelUI-remotetabs-view-sidebar"
class="subviewbutton subviewbutton-iconic"
label="&appMenuRemoteTabs.sidebar.label;"
label-checked="&appMenuRemoteTabs.hidesidebar.label;"
label-unchecked="&appMenuRemoteTabs.sidebar.label;"
oncommand="SidebarUI.toggle('viewTabsSidebar', this);"/>
<toolbarbutton id="PanelUI-remotetabs-view-managedevices"
class="subviewbutton subviewbutton-iconic"
label="&appMenuRemoteTabs.managedevices.label;"
oncommand="gSync.openDevicesManagementPage('syncedtabs-menupanel');">
<observes element="sidebar-box" attribute="positionend"/>
</toolbarbutton>
<toolbarbutton id="PanelUI-remotetabs-syncnow"
data-l10n-id="fxa-toolbar-sync-now"
syncinglabel="fxa-toolbar-sync-syncing-tabs"
class="syncNowBtn subviewbutton subviewbutton-iconic"
oncommand="gSync.doSync();"
onmouseover="gSync.refreshSyncButtonsTooltip();"
closemenu="none"/>
<menuseparator id="PanelUI-remotetabs-separator"/>
</vbox>
<deck id="PanelUI-remotetabs-deck">
<!-- Sync is ready to Sync and the "tabs" engine is enabled -->
<vbox id="PanelUI-remotetabs-tabspane">
<vbox id="PanelUI-remotetabs-tabslist"
showAllLabel="&appMenuRemoteTabs.showAll.label;"
showAllTooltipText="&appMenuRemoteTabs.showAll.tooltip;"
showMoreLabel="&appMenuRemoteTabs.showMore.label;"
showMoreTooltipText="&appMenuRemoteTabs.showMore.tooltip;"
notabsforclientlabel="&appMenuRemoteTabs.notabs.label;"
/>
</vbox>
<!-- Sync is ready to Sync but the "tabs" engine isn't enabled-->
<hbox id="PanelUI-remotetabs-tabsdisabledpane" pack="center" flex="1">
<vbox class="PanelUI-remotetabs-instruction-box" align="center">
<hbox pack="center">
<image class="fxaSyncIllustrationIssue"/>
</hbox>
<label class="PanelUI-remotetabs-instruction-label">&appMenuRemoteTabs.tabsnotsyncing.label;</label>
<hbox pack="center">
<toolbarbutton class="PanelUI-remotetabs-button"
label="&appMenuRemoteTabs.opensyncprefs.label;"
oncommand="gSync.openPrefs('synced-tabs');"/>
</hbox>
</vbox>
</hbox>
<!-- Sync is ready to Sync but we are still fetching the tabs to show -->
<vbox id="PanelUI-remotetabs-fetching">
<!-- Show intentionally blank panel, see bug 1239845 -->
</vbox>
<!-- Sync has only 1 (ie, this) device connected -->
<hbox id="PanelUI-remotetabs-nodevicespane" pack="center" flex="1">
<vbox class="PanelUI-remotetabs-instruction-box" align="center">
<hbox pack="center">
<image class="fxaSyncIllustrationIssue"/>
</hbox>
<label class="PanelUI-remotetabs-instruction-label">&appMenuRemoteTabs.noclients.subtitle;</label>
<toolbarbutton id="PanelUI-remotetabs-connect-device-button"
class="PanelUI-remotetabs-button"
label="&appMenuRemoteTabs.connectdevice.label;"
oncommand="gSync.openConnectAnotherDevice('synced-tabs');"/>
</vbox>
</hbox>
</deck>
</vbox>
<!-- a box to ensure contained boxes are centered horizonally -->
<hbox pack="center" flex="1">
<!-- When Sync is not configured -->
<vbox id="PanelUI-remotetabs-setupsync"
flex="1"
align="center"
class="PanelUI-remotetabs-instruction-box"
hidden="true">
<image class="fxaSyncIllustration"/>
<label class="PanelUI-remotetabs-instruction-label">&appMenuRemoteTabs.welcome.label;</label>
<toolbarbutton class="PanelUI-remotetabs-button"
label="&appMenuRemoteTabs.signintosync.label;"
oncommand="gSync.openPrefs('synced-tabs');"/>
</vbox>
<!-- When Sync is not enabled -->
<vbox id="PanelUI-remotetabs-syncdisabled"
flex="1"
align="center"
class="PanelUI-remotetabs-instruction-box"
hidden="true">
<image class="fxaSyncIllustration"/>
<label class="PanelUI-remotetabs-instruction-label">&appMenuRemoteTabs.welcome.label;</label>
<toolbarbutton class="PanelUI-remotetabs-button"
label="&appMenuRemoteTabs.turnonsync.label;"
oncommand="gSync.openPrefs('synced-tabs');"/>
</vbox>
<!-- When Sync needs re-authentication -->
<vbox id="PanelUI-remotetabs-reauthsync"
flex="1"
align="center"
class="PanelUI-remotetabs-instruction-box"
hidden="true">
<image class="fxaSyncIllustrationIssue"/>
<label class="PanelUI-remotetabs-instruction-label">&appMenuRemoteTabs.welcome.label;</label>
<toolbarbutton class="PanelUI-remotetabs-button"
label="&appMenuRemoteTabs.signintosync.label;"
oncommand="gSync.openPrefs('synced-tabs');"/>
</vbox>
<!-- When Sync needs verification -->
<vbox id="PanelUI-remotetabs-unverified"
flex="1"
align="center"
class="PanelUI-remotetabs-instruction-box"
hidden="true">
<image class="fxaSyncIllustrationIssue"/>
<label class="PanelUI-remotetabs-instruction-label">&appMenuRemoteTabs.unverified.label;</label>
<toolbarbutton class="PanelUI-remotetabs-button"
label="&appMenuRemoteTabs.opensyncprefs.label;"
oncommand="gSync.openPrefs('synced-tabs');"/>
</vbox>
</hbox>
</vbox>
</panelview>
<panelview id="PanelUI-bookmarks" flex="1" class="PanelUI-subView">
<vbox class="panel-subview-body">
<toolbarbutton id="panelMenuBookmarkThisPage"
class="subviewbutton subviewbutton-iconic"
command="Browser:AddBookmarkAs"
onclick="PanelUI.hide();"/>
<toolbarbutton id="panelMenu_bookmarkingTools"
label="&bookmarkingTools.label;"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
closemenu="none"
oncommand="BookmarkingUI.showBookmarkingTools(this);"/>
<toolbarbutton id="panelMenu_searchBookmarks"
label="&searchBookmarks.label;"
class="subviewbutton subviewbutton-iconic"
oncommand="PlacesCommandHook.searchBookmarks(); PanelUI.hide();"/>
<toolbarseparator/>
<label id="panelMenu_recentBookmarks"
value="&recentBookmarks.label;"
class="subview-subheader"/>
<toolbaritem id="panelMenu_bookmarksMenu"
orient="vertical"
smoothscroll="false"
flatList="true"
tooltip="bhTooltip">
<!-- bookmarks menu items will go here -->
</toolbaritem>
</vbox>
<toolbarbutton id="panelMenu_showAllBookmarks"
label="&showAllBookmarks2.label;"
class="subviewbutton panel-subview-footer"
command="Browser:ShowAllBookmarks"
onclick="PanelUI.hide();"/>
</panelview>
<panelview id="PanelUI-containers" flex="1">
<vbox id="PanelUI-containersItems"/>
</panelview>
<panelview id="PanelUI-helpView" flex="1" class="PanelUI-subView">
<vbox id="PanelUI-helpItems" class="panel-subview-body"/>
</panelview>
<panelview id="PanelUI-developer" flex="1">
<vbox id="PanelUI-developerItems" class="panel-subview-body"/>
</panelview>
<panelview id="PanelUI-profiler" flex="1" descriptionheightworkaround="true">
<vbox id="PanelUI-profiler-container">
<vbox id="PanelUI-profiler-header" animationready="false">
<hbox id="PanelUI-profiler-header-bar">
<label flex="1" value="Firefox Profiler" />
<vbox class="PanelUI-profiler-toolbarbutton-container">
<toolbarbutton id="PanelUI-profiler-info-button"
class="panel-info-button"
aria-label="Reveal more information">
<image/>
</toolbarbutton>
</vbox>
</hbox>
<hbox id="PanelUI-profiler-info">
<vbox>
<hbox id="PanelUI-profiler-info-graphic" flex="1">
<spacer flex="1" />
<vbox>
<spacer flex="1" />
<image class="PanelUI-profiler-info-icon" />
</vbox>
</hbox>
<label value="Record, analyze, share" />
<description>
Collaborate on performance issues by publishing profiles to share with your team.
</description>
<hbox>
<button id="PanelUI-profiler-learn-more" tabindex="-1">Learn more</button>
<space flex="1" />
</hbox>
</vbox>
</hbox>
</vbox>
<vbox id="PanelUI-profiler-content">
<label class="PanelUI-profiler-content-label"
value="Settings" />
<menulist id="PanelUI-profiler-presets"
flex="1"
value="custom">
<menupopup id="PanelUI-profiler-presets-menupopup" presetsbuilt="false">
<!-- The rest of the values get dynamically inserted. The "presetsbuilt"
attribute will get updated to "true" once the presets have been
built. -->
<menuitem label="Custom" value="custom"/>
</menupopup>
</menulist>
<!-- The following description gets inserted dynamically. -->
<description id="PanelUI-profiler-content-description" />
<hbox id="PanelUI-profiler-content-custom">
<button id="PanelUI-profiler-content-custom-button">
Edit Settings…
</button>
</hbox>
<hbox id="PanelUI-profiler-inactive" class="PanelUI-profiler-buttons">
<spacer flex="1" />
<vbox>
<button label="Start Recording"
id="PanelUI-profiler-startRecording"
class="PanelUI-profiler-button PanelUI-profiler-button-primary"
/>
<label class="PanelUI-profiler-shortcut">^⇧1</label>
</vbox>
<spacer flex="1" />
</hbox>
<hbox id="PanelUI-profiler-active" class="PanelUI-profiler-buttons">
<vbox flex="1">
<button label="Discard"
class="PanelUI-profiler-button"
id="PanelUI-profiler-stopAndDiscard" />
<label class="PanelUI-profiler-shortcut">^⇧1</label>
</vbox>
<vbox flex="1">
<button label="Capture"
class="PanelUI-profiler-button PanelUI-profiler-button-primary"
id="PanelUI-profiler-stopAndCapture" />
<label class="PanelUI-profiler-shortcut">^⇧2</label>
</vbox>
</hbox>
</vbox>
</vbox>
</panelview>
<panelview id="PanelUI-characterEncodingView" flex="1">
<vbox class="panel-subview-body">
<vbox id="PanelUI-characterEncodingView-pinned"
class="PanelUI-characterEncodingView-list"/>
<toolbarseparator/>
<vbox id="PanelUI-characterEncodingView-charsets"
class="PanelUI-characterEncodingView-list"/>
<toolbarseparator id="PanelUI-characterEncodingView-autodetect-separator"/>
<vbox id="PanelUI-characterEncodingView-autodetect-container">
<label id="PanelUI-characterEncodingView-autodetect-label"/>
<vbox id="PanelUI-characterEncodingView-autodetect"
class="PanelUI-characterEncodingView-list"/>
</vbox>
</vbox>
</panelview>
<panelview id="PanelUI-panicView" flex="1"
descriptionheightworkaround="true">
<!-- This is constructed in CustomizableWidgets.jsm -->
</panelview>
<panelview id="appMenu-moreView" title="&moreMenu.label;" class="PanelUI-subView">
<vbox class="panel-subview-body">
<toolbarbutton id="appMenu-taskmanager-button"
class="subviewbutton subviewbutton-iconic"
label="&taskManagerCmd.label;"
oncommand="switchToTabHavingURI('about:performance', true)"/>
<toolbarbutton id="appMenu-characterencoding-button"
class="subviewbutton subviewbutton-nav"
label="&charsetMenu2.label;"
closemenu="none"
oncommand="PanelUI.showSubView('PanelUI-characterEncodingView', this)"/>
<toolbarbutton id="appMenu-workoffline-button"
class="subviewbutton"
data-l10n-id="menu-file-go-offline"
type="checkbox"
command="cmd_toggleOfflineStatus"/>
</vbox>
</panelview>
<panelview id="appMenu-SSBView" class="PanelUI-subView">
<vbox class="panel-subview-body">
</vbox>
</panelview>
<panelview id="appMenu-libraryView" class="PanelUI-subView">
<vbox class="panel-subview-body">
<toolbarbutton id="appMenu-library-bookmarks-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="&bookmarksSubview.label;"
closemenu="none"
oncommand="BookmarkingUI.showSubView(this);"/>
<toolbarbutton id="appMenu-library-pocket-button"
class="subviewbutton subviewbutton-iconic"
label="&pocketMenuitem.label;"
oncommand="Pocket.openList(event)"/>
<toolbarbutton id="appMenu-library-history-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="&historyMenu.label;"
closemenu="none"
oncommand="PanelUI.showSubView('PanelUI-history', this)"/>
<toolbarbutton id="appMenu-library-downloads-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="&libraryDownloads.label;"
closemenu="none"
oncommand="DownloadsSubview.show(this);"/>
<toolbarbutton id="appMenu-library-remotetabs-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav sync-ui-item"
label="&appMenuRemoteTabs.label;"
closemenu="none"
oncommand="PanelUI.showSubView('PanelUI-remotetabs', this)"/>
<toolbarseparator hidden="true"/>
<label value="&appMenuRecentHighlights.label;"
hidden="true"
class="subview-subheader"/>
<toolbaritem id="appMenu-library-recentHighlights"
hidden="true"
orient="vertical"
smoothscroll="false"
flatList="true"
tooltip="bhTooltip">
<!-- Recent Highlights will go here -->
</toolbaritem>
</vbox>
</panelview>
<panelview id="PanelUI-fxa" title="&fxa.menu.account.label;" class="PanelUI-subView" descriptionheightworkaround="true">
<vbox id="PanelUI-fxa-menu" class="panel-subview-body">
<toolbarbutton id="fxa-manage-account-button" flex="1"
align="center"
class="fxa-menu-header subviewbutton"
oncommand="gSync.clickFxAMenuHeaderButton(this);">
<image role="presentation" id="fxa-menu-avatar"/>
<vbox flex="1">
<label id="fxa-menu-header-title"
defaultLabel="&fxa.menu.signin.label;">&fxa.menu.signin.label;</label>
<label id="fxa-menu-header-description"
crop="end"
defaultLabel="&fxa.menu.turnOnSync.label;">&fxa.menu.turnOnSync.label;</label>
</vbox>
</toolbarbutton>
<toolbarseparator/>
<toolbarbutton id="PanelUI-fxa-menu-sendtab-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
closemenu="none"
oncommand="gSync.showSendToDeviceViewFromFxaMenu(this);"/>
<toolbarseparator/>
<!-- The `Connect Another Device` button is disabled by default until the user logs into Sync. -->
<toolbarbutton id="PanelUI-fxa-menu-connect-device-button"
class="subviewbutton subviewbutton-iconic"
label="&fxa.menu.connectAnotherDevice2.label;"
disabled="true"
oncommand="gSync.openConnectAnotherDeviceFromFxaMenu(this);"/>
<toolbarseparator/>
<!-- The `Sync Now` button is hidden by default until the user logs into Sync. -->
<toolbarbutton id="PanelUI-fxa-menu-syncnow-button"
data-l10n-id="fxa-toolbar-sync-now"
syncinglabel="fxa-toolbar-sync-syncing"
hidden="true"
class="syncNowBtn subviewbutton subviewbutton-iconic"
onmouseover="gSync.refreshSyncButtonsTooltip();"
oncommand="gSync.doSyncFromFxaMenu(this);"
closemenu="none"/>
<toolbarbutton id="PanelUI-fxa-menu-setup-sync-button"
class="subviewbutton subviewbutton-iconic"
label="&fxa.menu.setupSync.label;"
oncommand="gSync.openPrefsFromFxaMenu('sync_settings', this);"/>
<toolbarbutton id="PanelUI-fxa-menu-remotetabs-button"
class="subviewbutton subviewbutton-iconic subviewbutton-nav"
label="&appMenuRemoteTabs.label;"
closemenu="none"
oncommand="gSync.showRemoteTabsFromFxaMenu(this);"/>
<toolbarbutton id="PanelUI-fxa-menu-sync-prefs-button"
class="subviewbutton subviewbutton-iconic"
label="&fxa.menu.syncSettings2.label;"
hidden="true"
oncommand="gSync.openPrefsFromFxaMenu('sync_settings', this);"/>
<toolbarseparator/>
<toolbarbutton id="PanelUI-fxa-menu-logins-button"
class="subviewbutton subviewbutton-iconic"
label="&logins.label;"
oncommand="LoginHelper.openPasswordManager(window, { entryPoint: 'fxamenu' })"/>
<toolbarseparator id="fxa-menu-service-separator"/>
<label id="fxa-menu-service-label"
value="&fxa.menu.firefoxServices.label;"
class="subview-subheader"/>
<toolbarbutton id="PanelUI-fxa-menu-monitor-button"
class="subviewbutton subviewbutton-iconic"
label="&monitorFullName;"
type="open-to-new"
oncommand="gSync.openMonitorFromFxaMenu(this);"/>
<toolbarbutton id="PanelUI-fxa-menu-send-button"
class="subviewbutton subviewbutton-iconic"
label="&sendFullName;"
type="open-to-new"
oncommand="gSync.openSendFromFxaMenu(this);"/>
</vbox>
</panelview>
<panelview id="PanelUI-fxa-menu-account-panel" flex="1" title="&fxa.menu.accountSettings.label;" class="PanelUI-subView" descriptionheightworkaround="true">
<vbox class="panel-subview-body">
<toolbarbutton id="PanelUI-fxa-menu-account-settings-button"
class="subviewbutton subviewbutton-iconic"
label="&fxa.menu.manageAccount2.label;"
type="open-to-new"
oncommand="gSync.openFxAManagePageFromFxaMenu(this)"/>
<toolbarseparator/>
<toolbarbutton id="PanelUI-fxa-menu-account-signout-button"
class="subviewbutton subviewbutton-iconic"
label="&fxa.menu.signOut.label;"
oncommand="gSync.disconnect();"/>
</vbox>
</panelview>
<!-- This panelview is used to contain the dynamically created buttons for send tab to devices -->
<panelview id="PanelUI-sendTabToDevice" flex="1" class="PanelUI-subView">
<vbox class="panel-subview-body">
<toolbarbutton id="PanelUI-sendTabToDevice-syncingDevices" class="subviewbutton subviewbutton-iconic pageAction-sendToDevice-notReady"
label="&sendToDevice.syncNotReady.label;"
disabled="true"/>
</vbox>
</panelview>
<panelview id="PanelUI-fxa-menu-sendtab-not-configured" flex="1" class="PanelUI-subView">
<vbox id="PanelUI-fxa-sendtab-not-configured" align="center" class="panel-subview-body">
<image class="fxaSendToDeviceLogo" role="presentation"/>
<label class="PanelUI-fxa-service-description-label">&fxa.service.sendTab.description;</label>
<toolbarbutton id="PanelUI-fxa-menu-sendtab-not-configured-button"
class="PanelUI-fxa-signin-button"
label="&fxa.menu.signin.label;"
oncommand="gSync.openPrefsFromFxaMenu('send_tab', this);"/>
</vbox>
</panelview>
<panelview id="PanelUI-fxa-menu-sendtab-no-devices" flex="1" class="PanelUI-subView">
<vbox id="PanelUI-fxa-sendtab-no-devices" align="center" class="panel-subview-body">
<image class="fxaSendToDeviceLogo" role="presentation"/>
<label class="PanelUI-fxa-service-description-label">&fxa.service.sendTab.description;</label>
<toolbarbutton id="PanelUI-fxa-menu-sendtab-connect-device-button"
class="PanelUI-fxa-signin-button"
label="&appMenuRemoteTabs.connectdevice.label;"
oncommand="gSync.openConnectAnotherDeviceFromFxaMenu(this);"/>
</vbox>
</panelview>
<panelview id="PanelUI-bookmarkingTools" class="PanelUI-subView">
<vbox class="panel-subview-body">
<toolbarbutton id="panelMenu_toggleBookmarksMenu"
class="subviewbutton subviewbutton-iconic"
label-show="&addBookmarksMenu.label;"
label-hide="&removeBookmarksMenu.label;"
oncommand="BookmarkingUI.toggleMenuButtonInToolbar(this);"/>
<toolbarbutton id="panelMenu_viewBookmarksSidebar"
class="subviewbutton subviewbutton-iconic"
label-show="&viewBookmarksSidebar2.label;"
label-hide="&hideBookmarksSidebar.label;"
key="viewBookmarksSidebarKb"
oncommand="SidebarUI.toggle('viewBookmarksSidebar', this);">
<observes element="sidebar-box" attribute="positionend"/>
</toolbarbutton>
<toolbarbutton id="panelMenu_viewBookmarksToolbar"
class="subviewbutton subviewbutton-iconic"
label-show="&viewBookmarksToolbar.label;"
label-hide="&hideBookmarksToolbar.label;"
oncommand="BookmarkingUI.toggleBookmarksToolbar();"/>
</vbox>
</panelview>
<panelview id="PanelUI-whatsNew" class="PanelUI-subView">
<vbox class="panel-subview-body">
<toolbaritem id="PanelUI-whatsNew-content"
orient="vertical"
smoothscroll="false">
<html:div id="PanelUI-whatsNew-message-container" role="document">
<!-- What's New messages will be rendered here -->
</html:div>
</toolbaritem>
</vbox>
</panelview>
</panelmultiview>
</panel>
<panel id="downloads-button-autohide-panel"
role="group"
type="arrow"
hidden="true"
onpopupshown="gCustomizeMode._downloadPanelAutoHideTimeout = setTimeout(() => event.target.hidePopup(), 4000);"
onmouseover="clearTimeout(gCustomizeMode._downloadPanelAutoHideTimeout);"
onmouseout="gCustomizeMode._downloadPanelAutoHideTimeout = setTimeout(() => event.target.hidePopup(), 2000);"
onpopuphidden="clearTimeout(gCustomizeMode._downloadPanelAutoHideTimeout);"
>
<checkbox id="downloads-button-autohide-checkbox"
label="&customizeMode.autoHideDownloadsButton.label;" checked="true"
oncommand="gCustomizeMode.onDownloadsAutoHideChange(event)"/>
</panel>
<panel id="extension-notification-panel"
class="popup-notification-panel panel-no-padding"
role="group"
type="arrow"
hidden="true"
flip="slide"
position="bottomcenter topright"
tabspecific="true">
<popupnotification id="extension-new-tab-notification"
class="extension-controlled-notification"
popupid="extension-new-tab"
hidden="true"
label="&newTabControlled.header.message;"
buttonlabel="&newTabControlled.keepButton.label;"
buttonaccesskey="&newTabControlled.keepButton.accesskey;"
secondarybuttonlabel="&newTabControlled.disableButton.label;"
secondarybuttonaccesskey="&newTabControlled.disableButton.accesskey;"
closebuttonhidden="true"
dropmarkerhidden="true"
checkboxhidden="true">
<popupnotificationcontent orient="vertical">
<description id="extension-new-tab-notification-description"/>
</popupnotificationcontent>
</popupnotification>
<popupnotification id="extension-homepage-notification"
class="extension-controlled-notification"
popupid="extension-homepage"
hidden="true"
label="&homepageControlled.header.message;"
buttonlabel="&homepageControlled.keepButton.label;"
buttonaccesskey="&homepageControlled.keepButton.accesskey;"
secondarybuttonlabel="&homepageControlled.disableButton.label;"
secondarybuttonaccesskey="&homepageControlled.disableButton.accesskey;"
closebuttonhidden="true"
dropmarkerhidden="true"
checkboxhidden="true">
<popupnotificationcontent orient="vertical">
<description id="extension-homepage-notification-description"/>
</popupnotificationcontent>
</popupnotification>
<popupnotification id="extension-tab-hide-notification"
class="extension-controlled-notification"
popupid="extension-tab-hide"
hidden="true"
label="&tabHideControlled.header.message;"
buttonlabel="&tabHideControlled.keepButton.label;"
buttonaccesskey="&tabHideControlled.keepButton.accesskey;"
secondarybuttonlabel="&tabHideControlled.disableButton.label;"
secondarybuttonaccesskey="&tabHideControlled.disableButton.accesskey;"
closebuttonhidden="true"
dropmarkerhidden="true"
checkboxhidden="true">
<popupnotificationcontent orient="vertical">
<description id="extension-tab-hide-notification-description"/>
</popupnotificationcontent>
</popupnotification>
</panel>