summaryrefslogtreecommitdiff
path: root/www/seamonkey/patches
diff options
context:
space:
mode:
Diffstat (limited to 'www/seamonkey/patches')
-rw-r--r--www/seamonkey/patches/patch-aa80
-rw-r--r--www/seamonkey/patches/patch-ak13
-rw-r--r--www/seamonkey/patches/patch-ao10
-rw-r--r--www/seamonkey/patches/patch-mozilla_accessible_atk_Platform.cpp98
-rw-r--r--www/seamonkey/patches/patch-mozilla_b2g_installer_Makefile.in15
-rw-r--r--www/seamonkey/patches/patch-mozilla_b2g_installer_package-manifest.in13
-rw-r--r--www/seamonkey/patches/patch-mozilla_browser_app_nsBrowserApp.cpp14
-rw-r--r--www/seamonkey/patches/patch-mozilla_build_autoconf_nss.m414
-rw-r--r--www/seamonkey/patches/patch-mozilla_config_Makefile.in7
-rw-r--r--www/seamonkey/patches/patch-mozilla_config_external_moz.build16
-rw-r--r--www/seamonkey/patches/patch-mozilla_config_system-headers42
-rw-r--r--www/seamonkey/patches/patch-mozilla_config_system__wrappers_unwind.h9
-rw-r--r--www/seamonkey/patches/patch-mozilla_dom_media_moz.build8
-rw-r--r--www/seamonkey/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp16
-rw-r--r--www/seamonkey/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp14
-rw-r--r--www/seamonkey/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp22
-rw-r--r--www/seamonkey/patches/patch-mozilla_intl_unicharutil_util_moz.build12
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_public_CallArgs.h13
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp46
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_gc_Memory.cpp13
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h10
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_jit_LIR.cpp8
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_jit_MIR.cpp10
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp6
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_jsapi.cpp31
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_src_shell_jsoptparse.cpp13
-rw-r--r--www/seamonkey/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp13
-rw-r--r--www/seamonkey/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c110
-rw-r--r--www/seamonkey/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp20
-rw-r--r--www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi20
-rw-r--r--www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi28
-rw-r--r--www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi44
-rw-r--r--www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__coding_main_source_receiver.cc20
-rw-r--r--www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp10
-rw-r--r--www/seamonkey/patches/patch-mozilla_memory_build_mozjemalloc__compat.c44
-rw-r--r--www/seamonkey/patches/patch-mozilla_memory_jemalloc_src_configure36
-rw-r--r--www/seamonkey/patches/patch-mozilla_memory_volatile_VolatileBufferOSX.cpp (renamed from www/seamonkey/patches/patch-mozilla_memory_mozalloc_VolatileBufferOSX.cpp)8
-rw-r--r--www/seamonkey/patches/patch-mozilla_mfbt_Attributes.h26
-rw-r--r--www/seamonkey/patches/patch-mozilla_netwerk_base_nsNetUtil.h (renamed from www/seamonkey/patches/patch-mozilla_netwerk_base_public_nsNetUtil.h)8
-rw-r--r--www/seamonkey/patches/patch-mozilla_netwerk_dns_Makefile.in15
-rw-r--r--www/seamonkey/patches/patch-mozilla_netwerk_dns_moz.build14
-rw-r--r--www/seamonkey/patches/patch-mozilla_netwerk_wifi_moz.build13
-rw-r--r--www/seamonkey/patches/patch-mozilla_netwerk_wifi_nsWifiScannerFreeBSD.cpp16
-rw-r--r--www/seamonkey/patches/patch-mozilla_toolkit_library_moz.build13
-rw-r--r--www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm22
-rw-r--r--www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm12
-rw-r--r--www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm132
-rw-r--r--www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_OpenH264Provider.jsm118
-rw-r--r--www/seamonkey/patches/patch-mozilla_widget_gtk_gtk2drawing.c22
-rw-r--r--www/seamonkey/patches/patch-mozilla_widget_gtk_gtk3drawing.c866
-rw-r--r--www/seamonkey/patches/patch-mozilla_widget_gtk_gtkdrawing.h41
-rw-r--r--www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.cpp207
-rw-r--r--www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.h32
-rw-r--r--www/seamonkey/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp30
-rw-r--r--www/seamonkey/patches/patch-mozilla_xpcom_base_nsStackWalk.cpp12
-rw-r--r--www/seamonkey/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp12
-rw-r--r--www/seamonkey/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build18
-rw-r--r--www/seamonkey/patches/patch-rc8
58 files changed, 1572 insertions, 971 deletions
diff --git a/www/seamonkey/patches/patch-aa b/www/seamonkey/patches/patch-aa
index a2908ae28cb..1f966b41db5 100644
--- a/www/seamonkey/patches/patch-aa
+++ b/www/seamonkey/patches/patch-aa
@@ -1,8 +1,8 @@
-$NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-aa,v 1.27 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/configure.in.orig 2015-03-09 05:34:34.000000000 +0000
+--- mozilla/configure.in.orig 2015-09-02 09:28:08.000000000 +0000
+++ mozilla/configure.in
-@@ -1766,7 +1766,13 @@ Linux)
+@@ -1794,7 +1794,13 @@ Linux)
MOZ_ENABLE_PROFILER_SPS=
esac
;;
@@ -17,7 +17,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
*)
MOZ_ENABLE_PROFILER_SPS=
;;
-@@ -1870,7 +1876,7 @@ case "$host" in
+@@ -1898,7 +1904,7 @@ case "$host" in
;;
*-darwin*)
@@ -26,7 +26,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
;;
-@@ -2002,7 +2008,6 @@ case "$target" in
+@@ -2022,7 +2028,6 @@ case "$target" in
AC_DEFINE(XP_DARWIN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-uikit'
else
@@ -34,7 +34,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
AC_DEFINE(XP_DARWIN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
# The ExceptionHandling framework is needed for Objective-C exception
-@@ -2622,8 +2627,7 @@ MOZ_CXX11
+@@ -2641,8 +2646,7 @@ MOZ_CXX11
AC_LANG_C
@@ -44,7 +44,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
dnl ===============================================================
if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then
AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-@@ -3645,6 +3649,14 @@ if test -n "$YASM"; then
+@@ -3663,6 +3667,14 @@ if test -n "$YASM"; then
_YASM_BUILD=` echo ${YASM_VERSION} | $AWK -F\. '{ print $4 }'`
fi
@@ -59,7 +59,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl system JPEG support
dnl ========================================================
-@@ -3672,11 +3684,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then
+@@ -3690,11 +3702,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then
#include <jpeglib.h> ],
[ #if JPEG_LIB_VERSION < $MOZJPEG
#error "Insufficient JPEG library version ($MOZJPEG required)."
@@ -72,7 +72,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
MOZ_NATIVE_JPEG=1,
AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
fi
-@@ -4391,6 +4399,10 @@ cairo-gonk)
+@@ -4392,6 +4400,10 @@ cairo-gonk)
esac
@@ -83,7 +83,16 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
AC_SUBST(MOZ_PDF_PRINTING)
if test "$MOZ_PDF_PRINTING"; then
PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
-@@ -5131,6 +5143,9 @@ if test -n "$MOZ_WEBRTC"; then
+@@ -4408,7 +4420,7 @@ fi
+
+ if test "$COMPILE_ENVIRONMENT"; then
+ if test "$MOZ_ENABLE_GTK3"; then
+- PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 atk-bridge-2.0 $GDK_PACKAGES)
++ PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
+ MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS"
+ dnl Contrary to MOZ_GTK2_LIBS, MOZ_GTK3_LIBS needs to be literally added to TK_LIBS instead
+ dnl of a make reference because of how TK_LIBS is mangled in toolkit/library/moz.build
+@@ -5149,6 +5161,9 @@ if test -n "$MOZ_WEBRTC"; then
MOZ_VPX=1
MOZ_VPX_ERROR_CONCEALMENT=1
@@ -93,7 +102,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
dnl enable once Signaling lands
MOZ_WEBRTC_SIGNALING=1
AC_DEFINE(MOZ_WEBRTC_SIGNALING)
-@@ -5234,6 +5249,57 @@ if test "${ac_cv_c_attribute_aligned}" !
+@@ -5252,6 +5267,157 @@ if test "${ac_cv_c_attribute_aligned}" !
fi
dnl ========================================================
@@ -127,7 +136,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
+MOZ_NATIVE_VORBIS=)
+
+if test -n "$MOZ_NATIVE_VORBIS"; then
-+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.4)
++ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5)
+fi
+
+AC_SUBST(MOZ_NATIVE_VORBIS)
@@ -148,13 +157,23 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
+AC_SUBST(MOZ_NATIVE_TREMOR)
+
+dnl ========================================================
- dnl = Disable Opus audio codec support
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(opus,
-@@ -5242,6 +5308,89 @@ MOZ_ARG_DISABLE_BOOL(opus,
- MOZ_OPUS=1)
-
- dnl ========================================================
++dnl Check for libcelt
++dnl ========================================================
++
++MOZ_ARG_WITH_BOOL(system-celt,
++[ --with-system-celt Use system libcelt (located with pkgconfig)],
++MOZ_NATIVE_CELT=1,
++MOZ_NATIVE_CELT=)
++
++if test -n "$MOZ_NATIVE_CELT"; then
++ PKG_CHECK_MODULES(MOZ_CELT, celt)
++else
++ MOZ_CELT_CFLAGS='-I$(topsrcdir)/media/libopus'
++fi
++
++AC_SUBST(MOZ_NATIVE_CELT)
++
++dnl ========================================================
+dnl Check for libopus
+dnl ========================================================
+
@@ -241,7 +260,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
dnl = Disable VP8 decoder support
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(webm,
-@@ -5600,6 +5749,67 @@ fi
+@@ -5606,6 +5772,67 @@ fi
AC_SUBST(MOZ_WEBM_ENCODER)
dnl ==================================
@@ -309,7 +328,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
dnl = Check alsa availability on Linux
dnl ==================================
-@@ -5613,12 +5823,23 @@ MOZ_ARG_ENABLE_BOOL(alsa,
+@@ -5619,12 +5846,23 @@ MOZ_ARG_ENABLE_BOOL(alsa,
MOZ_ALSA=1,
MOZ_ALSA=)
@@ -321,7 +340,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
if test -n "$MOZ_ALSA"; then
PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
[echo "$MOZ_ALSA_PKG_ERRORS"
- AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])])
+ AC_MSG_ERROR([Need alsa for audio output on Linux. (On Ubuntu, you might try installing the package libasound2-dev.)])])
fi
+if test -n "$DISABLE_LIBASOUND_DLOPEN"; then
@@ -333,7 +352,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
AC_SUBST(MOZ_ALSA)
dnl ========================================================
-@@ -6046,7 +6267,9 @@ MOZ_ARG_DISABLE_BOOL(gamepad,
+@@ -6046,7 +6284,9 @@ MOZ_ARG_DISABLE_BOOL(gamepad,
if test "$MOZ_GAMEPAD"; then
case "$OS_TARGET" in
Darwin)
@@ -343,8 +362,8 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
+ fi
;;
WINNT)
- case "$MOZ_WINSDK_MAXVER" in
-@@ -8089,6 +8312,49 @@ if test "$USE_FC_FREETYPE"; then
+ MOZ_GAMEPAD_BACKEND=windows
+@@ -8066,6 +8306,49 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
@@ -357,7 +376,7 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
-+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.25)
++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.34)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
@@ -394,12 +413,3 @@ $NetBSD: patch-aa,v 1.26 2015/03/17 19:50:42 ryoon Exp $
dnl Check for pixman and cairo
dnl ========================================================
-@@ -8344,7 +8610,7 @@ case "$OS_TARGET" in
- NECKO_WIFI=1
- fi
- ;;
-- Darwin|FreeBSD|SunOS|WINNT)
-+ Darwin|DragonFly|FreeBSD|SunOS|WINNT)
- NECKO_WIFI=1
- ;;
- Linux)
diff --git a/www/seamonkey/patches/patch-ak b/www/seamonkey/patches/patch-ak
deleted file mode 100644
index fa3c313ecd9..00000000000
--- a/www/seamonkey/patches/patch-ak
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ak,v 1.12 2014/11/02 05:40:31 ryoon Exp $
-
---- mozilla/js/src/ctypes/libffi/configure.orig 2014-10-14 06:36:16.000000000 +0000
-+++ mozilla/js/src/ctypes/libffi/configure
-@@ -17226,7 +17226,7 @@ case "$host" in
- powerpc-*-aix* | rs6000-*-aix*)
- TARGET=POWERPC_AIX; TARGETDIR=powerpc
- ;;
-- powerpc-*-freebsd* | powerpc-*-openbsd*)
-+ powerpc-*-freebsd* | powerpc-*-openbsd* | powerpc-*-netbsd*)
- TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
- HAVE_LONG_DOUBLE_VARIANT=1
- ;;
diff --git a/www/seamonkey/patches/patch-ao b/www/seamonkey/patches/patch-ao
index cf8b2b62f31..da3e582738b 100644
--- a/www/seamonkey/patches/patch-ao
+++ b/www/seamonkey/patches/patch-ao
@@ -1,12 +1,14 @@
-$NetBSD: patch-ao,v 1.14 2014/03/30 04:13:17 ryoon Exp $
+$NetBSD: patch-ao,v 1.15 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/toolkit/mozapps/installer/packager.mk.orig 2014-03-19 01:42:17.000000000 +0000
+--- mozilla/toolkit/mozapps/installer/packager.mk.orig 2015-09-02 09:27:31.000000000 +0000
+++ mozilla/toolkit/mozapps/installer/packager.mk
-@@ -775,7 +775,7 @@ endif
+@@ -122,8 +122,8 @@ endif
+ (cd $(DESTDIR)$(installdir) && tar -xf -)
$(NSINSTALL) -D $(DESTDIR)$(bindir)
$(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)
- ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
+- ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
-ifdef INSTALL_SDK # Here comes the hard part
++ ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)/$(MOZILLA_PKG_NAME)
+ifeq ($(MOZ_APP_NAME),xulrunner)
$(NSINSTALL) -D $(DESTDIR)$(includedir)
(cd $(DIST)/include && $(TAR) $(TAR_CREATE_FLAGS) - .) | \
diff --git a/www/seamonkey/patches/patch-mozilla_accessible_atk_Platform.cpp b/www/seamonkey/patches/patch-mozilla_accessible_atk_Platform.cpp
new file mode 100644
index 00000000000..2b533cbe5b6
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_accessible_atk_Platform.cpp
@@ -0,0 +1,98 @@
+$NetBSD: patch-mozilla_accessible_atk_Platform.cpp,v 1.1 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/accessible/atk/Platform.cpp.orig 2015-09-02 09:27:10.000000000 +0000
++++ mozilla/accessible/atk/Platform.cpp
+@@ -18,8 +18,9 @@
+ #include <dbus/dbus.h>
+ #endif
+ #include <gtk/gtk.h>
++
+ #if (MOZ_WIDGET_GTK == 3)
+-#include <atk-bridge.h>
++extern "C" __attribute__((weak,visibility("default"))) int atk_bridge_adaptor_init(int*, char **[]);
+ #endif
+
+ using namespace mozilla;
+@@ -46,7 +47,6 @@ static gulong sToplevel_hide_hook = 0;
+
+ GType g_atk_hyperlink_impl_type = G_TYPE_INVALID;
+
+-#if (MOZ_WIDGET_GTK == 2)
+ struct GnomeAccessibilityModule
+ {
+ const char *libName;
+@@ -67,11 +67,13 @@ static GnomeAccessibilityModule sAtkBrid
+ "gnome_accessibility_module_shutdown", nullptr
+ };
+
++#if (MOZ_WIDGET_GTK == 2)
+ static GnomeAccessibilityModule sGail = {
+ "libgail.so", nullptr,
+ "gnome_accessibility_module_init", nullptr,
+ "gnome_accessibility_module_shutdown", nullptr
+ };
++#endif
+
+ static nsresult
+ LoadGtkModule(GnomeAccessibilityModule& aModule)
+@@ -98,7 +100,11 @@ LoadGtkModule(GnomeAccessibilityModule&
+ else
+ subLen = loc2 - loc1;
+ nsAutoCString sub(Substring(libPath, loc1, subLen));
++#if (MOZ_WIDGET_GTK == 2)
+ sub.AppendLiteral("/gtk-2.0/modules/");
++#else
++ sub.AppendLiteral("/gtk-3.0/modules/");
++#endif
+ sub.Append(aModule.libName);
+ aModule.lib = PR_LoadLibrary(sub.get());
+ if (aModule.lib)
+@@ -123,7 +129,6 @@ LoadGtkModule(GnomeAccessibilityModule&
+ }
+ return NS_OK;
+ }
+-#endif // (MOZ_WIDGET_GTK == 2)
+
+ void
+ a11y::PlatformInit()
+@@ -175,14 +180,17 @@ a11y::PlatformInit()
+
+ // Init atk-bridge now
+ PR_SetEnv("NO_AT_BRIDGE=0");
+-#if (MOZ_WIDGET_GTK == 2)
+- rv = LoadGtkModule(sAtkBridge);
+- if (NS_SUCCEEDED(rv)) {
+- (*sAtkBridge.init)();
+- }
+-#else
+- atk_bridge_adaptor_init(nullptr, nullptr);
++#if (MOZ_WIDGET_GTK == 3)
++ if (atk_bridge_adaptor_init) {
++ atk_bridge_adaptor_init(nullptr, nullptr);
++ } else
+ #endif
++ {
++ nsresult rv = LoadGtkModule(sAtkBridge);
++ if (NS_SUCCEEDED(rv)) {
++ (*sAtkBridge.init)();
++ }
++ }
+
+ if (!sToplevel_event_hook_added) {
+ sToplevel_event_hook_added = true;
+@@ -210,7 +218,6 @@ a11y::PlatformShutdown()
+ sToplevel_hide_hook);
+ }
+
+-#if (MOZ_WIDGET_GTK == 2)
+ if (sAtkBridge.lib) {
+ // Do not shutdown/unload atk-bridge,
+ // an exit function registered will take care of it
+@@ -221,6 +228,7 @@ a11y::PlatformShutdown()
+ sAtkBridge.init = nullptr;
+ sAtkBridge.shutdown = nullptr;
+ }
++#if (MOZ_WIDGET_GTK == 2)
+ if (sGail.lib) {
+ // Do not shutdown gail because
+ // 1) Maybe it's not init-ed by us. e.g. GtkEmbed
diff --git a/www/seamonkey/patches/patch-mozilla_b2g_installer_Makefile.in b/www/seamonkey/patches/patch-mozilla_b2g_installer_Makefile.in
deleted file mode 100644
index 31a0a7c5a7a..00000000000
--- a/www/seamonkey/patches/patch-mozilla_b2g_installer_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mozilla_b2g_installer_Makefile.in,v 1.3 2015/03/17 19:50:42 ryoon Exp $
-
---- mozilla/b2g/installer/Makefile.in.orig 2015-03-09 05:34:16.000000000 +0000
-+++ mozilla/b2g/installer/Makefile.in
-@@ -79,6 +79,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)
- DEFINES += -DMOZ_RTSP
- endif
-
-+ifdef MOZ_DEBUG
-+DEFINES += -DMOZ_DEBUG=1
-+endif
-+
- ifdef GKMEDIAS_SHARED_LIBRARY
- DEFINES += -DGKMEDIAS_SHARED_LIBRARY
- endif
diff --git a/www/seamonkey/patches/patch-mozilla_b2g_installer_package-manifest.in b/www/seamonkey/patches/patch-mozilla_b2g_installer_package-manifest.in
deleted file mode 100644
index f8c8f58c7c2..00000000000
--- a/www/seamonkey/patches/patch-mozilla_b2g_installer_package-manifest.in
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_b2g_installer_package-manifest.in,v 1.3 2015/03/17 19:50:42 ryoon Exp $
-
---- mozilla/b2g/installer/package-manifest.in.orig 2015-03-09 05:34:16.000000000 +0000
-+++ mozilla/b2g/installer/package-manifest.in
-@@ -609,7 +609,7 @@
- @BINPATH@/components/EngineeringModeAPI.js
- @BINPATH@/components/EngineeringModeService.js
-
--#ifdef MOZ_DEBUG
-+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
- @BINPATH@/components/TestInterfaceJS.js
- @BINPATH@/components/TestInterfaceJS.manifest
- #endif
diff --git a/www/seamonkey/patches/patch-mozilla_browser_app_nsBrowserApp.cpp b/www/seamonkey/patches/patch-mozilla_browser_app_nsBrowserApp.cpp
index 45956b1846c..5dfb1ccf5d2 100644
--- a/www/seamonkey/patches/patch-mozilla_browser_app_nsBrowserApp.cpp
+++ b/www/seamonkey/patches/patch-mozilla_browser_app_nsBrowserApp.cpp
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_browser_app_nsBrowserApp.cpp,v 1.3 2015/01/29 22:22:26 wiz Exp $
+$NetBSD: patch-mozilla_browser_app_nsBrowserApp.cpp,v 1.4 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/browser/app/nsBrowserApp.cpp.orig 2014-06-13 00:46:02.000000000 +0000
+--- mozilla/browser/app/nsBrowserApp.cpp.orig 2015-09-02 09:27:14.000000000 +0000
+++ mozilla/browser/app/nsBrowserApp.cpp
@@ -18,8 +18,10 @@
#include <unistd.h>
@@ -14,7 +14,7 @@ $NetBSD: patch-mozilla_browser_app_nsBrowserApp.cpp,v 1.3 2015/01/29 22:22:26 wi
#include "MacQuirks.h"
#endif
-@@ -447,7 +449,7 @@ TimeStamp_Now()
+@@ -459,7 +461,7 @@ TimeStamp_Now()
}
return sGetTickCount64() * freq.QuadPart;
@@ -23,3 +23,11 @@ $NetBSD: patch-mozilla_browser_app_nsBrowserApp.cpp,v 1.3 2015/01/29 22:22:26 wi
return mach_absolute_time();
#elif defined(HAVE_CLOCK_MONOTONIC)
struct timespec ts;
+@@ -606,6 +608,7 @@ int main(int argc, char* argv[])
+ TriggerQuirks();
+ #endif
+
++ setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
+ int gotCounters;
+ #if defined(XP_UNIX)
+ struct rusage initialRUsage;
diff --git a/www/seamonkey/patches/patch-mozilla_build_autoconf_nss.m4 b/www/seamonkey/patches/patch-mozilla_build_autoconf_nss.m4
index 9a528762e12..86b00ee7d08 100644
--- a/www/seamonkey/patches/patch-mozilla_build_autoconf_nss.m4
+++ b/www/seamonkey/patches/patch-mozilla_build_autoconf_nss.m4
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_build_autoconf_nss.m4,v 1.6 2013/01/07 21:55:30 ryoon Exp $
+$NetBSD: patch-mozilla_build_autoconf_nss.m4,v 1.7 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/build/autoconf/nss.m4.orig 2012-11-18 10:19:31.000000000 +0000
+--- mozilla/build/autoconf/nss.m4.orig 2015-09-02 09:28:02.000000000 +0000
+++ mozilla/build/autoconf/nss.m4
@@ -22,18 +22,18 @@ AC_ARG_WITH(nss-exec-prefix,
if test -n "$nss_config_exec_prefix"; then
@@ -35,12 +35,12 @@ $NetBSD: patch-mozilla_build_autoconf_nss.m4,v 1.6 2013/01/07 21:55:30 ryoon Exp
- nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+ nss_config_major_version=`$NSS_CONFIG $nss_config_args nss --modversion | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\(\.\([[0-9]]*\)\)\{0,1\}/\1/'`
- nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+ nss_config_minor_version=`$NSS_CONFIG $nss_config_args nss --modversion | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\(\.\([[0-9]]*\)\)\{0,1\}/\2/'`
- nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+ nss_config_micro_version=`$NSS_CONFIG $nss_config_args nss --modversion | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- min_nss_major_version=`echo $min_nss_version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\(\.\([[0-9]]*\)\)\{0,1\}/\4/'`
+ if test -z "$nss_config_micro_version"; then
+ nss_config_micro_version="0"
diff --git a/www/seamonkey/patches/patch-mozilla_config_Makefile.in b/www/seamonkey/patches/patch-mozilla_config_Makefile.in
index ccd7423abd0..fd1f7685c01 100644
--- a/www/seamonkey/patches/patch-mozilla_config_Makefile.in
+++ b/www/seamonkey/patches/patch-mozilla_config_Makefile.in
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_config_Makefile.in,v 1.4 2014/06/22 08:54:39 ryoon Exp $
+$NetBSD: patch-mozilla_config_Makefile.in,v 1.5 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/config/Makefile.in.orig 2014-06-13 00:46:03.000000000 +0000
+--- mozilla/config/Makefile.in.orig 2015-09-02 09:28:07.000000000 +0000
+++ mozilla/config/Makefile.in
-@@ -77,6 +77,15 @@ export:: $(export-preqs)
+@@ -77,6 +77,16 @@ export:: $(export-preqs)
-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
@@ -12,6 +12,7 @@ $NetBSD: patch-mozilla_config_Makefile.in,v 1.4 2014/06/22 08:54:39 ryoon Exp $
+ -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \
+ -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \
+ -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \
++ -DMOZ_NATIVE_CELT=$(MOZ_NATIVE_CELT) \
+ -DMOZ_NATIVE_OPUS=$(MOZ_NATIVE_OPUS) \
+ -DMOZ_NATIVE_SPEEX=$(MOZ_NATIVE_SPEEX) \
+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \
diff --git a/www/seamonkey/patches/patch-mozilla_config_external_moz.build b/www/seamonkey/patches/patch-mozilla_config_external_moz.build
index 6149d67b0f6..77201536793 100644
--- a/www/seamonkey/patches/patch-mozilla_config_external_moz.build
+++ b/www/seamonkey/patches/patch-mozilla_config_external_moz.build
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_config_external_moz.build,v 1.5 2015/02/15 02:11:03 ryoon Exp $
+$NetBSD: patch-mozilla_config_external_moz.build,v 1.6 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/config/external/moz.build.orig 2015-02-05 04:39:28.000000000 +0000
+--- mozilla/config/external/moz.build.orig 2015-09-02 09:28:07.000000000 +0000
+++ mozilla/config/external/moz.build
-@@ -19,13 +19,19 @@ if CONFIG['MOZ_UPDATER']:
+@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']:
# There's no "native brotli" yet, but probably in the future...
external_dirs += ['modules/brotli']
@@ -10,6 +10,9 @@ $NetBSD: patch-mozilla_config_external_moz.build,v 1.5 2015/02/15 02:11:03 ryoon
+if not CONFIG['MOZ_NATIVE_OGG']:
+ external_dirs += ['media/libogg']
+
++if not CONFIG['MOZ_NATIVE_CELT'] or not CONFIG['MOZ_NATIVE_OPUS']:
++ external_dirs += ['media/libopus']
++
+if not CONFIG['MOZ_NATIVE_THEORA']:
+ external_dirs += ['media/libtheora']
+
@@ -20,12 +23,8 @@ $NetBSD: patch-mozilla_config_external_moz.build,v 1.5 2015/02/15 02:11:03 ryoon
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
external_dirs += ['media/libtremor']
--if CONFIG['MOZ_OPUS']:
-+if CONFIG['MOZ_OPUS'] and not CONFIG['MOZ_NATIVE_OPUS']:
- external_dirs += ['media/libopus']
-
if CONFIG['MOZ_WEBM']:
-@@ -40,14 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
+@@ -37,15 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
if not CONFIG['MOZ_NATIVE_PNG']:
external_dirs += ['media/libpng']
@@ -39,6 +38,7 @@ $NetBSD: patch-mozilla_config_external_moz.build,v 1.5 2015/02/15 02:11:03 ryoon
'media/kiss_fft',
'media/libcubeb',
- 'media/libogg',
+- 'media/libopus',
- 'media/libtheora',
- 'media/libspeex_resampler',
'media/libstagefright',
diff --git a/www/seamonkey/patches/patch-mozilla_config_system-headers b/www/seamonkey/patches/patch-mozilla_config_system-headers
index 08f7f2b0b3e..80140033381 100644
--- a/www/seamonkey/patches/patch-mozilla_config_system-headers
+++ b/www/seamonkey/patches/patch-mozilla_config_system-headers
@@ -1,16 +1,16 @@
-$NetBSD: patch-mozilla_config_system-headers,v 1.14 2015/09/13 15:05:35 joerg Exp $
+$NetBSD: patch-mozilla_config_system-headers,v 1.15 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/config/system-headers.orig 2015-03-22 02:59:55.000000000 +0000
+--- mozilla/config/system-headers.orig 2015-09-02 09:28:08.000000000 +0000
+++ mozilla/config/system-headers
-@@ -457,6 +457,7 @@ frame/log.h
- frame/req.h
- freetype/freetype.h
- freetype/ftcache.h
-+freetype/ftfntfmt.h
- freetype/ftglyph.h
- freetype/ftsynth.h
- freetype/ftoutln.h
-@@ -470,6 +471,7 @@ freetype/ftbitmap.h
+@@ -189,7 +189,6 @@ asm/signal.h
+ ASRegistry.h
+ assert.h
+ atk/atk.h
+-atk-bridge.h
+ atlcom.h
+ atlconv.h
+ atlctl.cpp
+@@ -471,6 +470,7 @@ freetype/ftbitmap.h
freetype/ftxf86.h
freetype.h
ftcache.h
@@ -18,7 +18,15 @@ $NetBSD: patch-mozilla_config_system-headers,v 1.14 2015/09/13 15:05:35 joerg Ex
ftglyph.h
ftsynth.h
ftoutln.h
-@@ -1265,7 +1267,6 @@ X11/Xlocale.h
+@@ -636,6 +636,7 @@ libgnomevfs/gnome-vfs-mime-handlers.h
+ libgnomevfs/gnome-vfs-mime-utils.h
+ libgnomevfs/gnome-vfs-ops.h
+ libgnomevfs/gnome-vfs-standard-callbacks.h
++libv4l2.h
+ lib$routines.h
+ limits
+ limits.h
+@@ -1266,7 +1267,6 @@ X11/Xlocale.h
X11/Xos.h
X11/Xutil.h
zmouse.h
@@ -26,7 +34,7 @@ $NetBSD: patch-mozilla_config_system-headers,v 1.14 2015/09/13 15:05:35 joerg Ex
#if MOZ_NATIVE_PNG==1
png.h
#endif
-@@ -1327,10 +1328,13 @@ vorbis/codec.h
+@@ -1328,10 +1328,13 @@ vorbis/codec.h
theora/theoradec.h
tremor/ivorbiscodec.h
speex/speex_resampler.h
@@ -40,7 +48,7 @@ $NetBSD: patch-mozilla_config_system-headers,v 1.14 2015/09/13 15:05:35 joerg Ex
#endif
gst/gst.h
gst/app/gstappsink.h
-@@ -1359,3 +1363,37 @@ unicode/utypes.h
+@@ -1360,3 +1363,43 @@ unicode/utypes.h
#endif
libutil.h
unwind.h
@@ -66,6 +74,12 @@ $NetBSD: patch-mozilla_config_system-headers,v 1.14 2015/09/13 15:05:35 joerg Ex
+#if MOZ_NATIVE_TREMOR==1
+tremor/ivorbiscodec.h
+#endif
++#if MOZ_NATIVE_CELT==1
++celt.h
++celt_header.h
++celt/celt.h
++celt/celt_header.h
++#endif
+#if MOZ_NATIVE_OPUS==1
+opus.h
+opus_multistream.h
diff --git a/www/seamonkey/patches/patch-mozilla_config_system__wrappers_unwind.h b/www/seamonkey/patches/patch-mozilla_config_system__wrappers_unwind.h
new file mode 100644
index 00000000000..808279a2ef9
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_config_system__wrappers_unwind.h
@@ -0,0 +1,9 @@
+$NetBSD: patch-mozilla_config_system__wrappers_unwind.h,v 1.7 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/config/system_wrappers/unwind.h.orig 2015-09-21 03:33:26.000000000 +0000
++++ mozilla/config/system_wrappers/unwind.h
+@@ -0,0 +1,4 @@
++#pragma GCC system_header
++#pragma GCC visibility push(default)
++#include_next <unwind.h>
++#pragma GCC visibility pop
diff --git a/www/seamonkey/patches/patch-mozilla_dom_media_moz.build b/www/seamonkey/patches/patch-mozilla_dom_media_moz.build
index 55deec5e543..b87f27739bc 100644
--- a/www/seamonkey/patches/patch-mozilla_dom_media_moz.build
+++ b/www/seamonkey/patches/patch-mozilla_dom_media_moz.build
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_dom_media_moz.build,v 1.1 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_dom_media_moz.build,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/dom/media/moz.build.orig 2015-03-09 05:34:53.000000000 +0000
+--- mozilla/dom/media/moz.build.orig 2015-09-02 09:28:33.000000000 +0000
+++ mozilla/dom/media/moz.build
-@@ -270,6 +270,27 @@ if CONFIG['ANDROID_VERSION'] > '15':
+@@ -280,6 +280,27 @@ if CONFIG['ANDROID_VERSION'] > '15':
CFLAGS += CONFIG['GSTREAMER_CFLAGS']
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
@@ -29,4 +29,4 @@ $NetBSD: patch-mozilla_dom_media_moz.build,v 1.1 2015/03/17 19:50:42 ryoon Exp $
+
include('/ipc/chromium/chromium-config.mozbuild')
- FINAL_LIBRARY = 'xul'
+ # Suppress some GCC warnings being treated as errors:
diff --git a/www/seamonkey/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp b/www/seamonkey/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp
index cdcbee3bc71..16cca1cf5ca 100644
--- a/www/seamonkey/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp
+++ b/www/seamonkey/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp,v 1.9 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp,v 1.10 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/dom/plugins/ipc/PluginModuleChild.cpp.orig 2015-03-09 05:35:00.000000000 +0000
+--- mozilla/dom/plugins/ipc/PluginModuleChild.cpp.orig 2015-09-02 09:28:36.000000000 +0000
+++ mozilla/dom/plugins/ipc/PluginModuleChild.cpp
-@@ -307,7 +307,7 @@ PluginModuleChild::InitForChrome(const s
+@@ -320,7 +320,7 @@ PluginModuleChild::InitForChrome(const s
// TODO: use PluginPRLibrary here
@@ -11,7 +11,7 @@ $NetBSD: patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp,v 1.9 2015/03/17 19
mShutdownFunc =
(NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown");
-@@ -1869,7 +1869,7 @@ PluginModuleChild::AnswerNP_GetEntryPoin
+@@ -1882,7 +1882,7 @@ PluginModuleChild::AnswerNP_GetEntryPoin
AssertPluginThread();
MOZ_ASSERT(mIsChrome);
@@ -20,12 +20,12 @@ $NetBSD: patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp,v 1.9 2015/03/17 19
return true;
#elif defined(OS_WIN) || defined(OS_MACOSX)
*_retval = mGetEntryPointsFunc(&mFunctions);
-@@ -1899,7 +1899,7 @@ PluginModuleChild::AnswerNP_Initialize(c
- SendBackUpXResources(FileDescriptor(xSocketFd));
+@@ -1927,7 +1927,7 @@ PluginModuleChild::DoNP_Initialize(const
#endif
+ NPError result;
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- *_retval = mInitializeFunc(&sBrowserFuncs, &mFunctions);
- return true;
+ result = mInitializeFunc(&sBrowserFuncs, &mFunctions);
#elif defined(OS_WIN) || defined(OS_MACOSX)
+ result = mInitializeFunc(&sBrowserFuncs);
diff --git a/www/seamonkey/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp b/www/seamonkey/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp
index 494deb7af72..bfb12874d0b 100644
--- a/www/seamonkey/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp
+++ b/www/seamonkey/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp
@@ -1,16 +1,18 @@
-$NetBSD: patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp,v 1.3 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp,v 1.4 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/extensions/spellcheck/hunspell/src/mozHunspell.cpp.orig 2015-03-09 05:35:11.000000000 +0000
+--- mozilla/extensions/spellcheck/hunspell/src/mozHunspell.cpp.orig 2015-09-02 09:28:48.000000000 +0000
+++ mozilla/extensions/spellcheck/hunspell/src/mozHunspell.cpp
-@@ -400,6 +400,12 @@ mozHunspell::LoadDictionaryList(bool aNo
+@@ -400,6 +400,14 @@ mozHunspell::LoadDictionaryList(bool aNo
}
}
+ // load system hunspell dictionaries
-+ nsIFile* hunDir;
++ nsCOMPtr<nsIFile> hunDir;
+ NS_NewNativeLocalFile(NS_LITERAL_CSTRING("@PREFIX@/share/hunspell"),
-+ true, &hunDir);
-+ LoadDictionariesFromDir(hunDir);
++ true, getter_AddRefs(hunDir));
++ if (hunDir) {
++ LoadDictionariesFromDir(hunDir);
++ }
+
// find dictionaries from extensions requiring restart
nsCOMPtr<nsISimpleEnumerator> dictDirs;
diff --git a/www/seamonkey/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp b/www/seamonkey/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp
index f1dce9b548c..ac3d08870b4 100644
--- a/www/seamonkey/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp
+++ b/www/seamonkey/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp
@@ -1,15 +1,15 @@
-$NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.2 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/image/decoders/nsJPEGDecoder.cpp.orig 2015-03-09 05:34:16.000000000 +0000
+--- mozilla/image/decoders/nsJPEGDecoder.cpp.orig 2015-09-02 09:27:13.000000000 +0000
+++ mozilla/image/decoders/nsJPEGDecoder.cpp
-@@ -21,13 +21,28 @@
+@@ -23,13 +23,28 @@
extern "C" {
#include "iccjpeg.h"
-}
+#ifdef JCS_EXTENSIONS
- #if defined(IS_BIG_ENDIAN)
+ #if MOZ_BIG_ENDIAN
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB
#else
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX
@@ -32,7 +32,7 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.2 2015/03/17 19:50:4
static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width);
-@@ -358,6 +373,7 @@ nsJPEGDecoder::WriteInternal(const char*
+@@ -373,6 +388,7 @@ nsJPEGDecoder::WriteInternal(const char*
case JCS_GRAYSCALE:
case JCS_RGB:
case JCS_YCbCr:
@@ -40,7 +40,7 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.2 2015/03/17 19:50:4
// if we're not color managing we can decode directly to
// MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
if (mCMSMode != eCMSMode_All) {
-@@ -366,6 +382,9 @@ nsJPEGDecoder::WriteInternal(const char*
+@@ -381,6 +397,9 @@ nsJPEGDecoder::WriteInternal(const char*
} else {
mInfo.out_color_space = JCS_RGB;
}
@@ -50,7 +50,7 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.2 2015/03/17 19:50:4
break;
case JCS_CMYK:
case JCS_YCCK:
-@@ -424,6 +443,15 @@ nsJPEGDecoder::WriteInternal(const char*
+@@ -450,6 +469,15 @@ nsJPEGDecoder::WriteInternal(const char*
return; // I/O suspension
}
@@ -66,9 +66,9 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.2 2015/03/17 19:50:4
// If this is a progressive JPEG ...
mState = mInfo.buffered_image ?
-@@ -596,7 +624,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
- uint32_t* imageRow = ((uint32_t*)mImageData) +
- (mInfo.output_scanline * mInfo.output_width);
+@@ -632,7 +660,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
+
+ MOZ_ASSERT(imageRow, "Should have a row buffer here");
+#ifdef JCS_EXTENSIONS
if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) {
@@ -78,7 +78,7 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.2 2015/03/17 19:50:4
// Special case: scanline will be directly converted into packed ARGB
if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
*suspend = true; // suspend
-@@ -911,6 +943,282 @@ term_source (j_decompress_ptr jd)
+@@ -959,6 +991,282 @@ term_source (j_decompress_ptr jd)
} // namespace mozilla
diff --git a/www/seamonkey/patches/patch-mozilla_intl_unicharutil_util_moz.build b/www/seamonkey/patches/patch-mozilla_intl_unicharutil_util_moz.build
index f75520b3d8e..8a42331ba57 100644
--- a/www/seamonkey/patches/patch-mozilla_intl_unicharutil_util_moz.build
+++ b/www/seamonkey/patches/patch-mozilla_intl_unicharutil_util_moz.build
@@ -1,11 +1,13 @@
-$NetBSD: patch-mozilla_intl_unicharutil_util_moz.build,v 1.1 2015/01/02 04:26:21 ryoon Exp $
+$NetBSD: patch-mozilla_intl_unicharutil_util_moz.build,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/intl/unicharutil/util/moz.build.orig 2014-12-03 06:22:47.000000000 +0000
+--- mozilla/intl/unicharutil/util/moz.build.orig 2015-09-02 09:27:18.000000000 +0000
+++ mozilla/intl/unicharutil/util/moz.build
-@@ -37,3 +37,6 @@ if CONFIG['_MSC_VER']:
-
+@@ -38,5 +38,8 @@ if CONFIG['_MSC_VER']:
if CONFIG['ENABLE_INTL_API']:
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-+
+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['GNU_CXX']:
+ FAIL_ON_WARNINGS = True
diff --git a/www/seamonkey/patches/patch-mozilla_js_public_CallArgs.h b/www/seamonkey/patches/patch-mozilla_js_public_CallArgs.h
new file mode 100644
index 00000000000..1ffcb8b02ae
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_js_public_CallArgs.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_public_CallArgs.h,v 1.1 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/js/public/CallArgs.h.orig 2015-09-02 09:27:18.000000000 +0000
++++ mozilla/js/public/CallArgs.h
+@@ -344,7 +344,7 @@ class MOZ_STACK_CLASS CallArgs : public
+ * Returns true if there are at least |required| arguments passed in. If
+ * false, it reports an error message on the context.
+ */
+- bool requireAtLeast(JSContext* cx, const char* fnname, unsigned required);
++ JS_PUBLIC_API(bool) requireAtLeast(JSContext* cx, const char* fnname, unsigned required);
+
+ };
+
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp b/www/seamonkey/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp
index 9ad678ab4e6..ba81031d4d3 100644
--- a/www/seamonkey/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp
+++ b/www/seamonkey/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp
@@ -1,48 +1,8 @@
-$NetBSD: patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp,v 1.2 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/js/src/asmjs/AsmJSSignalHandlers.cpp.orig 2015-03-09 05:34:25.000000000 +0000
+--- mozilla/js/src/asmjs/AsmJSSignalHandlers.cpp.orig 2015-09-02 09:27:18.000000000 +0000
+++ mozilla/js/src/asmjs/AsmJSSignalHandlers.cpp
-@@ -504,8 +504,38 @@ AsmJSFaultHandler(LPEXCEPTION_POINTERS e
- #elif defined(XP_MACOSX)
- # include <mach/exc.h>
-
-+# if defined(ARM_THREAD_STATE)
-+typedef arm_thread_state_t moz_platform_thread_state_t;
-+static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = ARM_THREAD_STATE;
-+static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = ARM_THREAD_STATE_COUNT;
-+
-+# elif defined(PPC_THREAD_STATE)
-+typedef ppc_thread_state_t moz_platform_thread_state_t;
-+static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = PPC_THREAD_STATE;
-+static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = PPC_THREAD_STATE_COUNT;
-+
-+# elif defined(PPC_THREAD_STATE64)
-+typedef ppc_thread_state64_t moz_platform_thread_state_t;
-+static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = PPC_THREAD_STATE64;
-+static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = PPC_THREAD_STATE64_COUNT;
-+
-+# elif defined(x86_THREAD_STATE)
-+typedef x86_thread_state_t moz_platform_thread_state_t;
-+static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = x86_THREAD_STATE;
-+static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = x86_THREAD_STATE_COUNT;
-+
-+# else
-+# error Type unknown for platform-specific thread_state_t
-+# endif
-+
-+# if defined(__DARWIN_UNIX03)
-+# define REG_FIELD(NAME) __ ## NAME
-+# else
-+# define REG_FIELD(NAME) NAME
-+# endif
-+
- static uint8_t **
--ContextToPC(x86_thread_state_t &state)
-+ContextToPC(moz_platform_thread_state_t &state)
- {
- # if defined(JS_CPU_X64)
- static_assert(sizeof(state.uts.ts64.__rip) == sizeof(void*),
-@@ -617,10 +647,11 @@ HandleMachException(JSRuntime *rt, const
+@@ -637,10 +637,11 @@ HandleMachException(JSRuntime* rt, const
mach_port_t rtThread = request.body.thread.name;
// Read out the JSRuntime thread's register state.
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_gc_Memory.cpp b/www/seamonkey/patches/patch-mozilla_js_src_gc_Memory.cpp
deleted file mode 100644
index 8269fe88374..00000000000
--- a/www/seamonkey/patches/patch-mozilla_js_src_gc_Memory.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_js_src_gc_Memory.cpp,v 1.4 2014/11/02 05:40:31 ryoon Exp $
-
---- mozilla/js/src/gc/Memory.cpp.orig 2014-10-14 06:36:16.000000000 +0000
-+++ mozilla/js/src/gc/Memory.cpp
-@@ -406,7 +406,7 @@ static inline void *
- MapMemory(size_t length, int prot = PROT_READ | PROT_WRITE,
- int flags = MAP_PRIVATE | MAP_ANON, int fd = -1, off_t offset = 0)
- {
--#if defined(__ia64__)
-+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
- /*
- * The JS engine assumes that all allocated pointers have their high 17 bits clear,
- * which ia64's mmap doesn't support directly. However, we can emulate it by passing
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h b/www/seamonkey/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h
index 305259599a1..d04070ce5fb 100644
--- a/www/seamonkey/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h
+++ b/www/seamonkey/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h
@@ -1,10 +1,10 @@
-$NetBSD: patch-mozilla_js_src_jit_ExecutableAllocator.h,v 1.2 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_js_src_jit_ExecutableAllocator.h,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/js/src/jit/ExecutableAllocator.h.orig 2015-03-09 05:34:36.000000000 +0000
+--- mozilla/js/src/jit/ExecutableAllocator.h.orig 2015-09-02 09:27:29.000000000 +0000
+++ mozilla/js/src/jit/ExecutableAllocator.h
-@@ -425,6 +425,11 @@ public:
-
- #undef GCC_VERSION
+@@ -419,6 +419,11 @@ class ExecutableAllocator {
+ {
+ __clear_cache(code, reinterpret_cast<char*>(code) + size);
}
+#elif defined(JS_CODEGEN_ARM) && (defined(__FreeBSD__) || defined(__NetBSD__))
+ static void cacheFlush(void* code, size_t size)
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_jit_LIR.cpp b/www/seamonkey/patches/patch-mozilla_js_src_jit_LIR.cpp
index 390bb01d531..efef5b0bb30 100644
--- a/www/seamonkey/patches/patch-mozilla_js_src_jit_LIR.cpp
+++ b/www/seamonkey/patches/patch-mozilla_js_src_jit_LIR.cpp
@@ -1,9 +1,9 @@
-$NetBSD: patch-mozilla_js_src_jit_LIR.cpp,v 1.1 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_js_src_jit_LIR.cpp,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/js/src/jit/LIR.cpp.orig 2015-03-09 05:34:37.000000000 +0000
+--- mozilla/js/src/jit/LIR.cpp.orig 2015-09-02 09:27:30.000000000 +0000
+++ mozilla/js/src/jit/LIR.cpp
-@@ -314,7 +314,7 @@ LNode::printName(FILE *fp, Opcode op)
- const char *name = names[op];
+@@ -323,7 +323,7 @@ LNode::printName(FILE* fp, Opcode op)
+ const char* name = names[op];
size_t len = strlen(name);
for (size_t i = 0; i < len; i++)
- fprintf(fp, "%c", tolower(name[i]));
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_jit_MIR.cpp b/www/seamonkey/patches/patch-mozilla_js_src_jit_MIR.cpp
index 4419ecfe174..bab28f2dfbf 100644
--- a/www/seamonkey/patches/patch-mozilla_js_src_jit_MIR.cpp
+++ b/www/seamonkey/patches/patch-mozilla_js_src_jit_MIR.cpp
@@ -1,13 +1,13 @@
-$NetBSD: patch-mozilla_js_src_jit_MIR.cpp,v 1.1 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_js_src_jit_MIR.cpp,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/js/src/jit/MIR.cpp.orig 2015-03-09 05:34:37.000000000 +0000
+--- mozilla/js/src/jit/MIR.cpp.orig 2015-09-02 09:27:30.000000000 +0000
+++ mozilla/js/src/jit/MIR.cpp
-@@ -68,7 +68,7 @@ MDefinition::PrintOpcodeName(FILE *fp, M
- const char *name = names[op];
+@@ -71,7 +71,7 @@ MDefinition::PrintOpcodeName(FILE* fp, M
+ const char* name = names[op];
size_t len = strlen(name);
for (size_t i = 0; i < len; i++)
- fprintf(fp, "%c", tolower(name[i]));
+ fprintf(fp, "%c", tolower(((unsigned char)name[i])));
}
- static MConstant *
+ const Value&
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp b/www/seamonkey/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp
index 9fb89beddc6..5a1f1bef77c 100644
--- a/www/seamonkey/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp
+++ b/www/seamonkey/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp
@@ -1,12 +1,12 @@
-$NetBSD: patch-mozilla_js_src_jit_arm_Architecture-arm.cpp,v 1.2 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_js_src_jit_arm_Architecture-arm.cpp,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/js/src/jit/arm/Architecture-arm.cpp.orig 2015-03-09 05:34:37.000000000 +0000
+--- mozilla/js/src/jit/arm/Architecture-arm.cpp.orig 2015-09-02 09:27:31.000000000 +0000
+++ mozilla/js/src/jit/arm/Architecture-arm.cpp
@@ -16,7 +16,7 @@
#include "jit/arm/Assembler-arm.h"
#include "jit/RegisterSets.h"
--#if defined(ANDROID) || defined(JS_ARM_SIMULATOR)
+-#if !defined(__linux__) || defined(ANDROID) || defined(JS_ARM_SIMULATOR)
+#if !defined(__linux__) || defined(ANDROID) || defined(JS_ARM_SIMULATOR) || defined(__NetBSD__)
// The Android NDK and B2G do not include the hwcap.h kernel header, and it is not
// defined when building the simulator, so inline the header defines we need.
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_jsapi.cpp b/www/seamonkey/patches/patch-mozilla_js_src_jsapi.cpp
index ebc56e01bff..1617833f5c9 100644
--- a/www/seamonkey/patches/patch-mozilla_js_src_jsapi.cpp
+++ b/www/seamonkey/patches/patch-mozilla_js_src_jsapi.cpp
@@ -1,22 +1,13 @@
-$NetBSD: patch-mozilla_js_src_jsapi.cpp,v 1.3 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_js_src_jsapi.cpp,v 1.4 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/js/src/jsapi.cpp.orig 2015-03-09 05:34:38.000000000 +0000
+--- mozilla/js/src/jsapi.cpp.orig 2015-09-02 09:27:32.000000000 +0000
+++ mozilla/js/src/jsapi.cpp
-@@ -233,7 +233,7 @@ JS_ConvertArgumentsVA(JSContext *cx, con
- assertSameCompartment(cx, args);
- required = true;
- while ((c = *format++) != '\0') {
-- if (isspace(c))
-+ if (isspace(((unsigned char)c)))
- continue;
- if (c == '/') {
- required = false;
-@@ -522,7 +522,7 @@ MessageParameterCount(const char *format
- {
- unsigned numfmtspecs = 0;
- for (const char *fmt = format; *fmt != '\0'; fmt++) {
-- if (*fmt == '{' && isdigit(fmt[1]))
-+ if (*fmt == '{' && isdigit((unsigned char)fmt[1]))
- ++numfmtspecs;
- }
- return numfmtspecs;
+@@ -115,7 +115,7 @@ using js::frontend::Parser;
+ #define JS_ADDRESSOF_VA_LIST(ap) (&(ap))
+ #endif
+
+-bool
++JS_PUBLIC_API(bool)
+ JS::CallArgs::requireAtLeast(JSContext* cx, const char* fnname, unsigned required) {
+ if (length() < required) {
+ char numArgsStr[40];
diff --git a/www/seamonkey/patches/patch-mozilla_js_src_shell_jsoptparse.cpp b/www/seamonkey/patches/patch-mozilla_js_src_shell_jsoptparse.cpp
index cb1b95dd830..88e86deec77 100644
--- a/www/seamonkey/patches/patch-mozilla_js_src_shell_jsoptparse.cpp
+++ b/www/seamonkey/patches/patch-mozilla_js_src_shell_jsoptparse.cpp
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_js_src_shell_jsoptparse.cpp,v 1.1 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_js_src_shell_jsoptparse.cpp,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/js/src/shell/jsoptparse.cpp.orig 2015-03-09 05:34:41.000000000 +0000
+--- mozilla/js/src/shell/jsoptparse.cpp.orig 2015-09-02 09:27:36.000000000 +0000
+++ mozilla/js/src/shell/jsoptparse.cpp
-@@ -90,11 +90,11 @@ PrintParagraph(const char *text, unsigne
+@@ -90,7 +90,7 @@ PrintParagraph(const char* text, unsigne
printf("%*s", startColno, "");
while (*it != '\0') {
@@ -10,9 +10,4 @@ $NetBSD: patch-mozilla_js_src_shell_jsoptparse.cpp,v 1.1 2015/03/17 19:50:42 ryo
+ MOZ_ASSERT(!isspace((unsigned char)*it));
/* Delimit the current token. */
- const char *limit = it;
-- while (!isspace(*limit) && *limit != '\0')
-+ while (!isspace(((unsigned char)*limit)) && *limit != '\0')
- ++limit;
-
- /*
+ const char* limit = it;
diff --git a/www/seamonkey/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp b/www/seamonkey/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp
new file mode 100644
index 00000000000..461259484a4
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_xpconnect_src_XPCConvert.cpp,v 1.1 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/js/xpconnect/src/XPCConvert.cpp.orig 2015-09-02 09:28:14.000000000 +0000
++++ mozilla/js/xpconnect/src/XPCConvert.cpp
+@@ -134,7 +134,7 @@ XPCConvert::NativeData2JS(MutableHandleV
+ d.setNumber(*static_cast<const float*>(s));
+ return true;
+ case nsXPTType::T_DOUBLE:
+- d.setNumber(*static_cast<const double*>(s));
++ d.setNumber(CanonicalizeNaN(*static_cast<const double*>(s)));
+ return true;
+ case nsXPTType::T_BOOL :
+ d.setBoolean(*static_cast<const bool*>(s));
diff --git a/www/seamonkey/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c b/www/seamonkey/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c
index 6c8c89d3c6a..dcbc55659f7 100644
--- a/www/seamonkey/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c
+++ b/www/seamonkey/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c
@@ -1,10 +1,10 @@
-$NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.5 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/media/libcubeb/src/cubeb_alsa.c.orig 2015-03-09 05:34:21.000000000 +0000
+--- mozilla/media/libcubeb/src/cubeb_alsa.c.orig 2015-09-02 09:27:22.000000000 +0000
+++ mozilla/media/libcubeb/src/cubeb_alsa.c
-@@ -6,12 +6,18 @@
- */
+@@ -7,12 +7,18 @@
#undef NDEBUG
+ #define _DEFAULT_SOURCE
#define _BSD_SOURCE
+#if defined(__NetBSD__)
+#define _NETBSD_SOURCE
@@ -21,7 +21,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
#include <unistd.h>
#include <alsa/asoundlib.h>
#include "cubeb/cubeb.h"
-@@ -24,6 +30,51 @@
+@@ -25,6 +31,51 @@
#define ALSA_PA_PLUGIN "ALSA <-> PulseAudio PCM I/O Plugin"
@@ -73,7 +73,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
/* ALSA is not thread-safe. snd_pcm_t instances are individually protected
by the owning cubeb_stream's mutex. snd_pcm_t creation and destruction
is not thread-safe until ALSA 1.0.24 (see alsa-lib.git commit 91c9c8f1),
-@@ -64,6 +115,8 @@ struct cubeb {
+@@ -65,6 +116,8 @@ struct cubeb {
workaround is not required. */
snd_config_t * local_config;
int is_pa;
@@ -82,7 +82,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
};
enum stream_state {
-@@ -257,32 +310,35 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -258,32 +311,35 @@ alsa_refill_stream(cubeb_stream * stm)
long got;
void * p;
int draining;
@@ -137,7 +137,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
/* This should never happen. */
if ((unsigned int) avail > stm->buffer_size) {
-@@ -293,8 +349,8 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -294,8 +350,8 @@ alsa_refill_stream(cubeb_stream * stm)
available to write. If avail is still zero here, the stream must be in
a funky state, so recover and try again. */
if (avail == 0) {
@@ -148,7 +148,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (avail <= 0) {
pthread_mutex_unlock(&stm->mutex);
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
-@@ -302,7 +358,7 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -303,7 +359,7 @@ alsa_refill_stream(cubeb_stream * stm)
}
}
@@ -157,7 +157,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
assert(p);
pthread_mutex_unlock(&stm->mutex);
-@@ -311,10 +367,11 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -312,10 +368,11 @@ alsa_refill_stream(cubeb_stream * stm)
if (got < 0) {
pthread_mutex_unlock(&stm->mutex);
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
@@ -170,7 +170,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) {
float * b = (float *) p;
-@@ -327,14 +384,62 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -328,14 +385,64 @@ alsa_refill_stream(cubeb_stream * stm)
b[i] *= stm->volume;
}
}
@@ -206,6 +206,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
+ return ERROR;
+ }
+ continue;
++#if defined(EBADFD)
+ case -EBADFD:
+ fprintf(stderr, "%s: snc_pcm_writei returned -%s, giving up\n",
+ __func__, "EBADFD");
@@ -213,6 +214,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ pthread_mutex_unlock(&stm->mutex);
+ return ERROR;
++#endif
+ }
+ if (wrote < 0) {
+ fprintf(stderr, "%s: snc_pcm_writei returned unexpected error %lld, "
@@ -241,7 +243,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
}
if (got != avail) {
long buffer_fill = stm->buffer_size - (avail - got);
-@@ -342,7 +447,7 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -343,7 +450,7 @@ alsa_refill_stream(cubeb_stream * stm)
/* Fill the remaining buffer with silence to guarantee one full period
has been written. */
@@ -250,7 +252,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
set_timeout(&stm->drain_timeout, buffer_time * 1000);
-@@ -453,26 +558,26 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -454,26 +561,26 @@ get_slave_pcm_node(snd_config_t * lconf,
slave_def = NULL;
@@ -282,7 +284,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (r < 0) {
break;
}
-@@ -481,7 +586,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -482,7 +589,7 @@ get_slave_pcm_node(snd_config_t * lconf,
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
@@ -291,7 +293,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (r < 0) {
break;
}
-@@ -490,7 +595,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -491,7 +598,7 @@ get_slave_pcm_node(snd_config_t * lconf,
} while (0);
if (slave_def) {
@@ -300,7 +302,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
}
return NULL;
-@@ -513,22 +618,22 @@ init_local_config_with_workaround(char c
+@@ -514,22 +621,22 @@ init_local_config_with_workaround(char c
lconf = NULL;
@@ -327,7 +329,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (r < 0) {
break;
}
-@@ -537,7 +642,7 @@ init_local_config_with_workaround(char c
+@@ -538,7 +645,7 @@ init_local_config_with_workaround(char c
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
@@ -336,7 +338,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (r < 0) {
break;
}
-@@ -548,12 +653,12 @@ init_local_config_with_workaround(char c
+@@ -549,12 +656,12 @@ init_local_config_with_workaround(char c
}
/* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */
@@ -351,7 +353,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (r < 0) {
break;
}
-@@ -564,18 +669,18 @@ init_local_config_with_workaround(char c
+@@ -565,18 +672,18 @@ init_local_config_with_workaround(char c
/* Don't clobber an explicit existing handle_underrun value, set it only
if it doesn't already exist. */
@@ -373,7 +375,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
if (r < 0) {
break;
}
-@@ -583,7 +688,7 @@ init_local_config_with_workaround(char c
+@@ -584,7 +691,7 @@ init_local_config_with_workaround(char c
return lconf;
} while (0);
@@ -382,7 +384,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
return NULL;
}
-@@ -595,9 +700,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, s
+@@ -596,9 +703,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, s
pthread_mutex_lock(&cubeb_alsa_mutex);
if (local_config) {
@@ -394,7 +396,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
-@@ -610,7 +715,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
+@@ -611,7 +718,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
int r;
pthread_mutex_lock(&cubeb_alsa_mutex);
@@ -403,7 +405,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
pthread_mutex_unlock(&cubeb_alsa_mutex);
return r;
-@@ -667,12 +772,65 @@ alsa_init(cubeb ** context, char const *
+@@ -668,12 +775,65 @@ alsa_init(cubeb ** context, char const *
pthread_attr_t attr;
snd_pcm_t * dummy;
@@ -470,7 +472,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
cubeb_alsa_error_handler_set = 1;
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
-@@ -680,6 +838,8 @@ alsa_init(cubeb ** context, char const *
+@@ -681,6 +841,8 @@ alsa_init(cubeb ** context, char const *
ctx = calloc(1, sizeof(*ctx));
assert(ctx);
@@ -479,7 +481,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
ctx->ops = &alsa_ops;
r = pthread_mutex_init(&ctx->mutex, NULL);
-@@ -729,7 +889,7 @@ alsa_init(cubeb ** context, char const *
+@@ -730,7 +892,7 @@ alsa_init(cubeb ** context, char const *
config fails with EINVAL, the PA PCM is too old for this workaround. */
if (r == -EINVAL) {
pthread_mutex_lock(&cubeb_alsa_mutex);
@@ -488,7 +490,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
pthread_mutex_unlock(&cubeb_alsa_mutex);
ctx->local_config = NULL;
} else if (r >= 0) {
-@@ -768,9 +928,13 @@ alsa_destroy(cubeb * ctx)
+@@ -769,9 +931,13 @@ alsa_destroy(cubeb * ctx)
pthread_mutex_destroy(&ctx->mutex);
free(ctx->fds);
@@ -503,7 +505,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
pthread_mutex_unlock(&cubeb_alsa_mutex);
}
-@@ -838,7 +1002,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
+@@ -839,7 +1005,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
return CUBEB_ERROR;
}
@@ -512,7 +514,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
assert(r == 0);
/* Ugly hack: the PA ALSA plugin allows buffer configurations that can't
-@@ -848,23 +1012,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
+@@ -849,23 +1015,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
latency = latency < 500 ? 500 : latency;
}
@@ -542,7 +544,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
assert((nfds_t) r == stm->nfds);
r = pthread_cond_init(&stm->cond, NULL);
-@@ -895,7 +1059,7 @@ alsa_stream_destroy(cubeb_stream * stm)
+@@ -896,7 +1062,7 @@ alsa_stream_destroy(cubeb_stream * stm)
pthread_mutex_lock(&stm->mutex);
if (stm->pcm) {
if (stm->state == DRAINING) {
@@ -551,7 +553,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
}
alsa_locked_pcm_close(stm->pcm);
stm->pcm = NULL;
-@@ -905,7 +1069,10 @@ alsa_stream_destroy(cubeb_stream * stm)
+@@ -906,7 +1072,10 @@ alsa_stream_destroy(cubeb_stream * stm)
pthread_mutex_destroy(&stm->mutex);
r = pthread_cond_destroy(&stm->cond);
@@ -563,42 +565,42 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
alsa_unregister_stream(stm);
-@@ -937,12 +1104,12 @@ alsa_get_max_channel_count(cubeb * ctx,
+@@ -938,12 +1107,12 @@ alsa_get_max_channel_count(cubeb * ctx,
return CUBEB_ERROR;
}
-- rv = snd_pcm_hw_params_any(stm->pcm, hw_params);
-+ rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
- if (rv < 0) {
+- r = snd_pcm_hw_params_any(stm->pcm, hw_params);
++ r = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
+ if (r < 0) {
return CUBEB_ERROR;
}
-- rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
-+ rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
- if (rv < 0) {
+- r = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
++ r = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
+ if (r < 0) {
return CUBEB_ERROR;
}
-@@ -962,34 +1129,34 @@ alsa_get_preferred_sample_rate(cubeb * c
+@@ -963,34 +1132,34 @@ alsa_get_preferred_sample_rate(cubeb * c
/* get a pcm, disabling resampling, so we get a rate the
* hardware/dmix/pulse/etc. supports. */
-- rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
-+ rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
- if (rv < 0) {
+- r = snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
++ r = WRAP(snd_pcm_open)(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
+ if (r < 0) {
return CUBEB_ERROR;
}
-- rv = snd_pcm_hw_params_any(pcm, hw_params);
-+ rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
- if (rv < 0) {
+- r = snd_pcm_hw_params_any(pcm, hw_params);
++ r = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
+ if (r < 0) {
- snd_pcm_close(pcm);
+ WRAP(snd_pcm_close)(pcm);
return CUBEB_ERROR;
}
-- rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
-+ rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
- if (rv >= 0) {
+- r = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
++ r = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
+ if (r >= 0) {
/* There is a default rate: use it. */
- snd_pcm_close(pcm);
+ WRAP(snd_pcm_close)(pcm);
@@ -608,9 +610,9 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
/* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */
*rate = 44100;
-- rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
-+ rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
- if (rv < 0) {
+- r = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
++ r = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
+ if (r < 0) {
- snd_pcm_close(pcm);
+ WRAP(snd_pcm_close)(pcm);
return CUBEB_ERROR;
@@ -621,7 +623,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
return CUBEB_OK;
}
-@@ -1013,7 +1180,7 @@ alsa_stream_start(cubeb_stream * stm)
+@@ -1014,7 +1183,7 @@ alsa_stream_start(cubeb_stream * stm)
ctx = stm->context;
pthread_mutex_lock(&stm->mutex);
@@ -630,7 +632,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
gettimeofday(&stm->last_activity, NULL);
pthread_mutex_unlock(&stm->mutex);
-@@ -1047,7 +1214,7 @@ alsa_stream_stop(cubeb_stream * stm)
+@@ -1048,7 +1217,7 @@ alsa_stream_stop(cubeb_stream * stm)
pthread_mutex_unlock(&ctx->mutex);
pthread_mutex_lock(&stm->mutex);
@@ -639,7 +641,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
pthread_mutex_unlock(&stm->mutex);
return CUBEB_OK;
-@@ -1063,14 +1230,17 @@ alsa_stream_get_position(cubeb_stream *
+@@ -1064,14 +1233,17 @@ alsa_stream_get_position(cubeb_stream *
pthread_mutex_lock(&stm->mutex);
delay = -1;
@@ -660,7 +662,7 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.4 2015/03/17 19:50:4
*position = 0;
if (stm->write_position >= (snd_pcm_uframes_t) delay) {
-@@ -1089,7 +1259,7 @@ alsa_stream_get_latency(cubeb_stream * s
+@@ -1090,7 +1262,7 @@ alsa_stream_get_latency(cubeb_stream * s
snd_pcm_sframes_t delay;
/* This function returns the delay in frames until a frame written using
snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */
diff --git a/www/seamonkey/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp b/www/seamonkey/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp
deleted file mode 100644
index 73dc9560f57..00000000000
--- a/www/seamonkey/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD: patch-mozilla_media_webrtc_signaling_signaling.gyp,v 1.3 2014/06/22 08:54:39 ryoon Exp $
-
---- mozilla/media/webrtc/signaling/signaling.gyp.orig 2014-06-13 00:46:10.000000000 +0000
-+++ mozilla/media/webrtc/signaling/signaling.gyp
-@@ -825,14 +825,13 @@
- ['OS=="mac"', {
- 'defines' : [
- 'SIP_OS_OSX',
-- '_POSIX_SOURCE',
-+ # using BSD extensions, leave _POSIX_SOURCE undefined
- 'CPR_MEMORY_LITTLE_ENDIAN',
- 'NO_SOCKET_POLLING',
- 'USE_TIMER_SELECT_BASED',
- 'FULL_BUILD',
- 'STUBBED_OUT',
- 'USE_PRINTF',
-- '_DARWIN_C_SOURCE',
- 'NO_NSPR_10_SUPPORT',
- ],
- }],
diff --git a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi
index 3532be61bda..c485c4c4cc8 100644
--- a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi
+++ b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi
@@ -1,17 +1,27 @@
-$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi,v 1.2 2014/06/22 08:54:39 ryoon Exp $
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi.orig 2014-06-13 00:45:44.000000000 +0000
+--- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi.orig 2015-09-02 09:27:27.000000000 +0000
+++ mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-@@ -14,9 +14,9 @@
+@@ -17,18 +17,11 @@
'conditions': [
['build_with_mozilla==1', {
# Mozilla provides its own build of the opus library.
- 'include_dirs': [
- '/media/libopus/include',
-- ]
+- '/media/libopus/src',
+- '/media/libopus/celt',
+ 'cflags_mozilla': [
++ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
+ '$(MOZ_OPUS_CFLAGS)',
-+ ],
++ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
+ ],
+- 'direct_dependent_settings': {
+- 'include_dirs': [
+- '/media/libopus/include',
+- '/media/libopus/src',
+- '/media/libopus/celt',
+- ],
+- },
}, {
'dependencies': [
'<(DEPTH)/third_party/opus/opus.gyp:opus'
diff --git a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi
new file mode 100644
index 00000000000..6e98f0b8efe
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi
@@ -0,0 +1,28 @@
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi,v 1.1 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi.orig 2015-09-02 09:27:27.000000000 +0000
++++ mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
+@@ -84,19 +84,11 @@
+ ],
+ }],
+ ['build_with_mozilla==1', {
+- 'include_dirs': [
+- # Need Opus header files for the audio classifier.
+- '<(DEPTH)/../../../media/opus/celt',
+-# '<(DEPTH)/third_party/opus/src/src',
++ 'cflags_mozilla': [
++ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
++ '$(MOZ_OPUS_CFLAGS)',
++ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
+ ],
+- 'direct_dependent_settings': {
+- 'include_dirs': [
+- '../../../../../../media/opus/celt',
+- # Need Opus header files for the audio classifier.
+- '<(DEPTH)/../../../media/opus/celt',
+-# '<(DEPTH)/third_party/opus/src/src',
+- ],
+- },
+ }],
+ ],
+ 'sources': [
diff --git a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
index 14fc181e933..a435e576a6f 100644
--- a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
+++ b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi,v 1.3 2014/11/02 05:40:31 ryoon Exp $
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi,v 1.4 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi.orig 2014-10-14 06:36:31.000000000 +0000
+--- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi.orig 2015-09-02 09:27:28.000000000 +0000
+++ mozilla/media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
@@ -7,6 +7,9 @@
# be found in the AUTHORS file in the root of the source tree.
@@ -11,24 +11,24 @@ $NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__c
+ },
'targets': [
{
- 'target_name': 'video_capture_module',
-@@ -46,6 +49,19 @@
- 'linux/video_capture_linux.cc',
- 'linux/video_capture_linux.h',
- ],
-+ 'conditions': [
-+ ['use_libv4l2==1', {
-+ 'defines': [
-+ 'HAVE_LIBV4L2',
-+ ],
-+ 'cflags_mozilla': [
-+ '$(MOZ_LIBV4L2_CFLAGS)',
-+ ],
-+ 'libraries': [
-+ '-lv4l2',
-+ ],
-+ }],
+ # Note this library is missing an implementation for the video capture.
+@@ -69,6 +72,19 @@
+ 'linux/video_capture_linux.cc',
+ 'linux/video_capture_linux.h',
+ ],
++ 'conditions': [
++ ['use_libv4l2==1', {
++ 'defines': [
++ 'HAVE_LIBV4L2',
+ ],
- }], # linux
- ['OS=="mac"', {
- 'sources': [
++ 'cflags_mozilla': [
++ '$(MOZ_LIBV4L2_CFLAGS)',
++ ],
++ 'libraries': [
++ '-lv4l2',
++ ],
++ }],
++ ],
+ }], # linux
+ ['OS=="mac"', {
+ 'sources': [
diff --git a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__coding_main_source_receiver.cc b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__coding_main_source_receiver.cc
deleted file mode 100644
index 686890a8c31..00000000000
--- a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__coding_main_source_receiver.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_video__coding_main_source_receiver.cc,v 1.1 2015/03/17 19:50:42 ryoon Exp $
-
---- mozilla/media/webrtc/trunk/webrtc/modules/video_coding/main/source/receiver.cc.orig 2015-03-09 05:34:40.000000000 +0000
-+++ mozilla/media/webrtc/trunk/webrtc/modules/video_coding/main/source/receiver.cc
-@@ -159,12 +159,13 @@ VCMEncodedFrame* VCMReceiver::FrameForDe
- // Assume that render timing errors are due to changes in the video stream.
- if (next_render_time_ms < 0) {
- timing_error = true;
-- } else if (std::abs(next_render_time_ms - now_ms) > max_video_delay_ms_) {
-+ } else if (std::abs(static_cast<int>(next_render_time_ms - now_ms)) >
-+ max_video_delay_ms_) {
- WEBRTC_TRACE(webrtc::kTraceWarning, webrtc::kTraceVideoCoding,
- VCMId(vcm_id_, receiver_id_),
- "This frame is out of our delay bounds, resetting jitter "
- "buffer: %d > %d",
-- static_cast<int>(std::abs(next_render_time_ms - now_ms)),
-+ std::abs(static_cast<int>(next_render_time_ms - now_ms)),
- max_video_delay_ms_);
- timing_error = true;
- } else if (static_cast<int>(timing_->TargetVideoDelay()) >
diff --git a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
index de86a7771e4..8e0283dfd1f 100644
--- a/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
+++ b/www/seamonkey/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp,v 1.4 2015/02/15 02:11:03 ryoon Exp $
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp,v 1.5 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig 2015-02-05 04:39:00.000000000 +0000
+--- mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig 2015-09-02 09:27:31.000000000 +0000
+++ mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp
@@ -14,6 +14,13 @@ Cygwin fix provided by:
Scott McMurray
@@ -27,6 +27,6 @@ $NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreads
+# endif
+#endif
+
- namespace boost {
- namespace detail {
- //This only works on unsigned data types
+ #ifdef getchar
+ #undef getchar
+ #endif
diff --git a/www/seamonkey/patches/patch-mozilla_memory_build_mozjemalloc__compat.c b/www/seamonkey/patches/patch-mozilla_memory_build_mozjemalloc__compat.c
index d67bc2c16b7..d0d3e73944d 100644
--- a/www/seamonkey/patches/patch-mozilla_memory_build_mozjemalloc__compat.c
+++ b/www/seamonkey/patches/patch-mozilla_memory_build_mozjemalloc__compat.c
@@ -1,35 +1,9 @@
-$NetBSD: patch-mozilla_memory_build_mozjemalloc__compat.c,v 1.2 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_memory_build_mozjemalloc__compat.c,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/memory/build/mozjemalloc_compat.c.orig 2015-03-09 05:34:43.000000000 +0000
+--- mozilla/memory/build/mozjemalloc_compat.c.orig 2015-09-02 09:27:33.000000000 +0000
+++ mozilla/memory/build/mozjemalloc_compat.c
-@@ -12,6 +12,8 @@
- #include "jemalloc_types.h"
- #include "mozilla/Types.h"
-
-+#include <stdbool.h>
-+
- #if defined(MOZ_NATIVE_JEMALLOC)
-
- MOZ_IMPORT_API int
-@@ -47,6 +49,16 @@ je_(nallocm)(size_t *rsize, size_t size,
- je_(mallctlbymib)(mib, miblen, &v, &sz, NULL, 0); \
- } while (0)
-
-+#define CTL_IJ_GET(n, v, i, j) do { \
-+ size_t mib[6]; \
-+ size_t miblen = sizeof(mib) / sizeof(mib[0]); \
-+ size_t sz = sizeof(v); \
-+ je_(mallctlnametomib)(n, mib, &miblen); \
-+ mib[2] = i; \
-+ mib[4] = j; \
-+ je_(mallctlbymib)(mib, miblen, &v, &sz, NULL, 0); \
-+} while (0)
-+
- MOZ_MEMORY_API size_t
- malloc_good_size_impl(size_t size)
- {
-@@ -61,6 +73,48 @@ malloc_good_size_impl(size_t size)
- return size;
+@@ -131,6 +131,48 @@ compute_bin_unused(unsigned int narenas)
+ return bin_unused;
}
+static size_t
@@ -77,13 +51,3 @@ $NetBSD: patch-mozilla_memory_build_mozjemalloc__compat.c,v 1.2 2015/03/17 19:50
MOZ_JEMALLOC_API void
jemalloc_stats_impl(jemalloc_stats_t *stats)
{
-@@ -93,7 +147,8 @@ jemalloc_stats_impl(jemalloc_stats_t *st
- // We could get this value out of base.c::base_pages, but that really should
- // be an upstream change, so don't worry about it for now.
- stats->bookkeeping = 0;
-- stats->bin_unused = 0;
-+
-+ stats->bin_unused = compute_bin_unused(narenas);
- }
-
- MOZ_JEMALLOC_API void
diff --git a/www/seamonkey/patches/patch-mozilla_memory_jemalloc_src_configure b/www/seamonkey/patches/patch-mozilla_memory_jemalloc_src_configure
index 1f47e60e119..6c282bcf910 100644
--- a/www/seamonkey/patches/patch-mozilla_memory_jemalloc_src_configure
+++ b/www/seamonkey/patches/patch-mozilla_memory_jemalloc_src_configure
@@ -1,31 +1,13 @@
-$NetBSD: patch-mozilla_memory_jemalloc_src_configure,v 1.1 2014/11/02 05:40:31 ryoon Exp $
+$NetBSD: patch-mozilla_memory_jemalloc_src_configure,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/memory/jemalloc/src/configure.orig 2014-10-14 06:36:32.000000000 +0000
+--- mozilla/memory/jemalloc/src/configure.orig 2015-09-02 09:27:33.000000000 +0000
+++ mozilla/memory/jemalloc/src/configure
-@@ -6344,7 +6344,7 @@ else
+@@ -6566,7 +6566,7 @@ else
+ LG_PAGE="detect"
fi
- if test "x$have_sbrk" = "x1" ; then
-- if test "x$sbrk_deprecated" == "x1" ; then
-+ if test "x$sbrk_deprecated" = "x1" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling dss allocation because sbrk is deprecated" >&5
- $as_echo "Disabling dss allocation because sbrk is deprecated" >&6; }
- enable_dss="0"
-@@ -6945,7 +6945,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $je_cv_gcc_builtin_ffsl" >&5
- $as_echo "$je_cv_gcc_builtin_ffsl" >&6; }
-
--if test "x${je_cv_gcc_builtin_ffsl}" == "xyes" ; then
-+if test "x${je_cv_gcc_builtin_ffsl}" = "xyes" ; then
- $as_echo "#define JEMALLOC_INTERNAL_FFSL __builtin_ffsl" >>confdefs.h
-
- $as_echo "#define JEMALLOC_INTERNAL_FFS __builtin_ffs" >>confdefs.h
-@@ -6988,7 +6988,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $je_cv_function_ffsl" >&5
- $as_echo "$je_cv_function_ffsl" >&6; }
-
-- if test "x${je_cv_function_ffsl}" == "xyes" ; then
-+ if test "x${je_cv_function_ffsl}" = "xyes" ; then
- $as_echo "#define JEMALLOC_INTERNAL_FFSL ffsl" >>confdefs.h
-
- $as_echo "#define JEMALLOC_INTERNAL_FFS ffs" >>confdefs.h
+-if test "x$LG_PAGE" == "xdetect"; then
++if test "x$LG_PAGE" = "xdetect"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking LG_PAGE" >&5
+ $as_echo_n "checking LG_PAGE... " >&6; }
+ if ${je_cv_lg_page+:} false; then :
diff --git a/www/seamonkey/patches/patch-mozilla_memory_mozalloc_VolatileBufferOSX.cpp b/www/seamonkey/patches/patch-mozilla_memory_volatile_VolatileBufferOSX.cpp
index ab6978efbf1..3676aa9fc63 100644
--- a/www/seamonkey/patches/patch-mozilla_memory_mozalloc_VolatileBufferOSX.cpp
+++ b/www/seamonkey/patches/patch-mozilla_memory_volatile_VolatileBufferOSX.cpp
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_memory_mozalloc_VolatileBufferOSX.cpp,v 1.1 2015/02/15 02:11:03 ryoon Exp $
+$NetBSD: patch-mozilla_memory_volatile_VolatileBufferOSX.cpp,v 1.1 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/memory/mozalloc/VolatileBufferOSX.cpp.orig 2015-02-05 04:39:05.000000000 +0000
-+++ mozilla/memory/mozalloc/VolatileBufferOSX.cpp
-@@ -46,7 +46,14 @@ VolatileBuffer::Init(size_t aSize, size_
+--- mozilla/memory/volatile/VolatileBufferOSX.cpp.orig 2015-09-02 09:27:34.000000000 +0000
++++ mozilla/memory/volatile/VolatileBufferOSX.cpp
+@@ -47,7 +47,14 @@ VolatileBuffer::Init(size_t aSize, size_
}
heap_alloc:
diff --git a/www/seamonkey/patches/patch-mozilla_mfbt_Attributes.h b/www/seamonkey/patches/patch-mozilla_mfbt_Attributes.h
index 61c15cdd1c4..ae4bb7f78ce 100644
--- a/www/seamonkey/patches/patch-mozilla_mfbt_Attributes.h
+++ b/www/seamonkey/patches/patch-mozilla_mfbt_Attributes.h
@@ -1,16 +1,16 @@
-$NetBSD: patch-mozilla_mfbt_Attributes.h,v 1.1 2014/11/02 05:40:31 ryoon Exp $
+$NetBSD: patch-mozilla_mfbt_Attributes.h,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/mfbt/Attributes.h.orig 2014-10-14 06:36:32.000000000 +0000
+--- mozilla/mfbt/Attributes.h.orig 2015-09-02 09:27:34.000000000 +0000
+++ mozilla/mfbt/Attributes.h
-@@ -51,6 +51,7 @@
+@@ -50,6 +50,7 @@
+ * don't indicate support for them here, due to
* http://stackoverflow.com/questions/20498142/visual-studio-2013-explicit-keyword-bug
*/
- # if _MSC_VER >= 1800
-+# define MOZ_HAVE_CXX11_ALIGNAS
- # define MOZ_HAVE_CXX11_DELETE
- # endif
- # if _MSC_VER >= 1700
-@@ -74,6 +75,9 @@
++# define MOZ_HAVE_CXX11_ALIGNAS
+ # define MOZ_HAVE_NEVER_INLINE __declspec(noinline)
+ # define MOZ_HAVE_NORETURN __declspec(noreturn)
+ # ifdef __clang__
+@@ -70,6 +71,9 @@
# ifndef __has_extension
# define __has_extension __has_feature /* compatibility, for older versions of clang */
# endif
@@ -20,13 +20,13 @@ $NetBSD: patch-mozilla_mfbt_Attributes.h,v 1.1 2014/11/02 05:40:31 ryoon Exp $
# if __has_extension(cxx_constexpr)
# define MOZ_HAVE_CXX11_CONSTEXPR
# endif
-@@ -95,6 +99,9 @@
+@@ -84,6 +88,9 @@
# endif
#elif defined(__GNUC__)
# if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
+# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
+# define MOZ_HAVE_CXX11_ALIGNAS
+# endif
- # if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0)
- # define MOZ_HAVE_CXX11_OVERRIDE
- # define MOZ_HAVE_CXX11_FINAL final
+ # define MOZ_HAVE_CXX11_CONSTEXPR
+ # define MOZ_HAVE_EXPLICIT_CONVERSION
+ # endif
diff --git a/www/seamonkey/patches/patch-mozilla_netwerk_base_public_nsNetUtil.h b/www/seamonkey/patches/patch-mozilla_netwerk_base_nsNetUtil.h
index 35963c5b524..c342e5b7d99 100644
--- a/www/seamonkey/patches/patch-mozilla_netwerk_base_public_nsNetUtil.h
+++ b/www/seamonkey/patches/patch-mozilla_netwerk_base_nsNetUtil.h
@@ -1,7 +1,7 @@
-$NetBSD: patch-mozilla_netwerk_base_public_nsNetUtil.h,v 1.1 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_netwerk_base_nsNetUtil.h,v 1.1 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/netwerk/base/public/nsNetUtil.h.orig 2015-03-09 05:34:54.000000000 +0000
-+++ mozilla/netwerk/base/public/nsNetUtil.h
+--- mozilla/netwerk/base/nsNetUtil.h.orig 2015-09-02 09:27:59.000000000 +0000
++++ mozilla/netwerk/base/nsNetUtil.h
@@ -13,6 +13,7 @@
#include "nsMemory.h"
#include "nsCOMPtr.h"
@@ -10,7 +10,7 @@ $NetBSD: patch-mozilla_netwerk_base_public_nsNetUtil.h,v 1.1 2015/03/17 19:50:42
#include "nsHashKeys.h"
#include "plstr.h"
-@@ -2869,6 +2870,26 @@ NS_IsSrcdocChannel(nsIChannel *aChannel)
+@@ -2828,6 +2829,26 @@ NS_IsSrcdocChannel(nsIChannel *aChannel)
bool NS_IsReasonableHTTPHeaderValue(const nsACString& aValue);
/**
diff --git a/www/seamonkey/patches/patch-mozilla_netwerk_dns_Makefile.in b/www/seamonkey/patches/patch-mozilla_netwerk_dns_Makefile.in
deleted file mode 100644
index ec1a30b57b8..00000000000
--- a/www/seamonkey/patches/patch-mozilla_netwerk_dns_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mozilla_netwerk_dns_Makefile.in,v 1.2 2014/06/22 08:54:39 ryoon Exp $
-
---- mozilla/netwerk/dns/Makefile.in.orig 2014-06-13 00:45:47.000000000 +0000
-+++ mozilla/netwerk/dns/Makefile.in
-@@ -5,6 +5,10 @@
-
- include $(topsrcdir)/config/rules.mk
-
-+ifdef MOZ_NATIVE_HARFBUZZ
-+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
-+endif
-+
- # Generate the include file containing compact, static definitions
- # for effective TLD data.
- etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
diff --git a/www/seamonkey/patches/patch-mozilla_netwerk_dns_moz.build b/www/seamonkey/patches/patch-mozilla_netwerk_dns_moz.build
index 7709dde90b6..e67d1889e2a 100644
--- a/www/seamonkey/patches/patch-mozilla_netwerk_dns_moz.build
+++ b/www/seamonkey/patches/patch-mozilla_netwerk_dns_moz.build
@@ -1,11 +1,13 @@
-$NetBSD: patch-mozilla_netwerk_dns_moz.build,v 1.1 2015/01/02 04:26:21 ryoon Exp $
+$NetBSD: patch-mozilla_netwerk_dns_moz.build,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/netwerk/dns/moz.build.orig 2014-12-03 06:23:17.000000000 +0000
+--- mozilla/netwerk/dns/moz.build.orig 2015-09-02 09:28:02.000000000 +0000
+++ mozilla/netwerk/dns/moz.build
-@@ -63,3 +63,6 @@ GENERATED_FILES = [
- LOCAL_INCLUDES += [
- '../base/src',
+@@ -68,5 +68,8 @@ LOCAL_INCLUDES += [
+ '/netwerk/base',
]
-+
+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19':
+ CXXFLAGS += ['-I%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']]
diff --git a/www/seamonkey/patches/patch-mozilla_netwerk_wifi_moz.build b/www/seamonkey/patches/patch-mozilla_netwerk_wifi_moz.build
deleted file mode 100644
index 192d74063c7..00000000000
--- a/www/seamonkey/patches/patch-mozilla_netwerk_wifi_moz.build
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_netwerk_wifi_moz.build,v 1.6 2015/01/02 04:26:21 ryoon Exp $
-
---- mozilla/netwerk/wifi/moz.build.orig 2014-12-03 06:23:17.000000000 +0000
-+++ mozilla/netwerk/wifi/moz.build
-@@ -35,7 +35,7 @@ if CONFIG['OS_ARCH'] == 'Darwin':
- UNIFIED_SOURCES += [
- 'osx_corewlan.mm',
- ]
--elif CONFIG['OS_ARCH'] == 'FreeBSD':
-+elif CONFIG['OS_ARCH'] in ('DragonFly', 'FreeBSD'):
- UNIFIED_SOURCES += [
- 'nsWifiScannerFreeBSD.cpp',
- ]
diff --git a/www/seamonkey/patches/patch-mozilla_netwerk_wifi_nsWifiScannerFreeBSD.cpp b/www/seamonkey/patches/patch-mozilla_netwerk_wifi_nsWifiScannerFreeBSD.cpp
deleted file mode 100644
index ea5537ef56e..00000000000
--- a/www/seamonkey/patches/patch-mozilla_netwerk_wifi_nsWifiScannerFreeBSD.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-mozilla_netwerk_wifi_nsWifiScannerFreeBSD.cpp,v 1.4 2015/01/02 04:26:21 ryoon Exp $
-
---- mozilla/netwerk/wifi/nsWifiScannerFreeBSD.cpp.orig 2014-12-03 06:23:17.000000000 +0000
-+++ mozilla/netwerk/wifi/nsWifiScannerFreeBSD.cpp
-@@ -13,7 +13,11 @@
- #include <sys/socket.h>
- #include <net/if.h>
- #include <net/if_media.h>
-+#ifdef __DragonFly__
-+#include <netproto/802_11/ieee80211_ioctl.h>
-+#else
- #include <net80211/ieee80211_ioctl.h>
-+#endif
-
- #include <ifaddrs.h>
- #include <string.h>
diff --git a/www/seamonkey/patches/patch-mozilla_toolkit_library_moz.build b/www/seamonkey/patches/patch-mozilla_toolkit_library_moz.build
index 782814814c0..7ed6eec0e99 100644
--- a/www/seamonkey/patches/patch-mozilla_toolkit_library_moz.build
+++ b/www/seamonkey/patches/patch-mozilla_toolkit_library_moz.build
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_toolkit_library_moz.build,v 1.3 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_toolkit_library_moz.build,v 1.4 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/toolkit/library/moz.build.orig 2015-03-09 05:34:27.000000000 +0000
+--- mozilla/toolkit/library/moz.build.orig 2015-09-02 09:27:31.000000000 +0000
+++ mozilla/toolkit/library/moz.build
@@ -214,6 +214,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
]
@@ -10,7 +10,7 @@ $NetBSD: patch-mozilla_toolkit_library_moz.build,v 1.3 2015/03/17 19:50:42 ryoon
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
if CONFIG['MOZ_NATIVE_JPEG']:
-@@ -225,6 +226,27 @@ if CONFIG['MOZ_NATIVE_PNG']:
+@@ -225,6 +226,30 @@ if CONFIG['MOZ_NATIVE_PNG']:
if CONFIG['MOZ_NATIVE_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
@@ -26,6 +26,9 @@ $NetBSD: patch-mozilla_toolkit_library_moz.build,v 1.3 2015/03/17 19:50:42 ryoon
+if CONFIG['MOZ_NATIVE_TREMOR']:
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
+
++if CONFIG['MOZ_NATIVE_CELT']:
++ OS_LIBS += CONFIG['MOZ_CELT_LIBS']
++
+if CONFIG['MOZ_NATIVE_OPUS']:
+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
+
@@ -38,7 +41,7 @@ $NetBSD: patch-mozilla_toolkit_library_moz.build,v 1.3 2015/03/17 19:50:42 ryoon
if CONFIG['MOZ_NATIVE_LIBEVENT']:
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
-@@ -234,8 +256,14 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
+@@ -234,8 +259,14 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
if not CONFIG['MOZ_TREE_PIXMAN']:
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
@@ -55,7 +58,7 @@ $NetBSD: patch-mozilla_toolkit_library_moz.build,v 1.3 2015/03/17 19:50:42 ryoon
if CONFIG['HAVE_CLOCK_MONOTONIC']:
OS_LIBS += CONFIG['REALTIME_LIBS']
-@@ -364,7 +392,7 @@ if CONFIG['OS_ARCH'] == 'WINNT':
+@@ -365,7 +396,7 @@ if CONFIG['OS_ARCH'] == 'WINNT':
if CONFIG['MOZ_ENABLE_QT']:
OS_LIBS += CONFIG['XEXT_LIBS']
diff --git a/www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm b/www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm
index 47aafb8dc7e..defed4740da 100644
--- a/www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm
+++ b/www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm
@@ -1,16 +1,8 @@
-$NetBSD: patch-mozilla_toolkit_modules_GMPInstallManager.jsm,v 1.1 2014/11/02 05:40:31 ryoon Exp $
+$NetBSD: patch-mozilla_toolkit_modules_GMPInstallManager.jsm,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/toolkit/modules/GMPInstallManager.jsm.orig 2014-10-14 06:36:44.000000000 +0000
+--- mozilla/toolkit/modules/GMPInstallManager.jsm.orig 2015-09-02 09:27:31.000000000 +0000
+++ mozilla/toolkit/modules/GMPInstallManager.jsm
-@@ -107,6 +107,7 @@ let GMPPrefs = {
- */
- KEY_LOG_ENABLED: "media.gmp-manager.log",
- KEY_ADDON_LAST_UPDATE: "media.{0}.lastUpdate",
-+ KEY_ADDON_PATH: "media.{0}.path",
- KEY_ADDON_VERSION: "media.{0}.version",
- KEY_ADDON_AUTOUPDATE: "media.{0}.autoupdate",
- KEY_URL: "media.gmp-manager.url",
-@@ -888,9 +889,7 @@ GMPDownloader.prototype = {
+@@ -874,9 +874,7 @@ GMPDownloader.prototype = {
let gmpAddon = this._gmpAddon;
let installToDirPath = Cc["@mozilla.org/file/local;1"].
createInstance(Ci.nsIFile);
@@ -21,17 +13,17 @@ $NetBSD: patch-mozilla_toolkit_modules_GMPInstallManager.jsm,v 1.1 2014/11/02 05
installToDirPath.initWithPath(path);
log.info("install to directory path: " + installToDirPath.path);
let gmpInstaller = new GMPExtractor(zipPath, installToDirPath.path);
-@@ -899,10 +898,12 @@ GMPDownloader.prototype = {
+@@ -885,10 +883,12 @@ GMPDownloader.prototype = {
// Success, set the prefs
let now = Math.round(Date.now() / 1000);
- GMPPrefs.set(GMPPrefs.KEY_ADDON_LAST_UPDATE, now, gmpAddon.id);
+ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_LAST_UPDATE, now, gmpAddon.id);
- // Setting the version pref signals installation completion to consumers,
- // if you need to set other prefs etc. do it before this.
+ // Setting the path pref signals installation completion to consumers,
+ // so set the version and potential other information they use first.
- GMPPrefs.set(GMPPrefs.KEY_ADDON_VERSION, gmpAddon.version,
+ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_VERSION, gmpAddon.version,
gmpAddon.id);
-+ GMPPrefs.set(GMPPrefs.KEY_ADDON_PATH,
++ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_PATH,
+ installToDirPath.path, gmpAddon.id);
this._deferred.resolve(extractedPaths);
}, err => {
diff --git a/www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm b/www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm
new file mode 100644
index 00000000000..21707ebca96
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm
@@ -0,0 +1,12 @@
+$NetBSD: patch-mozilla_toolkit_modules_GMPUtils.jsm,v 1.1 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/toolkit/modules/GMPUtils.jsm.orig 2015-09-02 09:27:31.000000000 +0000
++++ mozilla/toolkit/modules/GMPUtils.jsm
+@@ -74,6 +74,7 @@ this.GMPPrefs = {
+ KEY_EME_ENABLED: "media.eme.enabled",
+ KEY_PLUGIN_ENABLED: "media.{0}.enabled",
+ KEY_PLUGIN_LAST_UPDATE: "media.{0}.lastUpdate",
++ KEY_PLUGIN_PATH: "media.{0}.path",
+ KEY_PLUGIN_VERSION: "media.{0}.version",
+ KEY_PLUGIN_AUTOUPDATE: "media.{0}.autoupdate",
+ KEY_PLUGIN_FORCEVISIBLE: "media.{0}.forcevisible",
diff --git a/www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm b/www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm
new file mode 100644
index 00000000000..939bc8ddefe
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm
@@ -0,0 +1,132 @@
+$NetBSD: patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm,v 1.1 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/toolkit/mozapps/extensions/internal/GMPProvider.jsm.orig 2015-09-02 09:27:31.000000000 +0000
++++ mozilla/toolkit/mozapps/extensions/internal/GMPProvider.jsm
+@@ -101,12 +101,11 @@ function GMPWrapper(aPluginInfo) {
+ Log.repository.getLoggerWithMessagePrefix("Toolkit.GMP",
+ "GMPWrapper(" +
+ this._plugin.id + ") ");
+- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
+- this._plugin.id),
++ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED, this._plugin.id),
+ this.onPrefEnabledChanged, this);
+- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
++ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
+ this._plugin.id),
+- this.onPrefVersionChanged, this);
++ this.onPrefPathChanged, this);
+ if (this._plugin.isEME) {
+ Preferences.observe(GMPPrefs.KEY_EME_ENABLED,
+ this.onPrefEMEGlobalEnabledChanged, this);
+@@ -123,17 +122,14 @@ GMPWrapper.prototype = {
+ optionsType: AddonManager.OPTIONS_TYPE_INLINE,
+ get optionsURL() { return this._plugin.optionsURL; },
+
++
+ set gmpPath(aPath) { this._gmpPath = aPath; },
+ get gmpPath() {
+- if (!this._gmpPath && this.isInstalled) {
+- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
+- this._plugin.id,
+- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
+- null, this._plugin.id));
++ if (!this._gmpPath) {
++ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
+ }
+ return this._gmpPath;
+ },
+-
+ get id() { return this._plugin.id; },
+ get type() { return "plugin"; },
+ get isGMPlugin() { return true; },
+@@ -144,8 +140,13 @@ GMPWrapper.prototype = {
+ get description() { return this._plugin.description; },
+ get fullDescription() { return this._plugin.fullDescription; },
+
+- get version() { return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
+- this._plugin.id); },
++ get version() {
++ if (this.isInstalled) {
++ return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
++ this._plugin.id);
++ }
++ return null;
++ },
+
+ get isActive() { return !this.appDisabled && !this.userDisabled; },
+ get appDisabled() {
+@@ -292,24 +293,17 @@ GMPWrapper.prototype = {
+
+ get pluginMimeTypes() { return []; },
+ get pluginLibraries() {
+- if (this.isInstalled) {
+- let path = this.version;
+- return [path];
+- }
+- return [];
++ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
++ return path && path.length ? [OS.Path.basename(path)] : [];
+ },
+ get pluginFullpath() {
+- if (this.isInstalled) {
+- let path = OS.Path.join(OS.Constants.Path.profileDir,
+- this._plugin.id,
+- this.version);
+- return [path];
+- }
+- return [];
++ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
++ return path && path.length ? [path] : [];
+ },
+
+ get isInstalled() {
+- return this.version && this.version.length > 0;
++ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
++ return path && path.length > 0;
+ },
+
+ _handleEnabledChanged: function() {
+@@ -389,10 +383,10 @@ GMPWrapper.prototype = {
+ }
+ },
+
+- onPrefVersionChanged: function() {
++ onPrefPathChanged: function() {
+ AddonManagerPrivate.callAddonListeners("onUninstalling", this, false);
+ if (this._gmpPath) {
+- this._log.info("onPrefVersionChanged() - unregistering gmp directory " +
++ this._log.info("onPrefPathChanged() - unregistering gmp directory " +
+ this._gmpPath);
+ gmpService.removeAndDeletePluginDirectory(this._gmpPath, true /* can defer */);
+ }
+@@ -401,15 +395,10 @@ GMPWrapper.prototype = {
+ AddonManagerPrivate.callInstallListeners("onExternalInstall", null, this,
+ null, false);
+ AddonManagerPrivate.callAddonListeners("onInstalling", this, false);
+- this._gmpPath = null;
+- if (this.isInstalled) {
+- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
+- this._plugin.id,
+- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
+- null, this._plugin.id));
+- }
++ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH,
++ null, this._plugin.id);
+ if (this._gmpPath && this.isActive) {
+- this._log.info("onPrefVersionChanged() - registering gmp directory " +
++ this._log.info("onPrefPathChanged() - registering gmp directory " +
+ this._gmpPath);
+ gmpService.addPluginDirectory(this._gmpPath);
+ }
+@@ -431,9 +420,9 @@ GMPWrapper.prototype = {
+ Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
+ this._plugin.id),
+ this.onPrefEnabledChanged, this);
+- Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
++ Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
+ this._plugin.id),
+- this.onPrefVersionChanged, this);
++ this.onPrefPathChanged, this);
+ if (this._plugin.isEME) {
+ Preferences.ignore(GMPPrefs.KEY_EME_ENABLED,
+ this.onPrefEMEGlobalEnabledChanged, this);
diff --git a/www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_OpenH264Provider.jsm b/www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_OpenH264Provider.jsm
deleted file mode 100644
index 2522c1b9ec5..00000000000
--- a/www/seamonkey/patches/patch-mozilla_toolkit_mozapps_extensions_internal_OpenH264Provider.jsm
+++ /dev/null
@@ -1,118 +0,0 @@
-$NetBSD: patch-mozilla_toolkit_mozapps_extensions_internal_OpenH264Provider.jsm,v 1.1 2014/11/02 05:40:31 ryoon Exp $
-
---- mozilla/toolkit/mozapps/extensions/internal/OpenH264Provider.jsm.orig 2014-10-14 06:36:45.000000000 +0000
-+++ mozilla/toolkit/mozapps/extensions/internal/OpenH264Provider.jsm
-@@ -29,6 +29,7 @@ const SEC_IN_A_DAY = 24 * 6
- const OPENH264_PLUGIN_ID = "gmp-gmpopenh264";
- const OPENH264_PREF_BRANCH = "media." + OPENH264_PLUGIN_ID + ".";
- const OPENH264_PREF_ENABLED = "enabled";
-+const OPENH264_PREF_PATH = "path";
- const OPENH264_PREF_VERSION = "version";
- const OPENH264_PREF_LASTUPDATE = "lastUpdate";
- const OPENH264_PREF_AUTOUPDATE = "autoupdate";
-@@ -99,7 +100,12 @@ let OpenH264Wrapper = {
- get description() { return pluginsBundle.GetStringFromName("openH264_description"); },
- get fullDescription() { return OPENH264_FULLDESCRIPTION; },
-
-- get version() { return prefs.get(OPENH264_PREF_VERSION, ""); },
-+ get version() {
-+ if (this.isInstalled) {
-+ return prefs.get(OPENH264_PREF_VERSION, "");
-+ }
-+ return "";
-+ },
-
- get isActive() { return !this.userDisabled; },
- get appDisabled() { return false; },
-@@ -223,24 +229,17 @@ let OpenH264Wrapper = {
-
- get pluginMimeTypes() { return []; },
- get pluginLibraries() {
-- if (this.isInstalled) {
-- let path = this.version;
-- return [path];
-- }
-- return [];
-+ let path = prefs.get(OPENH264_PREF_PATH, null);
-+ return path && path.length ? [OS.Path.basename(path)] : [];
- },
- get pluginFullpath() {
-- if (this.isInstalled) {
-- let path = OS.Path.join(OS.Constants.Path.profileDir,
-- OPENH264_PLUGIN_ID,
-- this.version);
-- return [path];
-- }
-- return [];
-+ let path = prefs.get(OPENH264_PREF_PATH, null);
-+ return path && path.length ? [path] : [];
- },
-
- get isInstalled() {
-- return this.version.length > 0;
-+ let path = prefs.get(OPENH264_PREF_PATH, "");
-+ return path.length > 0;
- },
- };
-
-@@ -251,19 +250,14 @@ let OpenH264Provider = {
- "OpenH264Provider" + "::");
- OpenH264Wrapper._log = Log.repository.getLoggerWithMessagePrefix("Toolkit.OpenH264Provider",
- "OpenH264Wrapper" + "::");
-- this.gmpPath = null;
-- if (OpenH264Wrapper.isInstalled) {
-- this.gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
-- OPENH264_PLUGIN_ID,
-- prefs.get(OPENH264_PREF_VERSION, null));
-- }
-+ this.gmpPath = prefs.get(OPENH264_PREF_PATH, null);
- let enabled = prefs.get(OPENH264_PREF_ENABLED, true);
- this._log.trace("startup() - enabled=" + enabled + ", gmpPath="+this.gmpPath);
-
-
- Services.obs.addObserver(this, AddonManager.OPTIONS_NOTIFICATION_DISPLAYED, false);
- prefs.observe(OPENH264_PREF_ENABLED, this.onPrefEnabledChanged, this);
-- prefs.observe(OPENH264_PREF_VERSION, this.onPrefVersionChanged, this);
-+ prefs.observe(OPENH264_PREF_PATH, this.onPrefPathChanged, this);
- prefs.observe(OPENH264_PREF_LOGGING, configureLogging);
-
- if (this.gmpPath && enabled) {
-@@ -280,7 +274,7 @@ let OpenH264Provider = {
- this._log.trace("shutdown()");
- Services.obs.removeObserver(this, AddonManager.OPTIONS_NOTIFICATION_DISPLAYED);
- prefs.ignore(OPENH264_PREF_ENABLED, this.onPrefEnabledChanged, this);
-- prefs.ignore(OPENH264_PREF_VERSION, this.onPrefVersionChanged, this);
-+ prefs.ignore(OPENH264_PREF_PATH, this.onPrefPathChanged, this);
- prefs.ignore(OPENH264_PREF_LOGGING, configureLogging);
-
- return OpenH264Wrapper._updateTask;
-@@ -306,25 +300,20 @@ let OpenH264Provider = {
- wrapper);
- },
-
-- onPrefVersionChanged: function() {
-+ onPrefPathChanged: function() {
- let wrapper = OpenH264Wrapper;
-
- AddonManagerPrivate.callAddonListeners("onUninstalling", wrapper, false);
- if (this.gmpPath) {
-- this._log.info("onPrefVersionChanged() - unregistering gmp directory " + this.gmpPath);
-+ this._log.info("onPrefPathChanged() - removing gmp directory " + this.gmpPath);
- gmpService.removePluginDirectory(this.gmpPath);
- }
- AddonManagerPrivate.callAddonListeners("onUninstalled", wrapper);
-
- AddonManagerPrivate.callInstallListeners("onExternalInstall", null, wrapper, null, false);
-- this.gmpPath = null;
-- if (OpenH264Wrapper.isInstalled) {
-- this.gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
-- OPENH264_PLUGIN_ID,
-- prefs.get(OPENH264_PREF_VERSION, null));
-- }
-+ this.gmpPath = prefs.get(OPENH264_PREF_PATH, null);
- if (this.gmpPath && wrapper.isActive) {
-- this._log.info("onPrefVersionChanged() - registering gmp directory " + this.gmpPath);
-+ this._log.info("onPrefPathChanged() - adding gmp directory " + this.gmpPath);
- gmpService.addPluginDirectory(this.gmpPath);
- }
- AddonManagerPrivate.callAddonListeners("onInstalled", wrapper);
diff --git a/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk2drawing.c b/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk2drawing.c
new file mode 100644
index 00000000000..f2df4479511
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk2drawing.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-mozilla_widget_gtk_gtk2drawing.c,v 1.3 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/widget/gtk/gtk2drawing.c.orig 2015-09-02 09:27:33.000000000 +0000
++++ mozilla/widget/gtk/gtk2drawing.c
+@@ -831,7 +831,7 @@ moz_gtk_get_focus_outline_size(gint* foc
+ return MOZ_GTK_SUCCESS;
+ }
+
+-gint
++static gint
+ moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+ gint* focus_width, gint* focus_pad)
+ {
+@@ -928,7 +928,7 @@ moz_gtk_splitter_get_metrics(gint orient
+ return MOZ_GTK_SUCCESS;
+ }
+
+-gint
++static gint
+ moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
+ {
+ static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
diff --git a/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk3drawing.c b/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk3drawing.c
index d57b720b48c..42b3fabec6c 100644
--- a/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk3drawing.c
+++ b/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk3drawing.c
@@ -1,69 +1,833 @@
-$NetBSD: patch-mozilla_widget_gtk_gtk3drawing.c,v 1.2 2015/02/15 02:11:03 ryoon Exp $
+$NetBSD: patch-mozilla_widget_gtk_gtk3drawing.c,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/widget/gtk/gtk3drawing.c.orig 2015-02-05 04:38:47.000000000 +0000
+--- mozilla/widget/gtk/gtk3drawing.c.orig 2015-09-02 09:27:33.000000000 +0000
+++ mozilla/widget/gtk/gtk3drawing.c
-@@ -64,6 +64,7 @@ static GtkWidget* gScrolledWindowWidget;
-
+@@ -65,6 +65,7 @@ static GtkWidget* gScrolledWindowWidget;
static style_prop_t style_prop_func;
static gboolean have_arrow_scaling;
-+static gboolean checkbox_check_state;
+ static gboolean checkbox_check_state;
++static gboolean notebook_has_tab_gap;
static gboolean is_initialized;
#define ARROW_UP 0
-@@ -71,6 +72,10 @@ static gboolean is_initialized;
- #define ARROW_RIGHT G_PI_2
- #define ARROW_LEFT (G_PI+G_PI_2)
+@@ -725,6 +726,14 @@ moz_gtk_init()
+ else
+ checkbox_check_state = GTK_STATE_FLAG_ACTIVE;
-+#if !GTK_CHECK_VERSION(3,14,0)
-+#define GTK_STATE_FLAG_CHECKED (1 << 11)
-+#endif
++ if(!gtk_check_version(3, 12, 0)) {
++ ensure_tab_widget();
++ gtk_widget_style_get(gTabWidget, "has-tab-gap", &notebook_has_tab_gap, NULL);
++ }
++ else {
++ notebook_has_tab_gap = TRUE;
++ }
+
- static GtkStateFlags
- GetStateFlagsFromGtkWidgetState(GtkWidgetState* state)
- {
-@@ -714,6 +719,11 @@ moz_gtk_init()
- is_initialized = TRUE;
- have_arrow_scaling = (gtk_major_version > 2 ||
- (gtk_major_version == 2 && gtk_minor_version >= 12));
-+ if (gtk_major_version > 3 ||
-+ (gtk_major_version == 3 && gtk_minor_version >= 14))
-+ checkbox_check_state = GTK_STATE_FLAG_CHECKED;
-+ else
-+ checkbox_check_state = GTK_STATE_FLAG_ACTIVE;
-
/* Add style property to GtkEntry.
* Adding the style property to the normal GtkEntry class means that it
-@@ -1004,10 +1014,10 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
- gtk_widget_set_sensitive(w, !state->disabled);
- gtk_widget_set_direction(w, direction);
+ * will work without issues inside GtkComboBox and for Spinbuttons. */
+@@ -762,37 +771,17 @@ moz_gtk_radio_get_metrics(gint* indicato
+ gint
+ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
+ {
+- gboolean interior_focus;
+- gint focus_width = 0;
++ GtkBorder border;
++ GtkBorder padding;
++ GtkStyleContext *style;
+
+ ensure_entry_widget();
+- gtk_widget_style_get(gEntryWidget,
+- "interior-focus", &interior_focus,
+- "focus-line-width", &focus_width,
+- NULL);
+- if (interior_focus) {
+- GtkBorder border;
+- GtkStyleContext *style = gtk_widget_get_style_context(gEntryWidget);
+- gtk_style_context_get_border(style, 0, &border);
+- *focus_h_width = border.left + focus_width;
+- *focus_v_width = border.top + focus_width;
+- } else {
+- *focus_h_width = focus_width;
+- *focus_v_width = focus_width;
+- }
+- return MOZ_GTK_SUCCESS;
+-}
+-
+-gint
+-moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+- gint* focus_width, gint* focus_pad)
+-{
+- gtk_widget_style_get (widget,
+- "interior-focus", interior_focus,
+- "focus-line-width", focus_width,
+- "focus-padding", focus_pad,
+- NULL);
++ style = gtk_widget_get_style_context(gEntryWidget);
+
++ gtk_style_context_get_border(style, 0, &border);
++ gtk_style_context_get_padding(style, 0, &padding);
++ *focus_h_width = border.left + padding.left;
++ *focus_v_width = border.top + padding.top;
+ return MOZ_GTK_SUCCESS;
+ }
+
+@@ -880,24 +869,6 @@ moz_gtk_splitter_get_metrics(gint orient
+ return MOZ_GTK_SUCCESS;
+ }
+
+-gint
+-moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
+-{
+- static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
+- GtkBorder *tmp_border;
+-
+- gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
+-
+- if (tmp_border) {
+- *inner_border = *tmp_border;
+- gtk_border_free(tmp_border);
+- }
+- else
+- *inner_border = default_inner_border;
+-
+- return MOZ_GTK_SUCCESS;
+-}
+-
+ static gint
+ moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
+ GtkWidgetState* state,
+@@ -908,19 +879,8 @@ moz_gtk_button_paint(cairo_t *cr, GdkRec
+ GtkStyleContext* style = gtk_widget_get_style_context(widget);
+ gint x = rect->x, y=rect->y, width=rect->width, height=rect->height;
+
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
+ gtk_widget_set_direction(widget, direction);
+-
+- if (!interior_focus && state->focused) {
+- x += focus_width + focus_pad;
+- y += focus_width + focus_pad;
+- width -= 2 * (focus_width + focus_pad);
+- height -= 2 * (focus_width + focus_pad);
+- }
+-
++
+ gtk_style_context_save(style);
+ gtk_style_context_set_state(style, state_flags);
+
+@@ -953,20 +913,12 @@ moz_gtk_button_paint(cairo_t *cr, GdkRec
+ }
+
+ if (state->focused) {
+- if (interior_focus) {
+- GtkBorder border;
+- gtk_style_context_get_border(style, state_flags, &border);
+- x += border.left + focus_pad;
+- y += border.top + focus_pad;
+- width -= 2 * (border.left + focus_pad);
+- height -= 2 * (border.top + focus_pad);
+- } else {
+- x -= focus_width + focus_pad;
+- y -= focus_width + focus_pad;
+- width += 2 * (focus_width + focus_pad);
+- height += 2 * (focus_width + focus_pad);
+- }
+-
++ GtkBorder border;
++ gtk_style_context_get_border(style, state_flags, &border);
++ x += border.left;
++ y += border.top;
++ width -= (border.left + border.right);
++ height -= (border.top + border.bottom);
+ gtk_render_focus(style, cr, x, y, width, height);
+ }
+ gtk_style_context_restore(style);
+@@ -1056,33 +1008,23 @@ calculate_button_inner_rect(GtkWidget* b
+ GtkTextDirection direction,
+ gboolean ignore_focus)
+ {
+- GtkBorder inner_border;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+ GtkStyleContext* style;
+ GtkBorder border;
++ GtkBorder padding = {0, 0, 0, 0};
+
+ style = gtk_widget_get_style_context(button);
+
+ /* This mirrors gtkbutton's child positioning */
+- moz_gtk_button_get_inner_border(button, &inner_border);
+- moz_gtk_widget_get_focus(button, &interior_focus,
+- &focus_width, &focus_pad);
+-
+- if (ignore_focus)
+- focus_width = focus_pad = 0;
+-
+ gtk_style_context_get_border(style, 0, &border);
++ if (!ignore_focus)
++ gtk_style_context_get_padding(style, 0, &padding);
+
+- inner_rect->x = rect->x + border.left + focus_width + focus_pad;
+- inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
+- inner_border.left : inner_border.right;
+- inner_rect->y = rect->y + inner_border.top + border.top +
+- focus_width + focus_pad;
+- inner_rect->width = MAX(1, rect->width - inner_border.left -
+- inner_border.right - (border.left + focus_pad + focus_width) * 2);
+- inner_rect->height = MAX(1, rect->height - inner_border.top -
+- inner_border.bottom - (border.top + focus_pad + focus_width) * 2);
++ inner_rect->x = rect->x + border.left + padding.left;
++ inner_rect->y = rect->y + padding.top + border.top;
++ inner_rect->width = MAX(1, rect->width - padding.left -
++ padding.right - border.left * 2);
++ inner_rect->height = MAX(1, rect->height - padding.top -
++ padding.bottom - border.top * 2);
+
+ return MOZ_GTK_SUCCESS;
+ }
+@@ -1230,6 +1172,7 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
+ GtkStyleContext* style;
+ GtkScrollbar *scrollbar;
+ GtkAdjustment *adj;
++ GtkBorder margin;
+
+ ensure_scrollbar_widget();
+
+@@ -1239,15 +1182,20 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
+ scrollbar = GTK_SCROLLBAR(gVertScrollbarWidget);
+
+ gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
+-
++
+ style = gtk_widget_get_style_context(GTK_WIDGET(scrollbar));
gtk_style_context_save(style);
--
+-
+
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_SLIDER);
+ gtk_style_context_set_state(style, state_flags);
+
+- gtk_render_slider(style, cr, rect->x, rect->y,
+- rect->width, rect->height,
++ gtk_style_context_get_margin (style, state_flags, &margin);
++
++ gtk_render_slider(style, cr,
++ rect->x + margin.left,
++ rect->y + margin.top,
++ rect->width - margin.left - margin.right,
++ rect->height - margin.top - margin.bottom,
+ (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
+ GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
+
+@@ -1451,19 +1399,12 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
+ {
+ gint x = rect->x, y = rect->y, width = rect->width, height = rect->height;
+ GtkStyleContext* style;
+- gboolean interior_focus;
+- gint focus_width;
+ int draw_focus_outline_only = state->depressed; // NS_THEME_FOCUS_OUTLINE
+
+ gtk_widget_set_direction(widget, direction);
+
+ style = gtk_widget_get_style_context(widget);
+
+- gtk_widget_style_get(widget,
+- "interior-focus", &interior_focus,
+- "focus-line-width", &focus_width,
+- NULL);
+-
+ if (draw_focus_outline_only) {
+ // Inflate the given 'rect' with the focus outline size.
+ gint h, v;
+@@ -1495,14 +1436,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
+ /* This will get us the lit borders that focused textboxes enjoy on
+ * some themes. */
+ gtk_style_context_set_state(style, GTK_STATE_FLAG_FOCUSED);
+- if (!interior_focus) {
+- /* Indent the border a little bit if we have exterior focus
+- (this is what GTK does to draw native entries) */
+- x += focus_width;
+- y += focus_width;
+- width -= 2 * focus_width;
+- height -= 2 * focus_width;
+- }
+ }
+
+ if (state->disabled) {
+@@ -1514,11 +1447,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
+ }
+ gtk_render_frame(style, cr, x, y, width, height);
+
+- if (state->focused && !state->disabled) {
+- if (!interior_focus) {
+- gtk_render_focus(style, cr, rect->x, rect->y, rect->width, rect->height);
+- }
+- }
+ gtk_style_context_restore(style);
+
+ return MOZ_GTK_SUCCESS;
+@@ -1823,8 +1751,6 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
+ GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
+ GtkStyleContext* style;
+ GtkWidget *widget;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+
if (isradio) {
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_RADIO);
-- gtk_style_context_set_state(style, selected ? GTK_STATE_FLAG_ACTIVE :
-+ gtk_style_context_set_state(style, selected ? checkbox_check_state :
- GTK_STATE_FLAG_NORMAL);
- gtk_render_option(style, cr, x, y, width, height);
- if (state->focused) {
-@@ -1025,7 +1035,7 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
- gtk_style_context_set_state(style, GTK_STATE_FLAG_INCONSISTENT);
- gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gCheckboxWidget), TRUE);
- } else if (selected) {
-- gtk_style_context_set_state(style, GTK_STATE_FLAG_ACTIVE);
-+ gtk_style_context_set_state(style, checkbox_check_state);
+ ensure_radiobutton_widget();
+@@ -1837,7 +1763,6 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
+
+ style = gtk_widget_get_style_context(widget);
+ gtk_style_context_save(style);
+- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
+ gtk_style_context_set_state(style, state_flags);
+
+ /* this is for drawing a prelight box */
+@@ -1846,10 +1771,6 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
+ rect->x, rect->y, rect->width, rect->height);
+ }
+
+- if (state->focused && !interior_focus) {
+- gtk_render_focus(style, cr,
+- rect->x, rect->y, rect->width, rect->height);
+- }
+ gtk_style_context_restore(style);
+
+ return MOZ_GTK_SUCCESS;
+@@ -1862,7 +1783,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
+ {
+ GtkStyleContext *style;
+ GtkWidget *widget;
+- gboolean interior_focus;
+
+ if (!state->focused)
+ return MOZ_GTK_SUCCESS;
+@@ -1883,10 +1803,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
+ }
+ gtk_widget_set_direction(widget, direction);
+
+- gtk_widget_style_get(widget, "interior-focus", &interior_focus, NULL);
+- if (!interior_focus)
+- return MOZ_GTK_SUCCESS;
+-
+ gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
+ gtk_render_focus(style, cr,
+ rect->x, rect->y, rect->width, rect->height);
+@@ -2105,6 +2021,9 @@ moz_gtk_get_tab_thickness(void)
+ GtkStyleContext * style;
+
+ ensure_tab_widget();
++ if (!notebook_has_tab_gap)
++ return 0; /* tabs do not overdraw the tabpanel border with "no gap" style */
++
+ style = gtk_widget_get_style_context(gTabWidget);
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_NOTEBOOK);
+ gtk_style_context_get_border(style, 0, &border);
+@@ -2150,7 +2069,7 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
+ ensure_tab_widget();
+ gtk_widget_set_direction(gTabWidget, direction);
+
+- style = gtk_widget_get_style_context(gTabWidget);
++ style = gtk_widget_get_style_context(gTabWidget);
+ gtk_style_context_save(style);
+ moz_gtk_tab_prepare_style_context(style, flags);
+
+@@ -2167,143 +2086,155 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
+
+ focusRect = backRect = tabRect;
+
+- if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
+- /* Only draw the tab */
+- gtk_render_extension(style, cr,
+- tabRect.x, tabRect.y, tabRect.width, tabRect.height,
+- (flags & MOZ_GTK_TAB_BOTTOM) ?
+- GTK_POS_TOP : GTK_POS_BOTTOM );
+- } else {
+- /* Draw the tab and the gap
+- * We want the gap to be positioned exactly on the tabpanel top
+- * border; since tabbox.css may set a negative margin so that the tab
+- * frame rect already overlaps the tabpanel frame rect, we need to take
+- * that into account when drawing. To that effect, nsNativeThemeGTK
+- * passes us this negative margin (bmargin in the graphic below) in the
+- * lowest bits of |flags|. We use it to set gap_voffset, the distance
+- * between the top of the gap and the bottom of the tab (resp. the
+- * bottom of the gap and the top of the tab when we draw a bottom tab),
+- * while ensuring that the gap always touches the border of the tab,
+- * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
+- * with big negative or positive margins.
+- * Here is a graphical explanation in the case of top tabs:
+- * ___________________________
+- * / \
+- * | T A B |
+- * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
+- * : ^ bmargin : ^
+- * : | (-negative margin, : |
+- * bottom : v passed in flags) : | gap_height
+- * of -> :.............................: | (the size of the
+- * the tab . part of the gap . | tabpanel top border)
+- * . outside of the tab . v
+- * ----------------------------------------------
+- *
+- * To draw the gap, we use gtk_paint_box_gap(), see comment in
+- * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
+- * which should suffice to ensure that the only visible border is the
+- * pierced one. If the tab is in the middle, we make the box_gap begin
+- * a bit to the left of the tab and end a bit to the right, adjusting
+- * the gap position so it still is under the tab, because we want the
+- * rendering of a gap in the middle of a tabpanel. This is the role of
+- * the gints gap_{l,r}_offset. On the contrary, if the tab is the
+- * first, we align the start border of the box_gap with the start
+- * border of the tab (left if LTR, right if RTL), by setting the
+- * appropriate offset to 0.*/
+- gint gap_loffset, gap_roffset, gap_voffset, gap_height;
+-
+- /* Get height needed by the gap */
+- gap_height = moz_gtk_get_tab_thickness();
+-
+- /* Extract gap_voffset from the first bits of flags */
+- gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
+- if (gap_voffset > gap_height)
+- gap_voffset = gap_height;
+-
+- /* Set gap_{l,r}_offset to appropriate values */
+- gap_loffset = gap_roffset = 20; /* should be enough */
+- if (flags & MOZ_GTK_TAB_FIRST) {
+- if (direction == GTK_TEXT_DIR_RTL)
+- gap_roffset = initial_gap;
+- else
+- gap_loffset = initial_gap;
+- }
+-
+- if (flags & MOZ_GTK_TAB_BOTTOM) {
+- /* Draw the tab on bottom */
+- focusRect.y += gap_voffset;
+- focusRect.height -= gap_voffset;
+-
++ if (notebook_has_tab_gap) {
++ if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
++ /* Only draw the tab */
+ gtk_render_extension(style, cr,
+- tabRect.x, tabRect.y + gap_voffset, tabRect.width,
+- tabRect.height - gap_voffset, GTK_POS_TOP);
+-
+- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
+-
+- backRect.y += (gap_voffset - gap_height);
+- backRect.height = gap_height;
+-
+- /* Draw the gap; erase with background color before painting in
+- * case theme does not */
+- gtk_render_background(style, cr, backRect.x, backRect.y,
+- backRect.width, backRect.height);
+- cairo_save(cr);
+- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
+- cairo_clip(cr);
+-
+- gtk_render_frame_gap(style, cr,
+- tabRect.x - gap_loffset,
+- tabRect.y + gap_voffset - 3 * gap_height,
+- tabRect.width + gap_loffset + gap_roffset,
+- 3 * gap_height, GTK_POS_BOTTOM,
+- gap_loffset, gap_loffset + tabRect.width);
+- cairo_restore(cr);
++ tabRect.x, tabRect.y, tabRect.width, tabRect.height,
++ (flags & MOZ_GTK_TAB_BOTTOM) ?
++ GTK_POS_TOP : GTK_POS_BOTTOM );
} else {
- gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gCheckboxWidget), FALSE);
+- /* Draw the tab on top */
+- focusRect.height -= gap_voffset;
+- gtk_render_extension(style, cr,
+- tabRect.x, tabRect.y, tabRect.width,
+- tabRect.height - gap_voffset, GTK_POS_BOTTOM);
+-
+- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
+-
+- backRect.y += (tabRect.height - gap_voffset);
+- backRect.height = gap_height;
++ /* Draw the tab and the gap
++ * We want the gap to be positioned exactly on the tabpanel top
++ * border; since tabbox.css may set a negative margin so that the tab
++ * frame rect already overlaps the tabpanel frame rect, we need to take
++ * that into account when drawing. To that effect, nsNativeThemeGTK
++ * passes us this negative margin (bmargin in the graphic below) in the
++ * lowest bits of |flags|. We use it to set gap_voffset, the distance
++ * between the top of the gap and the bottom of the tab (resp. the
++ * bottom of the gap and the top of the tab when we draw a bottom tab),
++ * while ensuring that the gap always touches the border of the tab,
++ * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
++ * with big negative or positive margins.
++ * Here is a graphical explanation in the case of top tabs:
++ * ___________________________
++ * / \
++ * | T A B |
++ * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
++ * : ^ bmargin : ^
++ * : | (-negative margin, : |
++ * bottom : v passed in flags) : | gap_height
++ * of -> :.............................: | (the size of the
++ * the tab . part of the gap . | tabpanel top border)
++ * . outside of the tab . v
++ * ----------------------------------------------
++ *
++ * To draw the gap, we use gtk_paint_box_gap(), see comment in
++ * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
++ * which should suffice to ensure that the only visible border is the
++ * pierced one. If the tab is in the middle, we make the box_gap begin
++ * a bit to the left of the tab and end a bit to the right, adjusting
++ * the gap position so it still is under the tab, because we want the
++ * rendering of a gap in the middle of a tabpanel. This is the role of
++ * the gints gap_{l,r}_offset. On the contrary, if the tab is the
++ * first, we align the start border of the box_gap with the start
++ * border of the tab (left if LTR, right if RTL), by setting the
++ * appropriate offset to 0.*/
++ gint gap_loffset, gap_roffset, gap_voffset, gap_height;
++
++ /* Get height needed by the gap */
++ gap_height = moz_gtk_get_tab_thickness();
++
++ /* Extract gap_voffset from the first bits of flags */
++ gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
++ if (gap_voffset > gap_height)
++ gap_voffset = gap_height;
++
++ /* Set gap_{l,r}_offset to appropriate values */
++ gap_loffset = gap_roffset = 20; /* should be enough */
++ if (flags & MOZ_GTK_TAB_FIRST) {
++ if (direction == GTK_TEXT_DIR_RTL)
++ gap_roffset = initial_gap;
++ else
++ gap_loffset = initial_gap;
++ }
+
+- /* Draw the gap; erase with background color before painting in
+- * case theme does not */
+- gtk_render_background(style, cr, backRect.x, backRect.y,
+- backRect.width, backRect.height);
+-
+- cairo_save(cr);
+- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
+- cairo_clip(cr);
+-
+- gtk_render_frame_gap(style, cr,
+- tabRect.x - gap_loffset,
+- tabRect.y + tabRect.height - gap_voffset,
+- tabRect.width + gap_loffset + gap_roffset,
+- 3 * gap_height, GTK_POS_TOP,
+- gap_loffset, gap_loffset + tabRect.width);
+- cairo_restore(cr);
++ if (flags & MOZ_GTK_TAB_BOTTOM) {
++ /* Draw the tab on bottom */
++ focusRect.y += gap_voffset;
++ focusRect.height -= gap_voffset;
++
++ gtk_render_extension(style, cr,
++ tabRect.x, tabRect.y + gap_voffset, tabRect.width,
++ tabRect.height - gap_voffset, GTK_POS_TOP);
++
++ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
++
++ backRect.y += (gap_voffset - gap_height);
++ backRect.height = gap_height;
++
++ /* Draw the gap; erase with background color before painting in
++ * case theme does not */
++ gtk_render_background(style, cr, backRect.x, backRect.y,
++ backRect.width, backRect.height);
++ cairo_save(cr);
++ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
++ cairo_clip(cr);
++
++ gtk_render_frame_gap(style, cr,
++ tabRect.x - gap_loffset,
++ tabRect.y + gap_voffset - 3 * gap_height,
++ tabRect.width + gap_loffset + gap_roffset,
++ 3 * gap_height, GTK_POS_BOTTOM,
++ gap_loffset, gap_loffset + tabRect.width);
++ cairo_restore(cr);
++ } else {
++ /* Draw the tab on top */
++ focusRect.height -= gap_voffset;
++ gtk_render_extension(style, cr,
++ tabRect.x, tabRect.y, tabRect.width,
++ tabRect.height - gap_voffset, GTK_POS_BOTTOM);
++
++ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
++
++ backRect.y += (tabRect.height - gap_voffset);
++ backRect.height = gap_height;
++
++ /* Draw the gap; erase with background color before painting in
++ * case theme does not */
++ gtk_render_background(style, cr, backRect.x, backRect.y,
++ backRect.width, backRect.height);
++
++ cairo_save(cr);
++ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
++ cairo_clip(cr);
++
++ gtk_render_frame_gap(style, cr,
++ tabRect.x - gap_loffset,
++ tabRect.y + tabRect.height - gap_voffset,
++ tabRect.width + gap_loffset + gap_roffset,
++ 3 * gap_height, GTK_POS_TOP,
++ gap_loffset, gap_loffset + tabRect.width);
++ cairo_restore(cr);
++ }
}
-@@ -2588,8 +2598,9 @@ moz_gtk_check_menu_item_paint(cairo_t *c
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_CHECK);
++ } else {
++ gtk_render_background(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
++ gtk_render_frame(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
}
-- if (checked)
-- state_flags |= GTK_STATE_FLAG_ACTIVE;
-+ if (checked) {
-+ state_flags |= checkbox_check_state;
-+ }
-
- gtk_style_context_set_state(style, state_flags);
- gtk_style_context_get_padding(style, state_flags, &padding);
++ gtk_style_context_restore(style);
++
+ if (state->focused) {
+ /* Paint the focus ring */
+- GtkBorder border;
+- gtk_style_context_get_border(style, GetStateFlagsFromGtkWidgetState(state), &border);
++ GtkBorder padding;
++
++ gtk_style_context_save(style);
++ moz_gtk_tab_prepare_style_context(style, flags);
+
+- focusRect.x += border.left;
+- focusRect.width -= (border.left + border.right);
+- focusRect.y += border.top;
+- focusRect.height -= (border.top + border.bottom);
++ gtk_style_context_get_padding(style, GetStateFlagsFromGtkWidgetState(state), &padding);
++
++ focusRect.x += padding.left;
++ focusRect.width -= (padding.left + padding.right);
++ focusRect.y += padding.top;
++ focusRect.height -= (padding.top + padding.bottom);
+
+ gtk_render_focus(style, cr,
+ focusRect.x, focusRect.y, focusRect.width, focusRect.height);
++
++ gtk_style_context_restore(style);
+ }
+
+- gtk_style_context_restore(style);
+
+ return MOZ_GTK_SUCCESS;
+ }
+@@ -2684,26 +2615,18 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ switch (widget) {
+ case MOZ_GTK_BUTTON:
+ {
+- GtkBorder inner_border;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+ ensure_button_widget();
++ style = gtk_widget_get_style_context(gButtonWidget);
++
+ *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget));
+
+ /* Don't add this padding in HTML, otherwise the buttons will
+ become too big and stuff the layout. */
+ if (!inhtml) {
+- moz_gtk_widget_get_focus(gButtonWidget, &interior_focus, &focus_width, &focus_pad);
+- moz_gtk_button_get_inner_border(gButtonWidget, &inner_border);
+- *left += focus_width + focus_pad + inner_border.left;
+- *right += focus_width + focus_pad + inner_border.right;
+- *top += focus_width + focus_pad + inner_border.top;
+- *bottom += focus_width + focus_pad + inner_border.bottom;
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
+ }
+
+- moz_gtk_add_style_border(gtk_widget_get_style_context(gButtonWidget),
+- left, top, right, bottom);
++ moz_gtk_add_style_border(style, left, top, right, bottom);
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_ENTRY:
+@@ -2711,7 +2634,13 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ ensure_entry_widget();
+ style = gtk_widget_get_style_context(gEntryWidget);
+ moz_gtk_add_style_border(style, left, top, right, bottom);
+- moz_gtk_add_style_padding(style, left, top, right, bottom);
++
++ /* Use the document padding in HTML
++ and GTK style padding in XUL. */
++ if (!inhtml) {
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
++ }
++
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_TREEVIEW:
+@@ -2731,23 +2660,15 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ * assigned.
+ * That is why the following code is the same as for MOZ_GTK_BUTTON.
+ * */
+-
+- GtkBorder inner_border;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
++ GtkStyleContext *style;
+
+ ensure_tree_header_cell_widget();
+ *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gTreeHeaderCellWidget));
+
+- moz_gtk_widget_get_focus(gTreeHeaderCellWidget, &interior_focus, &focus_width, &focus_pad);
+- moz_gtk_button_get_inner_border(gTreeHeaderCellWidget, &inner_border);
+- *left += focus_width + focus_pad + inner_border.left;
+- *right += focus_width + focus_pad + inner_border.right;
+- *top += focus_width + focus_pad + inner_border.top;
+- *bottom += focus_width + focus_pad + inner_border.bottom;
+-
+- moz_gtk_add_style_border(gtk_widget_get_style_context(gTreeHeaderCellWidget),
+- left, top, right, bottom);
++ style = gtk_widget_get_style_context(gTreeHeaderCellWidget);
++
++ moz_gtk_add_style_border(style, left, top, right, bottom);
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_TREE_HEADER_SORTARROW:
+@@ -2767,29 +2688,23 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ /* We need to account for the arrow on the dropdown, so text
+ * doesn't come too close to the arrow, or in some cases spill
+ * into the arrow. */
+- gboolean ignored_interior_focus, wide_separators;
+- gint focus_width, focus_pad, separator_width;
++ gboolean wide_separators;
++ gint separator_width;
+ GtkRequisition arrow_req;
+ GtkBorder border;
+
+ ensure_combo_box_widgets();
+
+- *left = gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
++ *left = *top = *right = *bottom =
++ gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
++
++ style = gtk_widget_get_style_context(gComboBoxButtonWidget);
+
+ if (!inhtml) {
+- moz_gtk_widget_get_focus(gComboBoxButtonWidget,
+- &ignored_interior_focus,
+- &focus_width, &focus_pad);
+- *left += focus_width + focus_pad;
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
+ }
+
+- style = gtk_widget_get_style_context(gComboBoxButtonWidget);
+- gtk_style_context_get_border(style, 0, &border);
+-
+- *top = *left + border.top;
+- *left += border.left;
+-
+- *right = *left; *bottom = *top;
++ moz_gtk_add_style_border(style, left, top, right, bottom);
+
+ /* If there is no separator, don't try to count its width. */
+ separator_width = 0;
+@@ -2841,60 +2756,23 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ ensure_frame_widget();
+ w = gFrameWidget;
+ break;
+- case MOZ_GTK_CHECKBUTTON_LABEL:
+- case MOZ_GTK_RADIOBUTTON_LABEL:
+- {
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+- /* If the focus is interior, then the label has a border of
+- (focus_width + focus_pad). */
+- if (widget == MOZ_GTK_CHECKBUTTON_LABEL) {
+- ensure_checkbox_widget();
+- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
+- &focus_width, &focus_pad);
+- }
+- else {
+- ensure_radiobutton_widget();
+- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
+- &focus_width, &focus_pad);
+- }
+-
+- if (interior_focus)
+- *left = *top = *right = *bottom = (focus_width + focus_pad);
+-
+- return MOZ_GTK_SUCCESS;
+- }
+-
+ case MOZ_GTK_CHECKBUTTON_CONTAINER:
+ case MOZ_GTK_RADIOBUTTON_CONTAINER:
+ {
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+- /* If the focus is _not_ interior, then the container has a border
+- of (focus_width + focus_pad). */
+ if (widget == MOZ_GTK_CHECKBUTTON_CONTAINER) {
+ ensure_checkbox_widget();
+- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
+- &focus_width, &focus_pad);
+ w = gCheckboxWidget;
+ } else {
+ ensure_radiobutton_widget();
+- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
+- &focus_width, &focus_pad);
+ w = gRadiobuttonWidget;
+ }
++ style = gtk_widget_get_style_context(w);
+
+ *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(w));
+-
+- if (!interior_focus) {
+- *left += (focus_width + focus_pad);
+- *right += (focus_width + focus_pad);
+- *top += (focus_width + focus_pad);
+- *bottom += (focus_width + focus_pad);
+- }
+-
++ moz_gtk_add_style_border(style,
++ left, top, right, bottom);
++ moz_gtk_add_style_padding(style,
++ left, top, right, bottom);
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_MENUPOPUP:
+@@ -2921,6 +2799,8 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ return MOZ_GTK_SUCCESS;
+ }
+ /* These widgets have no borders, since they are not containers. */
++ case MOZ_GTK_CHECKBUTTON_LABEL:
++ case MOZ_GTK_RADIOBUTTON_LABEL:
+ case MOZ_GTK_SPLITTER_HORIZONTAL:
+ case MOZ_GTK_SPLITTER_VERTICAL:
+ case MOZ_GTK_CHECKBUTTON:
+@@ -2975,11 +2855,7 @@ moz_gtk_get_tab_border(gint* left, gint*
+ gtk_style_context_save(style);
+ moz_gtk_tab_prepare_style_context(style, flags);
+
+- // TODO add_style_border() should be replaced
+- // with focus-line-width and focus-padding
+- // see Bug 877605
+ *left = *top = *right = *bottom = 0;
+- moz_gtk_add_style_border(style, left, top, right, bottom);
+ moz_gtk_add_style_padding(style, left, top, right, bottom);
+
+ gtk_widget_style_get (gTabWidget, "tab-curvature", &tab_curvature, NULL);
+@@ -2990,16 +2866,9 @@ moz_gtk_get_tab_border(gint* left, gint*
+ int initial_gap;
+ gtk_widget_style_get (gTabWidget, "initial-gap", &initial_gap, NULL);
+ if (direction == GTK_TEXT_DIR_RTL)
+- *right += initial_gap;
++ *right += initial_gap;
+ else
+- *left += initial_gap;
+- }
+-
+- // Top tabs have no bottom border, bottom tabs have no top border
+- if (flags & MOZ_GTK_TAB_BOTTOM) {
+- *top = 0;
+- } else {
+- *bottom = 0;
++ *left += initial_gap;
+ }
+
+ gtk_style_context_restore(style);
diff --git a/www/seamonkey/patches/patch-mozilla_widget_gtk_gtkdrawing.h b/www/seamonkey/patches/patch-mozilla_widget_gtk_gtkdrawing.h
new file mode 100644
index 00000000000..e03e8aa93d6
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_widget_gtk_gtkdrawing.h
@@ -0,0 +1,41 @@
+$NetBSD: patch-mozilla_widget_gtk_gtkdrawing.h,v 1.3 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/widget/gtk/gtkdrawing.h.orig 2015-09-02 09:27:33.000000000 +0000
++++ mozilla/widget/gtk/gtkdrawing.h
+@@ -293,16 +293,6 @@ moz_gtk_checkbox_get_metrics(gint* indic
+ gint
+ moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing);
+
+-/**
+- * Get the inner-border value for a GtkButton widget (button or tree header)
+- * widget: [IN] the widget to get the border value for
+- * inner_border: [OUT] the inner border
+- *
+- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+- */
+-gint
+-moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
+-
+ /** Get the extra size for the focus ring for outline:auto.
+ * widget: [IN] the widget to get the focus metrics for
+ * focus_h_width: [OUT] the horizontal width
+@@ -313,19 +303,6 @@ moz_gtk_button_get_inner_border(GtkWidge
+ gint
+ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width);
+
+-/** Get the focus metrics for a treeheadercell, button, checkbox, or radio button.
+- * widget: [IN] the widget to get the focus metrics for
+- * interior_focus: [OUT] whether the focus is drawn around the
+- * label (TRUE) or around the whole container (FALSE)
+- * focus_width: [OUT] the width of the focus line
+- * focus_pad: [OUT] the padding between the focus line and children
+- *
+- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+- */
+-gint
+-moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+- gint* focus_width, gint* focus_pad);
+-
+ /** Get the horizontal padding for the menuitem widget or checkmenuitem widget.
+ * horizontal_padding: [OUT] The left and right padding of the menuitem or checkmenuitem
+ *
diff --git a/www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.cpp b/www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.cpp
deleted file mode 100644
index 5aa39dcaf99..00000000000
--- a/www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-$NetBSD: patch-mozilla_widget_gtk_nsLookAndFeel.cpp,v 1.1 2015/02/15 02:11:03 ryoon Exp $
-
---- mozilla/widget/gtk/nsLookAndFeel.cpp.orig 2015-02-05 04:38:47.000000000 +0000
-+++ mozilla/widget/gtk/nsLookAndFeel.cpp
-@@ -38,7 +38,6 @@ nsLookAndFeel::nsLookAndFeel()
- mStyle(nullptr),
- #else
- mBackgroundStyle(nullptr),
-- mViewStyle(nullptr),
- mButtonStyle(nullptr),
- #endif
- mDefaultFontCached(false), mButtonFontCached(false),
-@@ -53,7 +52,6 @@ nsLookAndFeel::~nsLookAndFeel()
- g_object_unref(mStyle);
- #else
- g_object_unref(mBackgroundStyle);
-- g_object_unref(mViewStyle);
- g_object_unref(mButtonStyle);
- #endif
- }
-@@ -114,13 +112,19 @@ nsLookAndFeel::NativeGetColor(ColorID aI
- case eColorID_IMESelectedRawTextBackground:
- case eColorID_IMESelectedConvertedTextBackground:
- case eColorID__moz_dragtargetzone:
-- aColor = sMozWindowSelectedBackground;
-+ case eColorID__moz_cellhighlight:
-+ case eColorID__moz_html_cellhighlight:
-+ case eColorID_highlight: // preference selected item,
-+ aColor = sTextSelectedBackground;
- break;
- case eColorID_WidgetSelectForeground:
- case eColorID_TextSelectForeground:
- case eColorID_IMESelectedRawTextForeground:
- case eColorID_IMESelectedConvertedTextForeground:
-- aColor = sMozWindowSelectedText;
-+ case eColorID_highlighttext:
-+ case eColorID__moz_cellhighlighttext:
-+ case eColorID__moz_html_cellhighlighttext:
-+ aColor = sTextSelectedText;
- break;
- #endif
- case eColorID_Widget3DHighlight:
-@@ -238,19 +242,6 @@ nsLookAndFeel::NativeGetColor(ColorID aI
- GTK_STATE_FLAG_INSENSITIVE, &gdk_color);
- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
- break;
-- case eColorID_highlight: // preference selected item,
-- // background of selected item
-- gtk_style_context_get_background_color(mViewStyle,
-- GTK_STATE_FLAG_SELECTED,
-- &gdk_color);
-- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-- break;
-- case eColorID_highlighttext:
-- // text of selected item
-- gtk_style_context_get_color(mViewStyle,
-- GTK_STATE_FLAG_SELECTED, &gdk_color);
-- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-- break;
- case eColorID_inactivecaption:
- // inactive window caption
- gtk_style_context_get_background_color(mBackgroundStyle,
-@@ -284,10 +275,17 @@ nsLookAndFeel::NativeGetColor(ColorID aI
- #endif
- break;
-
-+ case eColorID_threedlightshadow:
-+ // 3-D highlighted inner edge color
-+ // always same as background in GTK code
- case eColorID_threedface:
- case eColorID_buttonface:
- // 3-D face color
-- aColor = sFrameBackground;
-+#if (MOZ_WIDGET_GTK == 3)
-+ aColor = sMozWindowBackground;
-+#else
-+ aColor = sButtonBackground;
-+#endif
- break;
-
- case eColorID_buttontext:
-@@ -302,11 +300,6 @@ nsLookAndFeel::NativeGetColor(ColorID aI
- aColor = sFrameOuterLightBorder;
- break;
-
-- case eColorID_threedlightshadow:
-- // 3-D highlighted inner edge color
-- aColor = sFrameBackground; // always same as background in GTK code
-- break;
--
- case eColorID_buttonshadow:
- // 3-D shadow edge color
- case eColorID_threedshadow:
-@@ -391,19 +384,6 @@ nsLookAndFeel::NativeGetColor(ColorID aI
- case eColorID__moz_buttonhovertext:
- aColor = sButtonHoverText;
- break;
-- case eColorID__moz_cellhighlight:
-- case eColorID__moz_html_cellhighlight:
-- gtk_style_context_get_background_color(mViewStyle,
-- GTK_STATE_FLAG_SELECTED,
-- &gdk_color);
-- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-- break;
-- case eColorID__moz_cellhighlighttext:
-- case eColorID__moz_html_cellhighlighttext:
-- gtk_style_context_get_color(mViewStyle,
-- GTK_STATE_FLAG_SELECTED, &gdk_color);
-- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-- break;
- #endif
- case eColorID__moz_menuhover:
- aColor = sMenuHover;
-@@ -965,7 +945,7 @@ nsLookAndFeel::Init()
- GtkStyleContext *style;
-
- // Gtk manages a screen's CSS in the settings object so we
-- // ask Gtk to create it explicitly. Otherwise we may end up
-+ // ask Gtk to create it explicitly. Otherwise we may end up
- // with wrong color theme, see Bug 972382
- (void)gtk_settings_get_for_screen(gdk_screen_get_default());
-
-@@ -975,9 +955,6 @@ nsLookAndFeel::Init()
- mBackgroundStyle = create_context(path);
- gtk_style_context_add_class(mBackgroundStyle, GTK_STYLE_CLASS_BACKGROUND);
-
-- mViewStyle = create_context(path);
-- gtk_style_context_add_class(mViewStyle, GTK_STYLE_CLASS_VIEW);
--
- mButtonStyle = create_context(path);
- gtk_style_context_add_class(mButtonStyle, GTK_STYLE_CLASS_BUTTON);
-
-@@ -990,11 +967,24 @@ nsLookAndFeel::Init()
- g_object_unref(style);
-
- // Text colors
-- gtk_style_context_get_background_color(mViewStyle, GTK_STATE_FLAG_NORMAL, &color);
-+ style = create_context(path);
-+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_VIEW);
-+ gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
- sMozFieldBackground = GDK_RGBA_TO_NS_RGBA(color);
-- gtk_style_context_get_color(mViewStyle, GTK_STATE_FLAG_NORMAL, &color);
-+ gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
- sMozFieldText = GDK_RGBA_TO_NS_RGBA(color);
-
-+ // Selected text and background
-+ gtk_style_context_get_background_color(style,
-+ static_cast<GtkStateFlags>(GTK_STATE_FLAG_FOCUSED|GTK_STATE_FLAG_SELECTED),
-+ &color);
-+ sTextSelectedBackground = GDK_RGBA_TO_NS_RGBA(color);
-+ gtk_style_context_get_color(style,
-+ static_cast<GtkStateFlags>(GTK_STATE_FLAG_FOCUSED|GTK_STATE_FLAG_SELECTED),
-+ &color);
-+ sTextSelectedText = GDK_RGBA_TO_NS_RGBA(color);
-+ g_object_unref(style);
-+
- // Window colors
- style = create_context(path);
- gtk_style_context_save(style);
-@@ -1003,12 +993,6 @@ nsLookAndFeel::Init()
- sMozWindowBackground = GDK_RGBA_TO_NS_RGBA(color);
- gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
- sMozWindowText = GDK_RGBA_TO_NS_RGBA(color);
--
-- // Selected text and background
-- gtk_style_context_get_background_color(style, GTK_STATE_FLAG_SELECTED, &color);
-- sMozWindowSelectedBackground = GDK_RGBA_TO_NS_RGBA(color);
-- gtk_style_context_get_color(style, GTK_STATE_FLAG_SELECTED, &color);
-- sMozWindowSelectedText = GDK_RGBA_TO_NS_RGBA(color);
- gtk_style_context_restore(style);
-
- // tooltip foreground and background
-@@ -1141,7 +1125,7 @@ nsLookAndFeel::Init()
-
- style = gtk_widget_get_style(button);
- if (style) {
-- sFrameBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
-+ sButtonBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
- sFrameOuterLightBorder =
- GDK_COLOR_TO_NS_RGB(style->light[GTK_STATE_NORMAL]);
- sFrameInnerDarkBorder =
-@@ -1189,12 +1173,9 @@ nsLookAndFeel::Init()
- GtkWidget *frame = gtk_frame_new(nullptr);
- gtk_container_add(GTK_CONTAINER(parent), frame);
-
-- style = gtk_widget_get_style_context(frame);
-- gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
-- sFrameBackground = GDK_RGBA_TO_NS_RGBA(color);
--
- // TODO GTK3 - update sFrameOuterLightBorder
- // for GTK_BORDER_STYLE_INSET/OUTSET/GROVE/RIDGE border styles (Bug 978172).
-+ style = gtk_widget_get_style_context(frame);
- gtk_style_context_get_border_color(style, GTK_STATE_FLAG_NORMAL, &color);
- sFrameInnerDarkBorder = sFrameOuterLightBorder = GDK_RGBA_TO_NS_RGBA(color);
- #endif
-@@ -1257,11 +1238,9 @@ nsLookAndFeel::RefreshImpl()
- mStyle = nullptr;
- #else
- g_object_unref(mBackgroundStyle);
-- g_object_unref(mViewStyle);
- g_object_unref(mButtonStyle);
-
- mBackgroundStyle = nullptr;
-- mViewStyle = nullptr;
- mButtonStyle = nullptr;
- #endif
-
diff --git a/www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.h b/www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.h
deleted file mode 100644
index f1a6cbaeefa..00000000000
--- a/www/seamonkey/patches/patch-mozilla_widget_gtk_nsLookAndFeel.h
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD: patch-mozilla_widget_gtk_nsLookAndFeel.h,v 1.1 2015/02/15 02:11:03 ryoon Exp $
-
---- mozilla/widget/gtk/nsLookAndFeel.h.orig 2015-02-05 04:38:47.000000000 +0000
-+++ mozilla/widget/gtk/nsLookAndFeel.h
-@@ -35,7 +35,6 @@ protected:
- struct _GtkStyle *mStyle;
- #else
- struct _GtkStyleContext *mBackgroundStyle;
-- struct _GtkStyleContext *mViewStyle;
- struct _GtkStyleContext *mButtonStyle;
- #endif
-
-@@ -64,7 +63,7 @@ protected:
- nscolor sMenuHoverText;
- nscolor sButtonText;
- nscolor sButtonHoverText;
-- nscolor sFrameBackground;
-+ nscolor sButtonBackground;
- nscolor sFrameOuterLightBorder;
- nscolor sFrameInnerDarkBorder;
- nscolor sOddCellBackground;
-@@ -75,8 +74,8 @@ protected:
- nscolor sMozFieldBackground;
- nscolor sMozWindowText;
- nscolor sMozWindowBackground;
-- nscolor sMozWindowSelectedText;
-- nscolor sMozWindowSelectedBackground;
-+ nscolor sTextSelectedText;
-+ nscolor sTextSelectedBackground;
- nscolor sMozScrollbar;
- char16_t sInvisibleCharacter;
- float sCaretRatio;
diff --git a/www/seamonkey/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp b/www/seamonkey/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp
new file mode 100644
index 00000000000..0e58d924585
--- /dev/null
+++ b/www/seamonkey/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp
@@ -0,0 +1,30 @@
+$NetBSD: patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp,v 1.3 2015/09/21 05:03:45 ryoon Exp $
+
+--- mozilla/widget/gtk/nsNativeThemeGTK.cpp.orig 2015-09-02 09:27:33.000000000 +0000
++++ mozilla/widget/gtk/nsNativeThemeGTK.cpp
+@@ -761,6 +761,8 @@ nsNativeThemeGTK::GetExtraSizeForWidget(
+ return false;
+
+ gint gap_height = moz_gtk_get_tab_thickness();
++ if (!gap_height)
++ return false;
+
+ int32_t extra = gap_height - GetTabMarginPixels(aFrame);
+ if (extra <= 0)
+@@ -1528,9 +1530,15 @@ nsNativeThemeGTK::GetWidgetTransparency(
+ case NS_THEME_MENUPOPUP:
+ case NS_THEME_WINDOW:
+ case NS_THEME_DIALOG:
+- // Tooltips use gtk_paint_flat_box().
++ return eOpaque;
++ // Tooltips use gtk_paint_flat_box() on Gtk2
++ // but are shaped on Gtk3
+ case NS_THEME_TOOLTIP:
++#if (MOZ_WIDGET_GTK == 2)
+ return eOpaque;
++#else
++ return eTransparent;
++#endif
+ }
+
+ return eUnknownTransparency;
diff --git a/www/seamonkey/patches/patch-mozilla_xpcom_base_nsStackWalk.cpp b/www/seamonkey/patches/patch-mozilla_xpcom_base_nsStackWalk.cpp
index d94ba0cbeb2..0b1e839f632 100644
--- a/www/seamonkey/patches/patch-mozilla_xpcom_base_nsStackWalk.cpp
+++ b/www/seamonkey/patches/patch-mozilla_xpcom_base_nsStackWalk.cpp
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_xpcom_base_nsStackWalk.cpp,v 1.5 2015/02/15 02:11:03 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_base_nsStackWalk.cpp,v 1.6 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/xpcom/base/nsStackWalk.cpp.orig 2015-02-05 04:38:49.000000000 +0000
+--- mozilla/xpcom/base/nsStackWalk.cpp.orig 2015-09-02 09:27:33.000000000 +0000
+++ mozilla/xpcom/base/nsStackWalk.cpp
@@ -34,12 +34,12 @@ static CriticalAddress gCriticalAddress;
#define _GNU_SOURCE
@@ -27,7 +27,7 @@ $NetBSD: patch-mozilla_xpcom_base_nsStackWalk.cpp,v 1.5 2015/02/15 02:11:03 ryoo
#include <pthread.h>
#include <CoreServices/CoreServices.h>
-@@ -832,7 +832,7 @@ NS_DescribeCodeAddress(void* aPC, nsCode
+@@ -830,7 +830,7 @@ NS_DescribeCodeAddress(void* aPC, nsCode
}
// i386 or PPC Linux stackwalking code
@@ -36,7 +36,7 @@ $NetBSD: patch-mozilla_xpcom_base_nsStackWalk.cpp,v 1.5 2015/02/15 02:11:03 ryoo
#include <stdlib.h>
#include <string.h>
-@@ -903,7 +903,7 @@ FramePointerStackWalk(NS_WalkStackCallba
+@@ -901,7 +901,7 @@ FramePointerStackWalk(NS_WalkStackCallba
(long(next) & 3)) {
break;
}
@@ -45,12 +45,12 @@ $NetBSD: patch-mozilla_xpcom_base_nsStackWalk.cpp,v 1.5 2015/02/15 02:11:03 ryoo
// ppc mac or powerpc64 linux
void* pc = *(bp + 2);
bp += 3;
-@@ -933,7 +933,7 @@ FramePointerStackWalk(NS_WalkStackCallba
+@@ -931,7 +931,7 @@ FramePointerStackWalk(NS_WalkStackCallba
}
#define X86_OR_PPC (defined(__i386) || defined(PPC) || defined(__ppc__))
-#if X86_OR_PPC && (NSSTACKWALK_SUPPORTS_MACOSX || NSSTACKWALK_SUPPORTS_LINUX) // i386 or PPC Linux or Mac stackwalking code
+#if X86_OR_PPC && (NSSTACKWALK_SUPPORTS_DARWIN || NSSTACKWALK_SUPPORTS_LINUX) // i386 or PPC Linux or Mac stackwalking code
- EXPORT_XPCOM_API(nsresult)
+ XPCOM_API(nsresult)
NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames,
diff --git a/www/seamonkey/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp b/www/seamonkey/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp
index 16c21d8ab69..2d1acaeebe2 100644
--- a/www/seamonkey/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp
+++ b/www/seamonkey/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_xpcom_build_XPCOMInit.cpp,v 1.1 2015/02/15 02:11:03 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_build_XPCOMInit.cpp,v 1.2 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/xpcom/build/XPCOMInit.cpp.orig 2015-02-05 04:38:49.000000000 +0000
+--- mozilla/xpcom/build/XPCOMInit.cpp.orig 2015-09-02 09:27:33.000000000 +0000
+++ mozilla/xpcom/build/XPCOMInit.cpp
-@@ -139,7 +139,9 @@ extern nsresult nsStringInputStreamConst
+@@ -141,7 +141,9 @@ extern nsresult nsStringInputStreamConst
#include "mozilla/VisualEventTracer.h"
#endif
@@ -10,9 +10,9 @@ $NetBSD: patch-mozilla_xpcom_build_XPCOMInit.cpp,v 1.1 2015/02/15 02:11:03 ryoon
#include "ogg/ogg.h"
+#endif
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
- #include "vpx_mem/vpx_mem.h"
- #endif
-@@ -652,11 +654,13 @@ NS_InitXPCOM2(nsIServiceManager** aResul
+ #if defined(HAVE_STDINT_H)
+ // mozilla-config.h defines HAVE_STDINT_H, and then it's defined *again* in
+@@ -669,11 +671,13 @@ NS_InitXPCOM2(nsIServiceManager** aResul
// this oddness.
mozilla::SetICUMemoryFunctions();
diff --git a/www/seamonkey/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build b/www/seamonkey/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build
index 0daad5fd5d2..7930c1544bf 100644
--- a/www/seamonkey/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build
+++ b/www/seamonkey/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build,v 1.2 2015/03/17 19:50:42 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build,v 1.3 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/xpcom/reflect/xptcall/md/unix/moz.build.orig 2015-03-09 05:34:28.000000000 +0000
+--- mozilla/xpcom/reflect/xptcall/md/unix/moz.build.orig 2015-09-02 09:27:34.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/md/unix/moz.build
@@ -9,7 +9,7 @@ if CONFIG['OS_ARCH'] == 'Darwin':
'xptcinvoke_darwin.cpp',
@@ -11,20 +11,12 @@ $NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build,v 1.2 2015/03/17
SOURCES += [
'xptcinvoke_asm_ppc_rhapsody.s',
]
-@@ -19,14 +19,14 @@ if CONFIG['OS_ARCH'] == 'Darwin':
- if '86' in CONFIG['OS_TEST'] and CONFIG['OS_TEST'] != 'x86_64':
- DEFINES['MOZ_NEED_LEADING_UNDERSCORE'] = True
-
--if CONFIG['OS_ARCH'] in ('NetBSD', 'GNU'):
-+if CONFIG['OS_ARCH'] in ('OpenBSD', 'GNU'):
- if CONFIG['CPU_ARCH'] == 'x86':
- SOURCES += [
- 'xptcinvoke_gcc_x86_unix.cpp',
+@@ -26,7 +26,7 @@ if CONFIG['OS_ARCH'] == 'GNU':
'xptcstubs_gcc_x86_unix.cpp'
]
--if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'OpenBSD') or \
-+if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'NetBSD', 'DragonFly') or \
+-if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'NetBSD', 'OpenBSD') or \
++if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'DragonFly') or \
CONFIG['OS_ARCH'].startswith('GNU_'):
if CONFIG['OS_TEST'] == 'x86_64':
SOURCES += [
diff --git a/www/seamonkey/patches/patch-rc b/www/seamonkey/patches/patch-rc
index a739e427870..aaa39d389f3 100644
--- a/www/seamonkey/patches/patch-rc
+++ b/www/seamonkey/patches/patch-rc
@@ -1,13 +1,15 @@
-$NetBSD: patch-rc,v 1.8 2013/01/07 21:55:30 ryoon Exp $
+$NetBSD: patch-rc,v 1.9 2015/09/21 05:03:45 ryoon Exp $
---- mozilla/browser/branding/unofficial/locales/en-US/brand.dtd.orig 2012-11-18 10:19:30.000000000 +0000
+--- mozilla/browser/branding/unofficial/locales/en-US/brand.dtd.orig 2015-09-02 09:27:26.000000000 +0000
+++ mozilla/browser/branding/unofficial/locales/en-US/brand.dtd
-@@ -2,7 +2,7 @@
+@@ -2,8 +2,8 @@
- 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/. -->
+-<!ENTITY brandShorterName "Mozilla Developer Preview">
-<!ENTITY brandShortName "Mozilla Developer Preview">
-<!ENTITY brandFullName "Mozilla Developer Preview">
++<!ENTITY brandShorterName "Browser">
+<!ENTITY brandShortName "Browser">
+<!ENTITY brandFullName "Browser">
<!ENTITY vendorShortName "mozilla.org">