--- a/firefox-kde.patch Sun Feb 12 08:57:22 2017 +0100
+++ b/firefox-kde.patch Sun Feb 12 20:15:21 2017 +0100
@@ -1,11 +1,11 @@
# HG changeset patch
-# Parent 2cae514c05c8836ca5b69884d3a07998a5d53e8b
+# Parent e4b8399bc2706a7b5331407b232bc8845aea7f2e
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,1119 @@
+@@ -0,0 +1,1133 @@
+#filter substitution
+<?xml version="1.0"?>
+# -*- Mode: HTML -*-
@@ -149,7 +149,12 @@
+ <tooltip id="remoteBrowserTooltip"/>
+
+ <!-- for search and content formfill/pw manager -->
-+ <panel type="autocomplete" id="PopupAutoComplete" noautofocus="true" hidden="true"/>
++
++ <panel type="autocomplete-richlistbox"
++ id="PopupAutoComplete"
++ noautofocus="true"
++ hidden="true"
++ norolluponanchor="true" />
+
+ <!-- for search with one-off buttons -->
+ <panel type="autocomplete" id="PopupSearchAutoComplete" noautofocus="true" hidden="true"/>
@@ -160,7 +165,18 @@
+ noautofocus="true"
+ hidden="true"
+ flip="none"
-+ level="parent"/>
++ level="parent"
++ overflowpadding="30" />
++
++ <panel id="DateTimePickerPanel"
++ type="arrow"
++ hidden="true"
++ orient="vertical"
++ noautofocus="true"
++ consumeoutsideclicks="false"
++ level="parent">
++ <iframe id="dateTimePopupFrame"/>
++ </panel>
+
+ <!-- for select dropdowns. The menupopup is what shows the list of options,
+ and the popuponly menulist makes things like the menuactive attributes
@@ -170,7 +186,7 @@
+ <menupopup rolluponmousewheel="true"
+ activateontab="true" position="after_start"
+#ifdef XP_WIN
-+ consumeoutsideclicks="false" ignorekeys="handled"
++ consumeoutsideclicks="false" ignorekeys="shortcuts"
+#endif
+ />
+ </menulist>
@@ -267,12 +283,12 @@
+ onpopuphidden="SocialShare.onHidden()"
+ hidden="true">
+ <hbox class="social-share-toolbar">
-+ <toolbarbutton id="manage-share-providers" class="toolbarbutton share-provider-button"
++ <toolbarbutton id="manage-share-providers" class="share-provider-button"
+ tooltiptext="&social.addons.label;"
+ oncommand="BrowserOpenAddonsMgr('addons://list/service');
+ this.parentNode.parentNode.hidePopup();"/>
+ <arrowscrollbox id="social-share-provider-buttons" orient="horizontal" flex="1" pack="end">
-+ <toolbarbutton id="add-share-provider" class="toolbarbutton share-provider-button" type="radio"
++ <toolbarbutton id="add-share-provider" class="share-provider-button" type="radio"
+ group="share-providers" tooltiptext="&findShareServices.label;"
+ oncommand="SocialShare.showDirectory()"/>
+ </arrowscrollbox>
@@ -679,13 +695,9 @@
+ newlines="stripsurroundingwhitespace"
+ ontextentered="this.handleCommand(param);"
+ ontextreverted="return this.handleRevert();"
-+ pageproxystate="invalid"
-+ onfocus="document.getElementById('identity-box').style.MozUserFocus= 'normal'"
-+ onblur="setTimeout(() => { document.getElementById('identity-box').style.MozUserFocus = ''; }, 0);">
++ pageproxystate="invalid">
+ <!-- Use onclick instead of normal popup= syntax since the popup
-+ code fires onmousedown, and hence eats our favicon drag events.
-+ We only add the identity-box button to the tab order when the location bar
-+ has focus, otherwise pressing F6 focuses it instead of the location bar -->
++ code fires onmousedown, and hence eats our favicon drag events. -->
+ <box id="identity-box" role="button"
+ align="center"
+ aria-label="&urlbar.viewSiteInfo.label;"
@@ -752,14 +764,15 @@
+ </hbox>
+ </box>
+ <box id="urlbar-display-box" align="center">
-+ <label class="urlbar-display urlbar-display-switchtab" value="&urlbar.switchToTab.label;"/>
++ <label id="switchtab" class="urlbar-display urlbar-display-switchtab" value="&urlbar.switchToTab.label;"/>
++ <label id="extension" class="urlbar-display urlbar-display-extension" value="&urlbar.extension.label;"/>
+ </box>
+ <hbox id="urlbar-icons">
+ <image id="page-report-button"
+ class="urlbar-icon"
+ hidden="true"
+ tooltiptext="&pageReportIcon.tooltip;"
-+ onclick="gPopupBlockerObserver.onReportButtonClick(event);"/>
++ onmousedown="gPopupBlockerObserver.onReportButtonMousedown(event);"/>
+ <image id="reader-mode-button"
+ class="urlbar-icon"
+ hidden="true"
@@ -1061,7 +1074,8 @@
+ tabcontainer="tabbrowser-tabs"
+ contentcontextmenu="contentAreaContextMenu"
+ autocompletepopup="PopupAutoComplete"
-+ selectmenulist="ContentSelectDropdown"/>
++ selectmenulist="ContentSelectDropdown"
++ datetimepicker="DateTimePickerPanel"/>
+ </vbox>
+ <vbox id="browser-border-end" hidden="true" layer="true"/>
+ </hbox>
@@ -1128,25 +1142,25 @@
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
-@@ -68,16 +68,18 @@ browser.jar:
+@@ -66,16 +66,18 @@ browser.jar:
+ content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml)
+ content/browser/aboutProviderDirectory.xhtml (content/aboutProviderDirectory.xhtml)
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js)
content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml)
- * content/browser/aboutTabGroupsMigration.xhtml (content/aboutTabGroupsMigration.xhtml)
- content/browser/aboutTabGroupsMigration.js (content/aboutTabGroupsMigration.js)
* content/browser/browser.css (content/browser.css)
content/browser/browser.js (content/browser.js)
* 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
content/browser/browser-addons.js (content/browser-addons.js)
+ content/browser/browser-captivePortal.js (content/browser-captivePortal.js)
content/browser/browser-ctrlTab.js (content/browser-ctrlTab.js)
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-devedition.js (content/browser-devedition.js)
content/browser/browser-feeds.js (content/browser-feeds.js)
content/browser/browser-fullScreenAndPointerLock.js (content/browser-fullScreenAndPointerLock.js)
- content/browser/browser-fullZoom.js (content/browser-fullZoom.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
@@ -1505,7 +1519,7 @@
+#define nskdeshellservice_h____
+
+#include "nsIGNOMEShellService.h"
-+#include "nsStringAPI.h"
++#include "nsString.h"
+#include "mozilla/Attributes.h"
+
+class nsKDEShellService final : public nsIGNOMEShellService
@@ -1576,7 +1590,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
-@@ -675,16 +675,17 @@
+@@ -652,16 +652,17 @@
@RESPATH@/greprefs.js
@RESPATH@/defaults/autoconfig/prefcalls.js
@RESPATH@/browser/defaults/permissions