firefox-kde.patch
changeset 1074 4b99400f6d17
parent 1068 70cd69cfa868
child 1082 821cfbe8efcc
--- a/firefox-kde.patch	Sun Oct 21 09:27:28 2018 +0200
+++ b/firefox-kde.patch	Mon Oct 22 11:26:41 2018 +0200
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  0629fb9c6879e14c1b5e3cbff53b0d44371f0127
+# Parent  fdf78810e83396d10418791fbe32bed6bfe1558b
 
 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
 new file mode 100644
 --- /dev/null
 +++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,1291 @@
+@@ -0,0 +1,1317 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -14,18 +14,23 @@
 +# 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/.
 +
++<!-- The "global.css" stylesheet is imported first to allow other stylesheets to
++     override rules using selectors with the same specificity. This applies to
++     both "content" and "skin" packages, which bug 1385444 will unify later. -->
++<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
++
 +<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
-+<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css"?>
++<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
++<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/content/usercontext/usercontext.css" type="text/css"?>
++<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
-+<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css"?>
-+<?xml-stylesheet href="chrome://browser/skin/searchbar.css"?>
-+<?xml-stylesheet href="chrome://browser/skin/places/places.css"?>
-+<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css"?>
-+<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
-+<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
++<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css" type="text/css"?>
++<?xml-stylesheet href="chrome://browser/skin/searchbar.css" type="text/css"?>
++<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css" type="text/css"?>
++<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/compacttheme.css" type="text/css" alternate="yes" title="Light/Dark"?>
 +
 +# All DTD information is stored in a separate file so that it can be shared by
@@ -40,7 +45,6 @@
 +        xmlns:html="http://www.w3.org/1999/xhtml"
 +        xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 +        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-+        onload="gBrowserInit.onLoad()" onunload="gBrowserInit.onUnload()" onclose="return WindowIsClosing();"
 +        title="&mainWindow.title;"
 +        title_normal="&mainWindow.title;"
 +#ifdef XP_MACOSX
@@ -75,31 +79,36 @@
 +# that they can be shared with macWindow.inc.xul.
 +#include global-scripts.inc
 +
-+<script type="application/javascript">
++<script type="application/javascript"
++#ifdef BROWSER_XHTML
++xmlns="http://www.w3.org/1999/xhtml"
++#endif
++>
 +  Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
 +  Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this);
 +
-+  ChromeUtils.defineModuleGetter(window,
-+    "PlacesUtils", "resource://gre/modules/PlacesUtils.jsm");
-+  ChromeUtils.defineModuleGetter(window,
-+    "PlacesUIUtils", "resource:///modules/PlacesUIUtils.jsm");
-+  ChromeUtils.defineModuleGetter(window,
-+    "PlacesTransactions", "resource://gre/modules/PlacesTransactions.jsm");
-+
-+  ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
-+  XPCOMUtils.defineLazyScriptGetter(window, "PlacesTreeView",
-+    "chrome://browser/content/places/treeView.js");
-+  XPCOMUtils.defineLazyScriptGetter(window,
-+    ["PlacesInsertionPoint", "PlacesController", "PlacesControllerDragHelper"],
-+     "chrome://browser/content/places/controller.js");
++  window.onload = gBrowserInit.onLoad.bind(gBrowserInit);
++  window.onunload = gBrowserInit.onUnload.bind(gBrowserInit);
++  window.onclose = WindowIsClosing;
++#ifdef BROWSER_XHTML
++  window.addEventListener("DOMContentLoaded",
++    gBrowserInit.onBeforeInitialXULLayout.bind(gBrowserInit), { once: true });
++#else
++  window.addEventListener("MozBeforeInitialXULLayout",
++    gBrowserInit.onBeforeInitialXULLayout.bind(gBrowserInit), { once: true });
++#endif
++  // The listener of DOMContentLoaded must be set on window, rather than
++  // document, because the window can go away before the event is fired.
++  // In that case, we don't want to initialize anything, otherwise we
++  // may be leaking things because they will never be destroyed after.
++  window.addEventListener("DOMContentLoaded",
++    gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
 +</script>
 +
-+# All sets except for popupsets (commands, keys, stringbundles and broadcasters)
++# All sets except for popupsets (commands, keys, and stringbundles)
 +# *must* go into the browser-sets.inc file so that they can be shared with other
 +# top level windows in macWindow.inc.xul.
-+#define FULL_BROWSER_WINDOW
 +#include browser-sets.inc
-+#undef FULL_BROWSER_WINDOW
 +
 +  <popupset id="mainPopupSet">
 +    <menupopup id="tabContextMenu"
@@ -107,6 +116,9 @@
 +               onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
 +      <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
 +                oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
++      <menuitem id="context_reloadSelectedTabs" label="&reloadSelectedTabs.label;" hidden="true"
++                accesskey="&reloadSelectedTabs.accesskey;"
++                oncommand="gBrowser.reloadMultiSelectedTabs();"/>
 +      <menuitem id="context_toggleMuteTab" oncommand="TabContextMenu.contextTab.toggleMuteAudio();"/>
 +      <menuitem id="context_toggleMuteSelectedTabs" hidden="true"
 +                oncommand="gBrowser.toggleMuteAudioOnMultiSelectedTabs(TabContextMenu.contextTab);"/>
@@ -117,6 +129,12 @@
 +      <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true"
 +                accesskey="&unpinTab.accesskey;"
 +                oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
++      <menuitem id="context_pinSelectedTabs" label="&pinSelectedTabs.label;" hidden="true"
++                accesskey="&pinSelectedTabs.accesskey;"
++                oncommand="gBrowser.pinMultiSelectedTabs();"/>
++      <menuitem id="context_unpinSelectedTabs" label="&unpinSelectedTabs.label;" hidden="true"
++                accesskey="&unpinSelectedTabs.accesskey;"
++                oncommand="gBrowser.unpinMultiSelectedTabs();"/>
 +      <menuitem id="context_duplicateTab" label="&duplicateTab.label;"
 +                accesskey="&duplicateTab.accesskey;"
 +                oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/>
@@ -124,13 +142,13 @@
 +            label="&reopenInContainer.label;"
 +            accesskey="&reopenInContainer.accesskey;"
 +            hidden="true">
-+        <menupopup oncommand="reopenInContainer(event);"
-+                   onpopupshowing="return createReopenInContainerMenu(event);" />
++        <menupopup oncommand="TabContextMenu.reopenInContainer(event);"
++                   onpopupshowing="TabContextMenu.createReopenInContainerMenu(event);"/>
 +      </menu>
 +      <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;"
 +                accesskey="&moveToNewWindow.accesskey;"
 +                tbattr="tabbrowser-multiple"
-+                oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/>
++                oncommand="gBrowser.replaceTabsWithWindow(TabContextMenu.contextTab);"/>
 +      <menuseparator id="context_sendTabToDevice_separator" class="sync-ui-item"/>
 +      <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
 +            class="sync-ui-item"
@@ -142,6 +160,11 @@
 +      <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
 +                tbattr="tabbrowser-multiple-visible"
 +                oncommand="gBrowser.reloadAllTabs();"/>
++       <menuitem id="context_bookmarkSelectedTabs"
++                hidden="true"
++                label="&bookmarkSelectedTabs.label;"
++                accesskey="&bookmarkSelectedTabs.accesskey;"
++                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"/>
 +      <menuitem id="context_bookmarkAllTabs"
 +                label="&bookmarkAllTabs.label;"
 +                accesskey="&bookmarkAllTabs.accesskey;"
@@ -237,7 +260,6 @@
 +           ignorekeys="true"
 +           hidden="true"
 +           tabspecific="true"
-+           onpopupshown="StarUI.panelShown(event);"
 +           aria-labelledby="editBookmarkPanelTitle">
 +      <box class="panel-header">
 +        <label id="editBookmarkPanelTitle"/>
@@ -247,8 +269,15 @@
 +      </html:div>
 +      <box id="editBookmarkPanelImage"/>
 +#include ../../components/places/content/editBookmarkPanel.inc.xul
++      <vbox id="editBookmarkPanelBottomContent"
++            flex="1">
++        <checkbox id="editBookmarkPanel_showForNewBookmarks"
++                  label="&editBookmark.showForNewBookmarks.label;"
++                  accesskey="&editBookmark.showForNewBookmarks.accesskey;"
++                  oncommand="StarUI.onShowForNewBookmarksCheckboxCommand();"/>
++      </vbox>
 +      <hbox id="editBookmarkPanelBottomButtons"
-+            style="min-width: 30em;">
++            style="min-width: &editBookmark.panel.width;;">
 +#ifdef XP_UNIX
 +        <button id="editBookmarkPanelDoneButton"
 +                class="editBookmarkPanelBottomButton"
@@ -316,27 +345,22 @@
 +           orient="vertical"
 +           position="bottomcenter topleft">
 +      <toolbarbutton id="sidebar-switcher-bookmarks"
++                     type="checkbox"
++                     label="&bookmarksButton.label;"
 +                     class="subviewbutton subviewbutton-iconic"
 +                     key="viewBookmarksSidebarKb"
-+                     observes="viewBookmarksSidebar"
-+                     oncommand="SidebarUI.show('viewBookmarksSidebar');">
-+        <observes element="viewBookmarksSidebar" attribute="checked"/>
-+      </toolbarbutton>
++                     oncommand="SidebarUI.show('viewBookmarksSidebar');"/>
 +      <toolbarbutton id="sidebar-switcher-history"
++                     type="checkbox"
 +                     label="&historyButton.label;"
 +                     class="subviewbutton subviewbutton-iconic"
 +                     key="key_gotoHistory"
-+                     observes="viewHistorySidebar"
-+                     oncommand="SidebarUI.show('viewHistorySidebar');">
-+        <observes element="viewHistorySidebar" attribute="checked"/>
-+      </toolbarbutton>
++                     oncommand="SidebarUI.show('viewHistorySidebar');"/>
 +      <toolbarbutton id="sidebar-switcher-tabs"
++                     type="checkbox"
 +                     label="&syncedTabs.sidebar.label;"
 +                     class="subviewbutton subviewbutton-iconic sync-ui-item"
-+                     observes="viewTabsSidebar"
-+                     oncommand="SidebarUI.show('viewTabsSidebar');">
-+        <observes element="viewTabsSidebar" attribute="checked"/>
-+      </toolbarbutton>
++                     oncommand="SidebarUI.show('viewTabsSidebar');"/>
 +      <toolbarseparator/>
 +      <!-- Extension toolbarbuttons go here. -->
 +      <toolbarseparator id="sidebar-extensions-separator"/>
@@ -409,10 +433,22 @@
 +    <menupopup id="blockedPopupOptions"
 +               onpopupshowing="gPopupBlockerObserver.fillPopupList(event);"
 +               onpopuphiding="gPopupBlockerObserver.onPopupHiding(event);">
-+      <menuitem observes="blockedPopupAllowSite"/>
-+      <menuitem observes="blockedPopupEditSettings"/>
-+      <menuitem observes="blockedPopupDontShowMessage"/>
-+      <menuseparator observes="blockedPopupsSeparator"/>
++      <menuitem id="blockedPopupAllowSite"
++                accesskey="&allowPopups.accesskey;"
++                oncommand="gPopupBlockerObserver.toggleAllowPopupsForSite(event);"/>
++      <menuitem
++#ifdef XP_WIN
++                label="&editPopupSettings.label;"
++#else
++                label="&editPopupSettingsUnix.label;"
++#endif
++                accesskey="&editPopupSettings.accesskey;"
++                oncommand="gPopupBlockerObserver.editPopupSettings();"/>
++      <menuitem id="blockedPopupDontShowMessage"
++                accesskey="&dontShowMessage.accesskey;"
++                type="checkbox"
++                oncommand="gPopupBlockerObserver.dontShowMessage();"/>
++      <menuseparator id="blockedPopupsSeparator"/>
 +    </menupopup>
 +
 +    <menupopup id="autohide-context"
@@ -462,7 +498,8 @@
 +           emailLink-title="&emailPageCmd.label;"
 +           sendToDevice-title="&pageAction.sendTabToDevice.label;"
 +           sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;"
-+           shareURL-title="&pageAction.shareUrl.label;">
++           shareURL-title="&pageAction.shareUrl.label;"
++           shareMore-label="&pageAction.shareMore.label;">
 +      <panelmultiview id="pageActionPanelMultiView"
 +                      mainViewId="pageActionPanelMainView"
 +                      viewCacheId="appMenu-viewCache">
@@ -605,6 +642,16 @@
 +                accesskey="&syncSyncNowItem.accesskey;"
 +                id="syncedTabsRefreshFilter"/>
 +    </menupopup>
++
++    <hbox id="statuspanel" inactive="true" layer="true">
++      <hbox id="statuspanel-inner">
++        <label id="statuspanel-label"
++               role="status"
++               aria-live="off"
++               flex="1"
++               crop="end"/>
++      </hbox>
++    </hbox>
 +  </popupset>
 +  <box id="appMenu-viewCache" hidden="true"/>
 +
@@ -633,7 +680,7 @@
 +  <toolbox id="navigator-toolbox">
 +    <!-- Menu -->
 +    <toolbar type="menubar" id="toolbar-menubar"
-+             class="chromeclass-menubar titlebar-color"
++             class="browser-toolbar chromeclass-menubar titlebar-color"
 +             customizable="true"
 +             mode="icons"
 +#ifdef MENUBAR_CAN_AUTOHIDE
@@ -655,7 +702,7 @@
 +    </toolbar>
 +
 +    <toolbar id="TabsToolbar"
-+             class="titlebar-color"
++             class="browser-toolbar titlebar-color"
 +             fullscreentoolbar="true"
 +             customizable="true"
 +             mode="icons"
@@ -714,6 +761,7 @@
 +    </toolbar>
 +
 +    <toolbar id="nav-bar"
++             class="browser-toolbar"
 +             aria-label="&navbarCmd.label;"
 +             fullscreentoolbar="true" mode="icons" customizable="true"
 +             customizationtarget="nav-bar-customization-target"
@@ -771,7 +819,7 @@
 +                       key="goHome"
 +                       onclick="BrowserGoHome(event);"
 +                       cui-areatype="toolbar"
-+                       aboutHomeOverrideTooltip="&homeButton.defaultPage.tooltip;"/>
++                       tooltiptext="&homeButton.defaultPage.tooltip;"/>
 +        <toolbarspring cui-areatype="toolbar" class="chromeclass-toolbar-additional"/>
 +        <toolbaritem id="urlbar-container" flex="400" persist="width"
 +                     removable="false"
@@ -785,7 +833,6 @@
 +                     autocompletesearchparam="enable-actions"
 +                     autocompletepopup="PopupAutoCompleteRichResult"
 +                     completeselectedindex="true"
-+                     shrinkdelay="250"
 +                     tabscrolling="true"
 +                     newlines="stripsurroundingwhitespace"
 +                     ontextentered="this.handleCommand(param);"
@@ -803,7 +850,12 @@
 +                       consumeanchor="identity-box"
 +                       onclick="PageProxyClickHandler(event);"/>
 +                <image id="sharing-icon" mousethrough="always"/>
-+                <image id="tracking-protection-icon"/>
++                <box id="tracking-protection-icon-box" animationsenabled="true">
++                  <image id="tracking-protection-icon"/>
++                  <box id="tracking-protection-icon-animatable-box" flex="1">
++                    <image id="tracking-protection-icon-animatable-image" flex="1"/>
++                  </box>
++                </box>
 +                <box id="blocked-permissions-container" align="center">
 +                  <image data-permission-id="geo" class="blocked-permission-icon geo-icon" role="button"
 +                         tooltiptext="&urlbar.geolocationBlocked.tooltip;"/>
@@ -889,6 +941,14 @@
 +                <label id="extension" class="urlbar-display urlbar-display-extension" value="&urlbar.extension.label;"/>
 +              </box>
 +              <hbox id="page-action-buttons" context="pageActionContextMenu">
++                <hbox id="contextual-feature-recommendation" role="button" hidden="true">
++                  <hbox id="cfr-label-container">
++                    <label id="cfr-label"/>
++                  </hbox>
++                  <image id="cfr-button"
++                         class="urlbar-icon urlbar-page-action"
++                         role="presentation"/>
++                </hbox>
 +                <hbox id="userContext-icons" hidden="true">
 +                  <label id="userContext-label"/>
 +                  <image id="userContext-indicator"/>
@@ -915,12 +975,10 @@
 +                      onclick="BrowserPageActions.doCommandForAction(PageActions.actionForID('bookmark'), event, this);">
 +                  <image id="star-button"
 +                         class="urlbar-icon"
-+                         role="button"
-+                         observes="bookmarkThisPageBroadcaster"/>
++                         role="button"/>
 +                  <hbox id="star-button-animatable-box">
 +                    <image id="star-button-animatable-image"
-+                           role="presentation"
-+                           observes="bookmarkThisPageBroadcaster"/>
++                           role="presentation"/>
 +                  </hbox>
 +                </hbox>
 +              </hbox>
@@ -1010,7 +1068,7 @@
 +
 +    <toolbar id="PersonalToolbar"
 +             mode="icons"
-+             class="chromeclass-directories"
++             class="browser-toolbar chromeclass-directories"
 +             context="toolbar-context-menu"
 +             toolbarname="&personalbarCmd.label;" accesskey="&personalbarCmd.accesskey;"
 +             collapsed="true"
@@ -1101,13 +1159,12 @@
 +                     ondragleave="PlacesMenuDNDHandler.onDragLeave(event);"
 +                     ondrop="PlacesMenuDNDHandler.onDrop(event);"
 +                     oncommand="BookmarkingUI.onCommand(event);">
-+        <observes element="bookmarkThisPageBroadcaster" attribute="starred"/>
-+        <observes element="bookmarkThisPageBroadcaster" attribute="buttontooltiptext"/>
 +        <menupopup id="BMB_bookmarksPopup"
 +                   class="cui-widget-panel cui-widget-panelview cui-widget-panelWithFooter PanelUI-subView"
 +                   placespopup="true"
 +                   context="placesContext"
 +                   openInTabs="children"
++                   side="top"
 +                   onmouseup="BookmarksEventHandler.onMouseUp(event);"
 +                   oncommand="BookmarksEventHandler.onCommand(event);"
 +                   onclick="BookmarksEventHandler.onClick(event, this.parentNode._placesView);"
@@ -1202,7 +1259,7 @@
 +        <sidebarheader id="sidebar-header" align="center">
 +          <toolbarbutton id="sidebar-switcher-target" flex="1" class="tabbable">
 +            <image id="sidebar-icon" consumeanchor="sidebar-switcher-target"/>
-+            <label id="sidebar-title" persist="value" crop="end" flex="1" control="sidebar"/>
++            <label id="sidebar-title" crop="end" flex="1" control="sidebar"/>
 +            <image id="sidebar-switcher-arrow"/>
 +          </toolbarbutton>
 +          <image id="sidebar-throbber"/>
@@ -1221,40 +1278,9 @@
 +      <vbox id="appcontent" flex="1">
 +        <notificationbox id="high-priority-global-notificationbox" notificationside="top"/>
 +        <tabbox id="tabbrowser-tabbox"
-+                flex="1" eventnode="document" tabcontainer="tabbrowser-tabs">
++                flex="1" tabcontainer="tabbrowser-tabs">
 +          <tabpanels id="tabbrowser-tabpanels"
-+                     flex="1" class="plain" selectedIndex="0"
-+                     onselect="if (event.target == this) gBrowser.updateCurrentBrowser();">
-+            <notificationbox flex="1" notificationside="top">
-+              <!-- Set large flex to allow the devtools toolbox to set a flex attribute.
-+                   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.
-+                   When the toolbox is on the bottom it's a sibling of browserSidebarContainer,
-+                   and when it's on the side it's a sibling of browserContainer.  -->
-+              <hbox flex="10000" class="browserSidebarContainer">
-+                <vbox flex="10000" class="browserContainer">
-+                  <stack flex="1" class="browserStack">
-+                    <browser id="tabbrowser-initialBrowser" type="content"
-+                             message="true" messagemanagergroup="browsers"
-+                             primary="true" blank="true"
-+                             tooltip="aHTMLTooltip"
-+                             contextmenu="contentAreaContextMenu"
-+                             autocompletepopup="PopupAutoComplete"
-+                             selectmenulist="ContentSelectDropdown"
-+                             datetimepicker="DateTimePickerPanel"/>
-+                  </stack>
-+                  <hbox id="statuspanel" inactive="true" layer="true">
-+                    <hbox id="statuspanel-inner">
-+                      <label id="statuspanel-label"
-+                             role="status"
-+                             aria-live="off"
-+                             flex="1"
-+                             crop="end"/>
-+                    </hbox>
-+                  </hbox>
-+                </vbox>
-+              </hbox>
-+            </notificationbox>
-+          </tabpanels>
++                     flex="1" class="plain" selectedIndex="0"/>
 +        </tabbox>
 +      </vbox>
 +      <vbox id="browser-border-end" hidden="true" layer="true"/>
@@ -1300,14 +1326,14 @@
 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
 --- a/browser/base/jar.mn
 +++ b/browser/base/jar.mn
-@@ -24,16 +24,18 @@ browser.jar:
-         content/browser/aboutRobots-icon.png          (content/aboutRobots-icon.png)
-         content/browser/aboutRobots-widget-left.png   (content/aboutRobots-widget-left.png)
-         content/browser/aboutTabCrashed.css           (content/aboutTabCrashed.css)
+@@ -28,16 +28,18 @@ browser.jar:
          content/browser/aboutTabCrashed.js            (content/aboutTabCrashed.js)
          content/browser/aboutTabCrashed.xhtml         (content/aboutTabCrashed.xhtml)
  *       content/browser/browser.css                   (content/browser.css)
          content/browser/browser.js                    (content/browser.js)
+ #ifdef MOZ_BROWSER_XHTML
+ *       content/browser/browser.xhtml                 (content/browser.xhtml)
+ #endif
  *       content/browser/browser.xul                   (content/browser.xul)
 +*       content/browser/browser-kde.xul               (content/browser-kde.xul)
 +%       override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
@@ -1318,7 +1344,7 @@
          content/browser/browser-customization.js      (content/browser-customization.js)
          content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js)
          content/browser/browser-compacttheme.js       (content/browser-compacttheme.js)
- #ifndef MOZILLA_OFFICIAL
+         content/browser/browser-contentblocking.js    (content/browser-contentblocking.js)
 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
 --- a/browser/components/build/nsModule.cpp
 +++ b/browser/components/build/nsModule.cpp
@@ -1335,13 +1361,13 @@
 +#include "nsUnixShellService.h"
  #endif
  
- #if defined(XP_WIN)
- #include "nsIEHistoryEnumerator.h"
+ #if defined(MOZ_WIDGET_COCOA)
+ #include "nsMacAttribution.h"
  #endif
  
- #include "nsFeedSniffer.h"
- #include "AboutRedirector.h"
-@@ -30,18 +30,16 @@ using namespace mozilla::browser;
+ #if defined(XP_WIN)
+ #include "nsIEHistoryEnumerator.h"
+@@ -34,18 +34,16 @@ using namespace mozilla::browser;
  
  /////////////////////////////////////////////////////////////////////////////
  
@@ -1354,14 +1380,14 @@
 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
  #endif
  
- #if defined(XP_WIN)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
+ #if defined(MOZ_WIDGET_COCOA)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacAttributionService)
  #endif
  
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer)
- 
-@@ -59,17 +57,17 @@ NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUME
- NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
+ #if defined(XP_WIN)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
+@@ -70,17 +68,17 @@ NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID)
+ NS_DEFINE_NAMED_CID(NS_MACATTRIBUTIONSERVICE_CID);
  #endif
  
  static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
@@ -1382,7 +1408,7 @@
 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
 --- a/browser/components/preferences/in-content/main.js
 +++ b/browser/components/preferences/in-content/main.js
-@@ -321,16 +321,23 @@ var gMainPane = {
+@@ -327,16 +327,23 @@ var gMainPane = {
            this._backoffIndex++ : backoffTimes.length - 1]);
        };
  
@@ -1406,7 +1432,7 @@
      performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
  
      this.updateDefaultPerformanceSettingsPref();
-@@ -861,16 +868,27 @@ var gMainPane = {
+@@ -962,16 +969,27 @@ var gMainPane = {
        // Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
        this._backoffIndex = 0;
  
@@ -1750,7 +1776,7 @@
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -455,16 +455,18 @@
+@@ -462,16 +462,18 @@
  @RESPATH@/browser/defaults/settings/pinning
  @RESPATH@/browser/defaults/settings/main