--- a/firefox-kde.patch Sat Jan 26 22:42:57 2019 +0100
+++ b/firefox-kde.patch Thu Jan 31 11:21:22 2019 +0100
@@ -1,11 +1,11 @@
# HG changeset patch
-# Parent f2429084f187d5758508ae547c411943cba60fcf
+# Parent 693f0baece29cc958a7d91b89fd12e3b89a502e3
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,1384 @@
+@@ -0,0 +1,1395 @@
+#filter substitution
+<?xml version="1.0"?>
+# -*- Mode: HTML -*-
@@ -81,6 +81,7 @@
+ persist="screenX screenY width height sizemode"
+#ifdef BROWSER_XHTML
+ hidden="true"
++ mozpersist=""
+#endif
+ >
+
@@ -95,7 +96,22 @@
+#endif
+>
+ Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-captivePortal.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-compacttheme.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-contentblocking.js", this);
++#ifdef MOZ_DATA_REPORTING
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-data-submission-info-bar.js", this);
++#endif
++#ifndef MOZILLA_OFFICIAL
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-development-helpers.js", this);
++#endif
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-media.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-pageActions.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-plugins.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-sidebar.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/browser-tabsintitlebar.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this);
++ Services.scriptloader.loadSubScript("chrome://browser/content/search/searchbar.js", this);
+
+ window.onload = gBrowserInit.onLoad.bind(gBrowserInit);
+ window.onunload = gBrowserInit.onUnload.bind(gBrowserInit);
@@ -152,6 +168,9 @@
+ <menuitem id="context_duplicateTab" label="&duplicateTab.label;"
+ accesskey="&duplicateTab.accesskey;"
+ oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/>
++ <menuitem id="context_duplicateTabs" label="&duplicateTabs.label;"
++ accesskey="&duplicateTabs.accesskey;"
++ oncommand="TabContextMenu.duplicateSelectedTabs();"/>
+ <menuseparator/>
+ <menuitem id="context_selectAllTabs" label="&selectAllTabs.label;" accesskey="&selectAllTabs.accesskey;"
+ oncommand="gBrowser.selectAllTabs();"/>
@@ -262,13 +281,16 @@
+ <html:div class="urlbarView-body-inner">
+ <!-- TODO: add search suggestions notification -->
+ <html:div class="urlbarView-results"/>
-+ <!-- TODO: add footer -->
+ </html:div>
+ </html:div>
++ <hbox class="search-one-offs"
++ compact="true"
++ includecurrentengine="true"
++ disabletab="true"/>
+ </panel>
+
-+ <!-- for date/time picker. consumeoutsideclicks is set to never, so that
-+ clicks on the anchored input box are never consumed. -->
++ <!-- for date/time picker. consumeoutsideclicks is set to never, so that
++ clicks on the anchored input box are never consumed. -->
+ <panel id="DateTimePickerPanel"
+ type="arrow"
+ hidden="true"
@@ -322,6 +344,7 @@
+ oncommand="StarUI.onShowForNewBookmarksCheckboxCommand();"/>
+ </vbox>
+ <hbox id="editBookmarkPanelBottomButtons"
++ class="panel-footer"
+ style="min-width: &editBookmark.panel.width;;">
+#ifdef XP_UNIX
+ <button id="editBookmarkPanelDoneButton"
@@ -436,49 +459,43 @@
+ label="&customizeMenu.pinToOverflowMenu.label;"
+ contexttype="toolbaritem"
+ class="customize-context-moveToPanel"/>
-+ <menuitem oncommand="ToolbarContextMenu.onDownloadsAutoHideChange(event)"
++ <menuitem id="toolbar-context-autohide-downloads-button"
++ oncommand="ToolbarContextMenu.onDownloadsAutoHideChange(event);"
+ type="checkbox"
+ accesskey="&customizeMenu.autoHideDownloadsButton.accesskey;"
+ label="&customizeMenu.autoHideDownloadsButton.label;"
-+ contexttype="toolbaritem"
-+ class="customize-context-autoHide"/>
++ contexttype="toolbaritem"/>
+ <menuitem oncommand="gCustomizeMode.removeFromArea(document.popupNode)"
+ accesskey="&customizeMenu.removeFromToolbar.accesskey;"
+ label="&customizeMenu.removeFromToolbar.label;"
+ contexttype="toolbaritem"
+ class="customize-context-removeFromToolbar"/>
+ <menuitem id="toolbar-context-reloadSelectedTab"
-+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar"
+ oncommand="gBrowser.reloadMultiSelectedTabs();"
+ label="&toolbarContextMenu.reloadSelectedTab.label;"
+ accesskey="&toolbarContextMenu.reloadSelectedTab.accesskey;"/>
+ <menuitem id="toolbar-context-reloadSelectedTabs"
-+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar"
+ oncommand="gBrowser.reloadMultiSelectedTabs();"
+ label="&toolbarContextMenu.reloadSelectedTabs.label;"
+ accesskey="&toolbarContextMenu.reloadSelectedTabs.accesskey;"/>
+ <menuitem id="toolbar-context-bookmarkSelectedTab"
-+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar"
+ oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
+ label="&toolbarContextMenu.bookmarkSelectedTab.label;"
+ accesskey="&toolbarContextMenu.bookmarkSelectedTab.accesskey;"/>
+ <menuitem id="toolbar-context-bookmarkSelectedTabs"
-+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar"
+ oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
+ label="&toolbarContextMenu.bookmarkSelectedTabs.label;"
+ accesskey="&toolbarContextMenu.bookmarkSelectedTabs.accesskey;"/>
+ <menuitem id="toolbar-context-selectAllTabs"
-+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar"
+ oncommand="gBrowser.selectAllTabs();"
+ label="&toolbarContextMenu.selectAllTabs.label;"
+ accesskey="&toolbarContextMenu.selectAllTabs.accesskey;"/>
+ <menuitem id="toolbar-context-undoCloseTab"
-+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar"
+ label="&toolbarContextMenu.undoCloseTab.label;"
+ accesskey="&toolbarContextMenu.undoCloseTab.accesskey;"
@@ -722,110 +739,101 @@
+ </popupset>
+ <box id="appMenu-viewCache" hidden="true"/>
+
-+<vbox id="titlebar">
-+ <hbox id="titlebar-content">
-+ <spacer id="titlebar-spacer" flex="1"/>
-+ <hbox id="titlebar-buttonbox-container">
-+ <hbox id="titlebar-buttonbox" class="titlebar-color">
-+ <toolbarbutton class="titlebar-button" id="titlebar-min" oncommand="window.minimize();"/>
-+ <toolbarbutton class="titlebar-button" id="titlebar-max" oncommand="onTitlebarMaxClick();"/>
-+ <toolbarbutton class="titlebar-button" id="titlebar-close" command="cmd_closeWindow"/>
-+ </hbox>
-+ </hbox>
-+#ifdef XP_MACOSX
-+ <!-- OS X does not natively support RTL for its titlebar items, so we prevent this secondary
-+ buttonbox from reversing order in RTL by forcing an LTR direction. -->
-+ <hbox id="titlebar-secondary-buttonbox" dir="ltr">
-+ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;" aria-live="polite"/>
-+ <hbox class="private-browsing-indicator"/>
-+ <hbox id="titlebar-fullscreen-button"/>
-+ </hbox>
++ <toolbox id="navigator-toolbox">
++
++ <vbox id="titlebar">
++ <!-- Menu -->
++ <toolbar type="menubar" id="toolbar-menubar"
++ class="browser-toolbar chromeclass-menubar titlebar-color"
++ customizable="true"
++ mode="icons"
++#ifdef MENUBAR_CAN_AUTOHIDE
++ toolbarname="&menubarCmd.label;"
++ accesskey="&menubarCmd.accesskey;"
++ autohide="true"
+#endif
-+ </hbox>
-+</vbox>
-+
-+ <toolbox id="navigator-toolbox">
-+ <!-- Menu -->
-+ <toolbar type="menubar" id="toolbar-menubar"
-+ class="browser-toolbar chromeclass-menubar titlebar-color"
-+ customizable="true"
-+ mode="icons"
-+#ifdef MENUBAR_CAN_AUTOHIDE
-+ toolbarname="&menubarCmd.label;"
-+ accesskey="&menubarCmd.accesskey;"
-+ autohide="true"
-+#endif
-+ context="toolbar-context-menu">
-+ <toolbaritem id="menubar-items" align="center">
++ context="toolbar-context-menu">
++ <toolbaritem id="menubar-items" align="center">
+# The entire main menubar is placed into browser-menubar.inc, so that it can be
+# shared with other top level windows in macWindow.inc.xul.
+#include browser-menubar.inc
-+ </toolbaritem>
++ </toolbaritem>
++ <spacer flex="1" skipintoolbarset="true" ordinal="1000"/>
++#include titlebar-items.inc.xul
++ </toolbar>
++
++ <toolbar id="TabsToolbar"
++ class="browser-toolbar titlebar-color"
++ fullscreentoolbar="true"
++ customizable="true"
++ customizationtarget="TabsToolbar-customization-target"
++ mode="icons"
++ aria-label="&tabsToolbar.label;"
++ context="toolbar-context-menu"
++ flex="1">
++ <vbox flex="1" class="toolbar-items">
++ <spacer flex="1000"/>
++
++ <hbox id="TabsToolbar-customization-target" flex="1">
++ <hbox class="titlebar-spacer" type="pre-tabs"
++ skipintoolbarset="true"/>
++
++ <tabs id="tabbrowser-tabs"
++ flex="1"
++ setfocus="false"
++ tooltip="tabbrowser-tab-tooltip"
++ stopwatchid="FX_TAB_CLICK_MS">
++ <tab class="tabbrowser-tab" selected="true" visuallyselected="true" fadein="true"/>
++ </tabs>
++
++ <toolbarbutton id="new-tab-button"
++ class="toolbarbutton-1 chromeclass-toolbar-additional"
++ label="&tabCmd.label;"
++ command="cmd_newNavigatorTab"
++ onclick="checkForMiddleClick(this, event);"
++ tooltip="dynamic-shortcut-tooltip"
++ ondrop="newTabButtonObserver.onDrop(event)"
++ ondragover="newTabButtonObserver.onDragOver(event)"
++ ondragenter="newTabButtonObserver.onDragOver(event)"
++ ondragexit="newTabButtonObserver.onDragExit(event)"
++ cui-areatype="toolbar"
++ removable="true"/>
++
++ <toolbarbutton id="alltabs-button"
++ class="toolbarbutton-1 chromeclass-toolbar-additional tabs-alltabs-button badged-button"
++ oncommand="gTabsPanel.showAllTabsPanel();"
++ label="&listAllTabs.label;"
++ tooltiptext="&listAllTabs.label;"
++ removable="false"/>
++
++ <hbox class="titlebar-spacer" type="post-tabs"
++ ordinal="1000"
++ skipintoolbarset="true"/>
++ </hbox>
++ </vbox>
+
+#ifndef XP_MACOSX
-+ <hbox class="titlebar-placeholder" type="caption-buttons" ordinal="1000"
-+ skipintoolbarset="true"/>
++ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;"
++ ordinal="1000"
++ aria-live="polite" skipintoolbarset="true"/>
++ <hbox class="private-browsing-indicator" skipintoolbarset="true"
++ ordinal="1000"/>
+#endif
-+ </toolbar>
-+
-+ <toolbar id="TabsToolbar"
-+ class="browser-toolbar titlebar-color"
-+ fullscreentoolbar="true"
-+ customizable="true"
-+ mode="icons"
-+ aria-label="&tabsToolbar.label;"
-+ context="toolbar-context-menu">
-+ <hbox class="titlebar-placeholder" type="pre-tabs"
-+ skipintoolbarset="true"/>
-+
-+ <tabs id="tabbrowser-tabs"
-+ flex="1"
-+ setfocus="false"
-+ tooltip="tabbrowser-tab-tooltip"
-+ stopwatchid="FX_TAB_CLICK_MS">
-+ <tab class="tabbrowser-tab" selected="true" visuallyselected="true" fadein="true"/>
-+ </tabs>
+
-+ <toolbarbutton id="new-tab-button"
-+ class="toolbarbutton-1 chromeclass-toolbar-additional"
-+ label="&tabCmd.label;"
-+ command="cmd_newNavigatorTab"
-+ onclick="checkForMiddleClick(this, event);"
-+ tooltip="dynamic-shortcut-tooltip"
-+ ondrop="newTabButtonObserver.onDrop(event)"
-+ ondragover="newTabButtonObserver.onDragOver(event)"
-+ ondragenter="newTabButtonObserver.onDragOver(event)"
-+ ondragexit="newTabButtonObserver.onDragExit(event)"
-+ cui-areatype="toolbar"
-+ removable="true"/>
-+
-+ <toolbarbutton id="alltabs-button"
-+ class="toolbarbutton-1 chromeclass-toolbar-additional tabs-alltabs-button badged-button"
-+ oncommand="gTabsPanel.showAllTabsPanel();"
-+ label="&listAllTabs.label;"
-+ tooltiptext="&listAllTabs.label;"
-+ removable="false"/>
-+
-+ <hbox class="titlebar-placeholder" type="post-tabs"
-+ ordinal="1000"
-+ skipintoolbarset="true"/>
-+
-+ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;"
-+ ordinal="1000"
-+ aria-live="polite" skipintoolbarset="true"/>
-+ <hbox class="private-browsing-indicator" skipintoolbarset="true"
-+ ordinal="1000"/>
-+ <hbox class="titlebar-placeholder" type="caption-buttons"
-+#ifndef XP_MACOSX
-+ ordinal="1000"
-+#endif
-+ skipintoolbarset="true"/>
++#include titlebar-items.inc.xul
+
+#ifdef XP_MACOSX
-+ <hbox class="titlebar-placeholder" type="fullscreen-button"
-+ skipintoolbarset="true"/>
++ <!-- OS X does not natively support RTL for its titlebar items, so we prevent this secondary
++ buttonbox from reversing order in RTL by forcing an LTR direction. -->
++ <hbox id="titlebar-secondary-buttonbox" dir="ltr">
++ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;" aria-live="polite"/>
++ <hbox class="private-browsing-indicator"/>
++ <hbox id="titlebar-fullscreen-button"/>
++ </hbox>
+#endif
-+ </toolbar>
++ </toolbar>
++
++ </vbox>
+
+ <toolbar id="nav-bar"
+ class="browser-toolbar"
@@ -993,6 +1001,8 @@
+ tooltiptext="&urlbar.midiNotificationAnchor.tooltip;"/>
+ <image id="webauthn-notification-icon" class="notification-anchor-icon" role="button"
+ tooltiptext="&urlbar.webAuthnAnchor.tooltip;"/>
++ <image id="storage-access-notification-icon" class="notification-anchor-icon storage-access-icon" role="button"
++ tooltiptext="&urlbar.storageAccessAnchor.tooltip;"/>
+ </box>
+ <image id="connection-icon"/>
+ <image id="extension-icon"/>
@@ -1131,6 +1141,10 @@
+ tooltiptext="&fullScreenClose.tooltip;"
+ oncommand="BrowserTryToCloseWindow();"/>
+ </hbox>
++
++ <box id="library-animatable-box" class="toolbarbutton-animatable-box">
++ <image class="toolbarbutton-animatable-image"/>
++ </box>
+ </toolbar>
+
+ <toolbar id="PersonalToolbar"
@@ -1312,9 +1326,6 @@
+ <searchbar id="searchbar" flex="1"/>
+ </toolbaritem>
+ </toolbarpalette>
-+ <box id="library-animatable-box" class="toolbarbutton-animatable-box">
-+ <image class="toolbarbutton-animatable-image"/>
-+ </box>
+ </toolbox>
+
+ <hbox id="fullscr-toggler" hidden="true"/>
@@ -1343,7 +1354,7 @@
+
+ <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/>
+ <vbox id="appcontent" flex="1">
-+ <notificationbox id="high-priority-global-notificationbox" notificationside="top"/>
++ <!-- gHighPriorityNotificationBox will be added here lazily. -->
+ <tabbox id="tabbrowser-tabbox"
+ flex="1" tabcontainer="tabbrowser-tabs">
+ <tabpanels id="tabbrowser-tabpanels"
@@ -1386,7 +1397,7 @@
+ </html:div>
+
+ <vbox id="browser-bottombox" layer="true">
-+ <notificationbox id="global-notificationbox" notificationside="bottom"/>
++ <!-- gNotificationBox will be added here lazily. -->
+ </vbox>
+
+</window>
@@ -1475,7 +1486,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
-@@ -283,16 +283,23 @@ var gMainPane = {
+@@ -289,16 +289,23 @@ var gMainPane = {
this._backoffIndex++ : backoffTimes.length - 1]);
};
@@ -1499,7 +1510,7 @@
performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
this.updateDefaultPerformanceSettingsPref();
-@@ -938,16 +945,27 @@ var gMainPane = {
+@@ -1012,16 +1019,27 @@ var gMainPane = {
// Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
this._backoffIndex = 0;
@@ -1792,7 +1803,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
-@@ -458,16 +458,18 @@
+@@ -451,16 +451,18 @@
@RESPATH@/browser/defaults/settings/pinning
@RESPATH@/browser/defaults/settings/main