Firefox 47.0
- removed obsolete patches
- xulrunner is dead (mozilla-pkgconfig.patch)
- added new patches from Factory
- rebased existing patches
--- a/MozillaFirefox/MozillaFirefox.changes Tue Jun 07 21:44:20 2016 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes Wed Jun 08 13:45:00 2016 +0200
@@ -1,4 +1,82 @@
-------------------------------------------------------------------
+Tue Jun 7 19:47:25 UTC 2016 - wr@rosenauer.org
+
+- update to Firefox 47.0 (boo#983549)
+ * Enable VP9 video codec for users with fast machines
+ * Embedded YouTube videos now play with HTML5 video if Flash is
+ not installed
+ * View and search open tabs from your smartphone or another
+ computer in a sidebar
+ * Allow no-cache on back/forward navigations for https resources
+ security fixes:
+ * MFSA 2016-49/CVE-2016-2815/CVE-2016-2818
+ (boo#983638)
+ (bmo#1241896, bmo#1242798, bmo#1243466, bmo#1245743,
+ bmo#1264300, bmo#1271037, bmo#1234147, bmo#1256493,
+ bmo#1256739, bmo#1256968, bmo#1261230, bmo#1261752,
+ bmo#1263384, bmo#1264575, bmo#1265577, bmo#1267130,
+ bmo#1269729, bmo#1273202, bmo#1273701)
+ Miscellaneous memory safety hazards (rv:47.0 / rv:45.2)
+ * MFSA 2016-50/CVE-2016-2819 (boo#983655) (bmo#1270381)
+ Buffer overflow parsing HTML5 fragments
+ * MFSA 2016-51/CVE-2016-2821 (bsc#983653) (bmo#1271460)
+ Use-after-free deleting tables from a contenteditable document
+ * MFSA 2016-52/CVE-2016-2822 (boo#983652) (bmo#1273129)
+ Addressbar spoofing though the SELECT element
+ * MFSA 2016-53/CVE-2016-2824 (boo#983651) (bmo#1248580)
+ Out-of-bounds write with WebGL shader
+ * MFSA 2016-54/CVE-2016-2825 (boo#983649) (bmo#1193093)
+ Partial same-origin-policy through setting location.host
+ through data URI
+ * MFSA 2016-56/CVE-2016-2828 (boo#983646) (bmo#1223810)
+ Use-after-free when textures are used in WebGL operations
+ after recycle pool destruction
+ * MFSA 2016-57/CVE-2016-2829 (boo#983644) (bmo#1248329)
+ Incorrect icon displayed on permissions notifications
+ * MFSA 2016-58/CVE-2016-2831 (boo#983643) (bmo#1261933)
+ Entering fullscreen and persistent pointerlock without user
+ permission
+ * MFSA 2016-59/CVE-2016-2832 (boo#983632) (bmo#1025267)
+ Information disclosure of disabled plugins through CSS
+ pseudo-classes
+ * MFSA 2016-60/CVE-2016-2833 (boo#983640) (bmo#908933)
+ Java applets bypass CSP protections
+ * MFSA 2016-62/CVE-2016-2834 (boo#983639) (bmo#1206283,
+ bmo#1221620, bmo#1241034, bmo#1241037)
+ Network Security Services (NSS) vulnerabilities
+ fixed by requiring NSS 3.23
+ packaging changes:
+ * cleanup configure options (boo#981695):
+ - notably remove GStreamer support which is gone from FF
+ * remove obsolete patches
+ - mozilla-libproxy.patch
+ - mozilla-repo.patch
+
+-------------------------------------------------------------------
+Wed May 25 16:36:23 UTC 2016 - badshah400@gmail.com
+
+- The conditional testing for gcc was failing for different
+ openSUSE versions, drop it and apply patches unconditionally.
+
+-------------------------------------------------------------------
+Mon May 23 15:30:27 UTC 2016 - badshah400@gmail.com
+
+- Add patches to fix building with gcc6:
+ + mozilla-gcc6.patch: fix building with gcc >= 6.1; patch
+ taken from upstream:
+ https://hg.mozilla.org/mozilla-central/rev/55212130f19d.
+ + mozilla-exclude-nametablecpp.patch: Exclude NameTable.cpp
+ from unified compilation because #include <cmath> in other
+ source files causes gcc6 compilation failure; patch taken from
+ upstream:
+ https://hg.mozilla.org/mozilla-central/rev/9c57b7cacffc.
+
+-------------------------------------------------------------------
+Fri May 13 00:00:00 CEST 2016 - dsterba@suse.cz
+
+- enable build with PIE and full relro on x86_64 (boo#980384)
+
+-------------------------------------------------------------------
Wed May 4 10:27:43 UTC 2016 - wr@rosenauer.org
- update to Firefox 46.0.1
--- a/MozillaFirefox/MozillaFirefox.spec Tue Jun 07 21:44:20 2016 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec Wed Jun 08 13:45:00 2016 +0200
@@ -18,10 +18,13 @@
# changed with every update
-%define major 46
-%define mainver %major.0.1
+%define major 47
+%define mainver %major.0
%define update_channel release
-%define releasedate 2016050300
+%define releasedate 20160606000000
+
+# PIE, full relro (x86_64 for now)
+%define build_hardened 1
# general build definitions
%if "%{update_channel}" != "aurora"
@@ -41,12 +44,6 @@
%define __find_requires sh %{SOURCE4}
%global provfind sh -c "grep -v '.so' | %__find_provides"
%global __find_provides %provfind
-%if 0%{?suse_version} > 1310
-%define gstreamer_ver 1.0
-%define gstreamer 1
-%else
-%define gstreamer_ver 0.10
-%endif
# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: these are for the openSUSE Firefox builds ONLY. For your own distribution,
# please get your own set of keys.
@@ -78,7 +75,7 @@
BuildRequires: libproxy-devel
BuildRequires: makeinfo
BuildRequires: mozilla-nspr-devel >= 4.12
-BuildRequires: mozilla-nss-devel >= 3.22.3
+BuildRequires: mozilla-nss-devel >= 3.23
BuildRequires: nss-shared-helper-devel
BuildRequires: python-devel
BuildRequires: startup-notification-devel
@@ -87,9 +84,6 @@
BuildRequires: xorg-x11-libXt-devel
BuildRequires: yasm
BuildRequires: zip
-BuildRequires: pkgconfig(gstreamer-%gstreamer_ver)
-BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver)
-BuildRequires: pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
BuildRequires: pkgconfig(libpulse)
%if 0%{?firefox_use_gtk3}
BuildRequires: pkgconfig(glib-2.0)
@@ -97,26 +91,11 @@
BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0
BuildRequires: pkgconfig(gtk+-unix-print-3.0)
%endif
-# libavcodec is already used if available for H.264 but
-# explicitely loaded by FF. For proper H.264 support the
-# openSUSE delivered version is not sufficient but currently
-# prevents even the use of the GStreamer method
-# https://bugzilla.mozilla.org/show_bug.cgi?id=1234157
-# to get H.264 working correctly libavcodec from packman
-# is required. As of today the following recommends will
-# pull in libavcodec52 from packman since it's the only
-# package providing libavcodec but it's not loaded from
-# Firefox as the minimal version is 53
+# libavcodec is required for H.264 support but the
+# openSUSE version is currently not able to play H.264
+# therefore the Packman version is required
+# minimum version of libavcodec is 53
#Recommends: libavcodec
-%if 0%{?gstreamer} == 1
-Requires: libgstreamer-1_0-0
-Recommends: gstreamer-fluendo-mp3
-Recommends: gstreamer-plugins-libav
-%else
-Requires: libgstreamer-0_10-0
-Recommends: gstreamer-0_10-fluendo-mp3
-Recommends: gstreamer-0_10-plugins-ffmpeg
-%endif
Version: %{mainver}
Release: 0
%if "%{name}" == "MozillaFirefox"
@@ -162,13 +141,13 @@
Patch4: mozilla-preferences.patch
Patch5: mozilla-language.patch
Patch6: mozilla-ntlm-full-path.patch
-Patch7: mozilla-repo.patch
Patch8: mozilla-openaes-decl.patch
Patch10: mozilla-no-stdcxx-check.patch
-Patch11: mozilla-libproxy.patch
-Patch12: mozilla-reduce-files-per-UnifiedBindings.patch
-Patch13: mozilla-gtk3_20.patch
-Patch14: mozilla-check_return.patch
+Patch11: mozilla-reduce-files-per-UnifiedBindings.patch
+Patch12: mozilla-gtk3_20.patch
+Patch13: mozilla-check_return.patch
+Patch14: mozilla-gcc6.patch
+Patch15: mozilla-exclude-nametablecpp.patch
# Firefox/browser
Patch101: firefox-kde.patch
Patch102: firefox-no-default-ualocale.patch
@@ -274,15 +253,15 @@
%patch4 -p1
%patch5 -p1
%patch6 -p1
-%patch7 -p1
%patch8 -p1
%patch10 -p1
%patch11 -p1
+%if 0%{?firefox_use_gtk3}
%patch12 -p1
-%if 0%{?firefox_use_gtk3}
+%endif
%patch13 -p1
-%endif
%patch14 -p1
+%patch15 -p1
# Firefox
%patch101 -p1
%patch102 -p1
@@ -301,7 +280,7 @@
exit 1
fi
source %{SOURCE5}
-export MOZ_SOURCE_STAMP=$REV
+export MOZ_SOURCE_CHANGESET=$REV
export SOURCE_REPO=$REPO
export source_repo=$REPO
export MOZ_SOURCE_REPO=$REPO
@@ -318,6 +297,11 @@
# Limit RAM usage during link
export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
+%if 0%{?build_hardened}
+%ifarch x86_64
+export LDFLAGS="${LDFLAGS} -Wl,-z,relro,-z,now"
+%endif
+%endif
%ifarch ppc64 ppc64le
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
@@ -340,13 +324,16 @@
%else
ac_add_options --enable-default-toolkit=cairo-gtk2
%endif
+%if 0%{?build_hardened}
+ac_add_options --enable-pie
+%endif
%ifarch %ix86 %arm
%if 0%{?suse_version} > 1230
ac_add_options --disable-optimize
%endif
%endif
-%ifnarch ppc ppc64 ppc64le aarch64
-ac_add_options --enable-elf-hack
+%ifarch ppc ppc64 ppc64le aarch64 %arm
+ac_add_options --disable-elf-hack
%endif
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
@@ -356,16 +343,12 @@
#ac_add_options --with-system-jpeg # libjpeg-turbo is used internally
#ac_add_options --with-system-png # doesn't work because of missing APNG support
ac_add_options --with-system-zlib
-ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-startup-notification
#ac_add_options --enable-chrome-format=jar
ac_add_options --enable-update-channel=%{update_channel}
-%if 0%{?gstreamer} == 1
-ac_add_options --enable-gstreamer=1.0
-%endif
%if %branding
ac_add_options --enable-official-branding
%endif
@@ -374,7 +357,6 @@
ac_add_options --disable-crashreporter
%endif
%ifarch %arm
-ac_add_options --disable-elf-hack
ac_add_options --with-fpu=vfpv3-d16
ac_add_options --with-float-abi=hard
ac_add_options --with-arch=armv7-a
--- a/MozillaFirefox/create-tar.sh Tue Jun 07 21:44:20 2016 +0200
+++ b/MozillaFirefox/create-tar.sh Wed Jun 08 13:45:00 2016 +0200
@@ -7,8 +7,8 @@
CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_46_0_1_RELEASE"
-VERSION="46.0.1"
+RELEASE_TAG="FIREFOX_47_0_RELEASE"
+VERSION="47.0"
# mozilla
if [ -d mozilla ]; then
--- a/MozillaFirefox/l10n_changesets.txt Tue Jun 07 21:44:20 2016 +0200
+++ b/MozillaFirefox/l10n_changesets.txt Wed Jun 08 13:45:00 2016 +0200
@@ -1,90 +1,92 @@
-ach 658769a76613
+ach 9a0c8e338b70
af 431e02c10881
an fe436c75f71d
ar bbcf06888dc5
as 8313f975ae77
ast 0300b60cd340
-az fd96727d2a26
+az db362112cd4d
be b72077740aac
bg 9f7507dd2b92
-bn-BD fe0a6bb82a2d
+bn-BD 1dac94619464
bn-IN a2ea6b87d80d
-br 95b028350e29
+br e4c45f737a88
bs cfee6f5b1e50
-ca e8ca2d46b4a8
-cs ed6004b91b51
-cy 5bbcbba9b054
-da 324fe068c0b9
-de 217ff3f0054a
-dsb 7cdfb5d9dc5d
+ca 55814ed0a2ee
+cak 244b8a568146
+cs a98b5d34950d
+cy 02a8a09a2a24
+da 1976f45a00fb
+de 69c491b3e8dd
+dsb 60185ee5350d
el 22b959c9a739
-en-GB 36012ab486ad
-en-ZA 1c91f05aae5a
-eo 049c1b065f4c
-es-AR b3647b1d5927
-es-CL e45186f983b9
-es-ES 6fe131a8b07f
-es-MX 4cd511663283
+en-GB ac4d309f11aa
+en-ZA 52a936eeeea1
+eo 9402e7dc1816
+es-AR d3e6fdb0980e
+es-CL 247114b95260
+es-ES 05251e5fad44
+es-MX 198b582408f2
et ecae9df9c92a
-eu 1a65e2c03dda
-fa e5993d9fb76e
+eu 5b00fd411da4
+fa c64ea222eb3a
ff 8373353b43c4
-fi b743718650bc
-fr 7d0bb8edc149
-fy-NL 02ee99ad3f83
-ga-IE 713ecb614f77
-gd e5b86736a5f9
+fi 485cd6730972
+fr 262385fe83a0
+fy-NL d133532b4a76
+ga-IE 2217b283ff59
+gd 664cfe62d15b
gl c869caff337a
gn 65b2894520b6
gu-IN 6245b4309461
-he ee92b661d299
+he 2d122d643e0b
hi-IN bba2a926e4f8
-hr 8502beb4ee68
-hsb c91a11523487
-hu 09bbddfef7ee
-hy-AM 3d7a9324fb25
-id cb8f841d30d2
-is 46c99105eb3b
-it 6063a6d94e13
-ja 5ff86cadfe9a
-ja-JP-mac ab760b3dcdd1
-kk 5a7bd05bf942
+hr 5e68406d5630
+hsb ed7044697b0a
+hu ea25586b7644
+hy-AM 723627d1c0a4
+id d84757c01f40
+is 0b19292ab8a3
+it 9ada32a4f24b
+ja 6374f9dd3854
+ja-JP-mac 28d0060377c0
+kk 58b2a6152124
km 339790840ac1
-kn b23d8fbcf41a
-ko 5f303ed16778
+kn a7e2c93d27ad
+ko 4c2bafb385f3
lij e9113fac3a93
-lt 628e96e62e44
-lv 063998fdecf8
+lt 64c104a758bf
+lv 918ea0cd0aca
mai ce010a305377
mk ffdf2a789185
ml 1b85d75836cd
-mr 553ff31f4edd
+mr 943d62e6e06d
ms 41bbf86ac0d9
-nb-NO 5e6e5710fac9
-nl ac486141ab40
-nn-NO be9e3eeb75fb
+nb-NO bee48c9ea2d4
+nl 3bdea753600d
+nn-NO 1deb8231f357
or febd1b04dbfc
pa-IN 6c5ed1be55fb
-pl 49e141118acb
-pt-BR cd1aef7b5045
-pt-PT 2e4fd2a1f98f
-rm 0a52db6a6117
-ro c6ac34be77b1
-ru 3f0b3c8e19a4
+pl c9e8c3b4977c
+pt-BR ba6e3510ab03
+pt-PT 89d85625e259
+rm 5c20929daf23
+ro b1baa279bda4
+ru 2248b98b11c2
si 03a3b09a2203
-sk 3505a5f99bff
-sl 1e098ab8c27a
+sk b1a81bf66ed4
+sl 6079300745a1
son 3ae9a4ff0453
-sq c24e570a4207
-sr 896d72a0fa21
-sv-SE ea1de38fe731
+sq bc47aefcea37
+sr 93d5749016bd
+sv-SE 711ed419239c
ta f9dbc2cca1fb
te 286ff9885ea2
th d630f05d665f
-tr b751d2d9b6ee
-uk c5cdb9068667
-uz dc28cf99c5cf
+tr 4c05084f5ef2
+uk 6b23f6bb9dcb
+uz 1209fe62df1c
vi 68ce305343a3
-xh f3eb8f92afe8
-zh-CN d73d448f89d6
-zh-TW 44c9950bb3e6
+xh 8466fb6c8797
+zh-CN bedbf795f45e
+zh-TW 8a8fcc28bce0
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-exclude-nametablecpp.patch Wed Jun 08 13:45:00 2016 +0200
@@ -0,0 +1,1 @@
+../mozilla-exclude-nametablecpp.patch
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-gcc6.patch Wed Jun 08 13:45:00 2016 +0200
@@ -0,0 +1,1 @@
+../mozilla-gcc6.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla-libproxy.patch Tue Jun 07 21:44:20 2016 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-libproxy.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla-repo.patch Tue Jun 07 21:44:20 2016 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-repo.patch
\ No newline at end of file
--- a/firefox-kde.patch Tue Jun 07 21:44:20 2016 +0200
+++ b/firefox-kde.patch Wed Jun 08 13:45:00 2016 +0200
@@ -1,11 +1,11 @@
# HG changeset patch
-# Parent fd5629206dcf3f64d85ab177be6bc6076f0f1619
+# Parent 4311c6bdf61ac317bc60b25cd89ff67662a75049
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,1175 @@
+@@ -0,0 +1,1160 @@
+#filter substitution
+<?xml version="1.0"?>
+# -*- Mode: HTML -*-
@@ -77,6 +77,8 @@
+
+<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
+
++<script type="application/javascript" src="chrome://browser/content/downloads/downloads.js"/>
++<script type="application/javascript" src="chrome://browser/content/downloads/indicator.js"/>
+<script type="application/javascript" src="chrome://browser/content/places/editBookmarkOverlay.js"/>
+
+# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the
@@ -188,12 +190,6 @@
+ <vbox>
+ <label id="editBookmarkPanelTitle"/>
+ <description id="editBookmarkPanelDescription"/>
-+ <hbox>
-+ <button id="editBookmarkPanelRemoveButton"
-+ class="editBookmarkPanelHeaderButton"
-+ oncommand="StarUI.removeBookmarkButtonCommand();"
-+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
-+ </hbox>
+ </vbox>
+ </row>
+ <vbox id="editBookmarkPanelContent" flex="1" hidden="true"/>
@@ -204,15 +200,15 @@
+ label="&editBookmark.done.label;"
+ default="true"
+ oncommand="StarUI.panel.hidePopup();"/>
-+ <button id="editBookmarkPanelDeleteButton"
++ <button id="editBookmarkPanelRemoveButton"
+ class="editBookmarkPanelBottomButton"
-+ label="&editBookmark.cancel.label;"
-+ oncommand="StarUI.cancelButtonOnCommand();"/>
++ oncommand="StarUI.removeBookmarkButtonCommand();"
++ accesskey="&editBookmark.removeBookmark.accessKey;"/>
+#else
-+ <button id="editBookmarkPanelDeleteButton"
++ <button id="editBookmarkPanelRemoveButton"
+ class="editBookmarkPanelBottomButton"
-+ label="&editBookmark.cancel.label;"
-+ oncommand="StarUI.cancelButtonOnCommand();"/>
++ oncommand="StarUI.removeBookmarkButtonCommand();"
++ accesskey="&editBookmark.removeBookmark.accessKey;"/>
+ <button id="editBookmarkPanelDoneButton"
+ class="editBookmarkPanelBottomButton"
+ label="&editBookmark.done.label;"
@@ -471,6 +467,46 @@
+
+ <tooltip id="dynamic-shortcut-tooltip"
+ onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
++
++ <menupopup id="SyncedTabsSidebarContext">
++ <menuitem label="&syncedTabs.context.openTab.label;"
++ accesskey="&syncedTabs.context.openTab.accesskey;"
++ id="syncedTabsOpenSelected"/>
++ <menuitem label="&syncedTabs.context.bookmarkSingleTab.label;"
++ accesskey="&syncedTabs.context.bookmarkSingleTab.accesskey;"
++ id="syncedTabsBookmarkSelected"/>
++ <menuseparator/>
++ <menuitem label="&syncSyncNowItem.label;"
++ accesskey="&syncSyncNowItem.accesskey;"
++ id="syncedTabsRefresh"/>
++ </menupopup>
++ <menupopup id="SyncedTabsSidebarTabsFilterContext"
++ class="textbox-contextmenu">
++ <menuitem label="&undoCmd.label;"
++ accesskey="&undoCmd.accesskey;"
++ cmd="cmd_undo"/>
++ <menuseparator/>
++ <menuitem label="&cutCmd.label;"
++ accesskey="&cutCmd.accesskey;"
++ cmd="cmd_cut"/>
++ <menuitem label="©Cmd.label;"
++ accesskey="©Cmd.accesskey;"
++ cmd="cmd_copy"/>
++ <menuitem label="&pasteCmd.label;"
++ accesskey="&pasteCmd.accesskey;"
++ cmd="cmd_paste"/>
++ <menuitem label="&deleteCmd.label;"
++ accesskey="&deleteCmd.accesskey;"
++ cmd="cmd_delete"/>
++ <menuseparator/>
++ <menuitem label="&selectAllCmd.label;"
++ accesskey="&selectAllCmd.accesskey;"
++ cmd="cmd_selectAll"/>
++ <menuseparator/>
++ <menuitem label="&syncSyncNowItem.label;"
++ accesskey="&syncSyncNowItem.accesskey;"
++ id="syncedTabsRefreshFilter"/>
++ </menupopup>
+ </popupset>
+
+#ifdef CAN_DRAW_IN_TITLEBAR
@@ -667,10 +703,6 @@
+ <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;"/>
-+ <!-- NB: the identity-notification-icon is used for persona-based auth and preffed
-+ off by default. It hasn't been updated for some time and liable to being
-+ removed.-->
-+ <image id="identity-notification-icon" class="notification-anchor-icon" role="button"/>
+ <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"
@@ -811,30 +843,6 @@
+ command="Browser:ShowAllBookmarks"
+ key="manBookmarkKb"/>
+ <menuseparator/>
-+ <menuitem id="BMB_subscribeToPageMenuitem"
-+#ifndef XP_MACOSX
-+ class="menuitem-iconic subviewbutton"
-+#else
-+ class="subviewbutton"
-+#endif
-+ label="&subscribeToPageMenuitem.label;"
-+ oncommand="return FeedHandler.subscribeToFeed(null, event);"
-+ onclick="checkForMiddleClick(this, event);"
-+ observes="singleFeedMenuitemState"/>
-+ <menu id="BMB_subscribeToPageMenupopup"
-+#ifndef XP_MACOSX
-+ class="menu-iconic subviewbutton"
-+#else
-+ class="subviewbutton"
-+#endif
-+ label="&subscribeToPageMenupopup.label;"
-+ observes="multipleFeedsMenuState">
-+ <menupopup id="BMB_subscribeToPageSubmenuMenupopup"
-+ onpopupshowing="return FeedHandler.buildFeedList(event.target);"
-+ oncommand="return FeedHandler.subscribeToFeed(null, event);"
-+ onclick="checkForMiddleClick(this, event);"/>
-+ </menu>
-+ <menuseparator/>
+ <menu id="BMB_bookmarksToolbar"
+ class="menu-iconic bookmark-item subviewbutton"
+ label="&personalbarCmd.label;"
@@ -1133,29 +1141,6 @@
+
+ <vbox id="browser-bottombox" layer="true">
+ <notificationbox id="global-notificationbox" notificationside="bottom"/>
-+ <toolbar id="developer-toolbar"
-+ hidden="true">
-+#ifdef XP_MACOSX
-+ <toolbarbutton id="developer-toolbar-closebutton"
-+ class="devtools-closebutton"
-+ oncommand="DeveloperToolbar.hide();"
-+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
-+#endif
-+ <stack class="gclitoolbar-stack-node" flex="1">
-+ <textbox class="gclitoolbar-input-node" rows="1"/>
-+ <hbox class="gclitoolbar-complete-node"/>
-+ </stack>
-+ <toolbarbutton id="developer-toolbar-toolbox-button"
-+ class="developer-toolbar-button"
-+ observes="devtoolsMenuBroadcaster_DevToolbox"
-+ tooltiptext="&devToolbarToolsButton.tooltip;"/>
-+#ifndef XP_MACOSX
-+ <toolbarbutton id="developer-toolbar-closebutton"
-+ class="devtools-closebutton"
-+ oncommand="DeveloperToolbar.hide();"
-+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
-+#endif
-+ </toolbar>
+ </vbox>
+
+ <svg:svg height="0">
@@ -1266,7 +1251,7 @@
diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
--- a/browser/components/preferences/in-content/main.js
+++ b/browser/components/preferences/in-content/main.js
-@@ -19,16 +19,22 @@ var gMainPane = {
+@@ -23,16 +23,22 @@ var gMainPane = {
init: function ()
{
function setEventListener(aId, aEventType, aCallback)
@@ -1287,12 +1272,12 @@
// 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
+ // in case the default changes. On other Windows OS's defaults can also
// be set while the prefs are open.
-@@ -704,16 +710,27 @@ var gMainPane = {
- */
- setDefaultBrowser: function()
- {
+@@ -736,16 +742,27 @@ var gMainPane = {
+ let alwaysCheckPref = document.getElementById("browser.shell.checkDefaultBrowser");
+ alwaysCheckPref.value = true;
+
let shellSvc = getShellService();
if (!shellSvc)
return;
@@ -1300,10 +1285,10 @@
shellSvc.setDefaultBrowser(true, false);
+ if (kde_session == 1) {
+ var shellObj = Components.classes["@mozilla.org/file/local;1"]
-+ .createInstance(Components.interfaces.nsILocalFile);
++ .createInstance(Components.interfaces.nsILocalFile);
+ shellObj.initWithPath("/usr/bin/kwriteconfig");
+ var process = Components.classes["@mozilla.org/process/util;1"]
-+ .createInstance(Components.interfaces.nsIProcess);
++ .createInstance(Components.interfaces.nsIProcess);
+ process.init(shellObj);
+ var args = ["--file", "kdeglobals", "--group", "General", "--key",
+ "BrowserApplication", "firefox"];
@@ -1313,8 +1298,8 @@
Cu.reportError(ex);
return;
}
- let selectedIndex =
- shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
+
+ 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
@@ -1632,7 +1617,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
-@@ -703,16 +703,17 @@
+@@ -697,16 +697,17 @@
@RESPATH@/greprefs.js
@RESPATH@/defaults/autoconfig/prefcalls.js
@RESPATH@/browser/defaults/permissions
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-exclude-nametablecpp.patch Wed Jun 08 13:45:00 2016 +0200
@@ -0,0 +1,50 @@
+
+# HG changeset patch
+# User Jonathan Kew <jkew@mozilla.com>
+# Date 1463581374 -3600
+# Node ID 9c57b7cacffc57ec3919a2cf3b5ce861e0cf3842
+# Parent ea7843420fe518b772c7b259d8ff47193fc5b79e
+Bug 1272647 - Exclude NameTable.cpp from unified compilation because #include <cmath> in other source files causes gcc6 compilation failure. r=bas
+
+diff --git a/gfx/graphite2/src/moz.build b/gfx/graphite2/src/moz.build
+--- a/gfx/graphite2/src/moz.build
++++ b/gfx/graphite2/src/moz.build
+@@ -40,30 +40,35 @@ UNIFIED_SOURCES += [
+ 'gr_features.cpp',
+ 'gr_font.cpp',
+ 'gr_logging.cpp',
+ 'gr_segment.cpp',
+ 'gr_slot.cpp',
+ 'Intervals.cpp',
+ 'json.cpp',
+ 'Justifier.cpp',
+- 'NameTable.cpp',
+ 'Pass.cpp',
+ 'Position.cpp',
+ 'SegCache.cpp',
+ 'SegCacheEntry.cpp',
+ 'SegCacheStore.cpp',
+ 'Segment.cpp',
+ 'Silf.cpp',
+ 'Slot.cpp',
+ 'Sparse.cpp',
+ 'TtfUtil.cpp',
+ 'UtfCodec.cpp',
+ ]
+
++# Excluded from UNIFIED_SOURCES because <cmath> from other files breaks it,
++# see bug 1272647.
++SOURCES += [
++ 'NameTable.cpp',
++]
++
+ # tell graphite2 not to export symbols, we'll be linking it directly with
+ # thebes
+ DEFINES['GRAPHITE2_STATIC'] = True
+
+ # We allow warnings for third-party code that can be updated from upstream.
+ ALLOW_COMPILER_WARNINGS = True
+
+ FINAL_LIBRARY = 'gkmedias'
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-gcc6.patch Wed Jun 08 13:45:00 2016 +0200
@@ -0,0 +1,76 @@
+
+# HG changeset patch
+# User Mike Hommey <mh+mozilla@glandium.org>
+# Date 1457596445 -32400
+# Node ID 55212130f19da3079167a6b0a5a0ed6689c9a71d
+# Parent 27c94617d7064d566c24a42e11cd4c7ef725923d
+Bug 1245076 - Don't include mozalloc.h from the cstdlib wrapper. r=froydnj
+
+Our STL wrappers do various different things, one of which is including
+mozalloc.h for infallible operator new. mozalloc.h includes stdlib.h,
+which, in libstdc++ >= 6 is now itself a wrapper around cstdlib, which
+circles back to our STL wrapper.
+
+But of the things our STL wrappers do, including mozalloc.h is not one
+that is necessary for cstdlib. So skip including mozalloc.h in our
+cstdlib wrapper.
+
+Additionally, some C++ sources (in media/mtransport) are including
+headers in an extern "C" block, which end up including stdlib.h, which
+ends up including cstdlib because really, this is all C++, and our
+wrapper pre-includes <new> for mozalloc.h, which fails because templates
+don't work inside extern "C". So, don't pre-include <new> when we're not
+including mozalloc.h.
+
+
+diff --git a/config/gcc-stl-wrapper.template.h b/config/gcc-stl-wrapper.template.h
+--- a/config/gcc-stl-wrapper.template.h
++++ b/config/gcc-stl-wrapper.template.h
+@@ -12,33 +12,40 @@
+ // compiling ObjC.
+ #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS)
+ # error "STL code can only be used with -fno-exceptions"
+ #endif
+
+ // Silence "warning: #include_next is a GCC extension"
+ #pragma GCC system_header
+
++// Don't include mozalloc for cstdlib. See bug 1245076.
++#ifndef moz_dont_include_mozalloc_for_cstdlib
++# define moz_dont_include_mozalloc_for_cstdlib
++#endif
++#ifndef moz_dont_include_mozalloc_for_${HEADER}
+ // mozalloc.h wants <new>; break the cycle by always explicitly
+ // including <new> here. NB: this is a tad sneaky. Sez the gcc docs:
+ //
+ // `#include_next' does not distinguish between <file> and "file"
+ // inclusion, nor does it check that the file you specify has the
+ // same name as the current file. It simply looks for the file
+ // named, starting with the directory in the search path after the
+ // one where the current file was found.
+-#include_next <new>
++# include_next <new>
+
+ // See if we're in code that can use mozalloc. NB: this duplicates
+ // code in nscore.h because nscore.h pulls in prtypes.h, and chromium
+ // can't build with that being included before base/basictypes.h.
+-#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC)
+-# include "mozilla/mozalloc.h"
+-#else
+-# error "STL code can only be used with infallible ::operator new()"
++# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC)
++# include "mozilla/mozalloc.h"
++# else
++# error "STL code can only be used with infallible ::operator new()"
++# endif
++
+ #endif
+
+ #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG)
+ // Enable checked iterators and other goodies
+ //
+ // FIXME/bug 551254: gcc's debug STL implementation requires -frtti.
+ // Figure out how to resolve this with -fno-rtti. Maybe build with
+ // -frtti in DEBUG builds?
+
+
--- a/mozilla-kde.patch Tue Jun 07 21:44:20 2016 +0200
+++ b/mozilla-kde.patch Wed Jun 08 13:45:00 2016 +0200
@@ -1,5 +1,5 @@
# HG changeset patch
-# Parent 61cdc9af8ceaf75083e751e0d6497feddc26f7ba
+# Parent f2726ebfae7cdded8e7ca6030829b0a3fae4e438
Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Author: Lubos Lunak <lunak@suse.com>
@@ -27,7 +27,7 @@
#include "prefread.h"
#include "prefapi_private_data.h"
-@@ -1135,16 +1136,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
+@@ -1138,16 +1139,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
static nsresult pref_LoadPrefsInDirList(const char *listId)
{
@@ -62,7 +62,7 @@
return NS_OK;
bool hasMore;
-@@ -1160,17 +1179,17 @@ static nsresult pref_LoadPrefsInDirList(
+@@ -1163,17 +1182,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);
-@@ -1264,24 +1283,36 @@ static nsresult pref_InitInitialObjects(
+@@ -1267,24 +1286,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)
@@ -325,7 +325,7 @@
+ xmlns="http://www.mozilla.org/xbl"
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:xbl="http://www.mozilla.org/xbl">
-+
++
+ <binding id="dialog" extends="chrome://global/content/bindings/general.xml#root-element">
+ <resources>
+ <stylesheet src="chrome://global/skin/dialog.css"/>
@@ -334,10 +334,10 @@
+ <xul:vbox class="box-inherit dialog-content-box" flex="1">
+ <children/>
+ </xul:vbox>
-+
++
+ <xul:hbox class="dialog-button-box" anonid="buttons"
+ xbl:inherits="pack=buttonpack,align=buttonalign,dir=buttondir,orient=buttonorient"
-+#ifdef XP_UNIX_GNOME
++#ifdef XP_UNIX
+ >
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
@@ -349,12 +349,12 @@
+#elif XP_UNIX
+ >
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
-+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
-+ <xul:spacer anonid="spacer" flex="1"/>
-+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
-+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
-+ <xul:button dlgtype="cancel" class="dialog-button"/>
-+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
++ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
++ <xul:spacer anonid="spacer" flex="1"/>
++ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
++ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
++ <xul:button dlgtype="cancel" class="dialog-button"/>
++ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+#else
+ pack="end">
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
@@ -403,7 +403,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="cancelDialog">
+ <body>
+ <![CDATA[
@@ -411,7 +411,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="getButton">
+ <parameter name="aDlgType"/>
+ <body>
@@ -462,7 +462,7 @@
+ <![CDATA[
+ var xOffset = screen.availWidth/2 - window.outerWidth/2;
+ var yOffset = screen.availHeight/2 - window.outerHeight/2; //(opener.outerHeight *2)/10;
-+
++
+ xOffset = xOffset > 0 ? xOffset : 0;
+ yOffset = yOffset > 0 ? yOffset : 0;
+ window.moveTo(xOffset, yOffset);
@@ -534,7 +534,7 @@
+ setTimeout(focusInit, 0);
+ ]]>
+ </body>
-+ </method>
++ </method>
+
+ <property name="mStrBundle">
+ <getter>
@@ -549,7 +549,7 @@
+ return this._mStrBundle;
+ ]]></getter>
+ </property>
-+
++
+ <method name="_configureButtons">
+ <parameter name="aButtons"/>
+ <body>
@@ -621,7 +621,7 @@
+
+ // ensure that hitting enter triggers the default button command
+ this.defaultButton = this.defaultButton;
-+
++
+ // if there is a special button configuration, use it
+ if (aButtons) {
+ // expect a comma delimited list of dlgtype values
@@ -634,7 +634,7 @@
+ shown[list[i].replace(/ /g, "")] = true;
+
+ // hide/show the buttons we want
-+ for (dlgtype in buttons)
++ for (dlgtype in buttons)
+ buttons[dlgtype].hidden = !shown[dlgtype];
+
+ let { AppConstants } =
@@ -682,7 +682,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="_doButtonCommand">
+ <parameter name="aDlgType"/>
+ <body>
@@ -706,17 +706,17 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="_fireButtonEvent">
+ <parameter name="aDlgType"/>
+ <body>
+ <![CDATA[
+ var event = document.createEvent("Events");
+ event.initEvent("dialog"+aDlgType, true, true);
-+
++
+ // handle dom event handlers
+ var noCancel = this.dispatchEvent(event);
-+
++
+ // handle any xml attribute event handlers
+ var handler = this.getAttribute("ondialog"+aDlgType);
+ if (handler != "") {
@@ -725,7 +725,7 @@
+ if (returned == false)
+ noCancel = false;
+ }
-+
++
+ return noCancel;
+ ]]>
+ </body>
@@ -746,7 +746,7 @@
+ </method>
+
+ </implementation>
-+
++
+ <handlers>
+ <handler event="keypress" keycode="VK_RETURN"
+ group="system" action="this._hitEnter(event);"/>
@@ -782,7 +782,7 @@
new file mode 100644
--- /dev/null
+++ b/toolkit/content/widgets/preferences-kde.xml
-@@ -0,0 +1,1406 @@
+@@ -0,0 +1,1408 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE bindings [
@@ -849,7 +849,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="fireChangedEvent">
+ <parameter name="aPreference"/>
+ <body>
@@ -866,7 +866,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <field name="service">
+ Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefService);
@@ -916,11 +916,11 @@
+ .addObserver(this.name, this.preferences, false);
+ // In non-instant apply mode, we must try and use the last saved state
+ // from any previous opens of a child dialog instead of the value from
-+ // preferences, to pick up any edits a user may have made.
++ // preferences, to pick up any edits a user may have made.
+
+ var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
+ .getService(Components.interfaces.nsIScriptSecurityManager);
-+ if (this.preferences.type == "child" &&
++ if (this.preferences.type == "child" &&
+ !this.instantApply && window.opener &&
+ secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
+ var pdoc = window.opener.document;
@@ -961,13 +961,13 @@
+ <setter>
+ if (val == this.name)
+ return val;
-+
++
+ this.preferences.rootBranchInternal
+ .removeObserver(this.name, this.preferences);
+ this.setAttribute('name', val);
+ this.preferences.rootBranchInternal
+ .addObserver(val, this.preferences, false);
-+
++
+ return val;
+ </setter>
+ </property>
@@ -994,20 +994,20 @@
+ </body>
+ </method>
+ <property name="value" onget="return this._value" onset="return this._setValue(val);"/>
-+
++
+ <property name="locked">
+ <getter>
+ return this.preferences.rootBranch.prefIsLocked(this.name);
+ </getter>
+ </property>
-+
++
+ <property name="disabled">
+ <getter>
+ return this.getAttribute("disabled") == "true";
+ </getter>
+ <setter>
+ <![CDATA[
-+ if (val)
++ if (val)
+ this.setAttribute("disabled", "true");
+ else
+ this.removeAttribute("disabled");
@@ -1018,24 +1018,24 @@
+ var elements = document.getElementsByAttribute("preference", this.id);
+ for (var i = 0; i < elements.length; ++i) {
+ elements[i].disabled = val;
-+
++
+ var labels = document.getElementsByAttribute("control", elements[i].id);
+ for (var j = 0; j < labels.length; ++j)
+ labels[j].disabled = val;
+ }
-+
++
+ return val;
+ ]]>
+ </setter>
+ </property>
-+
++
+ <property name="tabIndex">
+ <getter>
+ return parseInt(this.getAttribute("tabindex"));
+ </getter>
+ <setter>
+ <![CDATA[
-+ if (val)
++ if (val)
+ this.setAttribute("tabindex", val);
+ else
+ this.removeAttribute("tabindex");
@@ -1046,12 +1046,12 @@
+ var elements = document.getElementsByAttribute("preference", this.id);
+ for (var i = 0; i < elements.length; ++i) {
+ elements[i].tabIndex = val;
-+
++
+ var labels = document.getElementsByAttribute("control", elements[i].id);
+ for (var j = 0; j < labels.length; ++j)
+ labels[j].tabIndex = val;
+ }
-+
++
+ return val;
+ ]]>
+ </setter>
@@ -1065,7 +1065,7 @@
+ ]]>
+ </getter>
+ </property>
-+
++
+ <method name="reset">
+ <body>
+ // defer reset until preference update
@@ -1073,7 +1073,7 @@
+ </body>
+ </method>
+
-+ <field name="_useDefault">false</field>
++ <field name="_useDefault">false</field>
+ <property name="defaultValue">
+ <getter>
+ <![CDATA[
@@ -1084,27 +1084,27 @@
+ ]]>
+ </getter>
+ </property>
-+
++
+ <property name="_branch">
+ <getter>
+ return this._useDefault ? this.preferences.defaultBranch : this.preferences.rootBranch;
+ </getter>
+ </property>
-+
++
+ <field name="batching">false</field>
-+
++
+ <method name="_reportUnknownType">
+ <body>
+ <![CDATA[
+ var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
+ .getService(Components.interfaces.nsIConsoleService);
-+ var msg = "<preference> with id='" + this.id + "' and name='" +
++ var msg = "<preference> with id='" + this.id + "' and name='" +
+ this.name + "' has unknown type '" + this.type + "'.";
+ consoleService.logStringMessage(msg);
+ ]]>
+ </body>
+ </method>
-+
++
+ <property name="valueFromPreferences">
+ <getter>
+ <![CDATA[
@@ -1189,7 +1189,7 @@
+ if (!lf.exists())
+ lf.initWithPath(val);
+ }
-+ else
++ else
+ lf = val.QueryInterface(Components.interfaces.nsILocalFile);
+ this.preferences.rootBranch
+ .setComplexValue(this.name, Components.interfaces.nsILocalFile, lf);
@@ -1203,7 +1203,7 @@
+ ]]>
+ </setter>
+ </property>
-+
++
+ <method name="setElementValue">
+ <parameter name="aElement"/>
+ <body>
@@ -1220,7 +1220,7 @@
+ try {
+ var event = document.createEvent("Events");
+ event.initEvent("syncfrompreference", true, true);
-+ var f = new Function ("event",
++ var f = new Function ("event",
+ aElement.getAttribute("onsyncfrompreference"));
+ rv = f.call(aElement, event);
+ }
@@ -1228,20 +1228,22 @@
+ Components.utils.reportError(e);
+ }
+ }
-+ var val = rv !== undefined ? rv : (this.instantApply ? this.valueFromPreferences : this.value);
++ var val = rv;
++ if (val === undefined)
++ val = this.instantApply ? this.valueFromPreferences : this.value;
+ // if the preference is marked for reset, show default value in UI
+ if (val === undefined)
+ val = this.defaultValue;
+
+ /**
-+ * Initialize a UI element property with a value. Handles the case
++ * Initialize a UI element property with a value. Handles the case
+ * where an element has not yet had a XBL binding attached for it and
+ * the property setter does not yet exist by setting the same attribute
-+ * on the XUL element using DOM apis and assuming the element's
-+ * constructor or property getters appropriately handle this state.
++ * on the XUL element using DOM apis and assuming the element's
++ * constructor or property getters appropriately handle this state.
+ */
+ function setValue(element, attribute, value) {
-+ if (attribute in element)
++ if (attribute in element)
+ element[attribute] = value;
+ else
+ element.setAttribute(attribute, value);
@@ -1273,19 +1275,19 @@
+ try {
+ var event = document.createEvent("Events");
+ event.initEvent("synctopreference", true, true);
-+ var f = new Function ("event",
++ var f = new Function ("event",
+ aElement.getAttribute("onsynctopreference"));
+ var rv = f.call(aElement, event);
-+ if (rv !== undefined)
++ if (rv !== undefined)
+ return rv;
+ }
+ catch (e) {
+ Components.utils.reportError(e);
+ }
+ }
-+
++
+ /**
-+ * Read the value of an attribute from an element, assuming the
++ * Read the value of an attribute from an element, assuming the
+ * attribute is a property on the element's node API. If the property
+ * is not present in the API, then assume its value is contained in
+ * an attribute, as is the case before a binding has been attached.
@@ -1313,7 +1315,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="isElementEditable">
+ <parameter name="aElement"/>
+ <body>
@@ -1329,26 +1331,26 @@
+ return true;
+ }
+ return aElement.getAttribute("preference-editable") == "true";
-+ ]]>
++ ]]>
+ </body>
+ </method>
-+
++
+ <method name="updateElements">
+ <body>
+ <![CDATA[
+ if (!this.id)
+ return;
+
-+ // This "change" event handler tracks changes made to preferences by
-+ // sources other than the user in this window.
++ // This "change" event handler tracks changes made to preferences by
++ // sources other than the user in this window.
+ var elements = document.getElementsByAttribute("preference", this.id);
-+ for (var i = 0; i < elements.length; ++i)
++ for (var i = 0; i < elements.length; ++i)
+ this.setElementValue(elements[i]);
+ ]]>
+ </body>
+ </method>
+ </implementation>
-+
++
+ <handlers>
+ <handler event="change">
+ this.updateElements();
@@ -1423,7 +1425,7 @@
+ // no buttons on Mac except Help
+ cancelButton.hidden = true;
+ // Move Help button to the end
-+ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
++ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
+ // Also, don't fire onDialogAccept on enter
+ acceptButton.disabled = true;
+ } else {
@@ -1500,26 +1502,26 @@
+ onget="return document.getAnonymousElementByAttribute(this, 'class', 'paneDeckContainer');"/>
+ <property name="_selector"
+ onget="return document.getAnonymousElementByAttribute(this, 'anonid', 'selector');"/>
-+ <property name="lastSelected"
++ <property name="lastSelected"
+ onget="return this.getAttribute('lastSelected');">
+ <setter>
-+ this.setAttribute("lastSelected", val);
++ this.setAttribute("lastSelected", val);
+ document.persist(this.id, "lastSelected");
+ return val;
-+ </setter>
++ </setter>
+ </property>
+ <property name="currentPane"
+ onset="return this._currentPane = val;">
+ <getter>
+ if (!this._currentPane)
+ this._currentPane = this.preferencePanes[0];
-+
++
+ return this._currentPane;
-+ </getter>
++ </getter>
+ </property>
+ <field name="_currentPane">null</field>
-+
-+
++
++
+ <method name="_makePaneButton">
+ <parameter name="aPaneElement"/>
+ <body>
@@ -1551,16 +1553,16 @@
+ {
+ this._pane = aPane;
+ }
-+ OverlayLoadObserver.prototype = {
++ OverlayLoadObserver.prototype = {
+ _outer: this,
-+ observe: function (aSubject, aTopic, aData)
++ observe: function (aSubject, aTopic, aData)
+ {
+ this._pane.loaded = true;
+ this._outer._fireEvent("paneload", this._pane);
+ this._outer._selectPane(this._pane);
+ }
+ };
-+
++
+ var obs = new OverlayLoadObserver(aPaneElement);
+ document.loadOverlay(aPaneElement.src, obs);
+ }
@@ -1569,13 +1571,13 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="_fireEvent">
+ <parameter name="aEventName"/>
+ <parameter name="aTarget"/>
+ <body>
+ <![CDATA[
-+ // Panel loaded, synthesize a load event.
++ // Panel loaded, synthesize a load event.
+ try {
+ var event = document.createEvent("Events");
+ event.initEvent(aEventName, true, true);
@@ -1586,16 +1588,16 @@
+ if (rv == false)
+ cancel = true;
+ }
-+ return !cancel;
++ return !cancel;
+ }
-+ catch (e) {
++ catch (e) {
+ Components.utils.reportError(e);
+ }
+ return false;
+ ]]>
+ </body>
+ </method>
-+
++
+ <field name="_initialized">false</field>
+ <method name="_selectPane">
+ <parameter name="aPaneElement"/>
@@ -1614,13 +1616,13 @@
+ else
+ helpButton.hidden = true;
+
-+ // Find this pane's index in the deck and set the deck's
++ // Find this pane's index in the deck and set the deck's
+ // selectedIndex to that value to switch to it.
+ var prefpanes = this.preferencePanes;
+ for (var i = 0; i < prefpanes.length; ++i) {
+ if (prefpanes[i] == aPaneElement) {
+ this._paneDeck.selectedIndex = i;
-+
++
+ if (this.type != "child") {
+ if (aPaneElement.hasAttribute("flex") && this._shouldAnimate &&
+ prefpanes.length > 1)
@@ -1673,7 +1675,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <property name="_shouldAnimate">
+ <getter>
+ <![CDATA[
@@ -1690,7 +1692,7 @@
+ ]]>
+ </getter>
+ </property>
-+
++
+ <method name="animate">
+ <parameter name="aOldPane"/>
+ <parameter name="aNewPane"/>
@@ -1698,7 +1700,7 @@
+ <![CDATA[
+ // if we are already resizing, use currentHeight
+ var oldHeight = this._currentHeight ? this._currentHeight : aOldPane.contentHeight;
-+
++
+ this._multiplier = aNewPane.contentHeight > oldHeight ? 1 : -1;
+ var sizeDelta = Math.abs(oldHeight - aNewPane.contentHeight);
+ this._animateRemainder = sizeDelta % this._animateIncrement;
@@ -1707,7 +1709,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <property name="_sizeIncrement">
+ <getter>
+ <![CDATA[
@@ -1717,7 +1719,7 @@
+ if ((this._multiplier > 0 && this._currentHeight >= lastSelectedPane.contentHeight) ||
+ (this._multiplier < 0 && this._currentHeight <= lastSelectedPane.contentHeight))
+ return 0;
-+
++
+ if ((this._multiplier > 0 && newHeight > lastSelectedPane.contentHeight) ||
+ (this._multiplier < 0 && newHeight < lastSelectedPane.contentHeight))
+ increment = this._animateRemainder * this._multiplier;
@@ -1725,14 +1727,14 @@
+ ]]>
+ </getter>
+ </property>
-+
++
+ <method name="notify">
+ <parameter name="aTimer"/>
+ <body>
+ <![CDATA[
+ if (!document)
+ aTimer.cancel();
-+
++
+ if (aTimer == this._animateTimer) {
+ var increment = this._sizeIncrement;
+ if (increment != 0) {
@@ -1756,39 +1758,39 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="_setUpAnimationTimer">
+ <parameter name="aStartHeight"/>
+ <body>
+ <![CDATA[
-+ if (!this._animateTimer)
++ if (!this._animateTimer)
+ this._animateTimer = Components.classes["@mozilla.org/timer;1"]
+ .createInstance(Components.interfaces.nsITimer);
+ else
+ this._animateTimer.cancel();
+ this._currentHeight = aStartHeight;
-+
-+ this._animateTimer.initWithCallback(this, this._animateDelay,
++
++ this._animateTimer.initWithCallback(this, this._animateDelay,
+ Components.interfaces.nsITimer.TYPE_REPEATING_SLACK);
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="_setUpFadeTimer">
+ <body>
+ <![CDATA[
-+ if (!this._fadeTimer)
++ if (!this._fadeTimer)
+ this._fadeTimer = Components.classes["@mozilla.org/timer;1"]
+ .createInstance(Components.interfaces.nsITimer);
+ else
+ this._fadeTimer.cancel();
-+
-+ this._fadeTimer.initWithCallback(this, this._fadeDelay,
++
++ this._fadeTimer.initWithCallback(this, this._fadeDelay,
+ Components.interfaces.nsITimer.TYPE_REPEATING_SLACK);
+ ]]>
+ </body>
+ </method>
-+
++
+ <field name="_animateTimer">null</field>
+ <field name="_fadeTimer">null</field>
+ <field name="_animateDelay">15</field>
@@ -1804,13 +1806,13 @@
+ <body>
+ <![CDATA[
+ this.appendChild(aPaneElement);
-+
++
+ // Set up pane button
+ this._makePaneButton(aPaneElement);
+ ]]>
+ </body>
+ </method>
-+
++
+ <method name="openSubDialog">
+ <parameter name="aURL"/>
+ <parameter name="aFeatures"/>
@@ -1819,7 +1821,7 @@
+ return openDialog(aURL, "", "modal,centerscreen,resizable=no" + (aFeatures != "" ? ("," + aFeatures) : ""), aParams);
+ </body>
+ </method>
-+
++
+ <method name="openWindow">
+ <parameter name="aWindowType"/>
+ <parameter name="aURL"/>
@@ -1856,29 +1858,29 @@
+ .getService(Components.interfaces.nsIScriptSecurityManager);
+ if (this.type == "child" && window.opener &&
+ secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
-+ var psvc = Components.classes["@mozilla.org/preferences-service;1"]
++ let psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
+ var pdocEl = window.opener.document.documentElement;
+ if (pdocEl.instantApply) {
-+ var panes = this.preferencePanes;
-+ for (var i = 0; i < panes.length; ++i)
++ let panes = this.preferencePanes;
++ for (let i = 0; i < panes.length; ++i)
+ panes[i].writePreferences(true);
+ }
+ else {
+ // Clone all the preferences elements from the child document and
-+ // insert them into the pane collection of the parent.
++ // insert them into the pane collection of the parent.
+ var pdoc = window.opener.document;
+ if (pdoc.documentElement.localName == "prefwindow") {
+ var currentPane = pdoc.documentElement.currentPane;
+ var id = window.location.href + "#childprefs";
+ var childPrefs = pdoc.getElementById(id);
+ if (!childPrefs) {
-+ var childPrefs = pdoc.createElement("preferences");
++ childPrefs = pdoc.createElement("preferences");
+ currentPane.appendChild(childPrefs);
+ childPrefs.id = id;
+ }
-+ var panes = this.preferencePanes;
-+ for (var i = 0; i < panes.length; ++i) {
++ let panes = this.preferencePanes;
++ for (let i = 0; i < panes.length; ++i) {
+ var preferences = panes[i].preferences;
+ for (var j = 0; j < preferences.length; ++j) {
+ // Try to find a preference element for the same preference.
@@ -1909,11 +1911,11 @@
+ }
+ }
+ else {
-+ var panes = this.preferencePanes;
++ let panes = this.preferencePanes;
+ for (var i = 0; i < panes.length; ++i)
+ panes[i].writePreferences(false);
+
-+ var psvc = Components.classes["@mozilla.org/preferences-service;1"]
++ let psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefService);
+ psvc.savePrefFile(null);
+ }
@@ -1955,7 +1957,7 @@
+ </handler>
+ </handlers>
+ </binding>
-+
++
+ <binding id="prefpane">
+ <resources>
+ <stylesheet src="chrome://global/skin/preferences.css"/>
@@ -1990,20 +1992,20 @@
+ ]]>
+ </body>
+ </method>
-+
-+ <property name="src"
++
++ <property name="src"
+ onget="return this.getAttribute('src');"
+ onset="this.setAttribute('src', val); return val;"/>
-+ <property name="selected"
++ <property name="selected"
+ onget="return this.getAttribute('selected') == 'true';"
+ onset="this.setAttribute('selected', val); return val;"/>
-+ <property name="image"
++ <property name="image"
+ onget="return this.getAttribute('image');"
+ onset="this.setAttribute('image', val); return val;"/>
-+ <property name="label"
++ <property name="label"
+ onget="return this.getAttribute('label');"
+ onset="this.setAttribute('label', val); return val;"/>
-+
++
+ <property name="preferenceElements"
+ onget="return this.getElementsByAttribute('preference', '*');"/>
+ <property name="preferences"
@@ -2027,30 +2029,30 @@
+ </property>
+
+ <field name="_loaded">false</field>
-+ <property name="loaded"
++ <property name="loaded"
+ onget="return !this.src ? true : this._loaded;"
+ onset="this._loaded = val; return val;"/>
-+
++
+ <method name="preferenceForElement">
+ <parameter name="aElement"/>
+ <body>
+ return document.getElementById(aElement.getAttribute("preference"));
+ </body>
+ </method>
-+
++
+ <method name="getPreferenceElement">
+ <parameter name="aStartElement"/>
+ <body>
+ <![CDATA[
+ var temp = aStartElement;
-+ while (temp && temp.nodeType == Node.ELEMENT_NODE &&
++ while (temp && temp.nodeType == Node.ELEMENT_NODE &&
+ !temp.hasAttribute("preference"))
+ temp = temp.parentNode;
+ return temp.nodeType == Node.ELEMENT_NODE ? temp : aStartElement;
+ ]]>
+ </body>
+ </method>
-+
++
+ <field name="DeferredTask" readonly="true">
+ let targetObj = {};
+ Components.utils.import("resource://gre/modules/DeferredTask.jsm", targetObj);
@@ -2106,7 +2108,7 @@
+ ]]>
+ </body>
+ </method>
-+
++
+ <property name="contentHeight">
+ <getter>
+ var targetHeight = parseInt(window.getComputedStyle(this._content, "").height);
@@ -2121,25 +2123,25 @@
+ </implementation>
+ <handlers>
+ <handler event="command">
-+ // This "command" event handler tracks changes made to preferences by
++ // This "command" event handler tracks changes made to preferences by
+ // the user in this window.
+ if (event.sourceEvent)
+ event = event.sourceEvent;
+ this.userChangedValue(event.target);
+ </handler>
+ <handler event="select">
-+ // This "select" event handler tracks changes made to colorpicker
++ // This "select" event handler tracks changes made to colorpicker
+ // preferences by the user in this window.
-+ if (event.target.localName == "colorpicker")
++ if (event.target.localName == "colorpicker")
+ this.userChangedValue(event.target);
+ </handler>
+ <handler event="change">
-+ // This "change" event handler tracks changes made to preferences by
-+ // the user in this window.
++ // This "change" event handler tracks changes made to preferences by
++ // the user in this window.
+ this.userChangedValue(event.target);
+ </handler>
+ <handler event="input">
-+ // This "input" event handler tracks changes made to preferences by
++ // This "input" event handler tracks changes made to preferences by
+ // the user in this window.
+ this.userChangedValue(event.target);
+ </handler>
@@ -2156,11 +2158,11 @@
+ dump("*** No preference found for " + elements[i].getAttribute("preference") + "\n");
+ }
+ }
-+ ]]>
++ ]]>
+ </handler>
+ </handlers>
+ </binding>
-+
++
+ <binding id="panebutton" role="xul:listitem"
+ extends="chrome://global/content/bindings/radio.xml#radio">
+ <resources>
--- a/mozilla-libproxy.patch Tue Jun 07 21:44:20 2016 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-# HG changeset patch
-# User Wolfgang Rosenauer <wr@rosenauer.org>
-# Parent 95b421ca30846be2b5d7230d72263e6dff042d0b
-Bug 1220399 - building with libproxy support fails
-
-diff --git a/toolkit/system/unixproxy/nsLibProxySettings.cpp b/toolkit/system/unixproxy/nsLibProxySettings.cpp
---- a/toolkit/system/unixproxy/nsLibProxySettings.cpp
-+++ b/toolkit/system/unixproxy/nsLibProxySettings.cpp
-@@ -2,16 +2,17 @@
- /* 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
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- #include "nsISystemProxySettings.h"
- #include "mozilla/ModuleUtils.h"
- #include "nsIServiceManager.h"
- #include "nsIURI.h"
-+#include "nsNetCID.h"
- #include "nsString.h"
- #include "nsCOMPtr.h"
- #include "nspr.h"
-
- extern "C" {
- #include <proxy.h>
- }
-
--- a/mozilla-pkgconfig.patch Tue Jun 07 21:44:20 2016 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-From: Wolfgang Rosenauer
-Subject: pkgconfig tuning
-
-diff --git a/xulrunner/installer/Makefile.in b/xulrunner/installer/Makefile.in
---- a/xulrunner/installer/Makefile.in
-+++ b/xulrunner/installer/Makefile.in
-@@ -33,16 +33,19 @@ include $(topsrcdir)/config/rules.mk
-
- INSTALL_SDK = 1
-
- include $(topsrcdir)/toolkit/mozapps/installer/signing.mk
- include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
-
- # Add pkg-config files to the install:: target
-
-+# the apilibdir always ends with 1.9 as every patch update will provide a link
-+apilibdir = $(dir $(installdir))xulrunner-18
-+
- pkg_config_files = \
- libxul.pc \
- libxul-embedding.pc \
- mozilla-js.pc \
- mozilla-plugin.pc \
- $(NULL)
-
- ifdef MOZ_NATIVE_NSPR
-@@ -70,16 +73,17 @@ pkg_config_files += mozilla-nss.pc
- endif
-
- %.pc: $(srcdir)/%.pc.in $(GLOBAL_DEPS)
- cat $< | sed \
- -e "s|%prefix%|$(prefix)|" \
- -e "s|%includedir%|$(includedir)|" \
- -e "s|%idldir%|$(idldir)|" \
- -e "s|%sdkdir%|$(sdkdir)|" \
-+ -e "s|%libdir%|$(apilibdir)|" \
- -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
- -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
- -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
- -e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
- -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \
- -e "s|%NSPR_NAME%|$(NSPR_NAME)|" \
- -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" \
- -e "s|%MOZ_XUL_LINK%|$(MOZ_XUL_LINK)|" \
-diff --git a/xulrunner/installer/libxul-embedding.pc.in b/xulrunner/installer/libxul-embedding.pc.in
---- a/xulrunner/installer/libxul-embedding.pc.in
-+++ b/xulrunner/installer/libxul-embedding.pc.in
-@@ -1,10 +1,11 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
- includedir=%includedir%
- idldir=%idldir%
-
- Name: libxul-embedding
- Description: Static library for version-independent embedding of the Mozilla runtime
- Version: %MOZILLA_VERSION%
--Libs: -L${sdkdir}/lib -lxpcomglue -ldl
-+Requires: %NSPR_NAME% >= %NSPR_VERSION%
-+Libs: -L${sdkdir}/sdk/lib -lxpcomglue -ldl
- Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
-diff --git a/xulrunner/installer/libxul.pc.in b/xulrunner/installer/libxul.pc.in
---- a/xulrunner/installer/libxul.pc.in
-+++ b/xulrunner/installer/libxul.pc.in
-@@ -1,10 +1,11 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
- idldir=%idldir%
-
- Name: libxul
- Description: The Mozilla Runtime and Embedding Engine
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
- Libs: -L${sdkdir}/lib %MOZ_XUL_LINK%
-diff --git a/xulrunner/installer/mozilla-js.pc.in b/xulrunner/installer/mozilla-js.pc.in
---- a/xulrunner/installer/mozilla-js.pc.in
-+++ b/xulrunner/installer/mozilla-js.pc.in
-@@ -1,10 +1,11 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
-
- Name: JavaScript
- Description: The Mozilla JavaScript Library
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
--Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
-+Libs: -Wl,-rpath,${libdir} -L${sdkdir}/lib %MOZ_JS_LINK%
- Cflags: -I${includedir} -DXP_UNIX
--- a/mozilla-repo.patch Tue Jun 07 21:44:20 2016 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-# HG changeset patch
-# Parent 80b6464bd883864fce57e8748010869af1be69e9
-# Parent 808d61f33afa6fb9921d3a7f994a71cf2dd9331a
-
-diff --git a/toolkit/mozapps/installer/package-name.mk b/toolkit/mozapps/installer/package-name.mk
---- a/toolkit/mozapps/installer/package-name.mk
-+++ b/toolkit/mozapps/installer/package-name.mk
-@@ -147,24 +147,24 @@ else
- BUILDID = $(shell $(PYTHON) $(MOZILLA_DIR)/config/printconfigsetting.py $(DIST)/bin/platform.ini Build BuildID)
- endif
-
- ifndef INCLUDED_RCS_MK
- USE_RCS_MK := 1
- include $(MOZILLA_DIR)/config/makefiles/makeutils.mk
- endif
-
--MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{node}\n" 2>/dev/null))
-+#MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{node}\n" 2>/dev/null))
-
- ###########################################################################
- # bug: 746277 - preserve existing functionality.
- # MOZILLA_DIR="": cd $(SPACE); hg # succeeds if ~/.hg exists
- ###########################################################################
- ifdef MOZ_INCLUDE_SOURCE_INFO
--MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
-+#MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
- endif
-
- MOZ_SOURCESTAMP_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).txt
- MOZ_BUILDINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).json
- MOZ_BUILDID_INFO_TXT_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME)_info.txt
- MOZ_MOZINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).mozinfo.json
- MOZ_TEST_PACKAGES_FILE = $(DIST)/$(PKG_PATH)/test_packages.json
- MOZ_TEST_PACKAGES_FILE_TC = $(DIST)/$(PKG_PATH)/test_packages_tc.json
--- a/mozilla-shared-nss-db.patch Tue Jun 07 21:44:20 2016 +0200
+++ b/mozilla-shared-nss-db.patch Wed Jun 08 13:45:00 2016 +0200
@@ -4,10 +4,10 @@
(can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:
-diff --git a/configure.in b/configure.in
---- a/configure.in
-+++ b/configure.in
-@@ -8310,16 +8310,31 @@ if test "$MOZ_ENABLE_SKIA"; then
+diff --git a/old-configure.in b/old-configure.in
+--- a/old-configure.in
++++ b/old-configure.in
+@@ -8187,16 +8187,31 @@ if test "$MOZ_ENABLE_SKIA"; then
AC_DEFINE(USE_SKIA_GPU)
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
fi
@@ -87,7 +87,7 @@
#include "mozilla/Preferences.h"
#include "mozilla/PublicSSL.h"
#include "mozilla/Services.h"
-@@ -1007,17 +1014,31 @@ nsNSSComponent::InitializeNSS()
+@@ -1017,17 +1024,31 @@ nsNSSComponent::InitializeNSS()
return rv;
}
}
@@ -122,22 +122,22 @@
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
-@@ -205,16 +205,18 @@ if CONFIG['MOZ_B2G_CAMERA'] and CONFIG['
- 'stagefright_omx',
- ]
-
- if CONFIG['OS_ARCH'] == 'Linux' and CONFIG['OS_TARGET'] != 'Android':
+@@ -209,16 +209,18 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
OS_LIBS += [
'rt',
]
+ OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
+ OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
+ OS_LIBS += CONFIG['MOZ_SERVO_LIBS']
+
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
+
- OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
- OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
-
if CONFIG['MOZ_NATIVE_JPEG']:
OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
if CONFIG['MOZ_NATIVE_PNG']:
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
+
+ if CONFIG['MOZ_NATIVE_HUNSPELL']:
+ OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
--- a/series Tue Jun 07 21:44:20 2016 +0200
+++ b/series Wed Jun 08 13:45:00 2016 +0200
@@ -1,19 +1,18 @@
# xulrunner/gecko patches
-mozilla-pkgconfig.patch
mozilla-nongnome-proxies.patch
mozilla-shared-nss-db.patch
mozilla-kde.patch
mozilla-preferences.patch
mozilla-language.patch
mozilla-ntlm-full-path.patch
-mozilla-repo.patch
mozilla-idldir.patch
mozilla-openaes-decl.patch
mozilla-no-stdcxx-check.patch
-mozilla-libproxy.patch
mozilla-reduce-files-per-UnifiedBindings.patch
mozilla-gtk3_20.patch
mozilla-check_return.patch
+mozilla-gcc6.patch
+mozilla-exclude-nametablecpp.patch
# Firefox patches
firefox-kde.patch