firefox-kde.patch
changeset 1074 4b99400f6d17
parent 1068 70cd69cfa868
child 1082 821cfbe8efcc
equal deleted inserted replaced
1073:63a32fb3b602 1074:4b99400f6d17
     1 # HG changeset patch
     1 # HG changeset patch
     2 # Parent  0629fb9c6879e14c1b5e3cbff53b0d44371f0127
     2 # Parent  fdf78810e83396d10418791fbe32bed6bfe1558b
     3 
     3 
     4 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
     4 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
     5 new file mode 100644
     5 new file mode 100644
     6 --- /dev/null
     6 --- /dev/null
     7 +++ b/browser/base/content/browser-kde.xul
     7 +++ b/browser/base/content/browser-kde.xul
     8 @@ -0,0 +1,1291 @@
     8 @@ -0,0 +1,1317 @@
     9 +#filter substitution
     9 +#filter substitution
    10 +<?xml version="1.0"?>
    10 +<?xml version="1.0"?>
    11 +# -*- Mode: HTML -*-
    11 +# -*- Mode: HTML -*-
    12 +#
    12 +#
    13 +# This Source Code Form is subject to the terms of the Mozilla Public
    13 +# This Source Code Form is subject to the terms of the Mozilla Public
    14 +# License, v. 2.0. If a copy of the MPL was not distributed with this
    14 +# License, v. 2.0. If a copy of the MPL was not distributed with this
    15 +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
    15 +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
    16 +
    16 +
       
    17 +<!-- The "global.css" stylesheet is imported first to allow other stylesheets to
       
    18 +     override rules using selectors with the same specificity. This applies to
       
    19 +     both "content" and "skin" packages, which bug 1385444 will unify later. -->
       
    20 +<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
       
    21 +
    17 +<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
    22 +<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
    18 +<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css"?>
    23 +<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
       
    24 +<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css" type="text/css"?>
    19 +<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
    25 +<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
    20 +<?xml-stylesheet href="chrome://browser/content/usercontext/usercontext.css" type="text/css"?>
    26 +<?xml-stylesheet href="chrome://browser/content/usercontext/usercontext.css" type="text/css"?>
       
    27 +<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
    21 +<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
    28 +<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
    22 +<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
    29 +<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
    23 +<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css"?>
    30 +<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css" type="text/css"?>
    24 +<?xml-stylesheet href="chrome://browser/skin/searchbar.css"?>
    31 +<?xml-stylesheet href="chrome://browser/skin/searchbar.css" type="text/css"?>
    25 +<?xml-stylesheet href="chrome://browser/skin/places/places.css"?>
    32 +<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css" type="text/css"?>
    26 +<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css"?>
    33 +<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css" type="text/css"?>
    27 +<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
       
    28 +<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
       
    29 +<?xml-stylesheet href="chrome://browser/skin/compacttheme.css" type="text/css" alternate="yes" title="Light/Dark"?>
    34 +<?xml-stylesheet href="chrome://browser/skin/compacttheme.css" type="text/css" alternate="yes" title="Light/Dark"?>
    30 +
    35 +
    31 +# All DTD information is stored in a separate file so that it can be shared by
    36 +# All DTD information is stored in a separate file so that it can be shared by
    32 +# hiddenWindow.xul.
    37 +# hiddenWindow.xul.
    33 +<!DOCTYPE window [
    38 +<!DOCTYPE window [
    38 +        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    43 +        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    39 +        xmlns:svg="http://www.w3.org/2000/svg"
    44 +        xmlns:svg="http://www.w3.org/2000/svg"
    40 +        xmlns:html="http://www.w3.org/1999/xhtml"
    45 +        xmlns:html="http://www.w3.org/1999/xhtml"
    41 +        xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    46 +        xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    42 +        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    47 +        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    43 +        onload="gBrowserInit.onLoad()" onunload="gBrowserInit.onUnload()" onclose="return WindowIsClosing();"
       
    44 +        title="&mainWindow.title;"
    48 +        title="&mainWindow.title;"
    45 +        title_normal="&mainWindow.title;"
    49 +        title_normal="&mainWindow.title;"
    46 +#ifdef XP_MACOSX
    50 +#ifdef XP_MACOSX
    47 +        title_privatebrowsing="&mainWindow.title;&mainWindow.titlemodifiermenuseparator;&mainWindow.titlePrivateBrowsingSuffix;"
    51 +        title_privatebrowsing="&mainWindow.title;&mainWindow.titlemodifiermenuseparator;&mainWindow.titlePrivateBrowsingSuffix;"
    48 +        titledefault="&mainWindow.title;"
    52 +        titledefault="&mainWindow.title;"
    73 +# All JS files which are needed by browser.xul and other top level windows to
    77 +# All JS files which are needed by browser.xul and other top level windows to
    74 +# support MacOS specific features *must* go into the global-scripts.inc file so
    78 +# support MacOS specific features *must* go into the global-scripts.inc file so
    75 +# that they can be shared with macWindow.inc.xul.
    79 +# that they can be shared with macWindow.inc.xul.
    76 +#include global-scripts.inc
    80 +#include global-scripts.inc
    77 +
    81 +
    78 +<script type="application/javascript">
    82 +<script type="application/javascript"
       
    83 +#ifdef BROWSER_XHTML
       
    84 +xmlns="http://www.w3.org/1999/xhtml"
       
    85 +#endif
       
    86 +>
    79 +  Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
    87 +  Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
    80 +  Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this);
    88 +  Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this);
    81 +
    89 +
    82 +  ChromeUtils.defineModuleGetter(window,
    90 +  window.onload = gBrowserInit.onLoad.bind(gBrowserInit);
    83 +    "PlacesUtils", "resource://gre/modules/PlacesUtils.jsm");
    91 +  window.onunload = gBrowserInit.onUnload.bind(gBrowserInit);
    84 +  ChromeUtils.defineModuleGetter(window,
    92 +  window.onclose = WindowIsClosing;
    85 +    "PlacesUIUtils", "resource:///modules/PlacesUIUtils.jsm");
    93 +#ifdef BROWSER_XHTML
    86 +  ChromeUtils.defineModuleGetter(window,
    94 +  window.addEventListener("DOMContentLoaded",
    87 +    "PlacesTransactions", "resource://gre/modules/PlacesTransactions.jsm");
    95 +    gBrowserInit.onBeforeInitialXULLayout.bind(gBrowserInit), { once: true });
    88 +
    96 +#else
    89 +  ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
    97 +  window.addEventListener("MozBeforeInitialXULLayout",
    90 +  XPCOMUtils.defineLazyScriptGetter(window, "PlacesTreeView",
    98 +    gBrowserInit.onBeforeInitialXULLayout.bind(gBrowserInit), { once: true });
    91 +    "chrome://browser/content/places/treeView.js");
    99 +#endif
    92 +  XPCOMUtils.defineLazyScriptGetter(window,
   100 +  // The listener of DOMContentLoaded must be set on window, rather than
    93 +    ["PlacesInsertionPoint", "PlacesController", "PlacesControllerDragHelper"],
   101 +  // document, because the window can go away before the event is fired.
    94 +     "chrome://browser/content/places/controller.js");
   102 +  // In that case, we don't want to initialize anything, otherwise we
       
   103 +  // may be leaking things because they will never be destroyed after.
       
   104 +  window.addEventListener("DOMContentLoaded",
       
   105 +    gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
    95 +</script>
   106 +</script>
    96 +
   107 +
    97 +# All sets except for popupsets (commands, keys, stringbundles and broadcasters)
   108 +# All sets except for popupsets (commands, keys, and stringbundles)
    98 +# *must* go into the browser-sets.inc file so that they can be shared with other
   109 +# *must* go into the browser-sets.inc file so that they can be shared with other
    99 +# top level windows in macWindow.inc.xul.
   110 +# top level windows in macWindow.inc.xul.
   100 +#define FULL_BROWSER_WINDOW
       
   101 +#include browser-sets.inc
   111 +#include browser-sets.inc
   102 +#undef FULL_BROWSER_WINDOW
       
   103 +
   112 +
   104 +  <popupset id="mainPopupSet">
   113 +  <popupset id="mainPopupSet">
   105 +    <menupopup id="tabContextMenu"
   114 +    <menupopup id="tabContextMenu"
   106 +               onpopupshowing="if (event.target == this) TabContextMenu.updateContextMenu(this);"
   115 +               onpopupshowing="if (event.target == this) TabContextMenu.updateContextMenu(this);"
   107 +               onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
   116 +               onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
   108 +      <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
   117 +      <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
   109 +                oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
   118 +                oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
       
   119 +      <menuitem id="context_reloadSelectedTabs" label="&reloadSelectedTabs.label;" hidden="true"
       
   120 +                accesskey="&reloadSelectedTabs.accesskey;"
       
   121 +                oncommand="gBrowser.reloadMultiSelectedTabs();"/>
   110 +      <menuitem id="context_toggleMuteTab" oncommand="TabContextMenu.contextTab.toggleMuteAudio();"/>
   122 +      <menuitem id="context_toggleMuteTab" oncommand="TabContextMenu.contextTab.toggleMuteAudio();"/>
   111 +      <menuitem id="context_toggleMuteSelectedTabs" hidden="true"
   123 +      <menuitem id="context_toggleMuteSelectedTabs" hidden="true"
   112 +                oncommand="gBrowser.toggleMuteAudioOnMultiSelectedTabs(TabContextMenu.contextTab);"/>
   124 +                oncommand="gBrowser.toggleMuteAudioOnMultiSelectedTabs(TabContextMenu.contextTab);"/>
   113 +      <menuseparator/>
   125 +      <menuseparator/>
   114 +      <menuitem id="context_pinTab" label="&pinTab.label;"
   126 +      <menuitem id="context_pinTab" label="&pinTab.label;"
   115 +                accesskey="&pinTab.accesskey;"
   127 +                accesskey="&pinTab.accesskey;"
   116 +                oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/>
   128 +                oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/>
   117 +      <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true"
   129 +      <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true"
   118 +                accesskey="&unpinTab.accesskey;"
   130 +                accesskey="&unpinTab.accesskey;"
   119 +                oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
   131 +                oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
       
   132 +      <menuitem id="context_pinSelectedTabs" label="&pinSelectedTabs.label;" hidden="true"
       
   133 +                accesskey="&pinSelectedTabs.accesskey;"
       
   134 +                oncommand="gBrowser.pinMultiSelectedTabs();"/>
       
   135 +      <menuitem id="context_unpinSelectedTabs" label="&unpinSelectedTabs.label;" hidden="true"
       
   136 +                accesskey="&unpinSelectedTabs.accesskey;"
       
   137 +                oncommand="gBrowser.unpinMultiSelectedTabs();"/>
   120 +      <menuitem id="context_duplicateTab" label="&duplicateTab.label;"
   138 +      <menuitem id="context_duplicateTab" label="&duplicateTab.label;"
   121 +                accesskey="&duplicateTab.accesskey;"
   139 +                accesskey="&duplicateTab.accesskey;"
   122 +                oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/>
   140 +                oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/>
   123 +      <menu id="context_reopenInContainer"
   141 +      <menu id="context_reopenInContainer"
   124 +            label="&reopenInContainer.label;"
   142 +            label="&reopenInContainer.label;"
   125 +            accesskey="&reopenInContainer.accesskey;"
   143 +            accesskey="&reopenInContainer.accesskey;"
   126 +            hidden="true">
   144 +            hidden="true">
   127 +        <menupopup oncommand="reopenInContainer(event);"
   145 +        <menupopup oncommand="TabContextMenu.reopenInContainer(event);"
   128 +                   onpopupshowing="return createReopenInContainerMenu(event);" />
   146 +                   onpopupshowing="TabContextMenu.createReopenInContainerMenu(event);"/>
   129 +      </menu>
   147 +      </menu>
   130 +      <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;"
   148 +      <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;"
   131 +                accesskey="&moveToNewWindow.accesskey;"
   149 +                accesskey="&moveToNewWindow.accesskey;"
   132 +                tbattr="tabbrowser-multiple"
   150 +                tbattr="tabbrowser-multiple"
   133 +                oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/>
   151 +                oncommand="gBrowser.replaceTabsWithWindow(TabContextMenu.contextTab);"/>
   134 +      <menuseparator id="context_sendTabToDevice_separator" class="sync-ui-item"/>
   152 +      <menuseparator id="context_sendTabToDevice_separator" class="sync-ui-item"/>
   135 +      <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
   153 +      <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
   136 +            class="sync-ui-item"
   154 +            class="sync-ui-item"
   137 +            accesskey="&sendTabToDevice.accesskey;">
   155 +            accesskey="&sendTabToDevice.accesskey;">
   138 +        <menupopup id="context_sendTabToDevicePopupMenu"
   156 +        <menupopup id="context_sendTabToDevicePopupMenu"
   140 +      </menu>
   158 +      </menu>
   141 +      <menuseparator/>
   159 +      <menuseparator/>
   142 +      <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
   160 +      <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
   143 +                tbattr="tabbrowser-multiple-visible"
   161 +                tbattr="tabbrowser-multiple-visible"
   144 +                oncommand="gBrowser.reloadAllTabs();"/>
   162 +                oncommand="gBrowser.reloadAllTabs();"/>
       
   163 +       <menuitem id="context_bookmarkSelectedTabs"
       
   164 +                hidden="true"
       
   165 +                label="&bookmarkSelectedTabs.label;"
       
   166 +                accesskey="&bookmarkSelectedTabs.accesskey;"
       
   167 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"/>
   145 +      <menuitem id="context_bookmarkAllTabs"
   168 +      <menuitem id="context_bookmarkAllTabs"
   146 +                label="&bookmarkAllTabs.label;"
   169 +                label="&bookmarkAllTabs.label;"
   147 +                accesskey="&bookmarkAllTabs.accesskey;"
   170 +                accesskey="&bookmarkAllTabs.accesskey;"
   148 +                command="Browser:BookmarkAllTabs"/>
   171 +                command="Browser:BookmarkAllTabs"/>
   149 +      <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;"
   172 +      <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;"
   235 +           type="arrow"
   258 +           type="arrow"
   236 +           orient="vertical"
   259 +           orient="vertical"
   237 +           ignorekeys="true"
   260 +           ignorekeys="true"
   238 +           hidden="true"
   261 +           hidden="true"
   239 +           tabspecific="true"
   262 +           tabspecific="true"
   240 +           onpopupshown="StarUI.panelShown(event);"
       
   241 +           aria-labelledby="editBookmarkPanelTitle">
   263 +           aria-labelledby="editBookmarkPanelTitle">
   242 +      <box class="panel-header">
   264 +      <box class="panel-header">
   243 +        <label id="editBookmarkPanelTitle"/>
   265 +        <label id="editBookmarkPanelTitle"/>
   244 +      </box>
   266 +      </box>
   245 +      <html:div id="editBookmarkPanelFaviconContainer">
   267 +      <html:div id="editBookmarkPanelFaviconContainer">
   246 +        <html:img id="editBookmarkPanelFavicon"/>
   268 +        <html:img id="editBookmarkPanelFavicon"/>
   247 +      </html:div>
   269 +      </html:div>
   248 +      <box id="editBookmarkPanelImage"/>
   270 +      <box id="editBookmarkPanelImage"/>
   249 +#include ../../components/places/content/editBookmarkPanel.inc.xul
   271 +#include ../../components/places/content/editBookmarkPanel.inc.xul
       
   272 +      <vbox id="editBookmarkPanelBottomContent"
       
   273 +            flex="1">
       
   274 +        <checkbox id="editBookmarkPanel_showForNewBookmarks"
       
   275 +                  label="&editBookmark.showForNewBookmarks.label;"
       
   276 +                  accesskey="&editBookmark.showForNewBookmarks.accesskey;"
       
   277 +                  oncommand="StarUI.onShowForNewBookmarksCheckboxCommand();"/>
       
   278 +      </vbox>
   250 +      <hbox id="editBookmarkPanelBottomButtons"
   279 +      <hbox id="editBookmarkPanelBottomButtons"
   251 +            style="min-width: 30em;">
   280 +            style="min-width: &editBookmark.panel.width;;">
   252 +#ifdef XP_UNIX
   281 +#ifdef XP_UNIX
   253 +        <button id="editBookmarkPanelDoneButton"
   282 +        <button id="editBookmarkPanelDoneButton"
   254 +                class="editBookmarkPanelBottomButton"
   283 +                class="editBookmarkPanelBottomButton"
   255 +                label="&editBookmark.done.label;"
   284 +                label="&editBookmark.done.label;"
   256 +                default="true"
   285 +                default="true"
   314 +           hidden="true"
   343 +           hidden="true"
   315 +           flip="slide"
   344 +           flip="slide"
   316 +           orient="vertical"
   345 +           orient="vertical"
   317 +           position="bottomcenter topleft">
   346 +           position="bottomcenter topleft">
   318 +      <toolbarbutton id="sidebar-switcher-bookmarks"
   347 +      <toolbarbutton id="sidebar-switcher-bookmarks"
       
   348 +                     type="checkbox"
       
   349 +                     label="&bookmarksButton.label;"
   319 +                     class="subviewbutton subviewbutton-iconic"
   350 +                     class="subviewbutton subviewbutton-iconic"
   320 +                     key="viewBookmarksSidebarKb"
   351 +                     key="viewBookmarksSidebarKb"
   321 +                     observes="viewBookmarksSidebar"
   352 +                     oncommand="SidebarUI.show('viewBookmarksSidebar');"/>
   322 +                     oncommand="SidebarUI.show('viewBookmarksSidebar');">
       
   323 +        <observes element="viewBookmarksSidebar" attribute="checked"/>
       
   324 +      </toolbarbutton>
       
   325 +      <toolbarbutton id="sidebar-switcher-history"
   353 +      <toolbarbutton id="sidebar-switcher-history"
       
   354 +                     type="checkbox"
   326 +                     label="&historyButton.label;"
   355 +                     label="&historyButton.label;"
   327 +                     class="subviewbutton subviewbutton-iconic"
   356 +                     class="subviewbutton subviewbutton-iconic"
   328 +                     key="key_gotoHistory"
   357 +                     key="key_gotoHistory"
   329 +                     observes="viewHistorySidebar"
   358 +                     oncommand="SidebarUI.show('viewHistorySidebar');"/>
   330 +                     oncommand="SidebarUI.show('viewHistorySidebar');">
       
   331 +        <observes element="viewHistorySidebar" attribute="checked"/>
       
   332 +      </toolbarbutton>
       
   333 +      <toolbarbutton id="sidebar-switcher-tabs"
   359 +      <toolbarbutton id="sidebar-switcher-tabs"
       
   360 +                     type="checkbox"
   334 +                     label="&syncedTabs.sidebar.label;"
   361 +                     label="&syncedTabs.sidebar.label;"
   335 +                     class="subviewbutton subviewbutton-iconic sync-ui-item"
   362 +                     class="subviewbutton subviewbutton-iconic sync-ui-item"
   336 +                     observes="viewTabsSidebar"
   363 +                     oncommand="SidebarUI.show('viewTabsSidebar');"/>
   337 +                     oncommand="SidebarUI.show('viewTabsSidebar');">
       
   338 +        <observes element="viewTabsSidebar" attribute="checked"/>
       
   339 +      </toolbarbutton>
       
   340 +      <toolbarseparator/>
   364 +      <toolbarseparator/>
   341 +      <!-- Extension toolbarbuttons go here. -->
   365 +      <!-- Extension toolbarbuttons go here. -->
   342 +      <toolbarseparator id="sidebar-extensions-separator"/>
   366 +      <toolbarseparator id="sidebar-extensions-separator"/>
   343 +      <toolbarbutton id="sidebar-reverse-position"
   367 +      <toolbarbutton id="sidebar-reverse-position"
   344 +                     class="subviewbutton"
   368 +                     class="subviewbutton"
   407 +    </menupopup>
   431 +    </menupopup>
   408 +
   432 +
   409 +    <menupopup id="blockedPopupOptions"
   433 +    <menupopup id="blockedPopupOptions"
   410 +               onpopupshowing="gPopupBlockerObserver.fillPopupList(event);"
   434 +               onpopupshowing="gPopupBlockerObserver.fillPopupList(event);"
   411 +               onpopuphiding="gPopupBlockerObserver.onPopupHiding(event);">
   435 +               onpopuphiding="gPopupBlockerObserver.onPopupHiding(event);">
   412 +      <menuitem observes="blockedPopupAllowSite"/>
   436 +      <menuitem id="blockedPopupAllowSite"
   413 +      <menuitem observes="blockedPopupEditSettings"/>
   437 +                accesskey="&allowPopups.accesskey;"
   414 +      <menuitem observes="blockedPopupDontShowMessage"/>
   438 +                oncommand="gPopupBlockerObserver.toggleAllowPopupsForSite(event);"/>
   415 +      <menuseparator observes="blockedPopupsSeparator"/>
   439 +      <menuitem
       
   440 +#ifdef XP_WIN
       
   441 +                label="&editPopupSettings.label;"
       
   442 +#else
       
   443 +                label="&editPopupSettingsUnix.label;"
       
   444 +#endif
       
   445 +                accesskey="&editPopupSettings.accesskey;"
       
   446 +                oncommand="gPopupBlockerObserver.editPopupSettings();"/>
       
   447 +      <menuitem id="blockedPopupDontShowMessage"
       
   448 +                accesskey="&dontShowMessage.accesskey;"
       
   449 +                type="checkbox"
       
   450 +                oncommand="gPopupBlockerObserver.dontShowMessage();"/>
       
   451 +      <menuseparator id="blockedPopupsSeparator"/>
   416 +    </menupopup>
   452 +    </menupopup>
   417 +
   453 +
   418 +    <menupopup id="autohide-context"
   454 +    <menupopup id="autohide-context"
   419 +           onpopupshowing="FullScreen.getAutohide(this.firstChild);">
   455 +           onpopupshowing="FullScreen.getAutohide(this.firstChild);">
   420 +      <menuitem type="checkbox" label="&fullScreenAutohide.label;"
   456 +      <menuitem type="checkbox" label="&fullScreenAutohide.label;"
   460 +           noautofocus="true"
   496 +           noautofocus="true"
   461 +           copyURL-title="&pageAction.copyLink.label;"
   497 +           copyURL-title="&pageAction.copyLink.label;"
   462 +           emailLink-title="&emailPageCmd.label;"
   498 +           emailLink-title="&emailPageCmd.label;"
   463 +           sendToDevice-title="&pageAction.sendTabToDevice.label;"
   499 +           sendToDevice-title="&pageAction.sendTabToDevice.label;"
   464 +           sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;"
   500 +           sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;"
   465 +           shareURL-title="&pageAction.shareUrl.label;">
   501 +           shareURL-title="&pageAction.shareUrl.label;"
       
   502 +           shareMore-label="&pageAction.shareMore.label;">
   466 +      <panelmultiview id="pageActionPanelMultiView"
   503 +      <panelmultiview id="pageActionPanelMultiView"
   467 +                      mainViewId="pageActionPanelMainView"
   504 +                      mainViewId="pageActionPanelMainView"
   468 +                      viewCacheId="appMenu-viewCache">
   505 +                      viewCacheId="appMenu-viewCache">
   469 +        <panelview id="pageActionPanelMainView"
   506 +        <panelview id="pageActionPanelMainView"
   470 +                   context="pageActionContextMenu"
   507 +                   context="pageActionContextMenu"
   603 +      <menuseparator/>
   640 +      <menuseparator/>
   604 +      <menuitem label="&syncSyncNowItem.label;"
   641 +      <menuitem label="&syncSyncNowItem.label;"
   605 +                accesskey="&syncSyncNowItem.accesskey;"
   642 +                accesskey="&syncSyncNowItem.accesskey;"
   606 +                id="syncedTabsRefreshFilter"/>
   643 +                id="syncedTabsRefreshFilter"/>
   607 +    </menupopup>
   644 +    </menupopup>
       
   645 +
       
   646 +    <hbox id="statuspanel" inactive="true" layer="true">
       
   647 +      <hbox id="statuspanel-inner">
       
   648 +        <label id="statuspanel-label"
       
   649 +               role="status"
       
   650 +               aria-live="off"
       
   651 +               flex="1"
       
   652 +               crop="end"/>
       
   653 +      </hbox>
       
   654 +    </hbox>
   608 +  </popupset>
   655 +  </popupset>
   609 +  <box id="appMenu-viewCache" hidden="true"/>
   656 +  <box id="appMenu-viewCache" hidden="true"/>
   610 +
   657 +
   611 +<vbox id="titlebar">
   658 +<vbox id="titlebar">
   612 +  <hbox id="titlebar-content">
   659 +  <hbox id="titlebar-content">
   631 +</vbox>
   678 +</vbox>
   632 +
   679 +
   633 +  <toolbox id="navigator-toolbox">
   680 +  <toolbox id="navigator-toolbox">
   634 +    <!-- Menu -->
   681 +    <!-- Menu -->
   635 +    <toolbar type="menubar" id="toolbar-menubar"
   682 +    <toolbar type="menubar" id="toolbar-menubar"
   636 +             class="chromeclass-menubar titlebar-color"
   683 +             class="browser-toolbar chromeclass-menubar titlebar-color"
   637 +             customizable="true"
   684 +             customizable="true"
   638 +             mode="icons"
   685 +             mode="icons"
   639 +#ifdef MENUBAR_CAN_AUTOHIDE
   686 +#ifdef MENUBAR_CAN_AUTOHIDE
   640 +             toolbarname="&menubarCmd.label;"
   687 +             toolbarname="&menubarCmd.label;"
   641 +             accesskey="&menubarCmd.accesskey;"
   688 +             accesskey="&menubarCmd.accesskey;"
   653 +            skipintoolbarset="true"/>
   700 +            skipintoolbarset="true"/>
   654 +#endif
   701 +#endif
   655 +    </toolbar>
   702 +    </toolbar>
   656 +
   703 +
   657 +    <toolbar id="TabsToolbar"
   704 +    <toolbar id="TabsToolbar"
   658 +             class="titlebar-color"
   705 +             class="browser-toolbar titlebar-color"
   659 +             fullscreentoolbar="true"
   706 +             fullscreentoolbar="true"
   660 +             customizable="true"
   707 +             customizable="true"
   661 +             mode="icons"
   708 +             mode="icons"
   662 +             aria-label="&tabsToolbar.label;"
   709 +             aria-label="&tabsToolbar.label;"
   663 +             context="toolbar-context-menu">
   710 +             context="toolbar-context-menu">
   712 +            skipintoolbarset="true"/>
   759 +            skipintoolbarset="true"/>
   713 +#endif
   760 +#endif
   714 +    </toolbar>
   761 +    </toolbar>
   715 +
   762 +
   716 +    <toolbar id="nav-bar"
   763 +    <toolbar id="nav-bar"
       
   764 +             class="browser-toolbar"
   717 +             aria-label="&navbarCmd.label;"
   765 +             aria-label="&navbarCmd.label;"
   718 +             fullscreentoolbar="true" mode="icons" customizable="true"
   766 +             fullscreentoolbar="true" mode="icons" customizable="true"
   719 +             customizationtarget="nav-bar-customization-target"
   767 +             customizationtarget="nav-bar-customization-target"
   720 +             overflowable="true"
   768 +             overflowable="true"
   721 +             overflowbutton="nav-bar-overflow-button"
   769 +             overflowbutton="nav-bar-overflow-button"
   769 +                       ondrop="homeButtonObserver.onDrop(event)"
   817 +                       ondrop="homeButtonObserver.onDrop(event)"
   770 +                       ondragexit="homeButtonObserver.onDragExit(event)"
   818 +                       ondragexit="homeButtonObserver.onDragExit(event)"
   771 +                       key="goHome"
   819 +                       key="goHome"
   772 +                       onclick="BrowserGoHome(event);"
   820 +                       onclick="BrowserGoHome(event);"
   773 +                       cui-areatype="toolbar"
   821 +                       cui-areatype="toolbar"
   774 +                       aboutHomeOverrideTooltip="&homeButton.defaultPage.tooltip;"/>
   822 +                       tooltiptext="&homeButton.defaultPage.tooltip;"/>
   775 +        <toolbarspring cui-areatype="toolbar" class="chromeclass-toolbar-additional"/>
   823 +        <toolbarspring cui-areatype="toolbar" class="chromeclass-toolbar-additional"/>
   776 +        <toolbaritem id="urlbar-container" flex="400" persist="width"
   824 +        <toolbaritem id="urlbar-container" flex="400" persist="width"
   777 +                     removable="false"
   825 +                     removable="false"
   778 +                     class="chromeclass-location" overflows="false">
   826 +                     class="chromeclass-location" overflows="false">
   779 +            <textbox id="urlbar" flex="1"
   827 +            <textbox id="urlbar" flex="1"
   783 +                     type="autocomplete"
   831 +                     type="autocomplete"
   784 +                     autocompletesearch="unifiedcomplete"
   832 +                     autocompletesearch="unifiedcomplete"
   785 +                     autocompletesearchparam="enable-actions"
   833 +                     autocompletesearchparam="enable-actions"
   786 +                     autocompletepopup="PopupAutoCompleteRichResult"
   834 +                     autocompletepopup="PopupAutoCompleteRichResult"
   787 +                     completeselectedindex="true"
   835 +                     completeselectedindex="true"
   788 +                     shrinkdelay="250"
       
   789 +                     tabscrolling="true"
   836 +                     tabscrolling="true"
   790 +                     newlines="stripsurroundingwhitespace"
   837 +                     newlines="stripsurroundingwhitespace"
   791 +                     ontextentered="this.handleCommand(param);"
   838 +                     ontextentered="this.handleCommand(param);"
   792 +                     ontextreverted="return this.handleRevert();"
   839 +                     ontextreverted="return this.handleRevert();"
   793 +                     pageproxystate="invalid">
   840 +                     pageproxystate="invalid">
   801 +                   ondragstart="gIdentityHandler.onDragStart(event);">
   848 +                   ondragstart="gIdentityHandler.onDragStart(event);">
   802 +                <image id="identity-icon"
   849 +                <image id="identity-icon"
   803 +                       consumeanchor="identity-box"
   850 +                       consumeanchor="identity-box"
   804 +                       onclick="PageProxyClickHandler(event);"/>
   851 +                       onclick="PageProxyClickHandler(event);"/>
   805 +                <image id="sharing-icon" mousethrough="always"/>
   852 +                <image id="sharing-icon" mousethrough="always"/>
   806 +                <image id="tracking-protection-icon"/>
   853 +                <box id="tracking-protection-icon-box" animationsenabled="true">
       
   854 +                  <image id="tracking-protection-icon"/>
       
   855 +                  <box id="tracking-protection-icon-animatable-box" flex="1">
       
   856 +                    <image id="tracking-protection-icon-animatable-image" flex="1"/>
       
   857 +                  </box>
       
   858 +                </box>
   807 +                <box id="blocked-permissions-container" align="center">
   859 +                <box id="blocked-permissions-container" align="center">
   808 +                  <image data-permission-id="geo" class="blocked-permission-icon geo-icon" role="button"
   860 +                  <image data-permission-id="geo" class="blocked-permission-icon geo-icon" role="button"
   809 +                         tooltiptext="&urlbar.geolocationBlocked.tooltip;"/>
   861 +                         tooltiptext="&urlbar.geolocationBlocked.tooltip;"/>
   810 +                  <image data-permission-id="desktop-notification" class="blocked-permission-icon desktop-notification-icon" role="button"
   862 +                  <image data-permission-id="desktop-notification" class="blocked-permission-icon desktop-notification-icon" role="button"
   811 +                         tooltiptext="&urlbar.webNotificationsBlocked.tooltip;"/>
   863 +                         tooltiptext="&urlbar.webNotificationsBlocked.tooltip;"/>
   887 +              <box id="urlbar-display-box" align="center">
   939 +              <box id="urlbar-display-box" align="center">
   888 +                <label id="switchtab" class="urlbar-display urlbar-display-switchtab" value="&urlbar.switchToTab.label;"/>
   940 +                <label id="switchtab" class="urlbar-display urlbar-display-switchtab" value="&urlbar.switchToTab.label;"/>
   889 +                <label id="extension" class="urlbar-display urlbar-display-extension" value="&urlbar.extension.label;"/>
   941 +                <label id="extension" class="urlbar-display urlbar-display-extension" value="&urlbar.extension.label;"/>
   890 +              </box>
   942 +              </box>
   891 +              <hbox id="page-action-buttons" context="pageActionContextMenu">
   943 +              <hbox id="page-action-buttons" context="pageActionContextMenu">
       
   944 +                <hbox id="contextual-feature-recommendation" role="button" hidden="true">
       
   945 +                  <hbox id="cfr-label-container">
       
   946 +                    <label id="cfr-label"/>
       
   947 +                  </hbox>
       
   948 +                  <image id="cfr-button"
       
   949 +                         class="urlbar-icon urlbar-page-action"
       
   950 +                         role="presentation"/>
       
   951 +                </hbox>
   892 +                <hbox id="userContext-icons" hidden="true">
   952 +                <hbox id="userContext-icons" hidden="true">
   893 +                  <label id="userContext-label"/>
   953 +                  <label id="userContext-label"/>
   894 +                  <image id="userContext-indicator"/>
   954 +                  <image id="userContext-indicator"/>
   895 +                </hbox>
   955 +                </hbox>
   896 +                <image id="reader-mode-button"
   956 +                <image id="reader-mode-button"
   913 +                      hidden="true"
   973 +                      hidden="true"
   914 +                      class="urlbar-icon-wrapper urlbar-page-action"
   974 +                      class="urlbar-icon-wrapper urlbar-page-action"
   915 +                      onclick="BrowserPageActions.doCommandForAction(PageActions.actionForID('bookmark'), event, this);">
   975 +                      onclick="BrowserPageActions.doCommandForAction(PageActions.actionForID('bookmark'), event, this);">
   916 +                  <image id="star-button"
   976 +                  <image id="star-button"
   917 +                         class="urlbar-icon"
   977 +                         class="urlbar-icon"
   918 +                         role="button"
   978 +                         role="button"/>
   919 +                         observes="bookmarkThisPageBroadcaster"/>
       
   920 +                  <hbox id="star-button-animatable-box">
   979 +                  <hbox id="star-button-animatable-box">
   921 +                    <image id="star-button-animatable-image"
   980 +                    <image id="star-button-animatable-image"
   922 +                           role="presentation"
   981 +                           role="presentation"/>
   923 +                           observes="bookmarkThisPageBroadcaster"/>
       
   924 +                  </hbox>
   982 +                  </hbox>
   925 +                </hbox>
   983 +                </hbox>
   926 +              </hbox>
   984 +              </hbox>
   927 +            </textbox>
   985 +            </textbox>
   928 +        </toolbaritem>
   986 +        </toolbaritem>
  1008 +      </hbox>
  1066 +      </hbox>
  1009 +    </toolbar>
  1067 +    </toolbar>
  1010 +
  1068 +
  1011 +    <toolbar id="PersonalToolbar"
  1069 +    <toolbar id="PersonalToolbar"
  1012 +             mode="icons"
  1070 +             mode="icons"
  1013 +             class="chromeclass-directories"
  1071 +             class="browser-toolbar chromeclass-directories"
  1014 +             context="toolbar-context-menu"
  1072 +             context="toolbar-context-menu"
  1015 +             toolbarname="&personalbarCmd.label;" accesskey="&personalbarCmd.accesskey;"
  1073 +             toolbarname="&personalbarCmd.label;" accesskey="&personalbarCmd.accesskey;"
  1016 +             collapsed="true"
  1074 +             collapsed="true"
  1017 +             customizable="true">
  1075 +             customizable="true">
  1018 +      <toolbaritem id="personal-bookmarks"
  1076 +      <toolbaritem id="personal-bookmarks"
  1099 +                     ondragenter="PlacesMenuDNDHandler.onDragEnter(event);"
  1157 +                     ondragenter="PlacesMenuDNDHandler.onDragEnter(event);"
  1100 +                     ondragover="PlacesMenuDNDHandler.onDragOver(event);"
  1158 +                     ondragover="PlacesMenuDNDHandler.onDragOver(event);"
  1101 +                     ondragleave="PlacesMenuDNDHandler.onDragLeave(event);"
  1159 +                     ondragleave="PlacesMenuDNDHandler.onDragLeave(event);"
  1102 +                     ondrop="PlacesMenuDNDHandler.onDrop(event);"
  1160 +                     ondrop="PlacesMenuDNDHandler.onDrop(event);"
  1103 +                     oncommand="BookmarkingUI.onCommand(event);">
  1161 +                     oncommand="BookmarkingUI.onCommand(event);">
  1104 +        <observes element="bookmarkThisPageBroadcaster" attribute="starred"/>
       
  1105 +        <observes element="bookmarkThisPageBroadcaster" attribute="buttontooltiptext"/>
       
  1106 +        <menupopup id="BMB_bookmarksPopup"
  1162 +        <menupopup id="BMB_bookmarksPopup"
  1107 +                   class="cui-widget-panel cui-widget-panelview cui-widget-panelWithFooter PanelUI-subView"
  1163 +                   class="cui-widget-panel cui-widget-panelview cui-widget-panelWithFooter PanelUI-subView"
  1108 +                   placespopup="true"
  1164 +                   placespopup="true"
  1109 +                   context="placesContext"
  1165 +                   context="placesContext"
  1110 +                   openInTabs="children"
  1166 +                   openInTabs="children"
       
  1167 +                   side="top"
  1111 +                   onmouseup="BookmarksEventHandler.onMouseUp(event);"
  1168 +                   onmouseup="BookmarksEventHandler.onMouseUp(event);"
  1112 +                   oncommand="BookmarksEventHandler.onCommand(event);"
  1169 +                   oncommand="BookmarksEventHandler.onCommand(event);"
  1113 +                   onclick="BookmarksEventHandler.onClick(event, this.parentNode._placesView);"
  1170 +                   onclick="BookmarksEventHandler.onClick(event, this.parentNode._placesView);"
  1114 +                   onpopupshowing="BookmarkingUI.onPopupShowing(event);
  1171 +                   onpopupshowing="BookmarkingUI.onPopupShowing(event);
  1115 +                                   BookmarkingUI.attachPlacesView(event, this);"
  1172 +                                   BookmarkingUI.attachPlacesView(event, this);"
  1200 +      <vbox id="browser-border-start" hidden="true" layer="true"/>
  1257 +      <vbox id="browser-border-start" hidden="true" layer="true"/>
  1201 +      <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome">
  1258 +      <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome">
  1202 +        <sidebarheader id="sidebar-header" align="center">
  1259 +        <sidebarheader id="sidebar-header" align="center">
  1203 +          <toolbarbutton id="sidebar-switcher-target" flex="1" class="tabbable">
  1260 +          <toolbarbutton id="sidebar-switcher-target" flex="1" class="tabbable">
  1204 +            <image id="sidebar-icon" consumeanchor="sidebar-switcher-target"/>
  1261 +            <image id="sidebar-icon" consumeanchor="sidebar-switcher-target"/>
  1205 +            <label id="sidebar-title" persist="value" crop="end" flex="1" control="sidebar"/>
  1262 +            <label id="sidebar-title" crop="end" flex="1" control="sidebar"/>
  1206 +            <image id="sidebar-switcher-arrow"/>
  1263 +            <image id="sidebar-switcher-arrow"/>
  1207 +          </toolbarbutton>
  1264 +          </toolbarbutton>
  1208 +          <image id="sidebar-throbber"/>
  1265 +          <image id="sidebar-throbber"/>
  1209 +# To ensure the button label's intrinsic width doesn't expand the sidebar
  1266 +# To ensure the button label's intrinsic width doesn't expand the sidebar
  1210 +# if the label is long, the button needs flex=1.
  1267 +# if the label is long, the button needs flex=1.
  1219 +
  1276 +
  1220 +      <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/>
  1277 +      <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/>
  1221 +      <vbox id="appcontent" flex="1">
  1278 +      <vbox id="appcontent" flex="1">
  1222 +        <notificationbox id="high-priority-global-notificationbox" notificationside="top"/>
  1279 +        <notificationbox id="high-priority-global-notificationbox" notificationside="top"/>
  1223 +        <tabbox id="tabbrowser-tabbox"
  1280 +        <tabbox id="tabbrowser-tabbox"
  1224 +                flex="1" eventnode="document" tabcontainer="tabbrowser-tabs">
  1281 +                flex="1" tabcontainer="tabbrowser-tabs">
  1225 +          <tabpanels id="tabbrowser-tabpanels"
  1282 +          <tabpanels id="tabbrowser-tabpanels"
  1226 +                     flex="1" class="plain" selectedIndex="0"
  1283 +                     flex="1" class="plain" selectedIndex="0"/>
  1227 +                     onselect="if (event.target == this) gBrowser.updateCurrentBrowser();">
       
  1228 +            <notificationbox flex="1" notificationside="top">
       
  1229 +              <!-- Set large flex to allow the devtools toolbox to set a flex attribute.
       
  1230 +                   We don't want the toolbox to actually take up free space, but we do want it to collapse when the window shrinks, and with flex=0 it can't.
       
  1231 +                   When the toolbox is on the bottom it's a sibling of browserSidebarContainer,
       
  1232 +                   and when it's on the side it's a sibling of browserContainer.  -->
       
  1233 +              <hbox flex="10000" class="browserSidebarContainer">
       
  1234 +                <vbox flex="10000" class="browserContainer">
       
  1235 +                  <stack flex="1" class="browserStack">
       
  1236 +                    <browser id="tabbrowser-initialBrowser" type="content"
       
  1237 +                             message="true" messagemanagergroup="browsers"
       
  1238 +                             primary="true" blank="true"
       
  1239 +                             tooltip="aHTMLTooltip"
       
  1240 +                             contextmenu="contentAreaContextMenu"
       
  1241 +                             autocompletepopup="PopupAutoComplete"
       
  1242 +                             selectmenulist="ContentSelectDropdown"
       
  1243 +                             datetimepicker="DateTimePickerPanel"/>
       
  1244 +                  </stack>
       
  1245 +                  <hbox id="statuspanel" inactive="true" layer="true">
       
  1246 +                    <hbox id="statuspanel-inner">
       
  1247 +                      <label id="statuspanel-label"
       
  1248 +                             role="status"
       
  1249 +                             aria-live="off"
       
  1250 +                             flex="1"
       
  1251 +                             crop="end"/>
       
  1252 +                    </hbox>
       
  1253 +                  </hbox>
       
  1254 +                </vbox>
       
  1255 +              </hbox>
       
  1256 +            </notificationbox>
       
  1257 +          </tabpanels>
       
  1258 +        </tabbox>
  1284 +        </tabbox>
  1259 +      </vbox>
  1285 +      </vbox>
  1260 +      <vbox id="browser-border-end" hidden="true" layer="true"/>
  1286 +      <vbox id="browser-border-end" hidden="true" layer="true"/>
  1261 +    </hbox>
  1287 +    </hbox>
  1262 +#include ../../components/customizableui/content/customizeMode.inc.xul
  1288 +#include ../../components/customizableui/content/customizeMode.inc.xul
  1298 +
  1324 +
  1299 +</window>
  1325 +</window>
  1300 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
  1326 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
  1301 --- a/browser/base/jar.mn
  1327 --- a/browser/base/jar.mn
  1302 +++ b/browser/base/jar.mn
  1328 +++ b/browser/base/jar.mn
  1303 @@ -24,16 +24,18 @@ browser.jar:
  1329 @@ -28,16 +28,18 @@ browser.jar:
  1304          content/browser/aboutRobots-icon.png          (content/aboutRobots-icon.png)
       
  1305          content/browser/aboutRobots-widget-left.png   (content/aboutRobots-widget-left.png)
       
  1306          content/browser/aboutTabCrashed.css           (content/aboutTabCrashed.css)
       
  1307          content/browser/aboutTabCrashed.js            (content/aboutTabCrashed.js)
  1330          content/browser/aboutTabCrashed.js            (content/aboutTabCrashed.js)
  1308          content/browser/aboutTabCrashed.xhtml         (content/aboutTabCrashed.xhtml)
  1331          content/browser/aboutTabCrashed.xhtml         (content/aboutTabCrashed.xhtml)
  1309  *       content/browser/browser.css                   (content/browser.css)
  1332  *       content/browser/browser.css                   (content/browser.css)
  1310          content/browser/browser.js                    (content/browser.js)
  1333          content/browser/browser.js                    (content/browser.js)
       
  1334  #ifdef MOZ_BROWSER_XHTML
       
  1335  *       content/browser/browser.xhtml                 (content/browser.xhtml)
       
  1336  #endif
  1311  *       content/browser/browser.xul                   (content/browser.xul)
  1337  *       content/browser/browser.xul                   (content/browser.xul)
  1312 +*       content/browser/browser-kde.xul               (content/browser-kde.xul)
  1338 +*       content/browser/browser-kde.xul               (content/browser-kde.xul)
  1313 +%       override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
  1339 +%       override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
  1314          content/browser/browser-addons.js             (content/browser-addons.js)
  1340          content/browser/browser-addons.js             (content/browser-addons.js)
  1315          content/browser/browser-allTabsMenu.js        (content/browser-allTabsMenu.js)
  1341          content/browser/browser-allTabsMenu.js        (content/browser-allTabsMenu.js)
  1316          content/browser/browser-captivePortal.js      (content/browser-captivePortal.js)
  1342          content/browser/browser-captivePortal.js      (content/browser-captivePortal.js)
  1317          content/browser/browser-ctrlTab.js            (content/browser-ctrlTab.js)
  1343          content/browser/browser-ctrlTab.js            (content/browser-ctrlTab.js)
  1318          content/browser/browser-customization.js      (content/browser-customization.js)
  1344          content/browser/browser-customization.js      (content/browser-customization.js)
  1319          content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js)
  1345          content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js)
  1320          content/browser/browser-compacttheme.js       (content/browser-compacttheme.js)
  1346          content/browser/browser-compacttheme.js       (content/browser-compacttheme.js)
  1321  #ifndef MOZILLA_OFFICIAL
  1347          content/browser/browser-contentblocking.js    (content/browser-contentblocking.js)
  1322 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
  1348 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
  1323 --- a/browser/components/build/nsModule.cpp
  1349 --- a/browser/components/build/nsModule.cpp
  1324 +++ b/browser/components/build/nsModule.cpp
  1350 +++ b/browser/components/build/nsModule.cpp
  1325 @@ -8,17 +8,17 @@
  1351 @@ -8,17 +8,17 @@
  1326  #include "nsBrowserCompsCID.h"
  1352  #include "nsBrowserCompsCID.h"
  1333  #elif defined(MOZ_WIDGET_GTK)
  1359  #elif defined(MOZ_WIDGET_GTK)
  1334 -#include "nsGNOMEShellService.h"
  1360 -#include "nsGNOMEShellService.h"
  1335 +#include "nsUnixShellService.h"
  1361 +#include "nsUnixShellService.h"
  1336  #endif
  1362  #endif
  1337  
  1363  
       
  1364  #if defined(MOZ_WIDGET_COCOA)
       
  1365  #include "nsMacAttribution.h"
       
  1366  #endif
       
  1367  
  1338  #if defined(XP_WIN)
  1368  #if defined(XP_WIN)
  1339  #include "nsIEHistoryEnumerator.h"
  1369  #include "nsIEHistoryEnumerator.h"
  1340  #endif
  1370 @@ -34,18 +34,16 @@ using namespace mozilla::browser;
  1341  
       
  1342  #include "nsFeedSniffer.h"
       
  1343  #include "AboutRedirector.h"
       
  1344 @@ -30,18 +30,16 @@ using namespace mozilla::browser;
       
  1345  
  1371  
  1346  /////////////////////////////////////////////////////////////////////////////
  1372  /////////////////////////////////////////////////////////////////////////////
  1347  
  1373  
  1348  NS_GENERIC_FACTORY_CONSTRUCTOR(DirectoryProvider)
  1374  NS_GENERIC_FACTORY_CONSTRUCTOR(DirectoryProvider)
  1349  #if defined(XP_WIN)
  1375  #if defined(XP_WIN)
  1352  NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService)
  1378  NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService)
  1353 -#elif defined(MOZ_WIDGET_GTK)
  1379 -#elif defined(MOZ_WIDGET_GTK)
  1354 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
  1380 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
  1355  #endif
  1381  #endif
  1356  
  1382  
       
  1383  #if defined(MOZ_WIDGET_COCOA)
       
  1384  NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacAttributionService)
       
  1385  #endif
       
  1386  
  1357  #if defined(XP_WIN)
  1387  #if defined(XP_WIN)
  1358  NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
  1388  NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
  1359  #endif
  1389 @@ -70,17 +68,17 @@ NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID)
  1360  
  1390  NS_DEFINE_NAMED_CID(NS_MACATTRIBUTIONSERVICE_CID);
  1361  NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer)
       
  1362  
       
  1363 @@ -59,17 +57,17 @@ NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUME
       
  1364  NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
       
  1365  #endif
  1391  #endif
  1366  
  1392  
  1367  static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
  1393  static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
  1368      { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, nullptr, DirectoryProviderConstructor },
  1394      { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, nullptr, DirectoryProviderConstructor },
  1369  #if defined(XP_WIN)
  1395  #if defined(XP_WIN)
  1380      { &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor },
  1406      { &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor },
  1381  #endif
  1407  #endif
  1382 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
  1408 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
  1383 --- a/browser/components/preferences/in-content/main.js
  1409 --- a/browser/components/preferences/in-content/main.js
  1384 +++ b/browser/components/preferences/in-content/main.js
  1410 +++ b/browser/components/preferences/in-content/main.js
  1385 @@ -321,16 +321,23 @@ var gMainPane = {
  1411 @@ -327,16 +327,23 @@ var gMainPane = {
  1386            this._backoffIndex++ : backoffTimes.length - 1]);
  1412            this._backoffIndex++ : backoffTimes.length - 1]);
  1387        };
  1413        };
  1388  
  1414  
  1389        window.setTimeout(() => {
  1415        window.setTimeout(() => {
  1390          window.requestIdleCallback(pollForDefaultBrowser);
  1416          window.requestIdleCallback(pollForDefaultBrowser);
  1404      let performanceSettingsLink = document.getElementById("performanceSettingsLearnMore");
  1430      let performanceSettingsLink = document.getElementById("performanceSettingsLearnMore");
  1405      let performanceSettingsUrl = Services.urlFormatter.formatURLPref("app.support.baseURL") + "performance";
  1431      let performanceSettingsUrl = Services.urlFormatter.formatURLPref("app.support.baseURL") + "performance";
  1406      performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
  1432      performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
  1407  
  1433  
  1408      this.updateDefaultPerformanceSettingsPref();
  1434      this.updateDefaultPerformanceSettingsPref();
  1409 @@ -861,16 +868,27 @@ var gMainPane = {
  1435 @@ -962,16 +969,27 @@ var gMainPane = {
  1410        // Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
  1436        // Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
  1411        this._backoffIndex = 0;
  1437        this._backoffIndex = 0;
  1412  
  1438  
  1413        let shellSvc = getShellService();
  1439        let shellSvc = getShellService();
  1414        if (!shellSvc)
  1440        if (!shellSvc)
  1748 +
  1774 +
  1749 +#endif // nsunixshellservice_h____
  1775 +#endif // nsunixshellservice_h____
  1750 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
  1776 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
  1751 --- a/browser/installer/package-manifest.in
  1777 --- a/browser/installer/package-manifest.in
  1752 +++ b/browser/installer/package-manifest.in
  1778 +++ b/browser/installer/package-manifest.in
  1753 @@ -455,16 +455,18 @@
  1779 @@ -462,16 +462,18 @@
  1754  @RESPATH@/browser/defaults/settings/pinning
  1780  @RESPATH@/browser/defaults/settings/pinning
  1755  @RESPATH@/browser/defaults/settings/main
  1781  @RESPATH@/browser/defaults/settings/main
  1756  
  1782  
  1757  ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
  1783  ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
  1758  ; Technically this is an app pref file, but we are keeping it in the original
  1784  ; Technically this is an app pref file, but we are keeping it in the original