Hello community,

here is the log from the commit of package MozillaFirefox for openSUSE:Factory 
checked in at 2017-01-29 10:30:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/MozillaFirefox (Old)
 and      /work/SRC/openSUSE:Factory/.MozillaFirefox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "MozillaFirefox"

Changes:
--------
--- /work/SRC/openSUSE:Factory/MozillaFirefox/MozillaFirefox.changes    
2016-12-16 12:04:56.845467773 +0100
+++ /work/SRC/openSUSE:Factory/.MozillaFirefox.new/MozillaFirefox.changes       
2017-02-03 17:30:24.918573722 +0100
@@ -1,0 +2,82 @@
+Fri Jan 27 20:25:59 UTC 2017 - [email protected]
+
+- Mozilla Firefox 51.0.1:
+  - Multiprocess incompatibility did not correctly register with
+    some add-ons (bmo#1333423)
+
+-------------------------------------------------------------------
+Fri Jan 20 13:57:56 UTC 2017 - [email protected]
+
+- update to Firefox 51.0
+  * requires NSPR >= 4.13.1, NSS >= 3.28.1
+  * Added support for FLAC (Free Lossless Audio Codec) playback
+  * Added support for WebGL 2
+  * Added Georgian (ka) and Kabyle (kab) locales
+  * Support saving passwords for forms without 'submit' events
+  * Improved video performance for users without GPU acceleration
+  * Zoom indicator is shown in the URL bar if the zoom level is not
+    at default level
+  * View passwords from the prompt before saving them
+  * Remove Belarusian (be) locale
+  * Use Skia for content rendering (Linux)
+  * MFSA 2017-01
+    CVE-2017-5375: Excessive JIT code allocation allows bypass of
+                   ASLR and DEP (bmo#1325200, boo#1021814)
+    CVE-2017-5376: Use-after-free in XSL (bmo#1311687, boo#1021817)
+    CVE-2017-5377: Memory corruption with transforms to create
+                   gradients in Skia (bmo#1306883, boo#1021826)
+    CVE-2017-5378: Pointer and frame data leakage of Javascript objects
+                   (bmo#1312001, bmo#1330769, boo#1021818)
+    CVE-2017-5379: Use-after-free in Web Animations
+                   (bmo#1309198,boo#1021827)
+    CVE-2017-5380: Potential use-after-free during DOM manipulations
+                   (bmo#1322107, boo#1021819)
+    CVE-2017-5390: Insecure communication methods in Developer Tools
+                   JSON viewer (bmo#1297361, boo#1021820)
+    CVE-2017-5389: WebExtensions can install additional add-ons via
+                   modified host requests (bmo#1308688, boo#1021828)
+    CVE-2017-5396: Use-after-free with Media Decoder
+                   (bmo#1329403, boo#1021821)
+    CVE-2017-5381: Certificate Viewer exporting can be used to navigate
+                   and save to arbitrary filesystem locations
+                  (bmo#1017616, boo#1021830)
+    CVE-2017-5382: Feed preview can expose privileged content errors
+                   and exceptions (bmo#1295322, boo#1021831)
+    CVE-2017-5383: Location bar spoofing with unicode characters
+                   (bmo#1323338, bmo#1324716, boo#1021822)
+    CVE-2017-5384: Information disclosure via Proxy Auto-Config (PAC)
+                   (bmo#1255474, boo#1021832)
+    CVE-2017-5385: Data sent in multipart channels ignores referrer-policy
+                   response headers (bmo#1295945, boo#1021833)
+    CVE-2017-5386: WebExtensions can use data: protocol to affect other
+                   extensions (bmo#1319070, boo#1021823)
+    CVE-2017-5394: Android location bar spoofing using fullscreen and
+                   JavaScript events (bmo#1222798)
+    CVE-2017-5391: Content about: pages can load privileged about: pages
+                   (bmo#1309310, boo#1021835)
+    CVE-2017-5392: Weak references using multiple threads on weak proxy
+                   objects lead to unsafe memory usage (bmo#1293709)
+                  (Android only)
+    CVE-2017-5393: Remove addons.mozilla.org CDN from whitelist for
+                   mozAddonManager (bmo#1309282, boo#1021837)
+    CVE-2017-5395: Android location bar spoofing during scrolling
+                   (bmo#1293463) (Android only)
+    CVE-2017-5387: Disclosure of local file existence through TRACK
+                   tag error messages (bmo#1295023, boo#1021839)
+    CVE-2017-5388: WebRTC can be used to generate a large amount of
+                   UDP traffic for DDOS attacks
+                  (bmo#1281482, boo#1021840)
+    CVE-2017-5374: Memory safety bugs fixed in Firefox 51 (boo#1021841)
+    CVE-2017-5373: Memory safety bugs fixed in Firefox 51 and
+                   Firefox ESR 45.7 (boo#1021824)
+- switch Firefox to Gtk3 for Tumbleweed
+- removed obsolete patches
+  * mozilla-flex_buffer_overrun.patch
+- updated RPM locale support tag
+- improve recognition of LANGUAGE env variable (boo#1017174)
+- add upstream patch to fix PPC64LE (bmo#1319389)
+  (mozilla-skia-ppc-endianess.patch)
+- fix build without skia (big endian archs) (bmo#1319374)
+  (mozilla-disable-skia-be.patch)
+
+-------------------------------------------------------------------

Old:
----
  firefox-50.1.0-source.tar.xz
  l10n-50.1.0.tar.xz
  mozilla-flex_buffer_overrun.patch

New:
----
  firefox-51.0.1-source.tar.xz
  l10n-51.0.1.tar.xz
  mozilla-disable-skia-be.patch
  mozilla-skia-ppc-endianess.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ MozillaFirefox.spec ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:35.801033481 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:35.805032915 +0100
@@ -1,8 +1,8 @@
 #
 # spec file for package MozillaFirefox
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
-#               2006-2016 Wolfgang Rosenauer
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+#               2006-2017 Wolfgang Rosenauer
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,10 +18,10 @@
 
 
 # changed with every update
-%define major 50
-%define mainver %major.1.0
+%define major 51
+%define mainver %major.0.1
 %define update_channel release
-%define releasedate 20161212000000
+%define releasedate 20170126000000
 
 # PIE, full relro (x86_64 for now)
 %define build_hardened 1
@@ -36,6 +36,9 @@
 %define pkgname  firefox-dev-edition
 %define appname  Firefox Developer Edition
 %endif
+%if 0%{?suse_version} > 1320
+%define firefox_use_gtk3 1
+%endif
 %define progdir %{_prefix}/%_lib/%{progname}
 %define gnome_dir     %{_prefix}
 %define desktop_file_name %{progname}
@@ -74,8 +77,8 @@
 BuildRequires:  libnotify-devel
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
-BuildRequires:  mozilla-nspr-devel >= 4.12
-BuildRequires:  mozilla-nss-devel >= 3.26.2
+BuildRequires:  mozilla-nspr-devel >= 4.13.1
+BuildRequires:  mozilla-nss-devel >= 3.28.1
 BuildRequires:  nss-shared-helper-devel
 BuildRequires:  python-devel
 BuildRequires:  startup-notification-devel
@@ -147,12 +150,13 @@
 Patch13:        mozilla-check_return.patch
 Patch14:        mozilla-skia-overflow.patch
 Patch17:        mozilla-binutils-visibility.patch
+Patch18:        mozilla-skia-ppc-endianess.patch
+Patch19:        mozilla-disable-skia-be.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-no-default-ualocale.patch
 Patch103:       firefox-branded-icons.patch
 # hotfix
-Patch150:       mozilla-flex_buffer_overrun.patch
 Patch200:       mozilla-aarch64-startup-crash.patch
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -203,7 +207,7 @@
 %package translations-other
 Summary:        Extra translations for %{appname}
 Group:          System/Localization
-Provides:       
locale(%{name}:ach;af;an;as;ast;az;be;bg;bn_BD;bn_IN;br;bs;cak;cy;dsb;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;id;is;kk;km;kn;lij;lt;lv;mai;mk;ml;mr;ms;nn_NO;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;uz;vi;xh)
+Provides:       
locale(%{name}:ach;af;an;as;ast;az;bg;bn_BD;bn_IN;br;bs;cak;cy;dsb;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;id;is;ka;kab;kk;km;kn;lij;lt;lv;mai;mk;ml;mr;ms;nn_NO;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;uz;vi;xh)
 Requires:       %{name} = %{version}
 Obsoletes:      %{name}-translations < %{version}-%{release}
 
@@ -262,11 +266,12 @@
 %patch13 -p1
 %patch14 -p1
 %patch17 -p1
+%patch18 -p1
+%patch19 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
 %patch103 -p1
-%patch150 -p1
 %patch200 -p1
 
 %build
@@ -397,9 +402,9 @@
 %if %localize
 rm -f %{_tmppath}/translations.*
 touch %{_tmppath}/translations.{common,other}
-for locale in $(awk '{ print $1; }' 
../mozilla/browser/locales/shipped-locales); do
+for locale in $(awk '{ print $1; }' %{SOURCE17}); do
   case $locale in
-   ja-JP-mac|en-US)
+   ja-JP-mac|en-US|'')
        ;;
    *)
        pushd $RPM_BUILD_DIR/compare-locales

++++++ compare-locales.tar.xz ++++++

++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:35.993006310 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:35.993006310 +0100
@@ -7,8 +7,8 @@
 
 CHANNEL="release"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="8612c3320053b796678921f8f23358e3e9df997e"
-VERSION="50.1.0"
+RELEASE_TAG="327e081221b064b05a302d7877c6e4be2949a617"
+VERSION="51.0.1"
 
 # mozilla
 if [ -d mozilla ]; then

++++++ firefox-50.1.0-source.tar.xz -> firefox-51.0.1-source.tar.xz ++++++
/work/SRC/openSUSE:Factory/MozillaFirefox/firefox-50.1.0-source.tar.xz 
/work/SRC/openSUSE:Factory/.MozillaFirefox.new/firefox-51.0.1-source.tar.xz 
differ: char 26, line 1

++++++ firefox-kde.patch ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:36.048998386 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:36.048998386 +0100
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  2cb2f829aabd7e3efaa973a0a8cf99aca9605bdc
+# Parent  2cae514c05c8836ca5b69884d3a07998a5d53e8b
 
 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,1200 @@
+@@ -0,0 +1,1119 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -160,14 +160,7 @@
 +           noautofocus="true"
 +           hidden="true"
 +           flip="none"
-+           level="parent">
-+#ifdef NIGHTLY_BUILD
-+      <hbox id="urlbar-search-footer" flex="1" align="stretch" pack="end">
-+        <button id="urlbar-search-settings" 
label="&changeSearchSettings.button;"
-+                
oncommand="BrowserUITelemetry.countSearchSettingsEvent('urlbar'); 
openPreferences('paneSearch')"/>
-+      </hbox>
-+#endif
-+    </panel>
++           level="parent"/>
 +
 +    <!-- for select dropdowns. The menupopup is what shows the list of 
options,
 +         and the popuponly menulist makes things like the menuactive 
attributes
@@ -175,7 +168,7 @@
 +         popuponly menulist to be its immediate parent. -->
 +    <menulist popuponly="true" id="ContentSelectDropdown" hidden="true">
 +      <menupopup rolluponmousewheel="true"
-+                 activateontab="true"
++                 activateontab="true" position="after_start"
 +#ifdef XP_WIN
 +                 consumeoutsideclicks="false" ignorekeys="handled"
 +#endif
@@ -192,6 +185,7 @@
 +           orient="vertical"
 +           ignorekeys="true"
 +           hidden="true"
++           tabspecific="true"
 +           onpopupshown="StarUI.panelShown(event);"
 +           aria-labelledby="editBookmarkPanelTitle">
 +      <row id="editBookmarkPanelHeader" align="center" hidden="true">
@@ -286,23 +280,6 @@
 +      <hbox id="share-container" flex="1"/>
 +    </panel>
 +
-+    <panel id="social-notification-panel"
-+           class="social-panel"
-+           type="arrow"
-+           hidden="true"
-+           noautofocus="true"/>
-+    <panel id="social-flyout-panel"
-+           class="social-panel"
-+           onpopupshown="SocialFlyout.onShown()"
-+           onpopuphidden="SocialFlyout.onHidden()"
-+           side="right"
-+           type="arrow"
-+           hidden="true"
-+           flip="slide"
-+           rolluponmousewheel="true"
-+           noautofocus="true"
-+           position="topcenter topright"/>
-+
 +    <menupopup id="toolbar-context-menu"
 +               onpopupshowing="onViewToolbarsPopupShowing(event, 
document.getElementById('viewToolbarsMenuSeparator'));">
 +      <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
@@ -718,66 +695,54 @@
 +                <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;"/>
++                <image id="sharing-icon" mousethrough="always"/>
++                <box id="blocked-permissions-container" align="center">
++                  <image data-permission-id="geo" 
class="blocked-permission-icon geo-icon" role="button"
++                         tooltiptext="&urlbar.geolocationBlocked.tooltip;"/>
++                  <image data-permission-id="desktop-notification" 
class="blocked-permission-icon desktop-notification-icon" role="button"
++                         
tooltiptext="&urlbar.webNotificationsBlocked.tooltip;"/>
++                  <image data-permission-id="camera" 
class="blocked-permission-icon camera-icon" role="button"
++                         tooltiptext="&urlbar.cameraBlocked.tooltip;"/>
++                  <image data-permission-id="indexedDB" 
class="blocked-permission-icon indexedDB-icon" role="button"
++                         tooltiptext="&urlbar.indexedDBBlocked.tooltip;"/>
++                  <image data-permission-id="microphone" 
class="blocked-permission-icon microphone-icon" role="button"
++                         tooltiptext="&urlbar.microphoneBlocked.tooltip;"/>
++                  <image data-permission-id="screen" 
class="blocked-permission-icon screen-icon" role="button"
++                         tooltiptext="&urlbar.screenBlocked.tooltip;"/>
 +                </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;"/>
++                         
tooltiptext="&urlbar.defaultNotificationAnchor.tooltip;"/>
 +                  <image id="geo-notification-icon" 
class="notification-anchor-icon geo-icon" role="button"
-+                         
aria-label="&urlbar.geolocationNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.geolocationNotificationAnchor.tooltip;"/>
 +                  <image id="addons-notification-icon" 
class="notification-anchor-icon install-icon" role="button"
-+                         
aria-label="&urlbar.addonsNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.addonsNotificationAnchor.tooltip;"/>
 +                  <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;"/>
++                         
tooltiptext="&urlbar.indexedDBNotificationAnchor.tooltip;"/>
 +                  <image id="password-notification-icon" 
class="notification-anchor-icon login-icon" role="button"
-+                         
aria-label="&urlbar.passwordNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.passwordNotificationAnchor.tooltip;"/>
 +                  <image id="plugins-notification-icon" 
class="notification-anchor-icon plugin-icon" role="button"
-+                         
aria-label="&urlbar.pluginsNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.pluginsNotificationAnchor.tooltip;"/>
 +                  <image id="web-notifications-notification-icon" 
class="notification-anchor-icon desktop-notification-icon" role="button"
-+                         
aria-label="&urlbar.webNotsNotificationAnchor3.label;"/>
++                         
tooltiptext="&urlbar.webNotificationAnchor.tooltip;"/>
 +                  <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;"/>
++                         
tooltiptext="&urlbar.webRTCShareDevicesNotificationAnchor.tooltip;"/>
 +                  <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;"/>
++                         
tooltiptext="&urlbar.webRTCShareMicrophoneNotificationAnchor.tooltip;"/>
 +                  <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;"/>
++                         
tooltiptext="&urlbar.webRTCShareScreenNotificationAnchor.tooltip;"/>
 +                  <image id="servicesInstall-notification-icon" 
class="notification-anchor-icon service-icon" role="button"
-+                         
aria-label="&urlbar.servicesNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.servicesNotificationAnchor.tooltip;"/>
 +                  <image id="translate-notification-icon" 
class="notification-anchor-icon translation-icon" role="button"
-+                         
aria-label="&urlbar.translateNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.translateNotificationAnchor.tooltip;"/>
 +                  <image id="translated-notification-icon" 
class="notification-anchor-icon translation-icon in-use" role="button"
-+                         
aria-label="&urlbar.translatedNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.translatedNotificationAnchor.tooltip;"/>
 +                  <image id="eme-notification-icon" 
class="notification-anchor-icon drm-icon" role="button"
-+                         aria-label="&urlbar.emeNotificationAnchor.label;"/>
++                         
tooltiptext="&urlbar.emeNotificationAnchor.tooltip;"/>
 +                </box>
 +                <image id="tracking-protection-icon"/>
 +                <image id="connection-icon"/>
@@ -799,6 +764,10 @@
 +                       class="urlbar-icon"
 +                       hidden="true"
 +                       onclick="ReaderParent.buttonClick(event);"/>
++                <toolbarbutton id="urlbar-zoom-button"
++                       onclick="FullZoom.reset();"
++                       tooltiptext="&urlbar.zoomReset.tooltip;"
++                       hidden="true"/>
 +              </hbox>
 +              <hbox id="userContext-icons" hidden="true">
 +                <label id="userContext-label"/>
@@ -1080,7 +1049,7 @@
 +          <image id="sidebar-throbber"/>
 +          <toolbarbutton class="close-icon tabbable" 
tooltiptext="&sidebarCloseButton.tooltip;" oncommand="SidebarUI.hide();"/>
 +        </sidebarheader>
-+        <browser id="sidebar" flex="1" autoscroll="false" 
disablehistory="true"
++        <browser id="sidebar" flex="1" autoscroll="false" 
disablehistory="true" disablefullscreen="true"
 +                  style="min-width: 14em; width: 18em; max-width: 36em;" 
tooltip="aHTMLTooltip"/>
 +      </vbox>
 +
@@ -1093,56 +1062,6 @@
 +                    contentcontextmenu="contentAreaContextMenu"
 +                    autocompletepopup="PopupAutoComplete"
 +                    selectmenulist="ContentSelectDropdown"/>
-+        <chatbar id="pinnedchats" layer="true" mousethrough="always" 
hidden="true"/>
-+      </vbox>
-+      <splitter id="social-sidebar-splitter"
-+                class="chromeclass-extrachrome sidebar-splitter"
-+                observes="socialSidebarBroadcaster"/>
-+      <vbox id="social-sidebar-box"
-+            class="chromeclass-extrachrome"
-+            observes="socialSidebarBroadcaster"
-+            persist="width">
-+
-+        <sidebarheader id="social-sidebar-header" class="sidebar-header" 
align="center">
-+          <image id="social-sidebar-favico"/>
-+          <label id="social-sidebar-title" class="sidebar-title" 
persist="value" flex="1" crop="end" control="sidebar"/>
-+          <toolbarbutton id="social-sidebar-button"
-+                         class="toolbarbutton-1"
-+                         type="menu">
-+            <menupopup id="social-statusarea-popup" position="after_end">
-+              <menuitem class="social-toggle-sidebar-menuitem"
-+                        type="checkbox"
-+                        autocheck="false"
-+                        command="Social:ToggleSidebar"
-+                        label="&social.toggleSidebar.label;"
-+                        accesskey="&social.toggleSidebar.accesskey;"/>
-+              <menuitem class="social-toggle-notifications-menuitem"
-+                        type="checkbox"
-+                        autocheck="false"
-+                        command="Social:ToggleNotifications"
-+                        label="&social.toggleNotifications.label;"
-+                        accesskey="&social.toggleNotifications.accesskey;"/>
-+              <menuseparator/>
-+              <menuseparator class="social-provider-menu" hidden="true"/>
-+              <menuitem class="social-addons-menuitem" command="Social:Addons"
-+                        label="&social.addons.label;"/>
-+              <menuitem label="&social.learnMore.label;"
-+                        accesskey="&social.learnMore.accesskey;"
-+                        oncommand="SocialUI.showLearnMore();"/>
-+            </menupopup>
-+          </toolbarbutton>
-+        </sidebarheader>
-+
-+        <browser id="social-sidebar-browser"
-+                 type="content"
-+                 context="contentAreaContextMenu"
-+                 message="true"
-+                 messagemanagergroup="social"
-+                 disableglobalhistory="true"
-+                 tooltip="aHTMLTooltip"
-+                 popupnotificationanchor="social-sidebar-favico"
-+                 flex="1"
-+                 style="min-width: 14em; width: 18em; max-width: 36em;"/>
 +      </vbox>
 +      <vbox id="browser-border-end" hidden="true" layer="true"/>
 +    </hbox>
@@ -1291,57 +1210,57 @@
 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
-@@ -23,16 +23,22 @@ var gMainPane = {
-   init: function ()
-   {
-     function setEventListener(aId, aEventType, aCallback)
-     {
-       document.getElementById(aId)
-               .addEventListener(aEventType, aCallback.bind(gMainPane));
-     }
- 
+@@ -33,16 +33,22 @@ var gMainPane = {
+       if (AppConstants.platform == "win") {
+         // In Windows 8 we launch the control panel since it's the only
+         // way to get all file type association prefs. So we don't know
+         // 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.
+         window.setInterval(this.updateSetDefaultBrowser.bind(this), 1000);
+       }
++
 +    var env = Components.classes["@mozilla.org/process/environment;1"]
 +                          .getService(Components.interfaces.nsIEnvironment);
 +    var kde_session = 0;
 +    if (env.get('KDE_FULL_SESSION') == "true")
 +        kde_session = 1;
-+
- #ifdef HAVE_SHELL_SERVICE
-     this.updateSetDefaultBrowser();
- #ifdef XP_WIN
-     // In Windows 8 we launch the control panel since it's the only
-     // way to get all file type association prefs. So we don't know
-     // 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.
-@@ -703,16 +709,27 @@ var gMainPane = {
-     let alwaysCheckPref = 
document.getElementById("browser.shell.checkDefaultBrowser");
-     alwaysCheckPref.value = true;
- 
-     let shellSvc = getShellService();
-     if (!shellSvc)
-       return;
-     try {
-       shellSvc.setDefaultBrowser(true, false);
-+      if (kde_session == 1) {
-+        var shellObj = Components.classes["@mozilla.org/file/local;1"]
-+          .createInstance(Components.interfaces.nsILocalFile);
-+        shellObj.initWithPath("/usr/bin/kwriteconfig");
-+        var process = Components.classes["@mozilla.org/process/util;1"]
-+          .createInstance(Components.interfaces.nsIProcess);
-+        process.init(shellObj);
-+        var args = ["--file", "kdeglobals", "--group", "General", "--key",
-+            "BrowserApplication", "firefox"];
-+        process.run(false, args, args.length);
-+      }
-     } catch (ex) {
-       Cu.reportError(ex);
-       return;
      }
  
-     let selectedIndex = shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
-     document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
-   }
+     // set up the "use current page" label-changing listener
+     this._updateUseCurrentButton();
+     window.addEventListener("focus", this._updateUseCurrentButton.bind(this), 
false);
+ 
+     this.updateBrowserStartupLastSession();
+ 
+@@ -704,16 +710,27 @@ var gMainPane = {
+       let alwaysCheckPref = 
document.getElementById("browser.shell.checkDefaultBrowser");
+       alwaysCheckPref.value = true;
+ 
+       let shellSvc = getShellService();
+       if (!shellSvc)
+         return;
+       try {
+         shellSvc.setDefaultBrowser(true, false);
++        if (kde_session == 1) {
++          var shellObj = Components.classes["@mozilla.org/file/local;1"]
++            .createInstance(Components.interfaces.nsILocalFile);
++          shellObj.initWithPath("/usr/bin/kwriteconfig");
++          var process = Components.classes["@mozilla.org/process/util;1"]
++            .createInstance(Components.interfaces.nsIProcess);
++          process.init(shellObj);
++          var args = ["--file", "kdeglobals", "--group", "General", "--key",
++              "BrowserApplication", "firefox"];
++          process.run(false, args, args.length);
++        }
+       } catch (ex) {
+         Cu.reportError(ex);
+         return;
+       }
+ 
+       let selectedIndex = shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
+       document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
+     }
 diff --git a/browser/components/shell/moz.build 
b/browser/components/shell/moz.build
 --- a/browser/components/shell/moz.build
 +++ b/browser/components/shell/moz.build
@@ -1657,7 +1576,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
-@@ -674,16 +674,17 @@
+@@ -675,16 +675,17 @@
  @RESPATH@/greprefs.js
  @RESPATH@/defaults/autoconfig/prefcalls.js
  @RESPATH@/browser/defaults/permissions

++++++ l10n-50.1.0.tar.xz -> l10n-51.0.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/MozillaFirefox/l10n-50.1.0.tar.xz 
/work/SRC/openSUSE:Factory/.MozillaFirefox.new/l10n-51.0.1.tar.xz differ: char 
25, line 1

++++++ l10n_changesets.txt ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:36.148984234 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:36.148984234 +0100
@@ -1,92 +1,93 @@
-ach 72c548f97e82
-af 676daf929ded
-an 9c672ba38dae
-ar 6bd1cb920a48
-as 9710b1ce7a29
-ast 5a06502c9fc1
-az f12bc2c29510
-be 3c6fd4559f7f
-bg 7843a5e79d32
-bn-BD 3cbe5cfb0859
-bn-IN 578eacdbac9d
-br a16ed131653a
-bs 3425b8fcf1ab
-ca c6b4f835d64e
-cak 710c1faa7291
-cs e1f114f9588d
-cy 07118becc133
-da fbec55bbfd36
-de 20748e20ccf2
-dsb 4b8493859a20
-el 16fdb46a6a47
-en-GB e7242fb885cf
-en-ZA 118b4d922a17
-eo ae85ceef76b2
-es-AR a18a4b85f35f
-es-CL c5ff11d180da
-es-ES e841d9340b7c
-es-MX 2eaf1f216766
-et 8920752eaf5b
-eu eb3cb2d122eb
-fa e481522b74f8
-ff 88f5cd66688d
-fi b20587491f77
-fr 628920fcb9f1
-fy-NL 56f04c122d2a
-ga-IE ffbfd52e15d6
-gd 9f50ee991ed8
-gl e15306f877bf
-gn 68f844f4138a
-gu-IN 54ac9d906390
-he 7c087889358a
-hi-IN aea1bb23685c
-hr b0cc9aa34502
-hsb d7ea2d9d91ea
-hu 5106349d21dd
-hy-AM 3f5103ed23e2
-id 69b0d5120660
-is 8b6a14ea919f
-it ec06674eebb4
-ja 488fbb4070d9
-ja-JP-mac e120b04c4a90
-kk 60c09b46e90d
-km 00277d0045d3
-kn 0aff09069416
-ko 33cf1dd48c33
-lij 6a94ea30eef6
-lt 15947ce6f7ff
-lv 3a43a0e2c12c
-mai b43ac46bf163
-mk 0f98fd626df2
-ml b6b5a2b26a09
-mr 0c2a798af2d9
-ms a0a74230784a
-nb-NO 378c5b201531
-nl 750fcda42314
-nn-NO 444e256b7ed8
-or 5ac88ef59ea5
-pa-IN ab02b30c28ea
-pl cd84bd057189
-pt-BR dc5c8b030a57
-pt-PT 900fd62886bb
-rm b6416ed6a3a1
-ro 2e2e9b5a07f5
-ru 1d962dfc279e
-si 03a3b09a2203
-sk 4e8311d1d017
-sl b43e8e65c00e
-son 544d3eea9a59
-sq 25e86afe807e
-sr 233c45e5d423
-sv-SE 6b9266a60638
-ta 0256c1b190ce
-te 8565fd8f778a
-th e2b0b5a2dc9c
-tr 255e7e613fca
-uk e36fe69f4a3f
-uz 6d46754186ab
-vi 5c32df50f35d
-xh c96bc753a170
-zh-CN 411faa039900
-zh-TW e1416ff1b4d6
+ach d6ba00c5c59a
+af 221acbf9c551
+an efef89681add
+ar 940e066d2dd8
+as a97311f0a051
+ast 37ff5970cc8f
+az 374715191cd0
+bg d15a763f746a
+bn-BD b4cdbb48d9fb
+bn-IN 405c89530a66
+br e730984a8770
+bs e25f083ed28a
+ca 2909feec9b62
+cak b0fe49f697f3
+cs 53096821fe5c
+cy 4690316110e9
+da 24845323c326
+de ec96b812a542
+dsb 8e338605ccb9
+el 34a3488407a6
+en-GB 8000aa9daf28
+en-ZA ad5be8ba60f3
+eo 3a024766912e
+es-AR 541f1c3690da
+es-CL 56477941664e
+es-ES 8b7162b69b09
+es-MX 77bc335e0853
+et a9b1775874d3
+eu 52ec58e99375
+fa 95d8b781e109
+ff 2e39572916fb
+fi 94ad306d1492
+fr 27c4dc4cba4d
+fy-NL 9399c11d5edb
+ga-IE 5d9852283915
+gd bc702e34726b
+gl 74d31ad43213
+gn 43e8b6cb5fc6
+gu-IN 97b7ec458ace
+he 32e85d63d323
+hi-IN 25c7d3fceff8
+hr 15e2ad66589c
+hsb ff5fb215596d
+hu 814fad9068d9
+hy-AM 339e5b6d31d2
+id 1f325ac9007c
+is e346cec6bace
+it fc766adb485d
+ja 78a60bf924e7
+ja-JP-mac 0ca52430f89c
+ka fb0e9f4fdbe7
+kab 3de51a9c61ce
+kk 368faf9a9ed3
+km 97cd3bb4f2f3
+kn f657dd18d8a1
+ko bc9fde5af704
+lij 500f328a0bf0
+lt 3eefea021768
+lv 90a827f08cb4
+mai 4a95441f376c
+mk 666cf4d8067b
+ml 1f2e734fbd60
+mr 8067689c39f3
+ms 76c4152f9e3f
+nb-NO 1effc4c0ba39
+nl 28f169daa01f
+nn-NO 272d7d7fbd67
+or 765fc4b06ed0
+pa-IN 8518db59aecf
+pl 339f79766251
+pt-BR 3e521cc717b9
+pt-PT 5ea4fd22db27
+rm 66840279c384
+ro a87554f9bf7e
+ru a8f0bc1f85db
+si 2629b7b1279c
+sk b78499013196
+sl b91f9bd2d619
+son 2934d6741b1a
+sq 8ff97a87cbeb
+sr 8ddd91c5629b
+sv-SE 483944f0c102
+ta dc89744a2281
+te 545bca10223a
+th 6076f69e7093
+tr 70129fabcb60
+uk cb0a4b0816fa
+uz 01402c615783
+vi d6c09226896e
+xh f587b401f8fc
+zh-CN d260be15e967
+zh-TW 267404478cf9
 

++++++ mozilla-disable-skia-be.patch ++++++

# HG changeset patch
# User Lee Salzman <[email protected]>
# Date 1484854371 18000
# Node ID 42afdb8f7e6b3e8a465042f64c6c49782f231af4
# Parent  dfadd79c97458f898d542461033a61dd34d3a5f0
Bug 1319374 - Wrap PaintCounter with ifdef USE_SKIA. r=mchang, a=jcristau

diff --git a/gfx/2d/BorrowedContext.h b/gfx/2d/BorrowedContext.h
--- a/gfx/2d/BorrowedContext.h
+++ b/gfx/2d/BorrowedContext.h
@@ -190,18 +190,28 @@ public:
   }
 
   ~BorrowedCGContext() {
     MOZ_ASSERT(!cg);
   }
 
   CGContextRef cg;
 private:
+#ifdef USE_SKIA
   static CGContextRef BorrowCGContextFromDrawTarget(DrawTarget *aDT);
   static void ReturnCGContextToDrawTarget(DrawTarget *aDT, CGContextRef cg);
+#else
+  static CGContextRef BorrowCGContextFromDrawTarget(DrawTarget *aDT) {
+    MOZ_CRASH("Not supported without Skia");
+  }
+
+  static void ReturnCGContextToDrawTarget(DrawTarget *aDT, CGContextRef cg) {
+    MOZ_CRASH("not supported without Skia");
+  }
+#endif
   DrawTarget *mDT;
 };
 #endif
 
 } // namespace gfx
 } // namespace mozilla
 
 #endif // _MOZILLA_GFX_BORROWED_CONTEXT_H
diff --git a/gfx/layers/composite/LayerManagerComposite.cpp 
b/gfx/layers/composite/LayerManagerComposite.cpp
--- a/gfx/layers/composite/LayerManagerComposite.cpp
+++ b/gfx/layers/composite/LayerManagerComposite.cpp
@@ -7,17 +7,16 @@
 #include <stddef.h>                     // for size_t
 #include <stdint.h>                     // for uint16_t, uint32_t
 #include "CanvasLayerComposite.h"       // for CanvasLayerComposite
 #include "ColorLayerComposite.h"        // for ColorLayerComposite
 #include "Composer2D.h"                 // for Composer2D
 #include "CompositableHost.h"           // for CompositableHost
 #include "ContainerLayerComposite.h"    // for ContainerLayerComposite, etc
 #include "FPSCounter.h"                 // for FPSState, FPSCounter
-#include "PaintCounter.h"               // For PaintCounter
 #include "FrameMetrics.h"               // for FrameMetrics
 #include "GeckoProfiler.h"              // for profiler_set_frame_number, etc
 #include "ImageLayerComposite.h"        // for ImageLayerComposite
 #include "Layers.h"                     // for Layer, ContainerLayer, etc
 #include "LayerScope.h"                 // for LayerScope Tool
 #include "protobuf/LayerScopePacket.pb.h" // for protobuf (LayerScope)
 #include "PaintedLayerComposite.h"      // for PaintedLayerComposite
 #include "TiledContentHost.h"
@@ -68,16 +67,20 @@
 #include "nsScreenManagerGonk.h"
 #include "nsWindow.h"
 #endif
 #include "GeckoProfiler.h"
 #include "TextRenderer.h"               // for TextRenderer
 #include "mozilla/layers/CompositorBridgeParent.h"
 #include "TreeTraversal.h"              // for ForEachNode
 
+#ifdef USE_SKIA
+#include "PaintCounter.h"               // For PaintCounter
+#endif
+
 class gfxContext;
 
 namespace mozilla {
 namespace layers {
 
 class ImageLayer;
 
 using namespace mozilla::gfx;
@@ -128,16 +131,20 @@ LayerManagerComposite::LayerManagerCompo
 , mGeometryChanged(true)
 , mLastFrameMissedHWC(false)
 , mWindowOverlayChanged(false)
 , mLastPaintTime(TimeDuration::Forever())
 , mRenderStartTime(TimeStamp::Now())
 {
   mTextRenderer = new TextRenderer(aCompositor);
   MOZ_ASSERT(aCompositor);
+
+#ifdef USE_SKIA
+  mPaintCounter = nullptr;
+#endif
 }
 
 LayerManagerComposite::~LayerManagerComposite()
 {
   Destroy();
 }
 
 
@@ -146,18 +153,21 @@ LayerManagerComposite::Destroy()
 {
   if (!mDestroyed) {
     mCompositor->GetWidget()->CleanupWindowEffects();
     if (mRoot) {
       RootLayer()->Destroy();
     }
     mRoot = nullptr;
     mClonedLayerTreeProperties = nullptr;
+    mDestroyed = true;
+
+#ifdef USE_SKIA
     mPaintCounter = nullptr;
-    mDestroyed = true;
+#endif
   }
 }
 
 void
 LayerManagerComposite::UpdateRenderBounds(const IntRect& aRect)
 {
   mRenderBounds = aRect;
 }
@@ -559,48 +569,52 @@ LayerManagerComposite::RootLayer() const
 #endif
 
 void
 LayerManagerComposite::InvalidateDebugOverlay(nsIntRegion& aInvalidRegion, 
const IntRect& aBounds)
 {
   bool drawFps = gfxPrefs::LayersDrawFPS();
   bool drawFrameCounter = gfxPrefs::DrawFrameCounter();
   bool drawFrameColorBars = gfxPrefs::CompositorDrawColorBars();
-  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
 
   if (drawFps || drawFrameCounter) {
     aInvalidRegion.Or(aInvalidRegion, nsIntRect(0, 0, 256, 256));
   }
   if (drawFrameColorBars) {
     aInvalidRegion.Or(aInvalidRegion, nsIntRect(0, 0, 10, aBounds.height));
   }
+
+#ifdef USE_SKIA
+  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
   if (drawPaintTimes) {
     aInvalidRegion.Or(aInvalidRegion, nsIntRect(PaintCounter::GetPaintRect()));
   }
+#endif
 }
 
+#ifdef USE_SKIA
 void
 LayerManagerComposite::DrawPaintTimes(Compositor* aCompositor)
 {
   if (!mPaintCounter) {
     mPaintCounter = new PaintCounter();
   }
 
   TimeDuration compositeTime = TimeStamp::Now() - mRenderStartTime;
   mPaintCounter->Draw(aCompositor, mLastPaintTime, compositeTime);
 }
+#endif
 
 static uint16_t sFrameCount = 0;
 void
 LayerManagerComposite::RenderDebugOverlay(const IntRect& aBounds)
 {
   bool drawFps = gfxPrefs::LayersDrawFPS();
   bool drawFrameCounter = gfxPrefs::DrawFrameCounter();
   bool drawFrameColorBars = gfxPrefs::CompositorDrawColorBars();
-  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
 
   TimeStamp now = TimeStamp::Now();
 
   if (drawFps) {
     if (!mFPS) {
       mFPS = MakeUnique<FPSState>();
     }
 
@@ -731,19 +745,22 @@ LayerManagerComposite::RenderDebugOverla
   }
 #endif
 
   if (drawFrameColorBars || drawFrameCounter) {
     // We intentionally overflow at 2^16.
     sFrameCount++;
   }
 
+#ifdef USE_SKIA
+  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
   if (drawPaintTimes) {
     DrawPaintTimes(mCompositor);
   }
+#endif
 }
 
 RefPtr<CompositingRenderTarget>
 LayerManagerComposite::PushGroupForLayerEffects()
 {
   // This is currently true, so just making sure that any new use of this
   // method is flagged for investigation
   MOZ_ASSERT(gfxPrefs::LayersEffectInvert() ||
diff --git a/gfx/layers/composite/LayerManagerComposite.h 
b/gfx/layers/composite/LayerManagerComposite.h
--- a/gfx/layers/composite/LayerManagerComposite.h
+++ b/gfx/layers/composite/LayerManagerComposite.h
@@ -326,21 +326,16 @@ private:
    * Render the current layer tree to the active target.
    */
   void Render(const nsIntRegion& aInvalidRegion, const nsIntRegion& 
aOpaqueRegion);
 #if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GONK)
   void RenderToPresentationSurface();
 #endif
 
   /**
-   * Render paint and composite times above the frame.
-   */
-  void DrawPaintTimes(Compositor* aCompositor);
-
-  /**
    * We need to know our invalid region before we're ready to render.
    */
   void InvalidateDebugOverlay(nsIntRegion& aInvalidRegion, const gfx::IntRect& 
aBounds);
 
   /**
    * Render debug overlays such as the FPS/FrameCounter above the frame.
    */
   void RenderDebugOverlay(const gfx::IntRect& aBounds);
@@ -386,19 +381,26 @@ private:
   RefPtr<TextRenderer> mTextRenderer;
   bool mGeometryChanged;
 
   // Testing property. If hardware composer is supported, this will return
   // true if the last frame was deemed 'too complicated' to be rendered.
   bool mLastFrameMissedHWC;
 
   bool mWindowOverlayChanged;
-  RefPtr<PaintCounter> mPaintCounter;
   TimeDuration mLastPaintTime;
   TimeStamp mRenderStartTime;
+
+#ifdef USE_SKIA
+  /**
+   * Render paint and composite times above the frame.
+   */
+  void DrawPaintTimes(Compositor* aCompositor);
+  RefPtr<PaintCounter> mPaintCounter;
+#endif
 };
 
 /**
  * Composite layers are for use with OMTC on the compositor thread only. There
  * must be corresponding Basic layers on the content thread. For composite
  * layers, the layer manager only maintains the layer tree, all rendering is
  * done by a Compositor (see Compositor.h). As such, composite layers are
  * platform-independent and can be used on any platform for which there is a
diff --git a/gfx/layers/moz.build b/gfx/layers/moz.build
--- a/gfx/layers/moz.build
+++ b/gfx/layers/moz.build
@@ -335,17 +335,16 @@ UNIFIED_SOURCES += [
     'composite/CompositableHost.cpp',
     'composite/ContainerLayerComposite.cpp',
     'composite/ContentHost.cpp',
     'composite/FPSCounter.cpp',
     'composite/FrameUniformityData.cpp',
     'composite/ImageHost.cpp',
     'composite/ImageLayerComposite.cpp',
     'composite/LayerManagerComposite.cpp',
-    'composite/PaintCounter.cpp',
     'composite/PaintedLayerComposite.cpp',
     'composite/TextRenderer.cpp',
     'composite/TextureHost.cpp',
     'composite/TiledContentHost.cpp',
     'Compositor.cpp',
     'CopyableCanvasLayer.cpp',
     'Effects.cpp',
     'FrameMetrics.cpp',
@@ -480,8 +479,13 @@ MOCHITEST_CHROME_MANIFESTS += ['apz/test
 
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
 CXXFLAGS += CONFIG['TK_CFLAGS']
 
 LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wno-error=shadow']
+
+if CONFIG['MOZ_ENABLE_SKIA']:
+  UNIFIED_SOURCES += [
+    'composite/PaintCounter.cpp',
+  ]
++++++ mozilla-kde.patch ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:36.196977441 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:36.200976876 +0100
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  6ff55468281e12a84adefb46b17acb60d9cea608
+# Parent  f3e80d26a430dfa1c58421fb66144a3c23ffc166
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <[email protected]>
 Author: Lubos Lunak <[email protected]>
@@ -27,7 +27,7 @@
  #include "prefread.h"
  #include "prefapi_private_data.h"
  
-@@ -1180,16 +1181,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
+@@ -1174,16 +1175,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
  
  static nsresult pref_LoadPrefsInDirList(const char *listId)
  {
@@ -62,7 +62,7 @@
      return NS_OK;
  
    bool hasMore;
-@@ -1205,17 +1224,17 @@ static nsresult pref_LoadPrefsInDirList(
+@@ -1199,17 +1218,17 @@ static nsresult pref_LoadPrefsInDirList(
  
      nsAutoCString leaf;
      path->GetNativeLeafName(leaf);
@@ -81,7 +81,7 @@
  {
    nsZipItemPtr<char> manifest(jarReader, name, true);
    NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-@@ -1309,24 +1328,36 @@ static nsresult pref_InitInitialObjects(
+@@ -1303,24 +1322,36 @@ static nsresult pref_InitInitialObjects(
    /* these pref file names should not be used: we process them after all 
other application pref files for backwards compatibility */
    static const char* specialFiles[] = {
  #if defined(XP_MACOSX)
@@ -187,8 +187,7 @@
 diff --git a/toolkit/components/downloads/moz.build 
b/toolkit/components/downloads/moz.build
 --- a/toolkit/components/downloads/moz.build
 +++ b/toolkit/components/downloads/moz.build
-@@ -60,17 +60,18 @@ if not CONFIG['MOZ_SUITE']:
-         'nsDownloadManagerUI.js',
+@@ -57,16 +57,17 @@ if not CONFIG['MOZ_SUITE']:
          'nsDownloadManagerUI.manifest',
      ]
  
@@ -196,9 +195,9 @@
  
  LOCAL_INCLUDES += [
      '../protobuf',
--    '/ipc/chromium/src'
-+    '/ipc/chromium/src',
-+    '/toolkit/xre'
+     '/ipc/chromium/src',
++    '/toolkit/xre',
+     'chromium'
  ]
  
  DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True
@@ -206,11 +205,10 @@
  
  CXXFLAGS += CONFIG['TK_CFLAGS']
  
- if CONFIG['GNU_CXX']:
 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp 
b/toolkit/components/downloads/nsDownloadManager.cpp
 --- a/toolkit/components/downloads/nsDownloadManager.cpp
 +++ b/toolkit/components/downloads/nsDownloadManager.cpp
-@@ -51,16 +51,20 @@
+@@ -52,16 +52,20 @@
  #ifdef XP_WIN
  #include <shlobj.h>
  #include "nsWindowsHelpers.h"
@@ -228,10 +226,10 @@
  #endif
  
  #ifdef MOZ_WIDGET_ANDROID
- #include "GeneratedJNIWrappers.h"
+ #include "FennecJNIWrappers.h"
  #endif
  
-@@ -2719,16 +2723,25 @@ nsDownload::SetState(DownloadState aStat
+@@ -2723,16 +2727,25 @@ nsDownload::SetState(DownloadState aStat
        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
  
        // Master pref to control this function.
@@ -257,7 +255,7 @@
          int64_t goat = PR_Now() - mStartTime;
          showTaskbarAlert = goat > alertIntervalUSec;
  
-@@ -2759,16 +2772,17 @@ nsDownload::SetState(DownloadState aStat
+@@ -2763,16 +2776,17 @@ nsDownload::SetState(DownloadState aStat
                    NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
                    message, !removeWhenDone,
                    mPrivate ? NS_LITERAL_STRING("private") : 
NS_LITERAL_STRING("non-private"),
@@ -316,7 +314,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/content/widgets/dialog-kde.xml
-@@ -0,0 +1,463 @@
+@@ -0,0 +1,457 @@
 +<?xml version="1.0"?>
 +<!-- This Source Code Form is subject to the terms of the Mozilla Public
 +   - License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -386,8 +384,7 @@
 +        <![CDATA[
 +          if (this.hasAttribute("defaultButton"))
 +            return this.getAttribute("defaultButton");
-+          else // default to the accept button
-+            return "accept";
++          return "accept";  // default to the accept button
 +        ]]>
 +        </getter>
 +        <setter>
@@ -491,9 +488,6 @@
 +        <parameter name="aEvent"/>
 +        <body>
 +        <![CDATA[
-+          let { AppConstants } =
-+              
Components.utils.import("resource://gre/modules/AppConstants.jsm", {});
-+
 +          function focusInit() {
 +            const dialog = document.documentElement;
 +            const defaultButton = dialog.getButton(dialog.defaultButton);
@@ -519,7 +513,7 @@
 +                    initialFocusedElt.focus();
 +                  }
 +                }
-+                else if (AppConstants.platform != "macosx" &&
++                else if (!/Mac/.test(navigator.platform) &&
 +                         focusedElt.hasAttribute("dlgtype") && focusedElt != 
defaultButton) {
 +                  defaultButton.focus();
 +                }
@@ -604,16 +598,16 @@
 +              else
 +                switch (dlgtype) {
 +                  case "accept":
-+                    button.setAttribute("icon","accept");
++                    button.setAttribute("icon", "accept");
 +                    break;
 +                  case "cancel":
-+                    button.setAttribute("icon","cancel");
++                    button.setAttribute("icon", "cancel");
 +                    break;
 +                  case "disclosure":
-+                    button.setAttribute("icon","properties");
++                    button.setAttribute("icon", "properties");
 +                    break;
 +                  case "help":
-+                    button.setAttribute("icon","help");
++                    button.setAttribute("icon", "help");
 +                    break;
 +                  default:
 +                    break;
@@ -639,10 +633,8 @@
 +            for (dlgtype in buttons)
 +              buttons[dlgtype].hidden = !shown[dlgtype];
 +
-+            let { AppConstants } =
-+                
Components.utils.import("resource://gre/modules/AppConstants.jsm", {});
 +            // show the spacer on Windows only when the extra2 button is 
present
-+            if (AppConstants.platform == "win") {
++            if (/Win/.test(navigator.platform)) {
 +              var spacer = document.getAnonymousElementByAttribute(this, 
"anonid", "spacer");
 +              spacer.removeAttribute("hidden");
 +              spacer.setAttribute("flex", shown["extra2"]?"1":"0");
@@ -784,7 +776,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/content/widgets/preferences-kde.xml
-@@ -0,0 +1,1410 @@
+@@ -0,0 +1,1403 @@
 +<?xml version="1.0"?>
 +
 +<!DOCTYPE bindings [
@@ -1422,10 +1414,7 @@
 +            var acceptButton = docElt.getButton("accept");
 +            acceptButton.hidden = true;
 +            var cancelButton  = docElt.getButton("cancel");
-+
-+            let { AppConstants } =
-+                
Components.utils.import("resource://gre/modules/AppConstants.jsm", {});
-+            if (AppConstants.platform == "macosx") {
++            if (/Mac/.test(navigator.platform)) {
 +              // no buttons on Mac except Help
 +              cancelButton.hidden = true;
 +              // Move Help button to the end
@@ -1607,9 +1596,7 @@
 +        <parameter name="aPaneElement"/>
 +        <body>
 +        <![CDATA[
-+          let { AppConstants } =
-+              
Components.utils.import("resource://gre/modules/AppConstants.jsm", {});
-+          if (AppConstants.platform == "macosx") {
++          if (/Mac/.test(navigator.platform)) {
 +            var paneTitle = aPaneElement.label;
 +            if (paneTitle != "")
 +              document.title = paneTitle;
@@ -1683,11 +1670,9 @@
 +      <property name="_shouldAnimate">
 +        <getter>
 +        <![CDATA[
-+          let { AppConstants } =
-+              
Components.utils.import("resource://gre/modules/AppConstants.jsm", {});
 +          var psvc = Components.classes["@mozilla.org/preferences-service;1"]
 +                               
.getService(Components.interfaces.nsIPrefBranch);
-+          var animate = AppConstants.platform == "macosx";
++          var animate = /Mac/.test(navigator.platform);
 +          try {
 +            animate = psvc.getBoolPref("browser.preferences.animateFadeIn");
 +          }
@@ -1854,7 +1839,7 @@
 +    <handlers>
 +      <handler event="dialogaccept">
 +      <![CDATA[
-+        if (!this._fireEvent("beforeaccept", this)){
++        if (!this._fireEvent("beforeaccept", this)) {
 +          return false;
 +        }
 +
@@ -2292,7 +2277,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -39,17 +39,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
+@@ -40,17 +40,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
          'updaterfileutils_osx.mm',
      ]
  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
@@ -2316,7 +2301,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/xre/nsKDEUtils.cpp
-@@ -0,0 +1,339 @@
+@@ -0,0 +1,344 @@
 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- 
*/
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -2337,6 +2322,11 @@
 +#include <sys/resource.h>
 +#include <unistd.h>
 +#include <X11/Xlib.h>
++// copied from X11/X.h as a hack since for an unknown
++// reason it's not picked up from X11/X.h
++#ifndef None
++#define None                 0L /* universal null resource or null atom */
++#endif
 +
 +//#define DEBUG_KDE
 +#ifdef DEBUG_KDE
@@ -3161,7 +3151,7 @@
 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
-@@ -90,16 +90,17 @@ else:
+@@ -101,16 +101,17 @@ else:
  include('/ipc/chromium/chromium-config.mozbuild')
  
  FINAL_LIBRARY = 'xul'
@@ -3534,25 +3524,25 @@
 diff --git a/xpcom/components/ManifestParser.cpp 
b/xpcom/components/ManifestParser.cpp
 --- a/xpcom/components/ManifestParser.cpp
 +++ b/xpcom/components/ManifestParser.cpp
-@@ -35,16 +35,17 @@
+@@ -32,16 +32,17 @@
+ #include "nsTextFormatter.h"
+ #include "nsVersionComparator.h"
+ #include "nsXPCOMCIDInternal.h"
  
  #include "nsIConsoleService.h"
  #include "nsIScriptError.h"
  #include "nsIXULAppInfo.h"
  #include "nsIXULRuntime.h"
- #ifdef MOZ_B2G_LOADER
- #include "mozilla/XPTInterfaceInfoManager.h"
- #endif
 +#include "nsKDEUtils.h"
  
- #ifdef MOZ_B2G_LOADER
- #define XPTONLY_MANIFEST &nsComponentManagerImpl::XPTOnlyManifestManifest
- #define XPTONLY_XPT &nsComponentManagerImpl::XPTOnlyManifestXPT
- #else
- #define XPTONLY_MANIFEST nullptr
- #define XPTONLY_XPT nullptr
- #endif
-@@ -494,16 +495,17 @@ ParseManifest(NSLocationType aType, File
+ using namespace mozilla;
+ 
+ struct ManifestDirective
+ {
+   const char* directive;
+   int argc;
+ 
+@@ -472,16 +473,17 @@ ParseManifest(NSLocationType aType, File
    NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
    NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
    NS_NAMED_LITERAL_STRING(kApplication, "application");
@@ -3570,7 +3560,7 @@
    NS_NAMED_LITERAL_STRING(kMain, "main");
    NS_NAMED_LITERAL_STRING(kContent, "content");
  
-@@ -554,44 +556,49 @@ ParseManifest(NSLocationType aType, File
+@@ -532,44 +534,49 @@ ParseManifest(NSLocationType aType, File
          CopyUTF8toUTF16(s, abi);
          abi.Insert(char16_t('_'), 0);
          abi.Insert(osTarget, 0);
@@ -3620,7 +3610,7 @@
      process = kMain;
    }
  
-@@ -694,25 +701,27 @@ ParseManifest(NSLocationType aType, File
+@@ -672,25 +679,27 @@ ParseManifest(NSLocationType aType, File
      TriState stOsVersion = eUnspecified;
      TriState stOs = eUnspecified;
      TriState stABI = eUnspecified;
@@ -3648,7 +3638,7 @@
        }
  
  #if defined(MOZ_WIDGET_ANDROID)
-@@ -762,16 +771,17 @@ ParseManifest(NSLocationType aType, File
+@@ -740,16 +749,17 @@ ParseManifest(NSLocationType aType, File
      }
  
      if (!ok ||

++++++ mozilla-language.patch ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:36.216974611 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:36.216974611 +0100
@@ -1,7 +1,7 @@
 # HG changeset patch
 # User Wolfgang Rosenauer <[email protected]>
 # Parent 5a29924228527f8882c83cf62d470963ea1ce62e
-# Parent  bf7b3a5853467b34f13465102a19b9c7c2524bd4
+# Parent  4f39ed617c2f151a3a15903c7ae4471b66774e9e
 Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
 
 diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
@@ -25,7 +25,7 @@
      for( i = 0; i < LocaleListLength; i++ ) {
          nsresult result;
          // setlocale( , "") evaluates LC_* and LANG
-@@ -149,16 +150,21 @@ nsLocaleService::nsLocaleService(void)
+@@ -149,16 +150,36 @@ nsLocaleService::nsLocaleService(void)
              } else {
                  CopyASCIItoUTF16(lang, platformLocale);
                  result = nsPosixLocale::GetXPLocale(lang, xpLocale);
@@ -35,9 +35,24 @@
              return;
          }
 +        // LANGUAGE is overriding LC_MESSAGES
++        // it can be a colon separated list of preferred languages
++        // as we do not recognize here if a language is available
++        // we actually only consider the first entry unless GetXPLocale
++        // fails completely
 +        if (i == LC_MESSAGES && language && *language) {
-+          CopyASCIItoUTF16(language, platformLocale);
-+          result = nsPosixLocale::GetXPLocale(language, xpLocale);
++#define LANGUAGE_SEP ":"
++          nsAutoString xpLocale_temp;
++          char* rawBuffer = (char*) language;
++          char* token = nsCRT::strtok(rawBuffer, LANGUAGE_SEP, &rawBuffer);
++          for (; token;
++              token = nsCRT::strtok(rawBuffer, LANGUAGE_SEP, &rawBuffer)) {
++            result = nsPosixLocale::GetXPLocale(token, xpLocale_temp);
++            if (NS_SUCCEEDED(result)) {
++              CopyASCIItoUTF16(token, platformLocale);
++              xpLocale = xpLocale_temp;
++              break;
++            }
++          }
 +        }
          resultLocale->AddCategory(category, xpLocale);
          resultLocale->AddCategory(category_platform, platformLocale);

++++++ mozilla-openaes-decl.patch ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:36.236971781 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:36.240971214 +0100
@@ -1,7 +1,7 @@
 # HG changeset patch
 # Parent 33024abb3c58dab7239e32388df58e14f99defd5
 # User Wolfgang Rosenauer <[email protected]>
-# Parent  17196b2f3cd2bcba6a5b54f4496b5762a593c5b3
+# Parent  6005a673f4c68ed05294bedcf45d6d962bf303e6
 
 diff --git a/media/gmp-clearkey/0.1/openaes/oaes_lib.c 
b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
 --- a/media/gmp-clearkey/0.1/openaes/oaes_lib.c
@@ -20,7 +20,7 @@
  #include <time.h> 
  #include <string.h>
  
- #include "mozilla/Snprintf.h"
+ #include "mozilla/Sprintf.h"
  
  #ifdef WIN32
  #include <process.h>

++++++ mozilla-shared-nss-db.patch ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:36.260968384 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:36.260968384 +0100
@@ -7,13 +7,13 @@
 diff --git a/old-configure.in b/old-configure.in
 --- a/old-configure.in
 +++ b/old-configure.in
-@@ -6495,16 +6495,31 @@ if test "$MOZ_ENABLE_SKIA"; then
-     AC_DEFINE(USE_SKIA_GPU)
-     AC_SUBST(MOZ_ENABLE_SKIA_GPU)
-   fi
- fi
- AC_SUBST(MOZ_ENABLE_SKIA)
- AC_SUBST_LIST(SKIA_INCLUDES)
+@@ -5358,16 +5358,31 @@ esac
+ 
+ AC_SUBST(MOZ_TREE_CAIRO)
+ AC_SUBST_LIST(MOZ_CAIRO_CFLAGS)
+ AC_SUBST_LIST(MOZ_CAIRO_LIBS)
+ AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
+ AC_SUBST(MOZ_TREE_PIXMAN)
  
  dnl ========================================================
 +dnl Check for nss-shared-helper
@@ -42,7 +42,7 @@
 diff --git a/security/manager/ssl/moz.build b/security/manager/ssl/moz.build
 --- a/security/manager/ssl/moz.build
 +++ b/security/manager/ssl/moz.build
-@@ -159,16 +159,19 @@ if CONFIG['MOZ_XUL']:
+@@ -160,16 +160,19 @@ if CONFIG['MOZ_XUL']:
      ]
  
  UNIFIED_SOURCES += [
@@ -87,7 +87,7 @@
  #include "SharedSSLState.h"
  #include "cert.h"
  #include "certdb.h"
-@@ -1491,17 +1498,31 @@ nsNSSComponent::InitializeNSS()
+@@ -1702,17 +1709,31 @@ nsNSSComponent::InitializeNSS()
        return rv;
      }
    }
@@ -122,14 +122,14 @@
 diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
 --- a/toolkit/library/moz.build
 +++ b/toolkit/library/moz.build
-@@ -209,16 +209,18 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
-     OS_LIBS += [
-         'rt',
-     ]
- 
- OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
+@@ -220,16 +220,18 @@ OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
  OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
- OS_LIBS += CONFIG['MOZ_SERVO_LIBS']
+ 
+ if CONFIG['SERVO_TARGET_DIR']:
+     if CONFIG['_MSC_VER']:
+         OS_LIBS += ['%s/geckoservo' % CONFIG['SERVO_TARGET_DIR']]
+     else:
+         OS_LIBS += ['-L%s' % CONFIG['SERVO_TARGET_DIR'], '-lgeckoservo']
  
 +OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
 +

++++++ mozilla-skia-ppc-endianess.patch ++++++

# HG changeset patch
# User Mike Hommey <[email protected]>
# Date 1479812942 -32400
# Node ID a6d015fd1add5e16cf37f5868cd2734bafb709b4
# Parent  319e03b9e8a22a8fba3756cb1afc8b9e7a6724c8
Bug 1319389 - Generically set SK_CPU_[BL]ENDIAN based on __BYTE_ORDER__ when 
available. r?jrmuizel


diff --git a/gfx/skia/skia/include/core/SkPreConfig.h 
b/gfx/skia/skia/include/core/SkPreConfig.h
--- a/gfx/skia/skia/include/core/SkPreConfig.h
+++ b/gfx/skia/skia/include/core/SkPreConfig.h
@@ -67,25 +67,29 @@
 
 #if !defined(SK_WARN_UNUSED_RESULT)
     #define SK_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
 #endif
 
 //////////////////////////////////////////////////////////////////////
 
 #if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN)
-    #if defined(__sparc) || defined(__sparc__) || \
+    #if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+        #define SK_CPU_BENDIAN
+    #elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == 
__ORDER_LITTLE_ENDIAN__)
+        #define SK_CPU_LENDIAN
+    #elif defined(__sparc) || defined(__sparc__) || \
       defined(_POWER) || defined(__powerpc__) || \
       defined(__ppc__) || defined(__hppa) || \
       defined(__PPC__) || defined(__PPC64__) || \
       defined(_MIPSEB) || defined(__ARMEB__) || \
       defined(__s390__) || \
       (defined(__sh__) && defined(__BIG_ENDIAN__)) || \
       (defined(__ia64) && defined(__BIG_ENDIAN__))
-         #define SK_CPU_BENDIAN
+        #define SK_CPU_BENDIAN
     #else
         #define SK_CPU_LENDIAN
     #endif
 #endif
 
 //////////////////////////////////////////////////////////////////////
 
 #if defined(__i386) || defined(_M_IX86) ||  defined(__x86_64__) || 
defined(_M_X64)

++++++ source-stamp.txt ++++++
--- /var/tmp/diff_new_pack.VKSR2V/_old  2017-02-03 17:30:36.304962158 +0100
+++ /var/tmp/diff_new_pack.VKSR2V/_new  2017-02-03 17:30:36.304962158 +0100
@@ -1,2 +1,2 @@
-REV=8612c3320053
+REV=327e081221b0
 REPO=http://hg.mozilla.org/releases/mozilla-release


Reply via email to