Index: head/Mk/bsd.gecko.mk =================================================================== --- head/Mk/bsd.gecko.mk (revision 501603) +++ head/Mk/bsd.gecko.mk (revision 501604) @@ -1,535 +1,535 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # Date created: 12 Nov 2005 # Whom: Michael Johnson # # $FreeBSD$ # # 4 column tabs prevent hair loss and tooth decay! # bsd.gecko.mk abstracts the selection of gecko-based backends. It allows users # and porters to support any available gecko backend without needing to build # many conditional tests. ${USE_GECKO} is the list of backends that your port # can handle, and ${GECKO} is set by bsd.gecko.mk to be the chosen backend. # Users set ${WITH_GECKO} to the list of gecko backends they want on their # system. .if defined(USE_GECKO) .if !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include) Gecko_Pre_Include= bsd.gecko.mk # This file contains some reusable components for mozilla ports. It's of # use primarily to apps from the mozilla project itself (such as Firefox, # Thunderbird, etc.), and probably won't be of use for gecko-based ports # like epiphany, galeon, etc. # # You need to make sure to add USE_GECKO=gecko to for your port can uses # one of these options below. # # Ports can use the following: # # USE_MOZILLA By default, it enables every system dependency # listed in '_ALL_DEPENDS'. If your port doesn't # need one of those then you can use '-' like # 'USE_MOZILLA= -png -vpx' to subtract the # dependencies. Experimental deps use '+' like # 'USE_MOZILLA= +speex +theora'. # # MOZILLA_PLIST_DIRS List of directories to descend into when installing # and creating the plist # # MOZ_PIS_SCRIPTS List of scripts residing in ${FILESDIR} to be # filtered through MOZCONFIG_SED and installed along # with our Pluggable Init Scripts (PIS) # # MOZ_SED_ARGS sed(1) commands through which MOZ_PIS_SCRIPTS are # filtered. There is a default set defined here, so # you probably want to add to MOZ_SED_ARGS rather # than clobber it # # MOZ_OPTIONS configure arguments (added to .mozconfig). If # NOMOZCONFIG is defined, you probably want to set # CONFIGURE_ARGS+=${MOZ_OPTIONS} # # MOZ_MK_OPTIONS The make(1) arguments (added to .mozconfig). If # NOMOZCONFIG is defined, you probably want to set # MAKE_ARGS+=${MOZ_MK_OPTIONS} # # MOZ_EXPORT Environment variables for the build process (added # to .mozconfig). If NOMOZCONFIG is defined, you # probably want to set MAKE_ENV+=${MOZ_EXPORT} # # MOZ_CHROME A variable for the --enable-chrome-format= in # CONFIGURE_ARGS. The default is omni. # # MOZ_TOOLKIT A variable for the --enable-default-toolkit= in # CONFIGURE_ARGS. The default is cairo-gtk2. # # PORT_MOZCONFIG Defaults to ${FILESDIR}/mozconfig.in, but can be # set to a generic mozconfig included with the port # # NOMOZCONFIG Don't drop a customized .mozconfig into the build # directory. Options will have to be specified in # CONFIGURE_ARGS instead # MAINTAINER?= gecko@FreeBSD.org MOZILLA?= ${PORTNAME} MOZILLA_VER?= ${PORTVERSION} MOZILLA_BIN?= ${PORTNAME}-bin MOZILLA_EXEC_NAME?=${MOZILLA} MOZ_RPATH?= ${MOZILLA} USES+= compiler:c++17-lang cpe gl gmake iconv localbase perl5 pkgconfig \ python:2.7,build desktop-file-utils CPE_VENDOR?=mozilla USE_GL= gl USE_PERL5= build USE_XORG= x11 xcb xcomposite xdamage xext xfixes xrender xt HAS_CONFIGURE= yes CONFIGURE_OUTSOURCE= yes BUNDLE_LIBS= yes .if ${MOZILLA_VER:R:R} >= 56 BUILD_DEPENDS+= llvm${LLVM_DEFAULT}>0:devel/llvm${LLVM_DEFAULT} MOZ_EXPORT+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} # Require newer Clang than what's in base system unless user opted out . if ${CC} == cc && ${CXX} == c++ && exists(/usr/lib/libc++.so) BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} USES:= ${USES:Ncompiler\:*} # XXX avoid warnings . endif .endif .if ${MOZILLA_VER:R:R} >= 61 BUILD_DEPENDS+= ${LOCALBASE}/bin/python${PYTHON3_DEFAULT}:lang/python${PYTHON3_DEFAULT:S/.//g} MOZ_EXPORT+= PYTHON3="${LOCALBASE}/bin/python${PYTHON3_DEFAULT}" .endif .if ${MOZILLA_VER:R:R} >= 63 BUILD_DEPENDS+= rust-cbindgen>=0.6.8:devel/rust-cbindgen \ node:www/node .endif .if ${MOZILLA_VER:R:R} < 64 MOZ_OPTIONS+= --enable-pie .endif MOZILLA_SUFX?= none MOZSRC?= ${WRKSRC} PLISTF?= ${WRKDIR}/plist_files MOZ_PIS_DIR?= lib/${MOZILLA}/init.d PORT_MOZCONFIG?= ${FILESDIR}/mozconfig.in MOZCONFIG?= ${WRKSRC}/.mozconfig MOZILLA_PLIST_DIRS?= bin lib share/pixmaps share/applications PKGINSTALL?= ${WRKDIR}/pkg-install PKGDEINSTALL?= ${WRKDIR}/pkg-deinstall PKGINSTALL_INC?= ${.CURDIR}/../../www/firefox/files/pkg-install.in PKGDEINSTALL_INC?= ${.CURDIR}/../../www/firefox/files/pkg-deinstall.in MOZ_PKGCONFIG_FILES?= ${MOZILLA}-gtkmozembed ${MOZILLA}-js \ ${MOZILLA}-xpcom ${MOZILLA}-plugin MOZ_EXPORT+= ${CONFIGURE_ENV} \ RUSTFLAGS="${RUSTFLAGS}" \ PERL="${PERL}" MOZ_OPTIONS+= --prefix="${PREFIX}" MOZ_MK_OPTIONS+=MOZ_OBJDIR="${BUILD_WRKSRC}" LDFLAGS+= -Wl,--as-needed # Adjust -C target-cpu if -march/-mcpu is set by bsd.cpu.mk .if ${ARCH} == amd64 || ${ARCH} == i386 RUSTFLAGS+= ${CFLAGS:M-march=*:S/-march=/-C target-cpu=/} .else RUSTFLAGS+= ${CFLAGS:M-mcpu=*:S/-mcpu=/-C target-cpu=/} .endif # Standard depends _ALL_DEPENDS= event ffi graphite harfbuzz hunspell icu jpeg nspr nss png pixman sqlite vpx webp event_LIB_DEPENDS= libevent.so:devel/libevent event_MOZ_OPTIONS= --with-system-libevent ffi_LIB_DEPENDS= libffi.so:devel/libffi ffi_MOZ_OPTIONS= --enable-system-ffi .if exists(${FILESDIR}/patch-bug847568) graphite_LIB_DEPENDS= libgraphite2.so:graphics/graphite2 graphite_MOZ_OPTIONS= --with-system-graphite2 harfbuzz_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz harfbuzz_MOZ_OPTIONS= --with-system-harfbuzz .endif hunspell_LIB_DEPENDS= libhunspell-1.7.so:textproc/hunspell hunspell_MOZ_OPTIONS= --enable-system-hunspell icu_LIB_DEPENDS= libicui18n.so:devel/icu icu_MOZ_OPTIONS= --with-system-icu --with-intl-api -jpeg_BUILD_DEPENDS=yasm:devel/yasm jpeg_USES= jpeg jpeg_MOZ_OPTIONS= --with-system-jpeg=${LOCALBASE} nspr_LIB_DEPENDS= libnspr4.so:devel/nspr nspr_MOZ_OPTIONS= --with-system-nspr nss_LIB_DEPENDS= libnss3.so:security/nss nss_MOZ_OPTIONS= --with-system-nss pixman_LIB_DEPENDS= libpixman-1.so:x11/pixman pixman_MOZ_OPTIONS= --enable-system-pixman png_LIB_DEPENDS= libpng.so:graphics/png png_MOZ_OPTIONS= --with-system-png=${LOCALBASE} sqlite_LIB_DEPENDS= libsqlite3.so:databases/sqlite3 sqlite_MOZ_OPTIONS= --enable-system-sqlite -vpx_BUILD_DEPENDS= yasm:devel/yasm vpx_LIB_DEPENDS= libvpx.so:multimedia/libvpx vpx_MOZ_OPTIONS= --with-system-libvpx webp_LIB_DEPENDS= libwebp.so:graphics/webp webp_MOZ_OPTIONS= --with-system-webp .for use in ${USE_MOZILLA} ${use:S/-/_WITHOUT_/}= ${TRUE} .endfor LIB_DEPENDS+= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 .for dep in ${_ALL_DEPENDS} ${USE_MOZILLA:M+*:S/+//} .if !defined(_WITHOUT_${dep}) BUILD_DEPENDS+= ${${dep}_BUILD_DEPENDS} LIB_DEPENDS+= ${${dep}_LIB_DEPENDS} RUN_DEPENDS+= ${${dep}_RUN_DEPENDS} USES+= ${${dep}_USES} MOZ_OPTIONS+= ${${dep}_MOZ_OPTIONS} .else BUILD_DEPENDS+= ${-${dep}_BUILD_DEPENDS} .endif .endfor # Standard options MOZ_CHROME?= omni MOZ_TOOLKIT?= cairo-gtk3 MOZ_CHANNEL?= ${PKGNAMESUFFIX:Urelease:S/^-//} MOZ_OPTIONS+= \ --enable-chrome-format=${MOZ_CHROME} \ --enable-default-toolkit=${MOZ_TOOLKIT} \ --enable-update-channel=${MOZ_CHANNEL} \ --disable-updater # others MOZ_OPTIONS+= --with-system-zlib \ --with-system-bz2 # API keys from www/chromium # http://www.chromium.org/developers/how-tos/api-keys # Note: these are for FreeBSD use ONLY. For your own distribution, # please get your own set of keys. MOZ_EXPORT+= MOZ_GOOGLE_API_KEY=AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8 .if ${PORT_OPTIONS:MGTK2} MOZ_TOOLKIT= cairo-gtk2 .elif ${PORT_OPTIONS:MWAYLAND} MOZ_TOOLKIT= cairo-gtk3-wayland .endif USES+= gnome .if ${MOZ_TOOLKIT:Mcairo-gtk3*} BUILD_DEPENDS+= gtk3>=3.14.6:x11-toolkits/gtk30 USE_GNOME+= gdkpixbuf2 gtk20 gtk30 .else # gtk2, cairo-gtk2 USE_GNOME+= gdkpixbuf2 gtk20 .endif .if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} CFLAGS+= -O3 MOZ_EXPORT+= MOZ_OPTIMIZE_FLAGS="${CFLAGS:M-O*}" MOZ_OPTIONS+= --enable-optimize .else MOZ_OPTIONS+= --disable-optimize . if ${MOZILLA_VER:R:R} >= 56 . if ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld # ld 2.17 barfs on Stylo built with -C opt-level=0 USE_BINUTILS= yes LDFLAGS+= -B${LOCALBASE}/bin . endif . endif .endif .if ${PORT_OPTIONS:MCANBERRA} RUN_DEPENDS+= libcanberra>0:audio/libcanberra .endif .if ${PORT_OPTIONS:MDBUS} BUILD_DEPENDS+= libnotify>0:devel/libnotify LIB_DEPENDS+= libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib \ libstartup-notification-1.so:x11/startup-notification MOZ_OPTIONS+= --enable-startup-notification .else MOZ_OPTIONS+= --disable-dbus .endif .if ${PORT_OPTIONS:MFFMPEG} # dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp RUN_DEPENDS+= ffmpeg>=0.8,1:multimedia/ffmpeg .endif .if ${PORT_OPTIONS:MGCONF} USE_GNOME+= gconf2 MOZ_OPTIONS+= --enable-gconf .else MOZ_OPTIONS+= --disable-gconf .endif .if ${PORT_OPTIONS:MLIBPROXY} LIB_DEPENDS+= libproxy.so:net/libproxy MOZ_OPTIONS+= --enable-libproxy .else MOZ_OPTIONS+= --disable-libproxy .endif .if ${PORT_OPTIONS:MALSA} LIB_DEPENDS+= libasound.so:audio/alsa-lib RUN_DEPENDS+= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins RUN_DEPENDS+= alsa-lib>=1.1.1_1:audio/alsa-lib MOZ_OPTIONS+= --enable-alsa .endif .if ${PORT_OPTIONS:MJACK} BUILD_DEPENDS+= ${LOCALBASE}/include/jack/jack.h:audio/jack MOZ_OPTIONS+= --enable-jack .endif .if ${PORT_OPTIONS:MPULSEAUDIO} BUILD_DEPENDS+= ${LOCALBASE}/include/pulse/pulseaudio.h:audio/pulseaudio MOZ_OPTIONS+= --enable-pulseaudio .else MOZ_OPTIONS+= --disable-pulseaudio .endif .if ${PORT_OPTIONS:MSNDIO} LIB_DEPENDS+= libsndio.so:audio/sndio post-patch-SNDIO-on: @${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \ ${MOZSRC}/media/libcubeb/src/moz.build \ ${MOZSRC}/toolkit/library/moz.build . for tests in tests gtest @if [ -f "${MOZSRC}/media/libcubeb/${tests}/moz.build" ]; then \ ${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \ ${MOZSRC}/media/libcubeb/${tests}/moz.build; \ fi . endfor @if [ -f "${MOZSRC}/media/webrtc/trunk/webrtc/build/common.gypi" ]; then \ ${REINPLACE_CMD} -e 's|OS==\"openbsd\"|OS==\"${OPSYS:tl}\"|g' \ ${MOZSRC}/media/webrtc/trunk/webrtc/build/common.gypi; \ fi @if [ -f "${MOZSRC}/media/webrtc/signaling/test/common.build" ]; then \ ${ECHO_CMD} "OS_LIBS += ['sndio']" >> \ ${MOZSRC}/media/webrtc/signaling/test/common.build; \ fi .endif .if ${PORT_OPTIONS:MRUST} || ${MOZILLA_VER:R:R} >= 54 BUILD_DEPENDS+= ${RUST_DEFAULT}>=1.30:lang/${RUST_DEFAULT} . if ${MOZILLA_VER:R:R} < 54 MOZ_OPTIONS+= --enable-rust . endif .else MOZ_OPTIONS+= --disable-rust .endif .if ${PORT_OPTIONS:MDEBUG} MOZ_OPTIONS+= --enable-debug --disable-release STRIP= # ports/184285 .else MOZ_OPTIONS+= --disable-debug --disable-debug-symbols --enable-release -. if ${MOZILLA_VER:R:R} >= 67 && (${ARCH:Maarch64} || ${MACHINE_CPU:Msse2}) +. if ${MOZILLA_VER:R:R} >= 68 && (${ARCH:Maarch64} || ${MACHINE_CPU:Msse2}) MOZ_OPTIONS+= --enable-rust-simd . endif .endif .if ${PORT_OPTIONS:MPROFILE} MOZ_OPTIONS+= --enable-profiling STRIP= .else MOZ_OPTIONS+= --disable-profiling .endif .if ${PORT_OPTIONS:MTEST} USE_XORG+= xscrnsaver MOZ_OPTIONS+= --enable-tests .else MOZ_OPTIONS+= --disable-tests .endif .if !defined(STRIP) || ${STRIP} == "" MOZ_OPTIONS+= --disable-strip --disable-install-strip .else MOZ_OPTIONS+= --enable-strip --enable-install-strip .endif # _MAKE_JOBS is only available after bsd.port.post.mk, thus cannot be # used in .mozconfig. And client.mk automatically uses -jN where N # is what multiprocessing.cpu_count() returns. .if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE) MAKE_JOBS_NUMBER= 1 .endif .if defined(MAKE_JOBS_NUMBER) MOZ_MAKE_FLAGS+=-j${MAKE_JOBS_NUMBER} .endif .if defined(MOZ_MAKE_FLAGS) MOZ_MK_OPTIONS+=MOZ_MAKE_FLAGS="${MOZ_MAKE_FLAGS}" .endif MOZ_SED_ARGS+= -e's|@CPPFLAGS@|${CPPFLAGS}|g' \ -e 's|@CFLAGS@|${CFLAGS}|g' \ -e 's|@LDFLAGS@|${LDFLAGS}|g' \ -e 's|@LIBS@|${LIBS}|g' \ -e 's|@LOCALBASE@|${LOCALBASE}|g' \ -e 's|@PERL@|${PERL}|g' \ -e 's|@MOZDIR@|${PREFIX}/lib/${MOZILLA}|g' \ -e 's|%%PREFIX%%|${PREFIX}|g' \ -e 's|%%CFLAGS%%|${CFLAGS}|g' \ -e 's|%%LDFLAGS%%|${LDFLAGS}|g' \ -e 's|%%LIBS%%|${LIBS}|g' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ -e 's|%%PERL%%|${PERL}|g' \ -e 's|%%MOZILLA%%|${MOZILLA}|g' \ -e 's|%%MOZILLA_BIN%%|${MOZILLA_BIN}|g' \ -e 's|%%MOZDIR%%|${PREFIX}/lib/${MOZILLA}|g' MOZCONFIG_SED?= ${SED} ${MOZ_SED_ARGS} .if ${ARCH} == amd64 . if ${USE_MOZILLA:M-nss} USE_BINUTILS= # intel-gcm.s CFLAGS+= -B${LOCALBASE}/bin LDFLAGS+= -B${LOCALBASE}/bin . endif .elif ${ARCH:Mpowerpc*} . if ${ARCH} == "powerpc64" MOZ_EXPORT+= UNAME_m="${ARCH}" CFLAGS+= -mminimal-toc . endif .elif ${ARCH} == "sparc64" # Work around miscompilation/mislinkage of the sCanonicalVTable hacks. MOZ_OPTIONS+= --disable-v1-string-abi .endif .else # bsd.port.post.mk post-patch: gecko-post-patch gecko-moz-pis-patch gecko-post-patch: .if exists(${PKGINSTALL_INC}) @${MOZCONFIG_SED} < ${PKGINSTALL_INC} > ${PKGINSTALL} .endif .if exists(${PKGDEINSTALL_INC}) @${MOZCONFIG_SED} < ${PKGDEINSTALL_INC} > ${PKGDEINSTALL} .endif @${RM} ${MOZCONFIG} .if !defined(NOMOZCONFIG) @if [ -e ${PORT_MOZCONFIG} ] ; then \ ${MOZCONFIG_SED} < ${PORT_MOZCONFIG} >> ${MOZCONFIG} ; \ fi .for arg in ${MOZ_OPTIONS} @${ECHO_CMD} ac_add_options ${arg:Q} >> ${MOZCONFIG} .endfor .for arg in ${MOZ_MK_OPTIONS} @${ECHO_CMD} mk_add_options ${arg:Q} >> ${MOZCONFIG} .endfor .for var in ${MOZ_EXPORT} @${ECHO_CMD} export ${var:Q} >> ${MOZCONFIG} .endfor .endif # .if !defined(NOMOZCONFIG) .if exists(${MOZSRC}/build/unix/mozilla-config.in) @${REINPLACE_CMD} -e 's/%{idldir}/%idldir%/g ; \ s|"%FULL_NSPR_CFLAGS%"|`nspr-config --cflags`|g ; \ s|"%FULL_NSPR_LIBS%"|`nspr-config --libs`|g' \ ${MOZSRC}/build/unix/mozilla-config.in .endif .if ${USE_MOZILLA:M-nspr} @${ECHO_MSG} "===> Applying NSPR patches" @for i in ${.CURDIR}/../../devel/nspr/files/patch-*; do \ ${PATCH} ${PATCH_ARGS} -d ${MOZSRC}/nsprpub < $$i; \ done .endif .if ${USE_MOZILLA:M-nss} @${ECHO_MSG} "===> Applying NSS patches" @for i in ${.CURDIR}/../../security/nss/files/patch-*; do \ ${PATCH} ${PATCH_ARGS} -d ${MOZSRC}/security/nss < $$i; \ done .endif @if [ -f ${WRKSRC}/config/baseconfig.mk ] ; then \ ${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ ${WRKSRC}/config/baseconfig.mk; \ fi @${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ ${MOZSRC}/config/baseconfig.mk @${REINPLACE_CMD} -e 's|/usr/local/netscape|${LOCALBASE}|g ; \ s|/usr/local/lib/netscape|${LOCALBASE}/lib|g' \ ${MOZSRC}/xpcom/io/SpecialSystemDirectory.cpp @${REINPLACE_CMD} -e 's|/etc|${PREFIX}&|g' \ ${MOZSRC}/xpcom/build/nsXPCOMPrivate.h @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ -e 's|mozilla/plugins|browser_plugins|g' \ -e 's|share/mozilla/extensions|lib/xpi|g' \ ${MOZSRC}/xpcom/io/nsAppFileLocationProvider.cpp \ ${MOZSRC}/toolkit/xre/nsXREDirProvider.cpp .if ${MOZILLA_VER:R:R} < 61 @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${MOZSRC}/extensions/spellcheck/hunspell/*/mozHunspell.cpp .endif # handles mozilla pis scripts. gecko-moz-pis-patch: .for moz in ${MOZ_PIS_SCRIPTS} @${MOZCONFIG_SED} < ${FILESDIR}/${moz} > ${WRKDIR}/${moz} .endfor pre-configure: gecko-pre-configure gecko-pre-configure: .if ${PORT_OPTIONS:MWAYLAND} # .if !exists() evaluates too early before gtk3 has a chance to be installed @if ! pkg-config --exists gtk+-wayland-3.0; then \ ${ECHO_MSG} "${PKGNAME}: Needs gtk3 with WAYLAND support enabled."; \ ${FALSE}; \ fi .endif pre-install: gecko-moz-pis-pre-install post-install-script: gecko-create-plist gecko-create-plist: # Create the plist ${RM} ${PLISTF} .for dir in ${MOZILLA_PLIST_DIRS} @cd ${STAGEDIR}${PREFIX}/${dir} && ${FIND} -H -s * ! -type d | \ ${SED} -e 's|^|${dir}/|' >> ${PLISTF} .endfor ${CAT} ${PLISTF} | ${SORT} >> ${TMPPLIST} gecko-moz-pis-pre-install: .if defined(MOZ_PIS_SCRIPTS) ${MKDIR} ${STAGEDIR}${PREFIX}/${MOZ_PIS_DIR} .for moz in ${MOZ_PIS_SCRIPTS} ${INSTALL_SCRIPT} ${WRKDIR}/${moz} ${STAGEDIR}${PREFIX}/${MOZ_PIS_DIR} .endfor .endif .endif .endif # HERE THERE BE TACOS -- adamw Index: head/www/firefox/Makefile =================================================================== --- head/www/firefox/Makefile (revision 501603) +++ head/www/firefox/Makefile (revision 501604) @@ -1,64 +1,64 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 66.0.5 +DISTVERSION= 67.0 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.19:devel/nspr \ - nss>=3.42:security/nss \ +BUILD_DEPENDS= nspr>=4.21:devel/nspr \ + nss>=3.43:security/nss \ icu>=59.1,1:devel/icu \ libevent>=2.1.8:devel/libevent \ harfbuzz>=2.3.1:print/harfbuzz \ graphite2>=1.3.13:graphics/graphite2 \ png>=1.6.35:graphics/png \ libvorbis>=1.3.6,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ - sqlite3>=3.26:databases/sqlite3 \ + sqlite3>=3.27.2:databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ - yasm:devel/yasm \ + nasm:devel/nasm \ zip:archivers/zip USE_GECKO= gecko CONFLICTS_INSTALL= firefox-esr MOZ_PKGCONFIG_FILES= # empty USE_MOZILLA= -hunspell -vpx USES= tar:xz FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png FIREFOX_DESKTOP= ${MOZSRC}/taskcluster/docker/${MOZILLA}-snap/${MOZILLA}.desktop MOZ_OPTIONS= --enable-application=browser \ --enable-official-branding OPTIONS_EXCLUDE= WAYLAND .include "${.CURDIR}/../../www/firefox/Makefile.options" post-patch: @${REINPLACE_CMD} -e 's/%u/%U/' -e '/X-MultipleArgs/d' \ -e '/^Icon/s/=.*/=${FIREFOX_ICON:R}/' \ ${FIREFOX_DESKTOP} @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/browser/app/nsBrowserApp.cpp pre-configure: (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13) (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13) post-install: ${INSTALL_DATA} ${FIREFOX_DESKTOP} ${STAGEDIR}${PREFIX}/share/applications/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${LN} -sf ${FIREFOX_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${FIREFOX_ICON} .include Index: head/www/firefox/distinfo =================================================================== --- head/www/firefox/distinfo (revision 501603) +++ head/www/firefox/distinfo (revision 501604) @@ -1,3 +1,3 @@ -TIMESTAMP = 1557261981 -SHA256 (firefox-66.0.5.source.tar.xz) = a2aeb4e036d1365a2d2550e24ba8b4dde061281300f2b11a204cc1e9eb1792b5 -SIZE (firefox-66.0.5.source.tar.xz) = 282561836 +TIMESTAMP = 1557788939 +SHA256 (firefox-67.0.source.tar.xz) = 020e2340b7173dbc4cfb8ffb11d4a32dcc69fe535f8a0f410e702548f698c8f9 +SIZE (firefox-67.0.source.tar.xz) = 284541660 Index: head/www/firefox/files/patch-bug1530659 =================================================================== --- head/www/firefox/files/patch-bug1530659 (revision 501603) +++ head/www/firefox/files/patch-bug1530659 (nonexistent) @@ -1,31 +0,0 @@ -Always pass -Isilk/fixed to unbreak on aarch64 after bug 1522016 - -diff --git media/libopus/moz.build media/libopus/moz.build -index cc82c8e6a616..e83a70f94e0a 100644 ---- media/libopus/moz.build -+++ media/libopus/moz.build -@@ -63,6 +63,8 @@ LOCAL_INCLUDES += [ - 'celt', - 'include', - 'silk', -+ 'silk/fixed', -+ 'silk/float', - 'src', - ] - -@@ -76,15 +78,9 @@ UNIFIED_SOURCES += opus_sources - SOURCES += opus_nonunified_sources - - if CONFIG['MOZ_SAMPLE_TYPE_FLOAT32']: -- LOCAL_INCLUDES += [ -- 'silk/float', -- ] - UNIFIED_SOURCES += silk_sources_float - UNIFIED_SOURCES += opus_sources_float - else: -- LOCAL_INCLUDES += [ -- 'silk/fixed', -- ] - UNIFIED_SOURCES += silk_sources_fixed - - if CONFIG['CPU_ARCH'] in ('x86', 'x86_64'): Property changes on: head/www/firefox/files/patch-bug1530659 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1532024 =================================================================== --- head/www/firefox/files/patch-bug1532024 (revision 501603) +++ head/www/firefox/files/patch-bug1532024 (nonexistent) @@ -1,106 +0,0 @@ -commit 554777b1d130 -Author: sotaro -Date: Wed Mar 6 08:17:51 2019 +0000 - - Bug 1532024 - Handle a case that GetRemoteRenderer() returned nullptr r=stransky - - Differential Revision: https://phabricator.services.mozilla.com/D21831 - - --HG-- - extra : moz-landing-system : lando ---- - widget/gtk/nsWindow.cpp | 27 ++++++++++++++++++--------- - widget/gtk/nsWindow.h | 3 +++ - 2 files changed, 21 insertions(+), 9 deletions(-) - -diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp -index 96faeea1cf87..46956412f341 100644 ---- widget/gtk/nsWindow.cpp -+++ widget/gtk/nsWindow.cpp -@@ -399,6 +399,10 @@ nsWindow::nsWindow() { - mXDepth = 0; - #endif /* MOZ_X11 */ - -+#ifdef MOZ_WAYLAND -+ mNeedsUpdatingEGLSurface = false; -+#endif -+ - if (!gGlobalsInitialized) { - gGlobalsInitialized = true; - -@@ -1872,12 +1876,14 @@ static bool ExtractExposeRegion(LayoutDeviceIntRegion &aRegion, cairo_t *cr) { - void nsWindow::WaylandEGLSurfaceForceRedraw() { - MOZ_RELEASE_ASSERT(NS_IsMainThread()); - -- if (mIsDestroyed) { -+ if (mIsDestroyed || !mNeedsUpdatingEGLSurface) { - return; - } - -- if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) { -+ if (CompositorBridgeChild *remoteRenderer = GetRemoteRenderer()) { -+ MOZ_ASSERT(mCompositorWidgetDelegate); - if (mCompositorWidgetDelegate) { -+ mNeedsUpdatingEGLSurface = false; - mCompositorWidgetDelegate->RequestsUpdatingEGLSurface(); - } - remoteRenderer->SendForcePresent(); -@@ -3483,10 +3489,10 @@ nsresult nsWindow::Create(nsIWidget *aParent, nsNativeWidget aNativeParent, - #ifdef MOZ_WAYLAND - if (!mIsX11Display && ComputeShouldAccelerate()) { - RefPtr self(this); -- moz_container_set_initial_draw_callback(mContainer, -- [self]() -> void { -- self->WaylandEGLSurfaceForceRedraw(); -- }); -+ moz_container_set_initial_draw_callback(mContainer, [self]() -> void { -+ self->mNeedsUpdatingEGLSurface = true; -+ self->WaylandEGLSurfaceForceRedraw(); -+ }); - } - #endif - -@@ -6058,6 +6064,9 @@ void nsWindow::SetCompositorWidgetDelegate(CompositorWidgetDelegate *delegate) { - MOZ_ASSERT(mCompositorWidgetDelegate, - "nsWindow::SetCompositorWidgetDelegate called with a " - "non-PlatformCompositorWidgetDelegate"); -+#ifdef MOZ_WAYLAND -+ WaylandEGLSurfaceForceRedraw(); -+#endif - } else { - mCompositorWidgetDelegate = nullptr; - } -@@ -6543,8 +6552,7 @@ nsWindow::CSDSupportLevel nsWindow::GetSystemCSDSupportLevel() { - // Check for Mutter regression on X.org (Bug 1530252). In that case we - // don't hide system titlebar by default as we can't draw transparent - // corners reliably. --bool nsWindow::TitlebarCanUseShapeMask() --{ -+bool nsWindow::TitlebarCanUseShapeMask() { - static int canUseShapeMask = -1; - if (canUseShapeMask != -1) { - return canUseShapeMask; -@@ -6574,7 +6582,8 @@ bool nsWindow::HideTitlebarByDefault() { - // When user defined widget.default-hidden-titlebar don't do any - // heuristics and just follow it. - if (Preferences::HasUserValue("widget.default-hidden-titlebar")) { -- hideTitlebar = Preferences::GetBool("widget.default-hidden-titlebar", false); -+ hideTitlebar = -+ Preferences::GetBool("widget.default-hidden-titlebar", false); - return hideTitlebar; - } - -diff --git widget/gtk/nsWindow.h widget/gtk/nsWindow.h -index 309905757431..ae2ebd350af4 100644 ---- widget/gtk/nsWindow.h -+++ widget/gtk/nsWindow.h -@@ -433,6 +433,9 @@ class nsWindow final : public nsBaseWidget { - bool mIsDragPopup; - // Can we access X? - bool mIsX11Display; -+#ifdef MOZ_WAYLAND -+ bool mNeedsUpdatingEGLSurface; -+#endif - - private: - void DestroyChildWindows(); Property changes on: head/www/firefox/files/patch-bug1532024 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1513605 =================================================================== --- head/www/firefox/files/patch-bug1513605 (revision 501603) +++ head/www/firefox/files/patch-bug1513605 (nonexistent) @@ -1,59 +0,0 @@ -commit 7b5468921fef -Author: Mike Hommey -Date: Tue Mar 12 14:14:43 2019 +0000 - - Bug 1513605 - Add PIC flags when running the clock_gettime(CLOCK_MONOTONIC) check. r=dmajor - - Differential Revision: https://phabricator.services.mozilla.com/D23091 - - --HG-- - extra : moz-landing-system : lando ---- - js/src/old-configure.in | 3 +++ - old-configure.in | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git js/src/old-configure.in js/src/old-configure.in -index 64654df2230b..ce4458098a6c 100644 ---- js/src/old-configure.in -+++ js/src/old-configure.in -@@ -1015,7 +1015,9 @@ Darwin) - ac_cv_clock_monotonic, - [for libs in "" -lrt; do - _SAVE_LIBS="$LIBS" -+ _SAVE_CFLAGS="$CFLAGS" - LIBS="$LIBS $libs" -+ CFLAGS="$CFLAGS $DSO_PIC_CFLAGS" - AC_TRY_LINK([#include ], - [ struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); ], -@@ -1024,6 +1026,7 @@ Darwin) - break, - ac_cv_clock_monotonic=no) - LIBS="$_SAVE_LIBS" -+ CFLAGS="$_SAVE_CFLAGS" - done]) - if test "$ac_cv_clock_monotonic" != "no"; then - HAVE_CLOCK_MONOTONIC=1 -diff --git old-configure.in old-configure.in -index d6a587d54b3b..1ed22938205e 100644 ---- old-configure.in -+++ old-configure.in -@@ -1303,7 +1303,9 @@ Darwin) - ac_cv_clock_monotonic, - [for libs in "" -lrt; do - _SAVE_LIBS="$LIBS" -+ _SAVE_CFLAGS="$CFLAGS" - LIBS="$LIBS $libs" -+ CFLAGS="$CFLAGS $DSO_PIC_CFLAGS" - AC_TRY_LINK([#include ], - [ struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); ], -@@ -1312,6 +1314,7 @@ Darwin) - break, - ac_cv_clock_monotonic=no) - LIBS="$_SAVE_LIBS" -+ CFLAGS="$_SAVE_CFLAGS" - done]) - if test "$ac_cv_clock_monotonic" != "no"; then - HAVE_CLOCK_MONOTONIC=1 Property changes on: head/www/firefox/files/patch-bug1513605 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1514156 =================================================================== --- head/www/firefox/files/patch-bug1514156 (revision 501603) +++ head/www/firefox/files/patch-bug1514156 (nonexistent) @@ -1,590 +0,0 @@ -commit 94f519f31849 -Author: sotaro -Date: Tue Feb 12 16:32:51 2019 +0900 - - Bug 1514156 - Add GLContextEGL::CreateEGLSurfaceForCompositorWidget() for Wayland r=jgilbert - - When GDK_BACKEND is wayland, widget is not fully mapped during creating CompositorSession. During CompositorSession creation, GLContextProviderEGL::CreateForCompositorWidget() creates GLContextEGL, but we could not create valid EGLSurface. We could create valid EGLSurface when widget is fully mapped. CreateEGLSurfaceForCompositorWidget() is used for creating valid EGLSurface after widget is fully mapped. - - Differential Revision: https://phabricator.services.mozilla.com/D18654 ---- - gfx/gl/GLContextEGL.h | 4 ++++ - gfx/gl/GLContextProviderEGL.cpp | 27 +++++++++++++++++++++++++++ - 2 files changed, 31 insertions(+) - -diff --git gfx/gl/GLContextEGL.h gfx/gl/GLContextEGL.h -index 95d5e0c02e23..adb37e59a9f7 100644 ---- gfx/gl/GLContextEGL.h -+++ gfx/gl/GLContextEGL.h -@@ -91,6 +91,10 @@ class GLContextEGL : public GLContext { - CreateContextFlags flags, const gfx::IntSize& size, - const SurfaceCaps& minCaps, nsACString* const out_FailureId); - -+#if defined(MOZ_WAYLAND) -+ static EGLSurface CreateEGLSurfaceForCompositorWidget( -+ widget::CompositorWidget* aCompositorWidget, bool aForceAccelerated); -+#endif - protected: - friend class GLContextProviderEGL; - friend class GLContextEGLFactory; -diff --git gfx/gl/GLContextProviderEGL.cpp gfx/gl/GLContextProviderEGL.cpp -index 774eb34a8e87..25aa779a7d64 100644 ---- gfx/gl/GLContextProviderEGL.cpp -+++ gfx/gl/GLContextProviderEGL.cpp -@@ -295,6 +295,33 @@ already_AddRefed GLContextEGLFactory::Create( - return gl.forget(); - } - -+#if defined(MOZ_WAYLAND) -+/* static */ EGLSurface GLContextEGL::CreateEGLSurfaceForCompositorWidget( -+ widget::CompositorWidget* aCompositorWidget, bool aForceAccelerated) { -+ nsCString discardFailureId; -+ if (!GLLibraryEGL::EnsureInitialized(false, &discardFailureId)) { -+ gfxCriticalNote << "Failed to load EGL library 6!"; -+ return EGL_NO_SURFACE; -+ } -+ -+ MOZ_ASSERT(aCompositorWidget); -+ EGLNativeWindowType window = GET_NATIVE_WINDOW_FROM_COMPOSITOR_WIDGET(aCompositorWidget); -+ if (!window) { -+ gfxCriticalNote << "window is null"; -+ return EGL_NO_SURFACE; -+ } -+ const bool useWebRender = aCompositorWidget->GetCompositorOptions().UseWebRender(); -+ -+ EGLConfig config; -+ if (!CreateConfig(&config, useWebRender)) { -+ gfxCriticalNote << "Failed to create EGLConfig!"; -+ return EGL_NO_SURFACE; -+ } -+ -+ return mozilla::gl::CreateSurfaceFromNativeWindow(window, config); -+} -+#endif -+ - GLContextEGL::GLContextEGL(CreateContextFlags flags, const SurfaceCaps& caps, - bool isOffscreen, EGLConfig config, - EGLSurface surface, EGLContext context) - -commit 0e2cb6d4e88d -Author: sotaro -Date: Tue Feb 12 16:33:31 2019 +0900 - - Bug 1514156 - Add RenderCompositorEGL for wayland r=nical - - When GDK_BACKEND is wayland, widget is not fully mapped during creating CompositorSession. Needs to create valid EGLSurface after widget is fully mapped. - - Differential Revision: https://phabricator.services.mozilla.com/D18940 ---- - gfx/webrender_bindings/RenderCompositor.cpp | 12 +++ - gfx/webrender_bindings/RenderCompositorEGL.cpp | 132 +++++++++++++++++++++++++ - gfx/webrender_bindings/RenderCompositorEGL.h | 54 ++++++++++ - gfx/webrender_bindings/moz.build | 10 ++ - widget/gtk/CompositorWidgetChild.cpp | 6 ++ - widget/gtk/CompositorWidgetChild.h | 4 +- - widget/gtk/CompositorWidgetParent.cpp | 8 ++ - widget/gtk/CompositorWidgetParent.h | 2 + - widget/gtk/GtkCompositorWidget.cpp | 12 +++ - widget/gtk/GtkCompositorWidget.h | 11 +++ - widget/gtk/PCompositorWidget.ipdl | 1 + - widget/gtk/mozcontainer.cpp | 11 +++ - widget/gtk/mozcontainer.h | 2 + - widget/gtk/nsWindow.cpp | 16 +++ - widget/gtk/nsWindow.h | 1 + - 15 files changed, 281 insertions(+), 1 deletion(-) - -diff --git gfx/webrender_bindings/RenderCompositor.cpp gfx/webrender_bindings/RenderCompositor.cpp -index 051482fbabbf..a58268096a89 100644 ---- gfx/webrender_bindings/RenderCompositor.cpp -+++ gfx/webrender_bindings/RenderCompositor.cpp -@@ -16,6 +16,10 @@ - # include "mozilla/webrender/RenderCompositorANGLE.h" - #endif - -+#ifdef MOZ_WAYLAND -+#include "mozilla/webrender/RenderCompositorEGL.h" -+#endif -+ - namespace mozilla { - namespace wr { - -@@ -26,6 +30,14 @@ namespace wr { - return RenderCompositorANGLE::Create(std::move(aWidget)); - } - #endif -+ -+#ifdef MOZ_WAYLAND -+ UniquePtr eglCompositor = RenderCompositorEGL::Create(aWidget); -+ if (eglCompositor) { -+ return eglCompositor; -+ } -+#endif -+ - return RenderCompositorOGL::Create(std::move(aWidget)); - } - -diff --git gfx/webrender_bindings/RenderCompositorEGL.cpp gfx/webrender_bindings/RenderCompositorEGL.cpp -new file mode 100644 -index 000000000000..16245f59afbd ---- /dev/null -+++ gfx/webrender_bindings/RenderCompositorEGL.cpp -@@ -0,0 +1,132 @@ -+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -+/* This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+#include "RenderCompositorEGL.h" -+ -+#include "GLContext.h" -+#include "GLContextEGL.h" -+#include "GLContextProvider.h" -+#include "GLLibraryEGL.h" -+#include "mozilla/widget/CompositorWidget.h" -+#include "mozilla/widget/GtkCompositorWidget.h" -+ -+#include -+#include -+ -+namespace mozilla { -+namespace wr { -+ -+/* static */ UniquePtr RenderCompositorEGL::Create( -+ RefPtr aWidget) { -+ -+ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { -+ return nullptr; -+ } -+ -+ RefPtr gl; -+ gl = CreateGLContext(aWidget); -+ if (!gl) { -+ return nullptr; -+ } -+ return MakeUnique(gl, aWidget); -+} -+ -+/* static */ already_AddRefed -+RenderCompositorEGL::CreateGLContext(RefPtr aWidget) { -+ nsCString discardFailureId; -+ -+ // Create GLContext with dummy EGLSurface. -+ RefPtr gl = -+ //XXX headless context did not work. -+ gl::GLContextProviderEGL::CreateForCompositorWidget(aWidget, true); -+ if (!gl) { -+ gfxCriticalNote << "Failed GL context creation for WebRender: " -+ << gfx::hexa(gl.get()); -+ return nullptr; -+ } -+ -+ if (!gl->MakeCurrent()) { -+ gfxCriticalNote << "Failed GL context creation for WebRender: " -+ << gfx::hexa(gl.get()); -+ return nullptr; -+ } -+ -+ return gl.forget(); -+} -+ -+/* static */ EGLSurface RenderCompositorEGL::CreateEGLSurface( -+ widget::CompositorWidget* aWidget) { -+ EGLSurface surface = EGL_NO_SURFACE; -+ surface = gl::GLContextEGL::CreateEGLSurfaceForCompositorWidget( -+ aWidget, /* aForceAccelerated */ true); -+ if (surface == EGL_NO_SURFACE) { -+ gfxCriticalNote << "Failed to create EGLSurface"; -+ } -+ return surface; -+} -+ -+RenderCompositorEGL::RenderCompositorEGL( -+ RefPtr aGL, RefPtr aWidget) -+ : RenderCompositor(std::move(aWidget)), mGL(aGL), mEGLSurface(EGL_NO_SURFACE) { -+ MOZ_ASSERT(mGL); -+} -+ -+RenderCompositorEGL::~RenderCompositorEGL() { -+ DestroyEGLSurface(); -+} -+ -+bool RenderCompositorEGL::BeginFrame() { -+ -+ if (mWidget->AsX11() && mWidget->AsX11()->WaylandRequestsUpdatingEGLSurface()) { -+ mEGLSurface = CreateEGLSurface(mWidget); -+ gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(mEGLSurface); -+ } -+ -+ if (!mGL->MakeCurrent()) { -+ gfxCriticalNote << "Failed to make render context current, can't draw."; -+ return false; -+ } -+ -+ return true; -+} -+ -+void RenderCompositorEGL::EndFrame() -+{ -+ if (mEGLSurface != EGL_NO_SURFACE) { -+ mGL->SwapBuffers(); -+ } -+} -+ -+void RenderCompositorEGL::WaitForGPU() {} -+ -+void RenderCompositorEGL::Pause() {} -+ -+bool RenderCompositorEGL::Resume() { -+ return true; -+} -+ -+bool RenderCompositorEGL::MakeCurrent() { -+ gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(mEGLSurface); -+ return gl()->MakeCurrent(); -+} -+ -+void RenderCompositorEGL::DestroyEGLSurface() { -+ auto* egl = gl::GLLibraryEGL::Get(); -+ -+ // Release EGLSurface of back buffer before calling ResizeBuffers(). -+ if (mEGLSurface) { -+ gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(EGL_NO_SURFACE); -+ egl->fDestroySurface(egl->Display(), mEGLSurface); -+ mEGLSurface = nullptr; -+ } -+} -+ -+LayoutDeviceIntSize RenderCompositorEGL::GetBufferSize() { -+ return mWidget->GetClientSize(); -+} -+ -+} // namespace wr -+} // namespace mozilla -diff --git gfx/webrender_bindings/RenderCompositorEGL.h gfx/webrender_bindings/RenderCompositorEGL.h -new file mode 100644 -index 000000000000..f12e16d974af ---- /dev/null -+++ gfx/webrender_bindings/RenderCompositorEGL.h -@@ -0,0 +1,54 @@ -+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -+/* This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+#ifndef MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H -+#define MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H -+ -+#include "GLTypes.h" -+#include "mozilla/webrender/RenderCompositor.h" -+ -+namespace mozilla { -+ -+namespace wr { -+ -+class RenderCompositorEGL : public RenderCompositor { -+ public: -+ static UniquePtr Create( -+ RefPtr aWidget); -+ -+ RenderCompositorEGL(RefPtr aGL, -+ RefPtr aWidget); -+ virtual ~RenderCompositorEGL(); -+ -+ bool BeginFrame() override; -+ void EndFrame() override; -+ void WaitForGPU() override; -+ void Pause() override; -+ bool Resume() override; -+ -+ gl::GLContext* gl() const override { return mGL; } -+ -+ bool MakeCurrent() override; -+ -+ bool UseANGLE() const override { return false; } -+ -+ LayoutDeviceIntSize GetBufferSize() override; -+ -+ protected: -+ static already_AddRefed CreateGLContext( -+ RefPtr aWidget); -+ static EGLSurface CreateEGLSurface(widget::CompositorWidget* aWidget); -+ -+ void DestroyEGLSurface(); -+ -+ const RefPtr mGL; -+ EGLSurface mEGLSurface; -+}; -+ -+} // namespace wr -+} // namespace mozilla -+ -+#endif // MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H -diff --git gfx/webrender_bindings/moz.build gfx/webrender_bindings/moz.build -index 4acdfbb817d3..f632bc5d24d9 100644 ---- gfx/webrender_bindings/moz.build -+++ gfx/webrender_bindings/moz.build -@@ -67,6 +67,14 @@ if CONFIG['MOZ_ENABLE_D3D10_LAYER']: - 'RenderCompositorANGLE.cpp', - ] - -+if CONFIG['MOZ_WAYLAND']: -+ EXPORTS.mozilla.webrender += [ -+ 'RenderCompositorEGL.h', -+ ] -+ SOURCES += [ -+ 'RenderCompositorEGL.cpp', -+ ] -+ - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk3'): - CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] - CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] -@@ -75,5 +83,7 @@ include('/ipc/chromium/chromium-config.mozbuild') - - FINAL_LIBRARY = 'xul' - -+CXXFLAGS += CONFIG['TK_CFLAGS'] -+ - if CONFIG['CC_TYPE'] == 'clang-cl': - AllowCompilerWarnings() # workaround for bug 1090497 -diff --git widget/gtk/CompositorWidgetChild.cpp widget/gtk/CompositorWidgetChild.cpp -index b746fec0a283..07847a298707 100644 ---- widget/gtk/CompositorWidgetChild.cpp -+++ widget/gtk/CompositorWidgetChild.cpp -@@ -35,5 +35,11 @@ void CompositorWidgetChild::NotifyClientSizeChanged( - Unused << SendNotifyClientSizeChanged(aClientSize); - } - -+#ifdef MOZ_WAYLAND -+void CompositorWidgetChild::RequestsUpdatingEGLSurface() { -+ Unused << SendRequestsUpdatingEGLSurface(); -+} -+#endif -+ - } // namespace widget - } // namespace mozilla -diff --git widget/gtk/CompositorWidgetChild.h widget/gtk/CompositorWidgetChild.h -index fe3285eb6f22..0167dbb051c6 100644 ---- widget/gtk/CompositorWidgetChild.h -+++ widget/gtk/CompositorWidgetChild.h -@@ -24,7 +24,9 @@ class CompositorWidgetChild final : public PCompositorWidgetChild, - mozilla::ipc::IPCResult RecvUnobserveVsync() override; - - void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override; -- -+#ifdef MOZ_WAYLAND -+ void RequestsUpdatingEGLSurface() override; -+#endif - private: - RefPtr mVsyncDispatcher; - RefPtr mVsyncObserver; -diff --git widget/gtk/CompositorWidgetParent.cpp widget/gtk/CompositorWidgetParent.cpp -index ae49ec9174bc..b4031883d3a8 100644 ---- widget/gtk/CompositorWidgetParent.cpp -+++ widget/gtk/CompositorWidgetParent.cpp -@@ -40,5 +40,13 @@ mozilla::ipc::IPCResult CompositorWidgetParent::RecvNotifyClientSizeChanged( - return IPC_OK(); - } - -+mozilla::ipc::IPCResult CompositorWidgetParent::RecvRequestsUpdatingEGLSurface() -+{ -+#ifdef MOZ_WAYLAND -+ RequestsUpdatingEGLSurface(); -+#endif -+ return IPC_OK(); -+} -+ - } // namespace widget - } // namespace mozilla -diff --git widget/gtk/CompositorWidgetParent.h widget/gtk/CompositorWidgetParent.h -index 5d0ccfcf50f2..8ddd58a8964f 100644 ---- widget/gtk/CompositorWidgetParent.h -+++ widget/gtk/CompositorWidgetParent.h -@@ -27,6 +27,8 @@ class CompositorWidgetParent final : public PCompositorWidgetParent, - mozilla::ipc::IPCResult RecvNotifyClientSizeChanged( - const LayoutDeviceIntSize& aClientSize) override; - -+ mozilla::ipc::IPCResult RecvRequestsUpdatingEGLSurface() override; -+ - private: - RefPtr mVsyncObserver; - }; -diff --git widget/gtk/GtkCompositorWidget.cpp widget/gtk/GtkCompositorWidget.cpp -index bc21d6c4d05e..f787e8c23797 100644 ---- widget/gtk/GtkCompositorWidget.cpp -+++ widget/gtk/GtkCompositorWidget.cpp -@@ -85,6 +85,18 @@ void GtkCompositorWidget::NotifyClientSizeChanged( - mClientSize = aClientSize; - } - -+#ifdef MOZ_WAYLAND -+void GtkCompositorWidget::RequestsUpdatingEGLSurface() { -+ mWaylandRequestsUpdatingEGLSurface = true; -+} -+ -+bool GtkCompositorWidget::WaylandRequestsUpdatingEGLSurface() { -+ bool ret = mWaylandRequestsUpdatingEGLSurface; -+ mWaylandRequestsUpdatingEGLSurface = false; -+ return ret; -+} -+#endif -+ - LayoutDeviceIntSize GtkCompositorWidget::GetClientSize() { return mClientSize; } - - uintptr_t GtkCompositorWidget::GetWidgetKey() { -diff --git widget/gtk/GtkCompositorWidget.h widget/gtk/GtkCompositorWidget.h -index fd0c71426c18..75e156dffb02 100644 ---- widget/gtk/GtkCompositorWidget.h -+++ widget/gtk/GtkCompositorWidget.h -@@ -20,6 +20,10 @@ class PlatformCompositorWidgetDelegate : public CompositorWidgetDelegate { - virtual void NotifyClientSizeChanged( - const LayoutDeviceIntSize& aClientSize) = 0; - -+#ifdef MOZ_WAYLAND -+ virtual void RequestsUpdatingEGLSurface() = 0; -+#endif -+ - // CompositorWidgetDelegate Overrides - - PlatformCompositorWidgetDelegate* AsPlatformSpecificDelegate() override { -@@ -62,11 +66,18 @@ class GtkCompositorWidget : public CompositorWidget, - - void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override; - -+#ifdef MOZ_WAYLAND -+ void RequestsUpdatingEGLSurface() override; -+ bool WaylandRequestsUpdatingEGLSurface(); -+#endif - protected: - nsWindow* mWidget; - - private: - LayoutDeviceIntSize mClientSize; -+#ifdef MOZ_WAYLAND -+ bool mWaylandRequestsUpdatingEGLSurface = false; -+#endif - - Display* mXDisplay; - Window mXWindow; -diff --git widget/gtk/PCompositorWidget.ipdl widget/gtk/PCompositorWidget.ipdl -index 178fe78e4dc2..51390e400649 100644 ---- widget/gtk/PCompositorWidget.ipdl -+++ widget/gtk/PCompositorWidget.ipdl -@@ -19,6 +19,7 @@ parent: - async __delete__(); - - async NotifyClientSizeChanged(LayoutDeviceIntSize aClientSize); -+ async RequestsUpdatingEGLSurface(); - - child: - -diff --git widget/gtk/mozcontainer.cpp widget/gtk/mozcontainer.cpp -index 8be1f133d39f..8461e7b9d470 100644 ---- widget/gtk/mozcontainer.cpp -+++ widget/gtk/mozcontainer.cpp -@@ -159,6 +159,7 @@ void moz_container_init(MozContainer *container) { - // We can draw to x11 window any time. - container->ready_to_draw = GDK_IS_X11_DISPLAY(gdk_display_get_default()); - container->surface_needs_clear = true; -+ container->egl_surface_needs_update = false; - #endif - } - -@@ -176,6 +177,9 @@ static void frame_callback_handler(void *data, struct wl_callback *callback, - uint32_t time) { - MozContainer *container = MOZ_CONTAINER(data); - g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy); -+ if (!container->ready_to_draw) { -+ container->egl_surface_needs_update = true; -+ } - container->ready_to_draw = true; - } - -@@ -208,6 +212,7 @@ static void moz_container_unmap_wayland(MozContainer *container) { - g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy); - - container->surface_needs_clear = true; -+ container->egl_surface_needs_update = false; - container->ready_to_draw = false; - } - -@@ -555,6 +560,12 @@ gboolean moz_container_surface_needs_clear(MozContainer *container) { - container->surface_needs_clear = false; - return state; - } -+ -+gboolean moz_container_egl_surface_needs_update(MozContainer *container){ -+ gboolean state = container->egl_surface_needs_update; -+ container->egl_surface_needs_update = false; -+ return state; -+} - #endif - - void moz_container_force_default_visual(MozContainer *container) { -diff --git widget/gtk/mozcontainer.h widget/gtk/mozcontainer.h -index e9c218c1bc3e..1ed6f439805d 100644 ---- widget/gtk/mozcontainer.h -+++ widget/gtk/mozcontainer.h -@@ -77,6 +77,7 @@ struct _MozContainer { - struct wl_egl_window *eglwindow; - struct wl_callback *frame_callback_handler; - gboolean surface_needs_clear; -+ gboolean egl_surface_needs_update; - gboolean ready_to_draw; - #endif - gboolean force_default_visual; -@@ -100,6 +101,7 @@ gboolean moz_container_has_wl_egl_window(MozContainer *container); - gboolean moz_container_surface_needs_clear(MozContainer *container); - void moz_container_scale_changed(MozContainer *container, - GtkAllocation *aAllocation); -+gboolean moz_container_egl_surface_needs_update(MozContainer *container); - #endif - - #endif /* __MOZ_CONTAINER_H__ */ -diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp -index 50e6354ea374..ceabbf583a42 100644 ---- widget/gtk/nsWindow.cpp -+++ widget/gtk/nsWindow.cpp -@@ -1886,6 +1886,11 @@ gboolean nsWindow::OnExposeEvent(cairo_t *cr) { - region.ScaleRoundOut(scale, scale); - - if (GetLayerManager()->AsKnowsCompositor() && mCompositorSession) { -+#ifdef MOZ_WAYLAND -+ if(mCompositorWidgetDelegate && WaylandRequestsUpdatingEGLSurface()) { -+ mCompositorWidgetDelegate->RequestsUpdatingEGLSurface(); -+ } -+#endif - // We need to paint to the screen even if nothing changed, since if we - // don't have a compositing window manager, our pixels could be stale. - GetLayerManager()->SetNeedsComposite(true); -@@ -6599,6 +6604,17 @@ bool nsWindow::WaylandSurfaceNeedsClear() { - "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!"); - return false; - } -+ -+bool nsWindow::WaylandRequestsUpdatingEGLSurface() { -+ if (mContainer) { -+ return moz_container_egl_surface_needs_update(MOZ_CONTAINER(mContainer)); -+ } -+ -+ NS_WARNING( -+ "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!"); -+ return false; -+} -+ - #endif - - #ifdef MOZ_X11 -diff --git widget/gtk/nsWindow.h widget/gtk/nsWindow.h -index b528ebfdeccb..ea0be70d7eb2 100644 ---- widget/gtk/nsWindow.h -+++ widget/gtk/nsWindow.h -@@ -373,6 +373,7 @@ class nsWindow final : public nsBaseWidget { - wl_display* GetWaylandDisplay(); - wl_surface* GetWaylandSurface(); - bool WaylandSurfaceNeedsClear(); -+ bool WaylandRequestsUpdatingEGLSurface(); - #endif - virtual void GetCompositorWidgetInitData( - mozilla::widget::CompositorWidgetInitData* aInitData) override; Property changes on: head/www/firefox/files/patch-bug1514156 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1527804 =================================================================== --- head/www/firefox/files/patch-bug1527804 (revision 501603) +++ head/www/firefox/files/patch-bug1527804 (nonexistent) @@ -1,218 +0,0 @@ -commit 1579a88e491f -Author: sotaro -Date: Mon Feb 25 12:15:50 2019 +0000 - - Bug 1527804 - Trigger composite from frame_callback_handler() r=stransky - - Bug 1514156 expects that nsWindow::OnExposeEvent() is called after frame_callback_handler() called. But it did not happen during opening add-ons(gecko profiler). Then we need to trigger rendering directly from frame_callback_handler() call. - - Differential Revision: https://phabricator.services.mozilla.com/D20272 - - --HG-- - extra : moz-landing-system : lando ---- - widget/gtk/mozcontainer.cpp | 20 +++++++++---------- - widget/gtk/mozcontainer.h | 7 +++++-- - widget/gtk/nsWindow.cpp | 48 ++++++++++++++++++++++++++++++--------------- - widget/gtk/nsWindow.h | 4 +++- - 4 files changed, 50 insertions(+), 29 deletions(-) - -diff --git widget/gtk/mozcontainer.cpp widget/gtk/mozcontainer.cpp -index 77ac02e2a049..efe5f7ba86e3 100644 ---- widget/gtk/mozcontainer.cpp -+++ widget/gtk/mozcontainer.cpp -@@ -160,7 +160,7 @@ void moz_container_init(MozContainer *container) { - // We can draw to x11 window any time. - container->ready_to_draw = GDK_IS_X11_DISPLAY(gdk_display_get_default()); - container->surface_needs_clear = true; -- container->egl_surface_needs_update = false; -+ container->inital_draw_cb = nullptr; - #endif - } - -@@ -178,12 +178,18 @@ static void frame_callback_handler(void *data, struct wl_callback *callback, - uint32_t time) { - MozContainer *container = MOZ_CONTAINER(data); - g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy); -- if (!container->ready_to_draw) { -- container->egl_surface_needs_update = true; -+ if (!container->ready_to_draw && container->inital_draw_cb) { -+ container->inital_draw_cb(); - } - container->ready_to_draw = true; - } - -+void moz_container_set_initial_draw_callback( -+ MozContainer *container, -+ std::function inital_draw_cb) { -+ container->inital_draw_cb = inital_draw_cb; -+} -+ - static const struct wl_callback_listener frame_listener = { - frame_callback_handler}; - -@@ -214,8 +220,8 @@ static void moz_container_unmap_wayland(MozContainer *container) { - g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy); - - container->surface_needs_clear = true; -- container->egl_surface_needs_update = false; - container->ready_to_draw = false; -+ container->inital_draw_cb = nullptr; - } - - static gint moz_container_get_scale(MozContainer *container) { -@@ -560,12 +566,6 @@ gboolean moz_container_surface_needs_clear(MozContainer *container) { - container->surface_needs_clear = false; - return state; - } -- --gboolean moz_container_egl_surface_needs_update(MozContainer *container){ -- gboolean state = container->egl_surface_needs_update; -- container->egl_surface_needs_update = false; -- return state; --} - #endif - - void moz_container_force_default_visual(MozContainer *container) { -diff --git widget/gtk/mozcontainer.h widget/gtk/mozcontainer.h -index ae6d656646c8..51be814ef975 100644 ---- widget/gtk/mozcontainer.h -+++ widget/gtk/mozcontainer.h -@@ -9,6 +9,7 @@ - #define __MOZ_CONTAINER_H__ - - #include -+#include - - /* - * MozContainer -@@ -77,8 +78,8 @@ struct _MozContainer { - struct wl_egl_window *eglwindow; - struct wl_callback *frame_callback_handler; - gboolean surface_needs_clear; -- gboolean egl_surface_needs_update; - gboolean ready_to_draw; -+ std::function inital_draw_cb; - #endif - gboolean force_default_visual; - }; -@@ -101,7 +102,9 @@ gboolean moz_container_has_wl_egl_window(MozContainer *container); - gboolean moz_container_surface_needs_clear(MozContainer *container); - void moz_container_scale_changed(MozContainer *container, - GtkAllocation *aAllocation); --gboolean moz_container_egl_surface_needs_update(MozContainer *container); -+void moz_container_set_initial_draw_callback( -+ MozContainer *container, -+ std::function inital_draw_cb); - #endif - - #endif /* __MOZ_CONTAINER_H__ */ -diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp -index acb957d3fb55..54b121ec5514 100644 ---- widget/gtk/nsWindow.cpp -+++ widget/gtk/nsWindow.cpp -@@ -675,6 +675,12 @@ void nsWindow::Destroy() { - gFocusWindow = nullptr; - } - -+#ifdef MOZ_WAYLAND -+ if (mContainer) { -+ moz_container_set_initial_draw_callback(mContainer, nullptr); -+ } -+#endif -+ - GtkWidget *owningWidget = GetMozContainerWidget(); - if (mShell) { - gtk_widget_destroy(mShell); -@@ -1860,6 +1866,23 @@ static bool ExtractExposeRegion(LayoutDeviceIntRegion &aRegion, cairo_t *cr) { - return true; - } - -+#ifdef MOZ_WAYLAND -+void nsWindow::WaylandEGLSurfaceForceRedraw() { -+ MOZ_RELEASE_ASSERT(NS_IsMainThread()); -+ -+ if (mIsDestroyed) { -+ return; -+ } -+ -+ if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) { -+ if (mCompositorWidgetDelegate) { -+ mCompositorWidgetDelegate->RequestsUpdatingEGLSurface(); -+ } -+ remoteRenderer->SendForcePresent(); -+ } -+} -+#endif -+ - gboolean nsWindow::OnExposeEvent(cairo_t *cr) { - // Send any pending resize events so that layout can update. - // May run event loop. -@@ -1888,11 +1911,6 @@ gboolean nsWindow::OnExposeEvent(cairo_t *cr) { - region.ScaleRoundOut(scale, scale); - - if (GetLayerManager()->AsKnowsCompositor() && mCompositorSession) { --#ifdef MOZ_WAYLAND -- if(mCompositorWidgetDelegate && WaylandRequestsUpdatingEGLSurface()) { -- mCompositorWidgetDelegate->RequestsUpdatingEGLSurface(); -- } --#endif - // We need to paint to the screen even if nothing changed, since if we - // don't have a compositing window manager, our pixels could be stale. - GetLayerManager()->SetNeedsComposite(true); -@@ -3454,6 +3472,15 @@ nsresult nsWindow::Create(nsIWidget *aParent, nsNativeWidget aNativeParent, - // Create a container to hold child windows and child GtkWidgets. - GtkWidget *container = moz_container_new(); - mContainer = MOZ_CONTAINER(container); -+#ifdef MOZ_WAYLAND -+ if (!mIsX11Display && ComputeShouldAccelerate()) { -+ RefPtr self(this); -+ moz_container_set_initial_draw_callback(mContainer, -+ [self]() -> void { -+ self->WaylandEGLSurfaceForceRedraw(); -+ }); -+ } -+#endif - - // "csd" style is set when widget is realized so we need to call - // it explicitly now. -@@ -6564,17 +6591,6 @@ bool nsWindow::WaylandSurfaceNeedsClear() { - "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!"); - return false; - } -- --bool nsWindow::WaylandRequestsUpdatingEGLSurface() { -- if (mContainer) { -- return moz_container_egl_surface_needs_update(MOZ_CONTAINER(mContainer)); -- } -- -- NS_WARNING( -- "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!"); -- return false; --} -- - #endif - - #ifdef MOZ_X11 -diff --git widget/gtk/nsWindow.h widget/gtk/nsWindow.h -index 5d119b4911e1..dbced693be1c 100644 ---- widget/gtk/nsWindow.h -+++ widget/gtk/nsWindow.h -@@ -245,6 +245,9 @@ class nsWindow final : public nsBaseWidget { - - void DispatchContextMenuEventFromMouseEvent(uint16_t domButton, - GdkEventButton* aEvent); -+#ifdef MOZ_WAYLAND -+ void WaylandEGLSurfaceForceRedraw(); -+#endif - - public: - void ThemeChanged(void); -@@ -342,7 +345,6 @@ class nsWindow final : public nsBaseWidget { - wl_display* GetWaylandDisplay(); - wl_surface* GetWaylandSurface(); - bool WaylandSurfaceNeedsClear(); -- bool WaylandRequestsUpdatingEGLSurface(); - #endif - virtual void GetCompositorWidgetInitData( - mozilla::widget::CompositorWidgetInitData* aInitData) override; Property changes on: head/www/firefox/files/patch-bug1527804 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1527556 =================================================================== --- head/www/firefox/files/patch-bug1527556 (revision 501603) +++ head/www/firefox/files/patch-bug1527556 (nonexistent) @@ -1,31 +0,0 @@ -commit ba954951557e -Author: sotaro -Date: Mon Feb 18 09:15:30 2019 +0000 - - Bug 1527556 - Change MAX_DISPLAY_CONNECTIONS to 3 r=stransky - - nsWaylandDisplay needs to be allocated for each calling thread(main thread, compositor thread and render thread) - - Differential Revision: https://phabricator.services.mozilla.com/D20118 - - --HG-- - extra : moz-landing-system : lando ---- - widget/gtk/nsWaylandDisplay.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git widget/gtk/nsWaylandDisplay.cpp widget/gtk/nsWaylandDisplay.cpp -index 4c2804be2831..ac01e1f50347 100644 ---- widget/gtk/nsWaylandDisplay.cpp -+++ widget/gtk/nsWaylandDisplay.cpp -@@ -14,7 +14,9 @@ - namespace mozilla { - namespace widget { - --#define MAX_DISPLAY_CONNECTIONS 2 -+// nsWaylandDisplay needs to be created for each calling thread(main thread, -+// compositor thread and render thread) -+#define MAX_DISPLAY_CONNECTIONS 3 - - static nsWaylandDisplay *gWaylandDisplays[MAX_DISPLAY_CONNECTIONS]; - static StaticMutex gWaylandDisplaysMutex; Property changes on: head/www/firefox/files/patch-bug1527556 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1536126 =================================================================== --- head/www/firefox/files/patch-bug1536126 (nonexistent) +++ head/www/firefox/files/patch-bug1536126 (revision 501604) @@ -0,0 +1,15 @@ +Disable RDD on Tier3 platforms due to lack of sandboxing and perf degradation. + +diff --git modules/libpref/init/StaticPrefList.h modules/libpref/init/StaticPrefList.h +index 7df0b518b267..3b309be1bfce 100644 +--- modules/libpref/init/StaticPrefList.h ++++ modules/libpref/init/StaticPrefList.h +@@ -1595,7 +1595,7 @@ VARCACHE_PREF( + # define PREF_VALUE true + #elif defined(XP_MACOSX) + # define PREF_VALUE true +-#elif defined(XP_UNIX) ++#elif defined(XP_LINUX) && !defined(ANDROID) + # define PREF_VALUE true + #else + # define PREF_VALUE false Property changes on: head/www/firefox/files/patch-bug1536126 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property