firefox-kde.patch
changeset 934 b61e849fe451
parent 932 a58cc7936ce7
child 935 9ae2b79d3bb1
--- a/firefox-kde.patch	Mon Aug 01 14:45:11 2016 +0200
+++ b/firefox-kde.patch	Wed Jan 18 22:06:23 2017 +0100
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  07e419c2bbc63c486d25fd8ce117abd10e9ebdba
+# Parent  2cb2f829aabd7e3efaa973a0a8cf99aca9605bdc
 
 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,1174 @@
+@@ -0,0 +1,1200 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -16,9 +16,10 @@
 +
 +<?xml-stylesheet href="chrome://browser/content/browser.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://devtools/skin/devtools-browser.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
-+<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUIOverlay.css" type="text/css"?>
++<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/browser-lightweightTheme.css" type="text/css"?>
 +
@@ -111,6 +112,12 @@
 +                hidden="true"
 +                oncommand="gBrowser.openNonRemoteWindow(TabContextMenu.contextTab);"/>
 +#endif
++      <menuseparator id="context_sendTabToDevice_separator" hidden="true"/>
++      <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
++            accesskey="&sendTabToDevice.accesskey;" hidden="true">
++        <menupopup id="context_sendTabToDevicePopupMenu"
++                   onpopupshowing="gFxAccounts.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle);"/>
++      </menu>
 +      <menuseparator/>
 +      <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
 +                tbattr="tabbrowser-multiple-visible"
@@ -296,18 +303,6 @@
 +           noautofocus="true"
 +           position="topcenter topright"/>
 +
-+    <panel id="loop-notification-panel"
-+           class="loop-panel social-panel"
-+           type="arrow"
-+           hidden="true"
-+           noautofocus="true"/>
-+
-+    <panel id="loop-panel"
-+           class="loop-panel social-panel"
-+           type="arrow"
-+           orient="horizontal"
-+           hidden="true"/>
-+
 +    <menupopup id="toolbar-context-menu"
 +               onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
 +      <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
@@ -388,9 +383,27 @@
 +#include browser-context.inc
 +    </menupopup>
 +
-+    <menupopup id="placesContext"/>
++    <menupopup id="placesContext">
++      <menuseparator id="placesContext_recentlyBookmarkedSeparator"
++                     ignoreitem="true"
++                     hidden="true"/>
++      <menuitem id="placesContext_hideRecentlyBookmarked"
++                label="&hideRecentlyBookmarked.label;"
++                accesskey="&hideRecentlyBookmarked.accesskey;"
++                oncommand="BookmarkingUI.hideRecentlyBookmarked();"
++                closemenu="single"
++                ignoreitem="true"
++                hidden="true"/>
++      <menuitem id="placesContext_showRecentlyBookmarked"
++                label="&showRecentlyBookmarked.label;"
++                accesskey="&showRecentlyBookmarked.accesskey;"
++                oncommand="BookmarkingUI.showRecentlyBookmarked();"
++                closemenu="single"
++                ignoreitem="true"
++                hidden="true"/>
++    </menupopup>
 +
-+    <panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top">
++    <panel id="ctrlTab-panel" hidden="true" norestorefocus="true" level="top">
 +      <hbox>
 +        <button class="ctrlTab-preview" flex="1"/>
 +        <button class="ctrlTab-preview" flex="1"/>
@@ -404,21 +417,6 @@
 +      </hbox>
 +    </panel>
 +
-+    <!-- Sync Panel -->
-+    <panel id="sync-start-panel" class="sync-panel" type="arrow" hidden="true"
-+           noautofocus="true" onclick="this.hidePopup();"
-+           flip="slide">
-+      <hbox class="sync-panel-outer">
-+        <image class="sync-panel-icon"/>
-+        <vbox class="sync-panel-inner">
-+          <description id="sync-start-panel-title"
-+                       value="&syncStartPanel2.heading;"/>
-+          <description id="sync-start-panel-subtitle"
-+                       value="&syncStartPanel2.subTitle;"/>
-+        </vbox>
-+      </hbox>
-+    </panel>
-+
 +    <!-- Bookmarks and history tooltip -->
 +    <tooltip id="bhTooltip"/>
 +
@@ -558,12 +556,11 @@
 +  <toolbox id="navigator-toolbox" mode="icons">
 +    <!-- Menu -->
 +    <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true"
-+             defaultset="menubar-items"
 +             mode="icons" iconsize="small"
 +#ifdef MENUBAR_CAN_AUTOHIDE
 +             toolbarname="&menubarCmd.label;"
 +             accesskey="&menubarCmd.accesskey;"
-+#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_QT)
++#if defined(MOZ_WIDGET_GTK)
 +             autohide="true"
 +#endif
 +#endif
@@ -590,10 +587,9 @@
 +             iconsize="small"
 +             aria-label="&tabsToolbar.label;"
 +             context="toolbar-context-menu"
-+             defaultset="tabbrowser-tabs,new-tab-button,alltabs-button"
 +             collapsed="true">
 +
-+#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_QT)
++#if defined(MOZ_WIDGET_GTK)
 +      <hbox id="private-browsing-indicator"
 +            skipintoolbarset="true"/>
 +#endif
@@ -634,11 +630,16 @@
 +                    key="key_undoCloseTab"
 +                    label="&undoCloseTab.label;"
 +                    observes="History:UndoCloseTab"/>
-+          <menuseparator id="alltabs-popup-separator"/>
++          <menuseparator id="alltabs-popup-separator-1"/>
++          <menu id="alltabs_containersTab"
++                label="&newUserContext.label;">
++            <menupopup id="alltabs_containersMenuTab" />
++          </menu>
++          <menuseparator id="alltabs-popup-separator-2"/>
 +        </menupopup>
 +      </toolbarbutton>
 +
-+#if !defined(MOZ_WIDGET_GTK) && !defined(MOZ_WIDGET_QT)
++#if !defined(MOZ_WIDGET_GTK)
 +      <hbox class="private-browsing-indicator" skipintoolbarset="true"/>
 +#endif
 +#ifdef CAN_DRAW_IN_TITLEBAR
@@ -657,21 +658,10 @@
 +#endif
 +    </toolbar>
 +
-+    <!--
-+           CAVEAT EMPTOR
-+           Should you need to add items to the toolbar here, make sure to also add them
-+           to the default placements of buttons in CustomizableUI.jsm, so the
-+           customization code doesn't get confused.
-+      -->
 +    <toolbar id="nav-bar"
 +             aria-label="&navbarCmd.label;"
 +             fullscreentoolbar="true" mode="icons" customizable="true"
 +             iconsize="small"
-+#ifdef MOZ_DEV_EDITION
-+             defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button,loop-button"
-+#else
-+             defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button,loop-button"
-+#endif
 +             customizationtarget="nav-bar-customization-target"
 +             overflowable="true"
 +             overflowbutton="nav-bar-overflow-button"
@@ -715,46 +705,6 @@
 +                     pageproxystate="invalid"
 +                     onfocus="document.getElementById('identity-box').style.MozUserFocus= 'normal'"
 +                     onblur="setTimeout(() => { document.getElementById('identity-box').style.MozUserFocus = ''; }, 0);">
-+              <box id="notification-popup-box" hidden="true" align="center">
-+                <image id="default-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.defaultNotificationAnchor.label;"/>
-+                <image id="geo-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.geolocationNotificationAnchor.label;"/>
-+                <image id="addons-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.addonsNotificationAnchor.label;"/>
-+                <image id="indexedDB-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.indexedDBNotificationAnchor.label;"/>
-+                <image id="login-fill-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.loginFillNotificationAnchor.label;"/>
-+                <image id="password-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.passwordNotificationAnchor.label;"/>
-+                <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.pluginsNotificationAnchor.label;"/>
-+                <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.webNotsNotificationAnchor3.label;"/>
-+                <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.webRTCShareDevicesNotificationAnchor.label;"/>
-+                <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.webRTCSharingDevicesNotificationAnchor.label;"/>
-+                <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.webRTCShareMicrophoneNotificationAnchor.label;"/>
-+                <image id="webRTC-sharingMicrophone-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.webRTCSharingMicrophoneNotificationAnchor.label;"/>
-+                <image id="webRTC-shareScreen-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.webRTCShareScreenNotificationAnchor.label;"/>
-+                <image id="webRTC-sharingScreen-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.webRTCSharingScreenNotificationAnchor.label;"/>
-+                <image id="pointerLock-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.pointerLockNotificationAnchor.label;"/>
-+                <image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.servicesNotificationAnchor.label;"/>
-+                <image id="translate-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.translateNotificationAnchor.label;"/>
-+                <image id="translated-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.translatedNotificationAnchor.label;"/>
-+                <image id="eme-notification-icon" class="notification-anchor-icon" role="button"
-+                       aria-label="&urlbar.emeNotificationAnchor.label;"/>
-+              </box>
 +              <!-- 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
@@ -768,6 +718,67 @@
 +                <image id="identity-icon"
 +                       consumeanchor="identity-box"
 +                       onclick="PageProxyClickHandler(event);"/>
++                <box id="blocked-permissions-container" align="center" tooltiptext="">
++                  <image data-permission-id="geo" class="notification-anchor-icon geo-icon blocked" role="button"
++                         aria-label="&urlbar.geolocationNotificationAnchor.label;"/>
++                  <image data-permission-id="desktop-notification" class="notification-anchor-icon desktop-notification-icon blocked" role="button"
++                         aria-label="&urlbar.webNotsNotificationAnchor3.label;"/>
++                  <image data-permission-id="camera" class="notification-anchor-icon camera-icon blocked" role="button"
++                         aria-label="&urlbar.webRTCShareDevicesNotificationAnchor.label;"/>
++                  <image data-permission-id="indexedDB" class="notification-anchor-icon indexedDB-icon blocked" role="button"
++                         aria-label="&urlbar.indexedDBNotificationAnchor.label;"/>
++                  <image data-permission-id="microphone" class="notification-anchor-icon microphone-icon blocked" role="button"
++                         aria-label="&urlbar.webRTCShareMicrophoneNotificationAnchor.label;"/>
++                  <image data-permission-id="screen" class="notification-anchor-icon screen-icon blocked" role="button"
++                         aria-label="&urlbar.webRTCShareScreenNotificationAnchor.label;"/>
++                  <image data-permission-id="pointerLock" class="notification-anchor-icon pointerLock-icon blocked" role="button"
++                         aria-label="&urlbar.pointerLockNotificationAnchor.label;"/>
++                </box>
++                <box id="notification-popup-box"
++                     hidden="true"
++                     tooltiptext=""
++                     onmouseover="document.getElementById('identity-icon').classList.add('no-hover');"
++                     onmouseout="document.getElementById('identity-icon').classList.remove('no-hover');"
++                     align="center">
++                  <image id="default-notification-icon" class="notification-anchor-icon" role="button"
++                         aria-label="&urlbar.defaultNotificationAnchor.label;"/>
++                  <image id="geo-notification-icon" class="notification-anchor-icon geo-icon" role="button"
++                         aria-label="&urlbar.geolocationNotificationAnchor.label;"/>
++                  <image id="addons-notification-icon" class="notification-anchor-icon install-icon" role="button"
++                         aria-label="&urlbar.addonsNotificationAnchor.label;"/>
++                  <image id="indexedDB-notification-icon" class="notification-anchor-icon indexedDB-icon" role="button"
++                         aria-label="&urlbar.indexedDBNotificationAnchor.label;"/>
++                  <image id="login-fill-notification-icon" class="notification-anchor-icon login-icon" role="button"
++                         aria-label="&urlbar.loginFillNotificationAnchor.label;"/>
++                  <image id="password-notification-icon" class="notification-anchor-icon login-icon" role="button"
++                         aria-label="&urlbar.passwordNotificationAnchor.label;"/>
++                  <image id="plugins-notification-icon" class="notification-anchor-icon plugin-icon" role="button"
++                         aria-label="&urlbar.pluginsNotificationAnchor.label;"/>
++                  <image id="web-notifications-notification-icon" class="notification-anchor-icon desktop-notification-icon" role="button"
++                         aria-label="&urlbar.webNotsNotificationAnchor3.label;"/>
++                  <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon camera-icon" role="button"
++                         aria-label="&urlbar.webRTCShareDevicesNotificationAnchor.label;"/>
++                  <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon camera-icon in-use" role="button"
++                         aria-label="&urlbar.webRTCSharingDevicesNotificationAnchor.label;"/>
++                  <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon microphone-icon" role="button"
++                         aria-label="&urlbar.webRTCShareMicrophoneNotificationAnchor.label;"/>
++                  <image id="webRTC-sharingMicrophone-notification-icon" class="notification-anchor-icon microphone-icon in-use" role="button"
++                         aria-label="&urlbar.webRTCSharingMicrophoneNotificationAnchor.label;"/>
++                  <image id="webRTC-shareScreen-notification-icon" class="notification-anchor-icon screen-icon" role="button"
++                         aria-label="&urlbar.webRTCShareScreenNotificationAnchor.label;"/>
++                  <image id="webRTC-sharingScreen-notification-icon" class="notification-anchor-icon screen-icon in-use" role="button"
++                         aria-label="&urlbar.webRTCSharingScreenNotificationAnchor.label;"/>
++                  <image id="pointerLock-notification-icon" class="notification-anchor-icon pointerLock-icon" role="button"
++                         aria-label="&urlbar.pointerLockNotificationAnchor.label;"/>
++                  <image id="servicesInstall-notification-icon" class="notification-anchor-icon service-icon" role="button"
++                         aria-label="&urlbar.servicesNotificationAnchor.label;"/>
++                  <image id="translate-notification-icon" class="notification-anchor-icon translation-icon" role="button"
++                         aria-label="&urlbar.translateNotificationAnchor.label;"/>
++                  <image id="translated-notification-icon" class="notification-anchor-icon translation-icon in-use" role="button"
++                         aria-label="&urlbar.translatedNotificationAnchor.label;"/>
++                  <image id="eme-notification-icon" class="notification-anchor-icon drm-icon" role="button"
++                         aria-label="&urlbar.emeNotificationAnchor.label;"/>
++                </box>
 +                <image id="tracking-protection-icon"/>
 +                <image id="connection-icon"/>
 +                <hbox id="identity-icon-labels">
@@ -789,7 +800,7 @@
 +                       hidden="true"
 +                       onclick="ReaderParent.buttonClick(event);"/>
 +              </hbox>
-+              <hbox id="userContext-icons">
++              <hbox id="userContext-icons" hidden="true">
 +                <label id="userContext-label"/>
 +                <image id="userContext-indicator"/>
 +              </hbox>
@@ -856,6 +867,11 @@
 +                      command="Browser:ShowAllBookmarks"
 +                      key="manBookmarkKb"/>
 +            <menuseparator/>
++            <menuitem label="&recentBookmarks.label;"
++                      id="BMB_recentBookmarks"
++                      disabled="true"
++                      class="menuitem-iconic subviewbutton"/>
++            <menuseparator/>
 +            <menu id="BMB_bookmarksToolbar"
 +                  class="menu-iconic bookmark-item subviewbutton"
 +                  label="&personalbarCmd.label;"
@@ -967,7 +983,6 @@
 +             mode="icons" iconsize="small"
 +             class="chromeclass-directories"
 +             context="toolbar-context-menu"
-+             defaultset="personal-bookmarks"
 +             toolbarname="&personalbarCmd.label;" accesskey="&personalbarCmd.accesskey;"
 +             collapsed="true"
 +             customizable="true">
@@ -1134,13 +1149,13 @@
 +#include ../../components/customizableui/content/customizeMode.inc.xul
 +  </deck>
 +
-+  <html:div id="fullscreen-warning" hidden="true">
-+    <html:div id="fullscreen-domain-text">
++  <html:div id="fullscreen-warning" class="pointerlockfswarning" hidden="true">
++    <html:div class="pointerlockfswarning-domain-text">
 +      &fullscreenWarning.beforeDomain.label;
-+      <html:span id="fullscreen-domain"/>
++      <html:span class="pointerlockfswarning-domain"/>
 +      &fullscreenWarning.afterDomain.label;
 +    </html:div>
-+    <html:div id="fullscreen-generic-text">
++    <html:div class="pointerlockfswarning-generic-text">
 +      &fullscreenWarning.generic.label;
 +    </html:div>
 +    <html:button id="fullscreen-exit-button"
@@ -1153,6 +1168,17 @@
 +    </html:button>
 +  </html:div>
 +
++  <html:div id="pointerlock-warning" class="pointerlockfswarning" hidden="true">
++    <html:div class="pointerlockfswarning-domain-text">
++      &pointerlockWarning.beforeDomain.label;
++      <html:span class="pointerlockfswarning-domain"/>
++      &pointerlockWarning.afterDomain.label;
++    </html:div>
++    <html:div class="pointerlockfswarning-generic-text">
++      &pointerlockWarning.generic.label;
++    </html:div>
++  </html:div>
++
 +  <vbox id="browser-bottombox" layer="true">
 +    <notificationbox id="global-notificationbox" notificationside="bottom"/>
 +  </vbox>
@@ -1183,7 +1209,7 @@
 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
 --- a/browser/base/jar.mn
 +++ b/browser/base/jar.mn
-@@ -69,16 +69,18 @@ browser.jar:
+@@ -68,16 +68,18 @@ browser.jar:
          content/browser/aboutTabCrashed.css           (content/aboutTabCrashed.css)
          content/browser/aboutTabCrashed.js            (content/aboutTabCrashed.js)
          content/browser/aboutTabCrashed.xhtml         (content/aboutTabCrashed.xhtml)
@@ -1200,7 +1226,7 @@
          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-fullScreen.js         (content/browser-fullScreen.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
@@ -1288,7 +1314,7 @@
      // when the user will select the default.  We refresh here periodically
      // in case the default changes. On other Windows OS's defaults can also
      // be set while the prefs are open.
-@@ -736,16 +742,27 @@ var gMainPane = {
+@@ -703,16 +709,27 @@ var gMainPane = {
      let alwaysCheckPref = document.getElementById("browser.shell.checkDefaultBrowser");
      alwaysCheckPref.value = true;
  
@@ -1631,7 +1657,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
-@@ -689,16 +689,17 @@
+@@ -674,16 +674,17 @@
  @RESPATH@/greprefs.js
  @RESPATH@/defaults/autoconfig/prefcalls.js
  @RESPATH@/browser/defaults/permissions
@@ -1643,9 +1669,9 @@
 +@BINPATH@/defaults/pref/kde.js
  
  ; Services (gre) prefs
- #ifdef MOZ_SERVICES_NOTIFICATIONS
- @RESPATH@/defaults/pref/services-notifications.js
- #endif
  @RESPATH@/defaults/pref/services-sync.js
  
  ; [Layout Engine Resources]
+ ; Style Sheets, Graphics and other Resources used by the layout engine.
+ @RESPATH@/res/EditorOverride.css
+ @RESPATH@/res/contenteditable.css