Wed Apr 27 16:36:50 2016 UTC ()
Import firefox45-45.1.0 as www/firefox45.
Mozilla Firefox is a free, open-source and cross-platform web browser
for Windows, Linux, MacOS X and many other operating systems.
It is fast and easy to use, and offers many advantages over other web
browsers, such as tabbed browsing and the ability to block pop-up
windows.
Firefox also offers excellent bookmark and history management, and it
can be extended by developers using industry standards such as XML,
CSS, JavaScript, C++, etc. Many extensions are available.
This package tracks Firefox 45 ESR branch.
Changelog from www/firefox 45.0.2:
Fixed in Firefox ESR 45.1
2016-47 Write to invalid HashMap entry through JavaScript.watch()
2016-44 Buffer overflow in libstagefright with CENC offsets
2016-39 Miscellaneous memory safety hazards (rv:46.0 / rv:45.1 / rv:38.8)
(ryoon)
diff -r0 -r1.1 pkgsrc/www/firefox45/DESCR
diff -r0 -r1.1 pkgsrc/www/firefox45/Makefile
diff -r0 -r1.1 pkgsrc/www/firefox45/PLIST
diff -r0 -r1.1 pkgsrc/www/firefox45/distinfo
diff -r0 -r1.1 pkgsrc/www/firefox45/hacks.mk
diff -r0 -r1.1 pkgsrc/www/firefox45/mozilla-common.mk
diff -r0 -r1.1 pkgsrc/www/firefox45/options.mk
diff -r0 -r1.1 pkgsrc/www/firefox45/xpi.mk
diff -r0 -r1.1 pkgsrc/www/firefox45/files/desktop.in
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-aa
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ao
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-as
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-bf
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-browser_installer_package-manifest.in
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-build_autoconf_compiler-opts.m4
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-build_autoconf_nss.m4
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-build_gyp.mozbuild
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-build_pgo_profileserver.py
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_Makefile.in
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_baseconfig.mk
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_external_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_rules.mk
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_stl__wrappers_ios
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_stl__wrappers_ostream
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_system-headers
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-config_system__wrappers_unwind.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_base_DOMRequest.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_base_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_media_gstreamer_GStreamerAllocator.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_media_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_plugins_ipc_PluginModuleChild.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_plugins_ipc_PluginModuleChild.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_plugins_ipc_PluginProcessChild.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-dom_system_OSFileConstants.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-extensions_spellcheck_hunspell_glue_mozHunspell.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_cairo_libpixman_src_pixman-arm-neon-asm.S
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_gl_GLContextProviderGLX.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_graphite2_src_Bidi.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_skia_generate__mozbuild.py
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_skia_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_skia_skia_src_core_SkUtilsArm.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_skia_skia_src_opts_SkBitmapProcState__opts__arm.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_skia_skia_src_opts_memset.arm.S
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_thebes_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_ycbcr__row__arm.s
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_ycbcr_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-gfx_ycbcr_yuv__row__arm.S
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-image_decoders_nsJPEGDecoder.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-intl_hyphenation_glue_hnjalloc.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_atomicops.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_file__util__posix.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_message__loop.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_message__pump__libevent.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_platform__thread.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_platform__thread__posix.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_process__util.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_process__util__bsd.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_process__util__posix.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_scoped__nsautorelease__pool.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_sys__info__posix.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_base_time__posix.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_build_build__config.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_chromium_src_chrome_common_transport__dib.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_glue_GeckoChildProcessHost.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_glue_StringUtil.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-ipc_glue_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js__src__vm__SPSProfiler.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_ctypes_CTypes.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_frontend_ParseMaps.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_jit-LIR.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_jit_MIR.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_jit_arm_Architecture-arm.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_jsdate.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_jskwgen.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_jsmath.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_src_shell_jsoptparse.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_xpconnect_src_XPCConvert.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-js_xpconnect_src_xpcprivate.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libcubeb_src_cubeb.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libcubeb_src_cubeb__alsa.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libcubeb_src_cubeb__oss.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libcubeb_src_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libpng_pngpriv.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libsoundtouch_src_cpu__detect__x86.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libstagefright_frameworks_av_include_media_stagefright_foundation_AString.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libstagefright_system_core_liblog_fake__log__device.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libstagefright_system_core_liblog_logprint.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libtheora_lib_arm_armcpu.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libtheora_lib_info.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libtheora_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libtremor_Makefile.in
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libtremor_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libvorbis_Makefile.in
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libvorbis_lib_vorbis_info.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libvorbis_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_libyuv_include_libyuv_scale__row.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_mtransport_third__party_nICEr_src_util_mbslen.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_openmax__dl_dl_api_armCOMM__s.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_signaling_test_common.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_build_common.gypi
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-memory_build_mozjemalloc__compat.c
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-memory_mozalloc_mozalloc__abort.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-memory_volatile_VolatileBufferOSX.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-mfbt_Attributes.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-mfbt_Poison.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-modules_libjar_nsZipArchive.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-modules_libpref_init_all.js
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-mozglue_build_arm.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-mozglue_build_arm.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-netwerk_dns_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-pb
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-pc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-rc
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-storage_SQLiteMutex.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-toolkit_components_protobuf_src_google_protobuf_stubs_platform__macros.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-toolkit_library_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-toolkit_xre_glxtest.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-toolkit_xre_nsAppRunner.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-toolkit_xre_nsEmbedFunctions.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-webapprt_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_base_nscore.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_build_PoisonIOInterposer.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_components_Module.h
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_Makefile.in
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_moz.build
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp
diff -r0 -r1.1 pkgsrc/www/firefox45/patches/patch-xulrunner_installer_Makefile.in
Mozilla Firefox is a free, open-source and cross-platform web browser
for Windows, Linux, MacOS X and many other operating systems.
It is fast and easy to use, and offers many advantages over other web
browsers, such as tabbed browsing and the ability to block pop-up
windows.
Firefox also offers excellent bookmark and history management, and it
can be extended by developers using industry standards such as XML,
CSS, JavaScript, C++, etc. Many extensions are available.
This package tracks Firefox 45 ESR branch.
Changelog from www/firefox 45.0.2:
Fixed in Firefox ESR 45.1
2016-47 Write to invalid HashMap entry through JavaScript.watch()
2016-44 Buffer overflow in libstagefright with CENC offsets
2016-39 Miscellaneous memory safety hazards (rv:46.0 / rv:45.1 / rv:38.8)
# $NetBSD: Makefile,v 1.1 2016/04/27 16:36:50 ryoon Exp $
MOZILLA_PKG_NAME= firefox45
FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
MOZ_BRANCH= 45.1
MOZ_BRANCH_MINOR= .0esr
DISTNAME= firefox-${FIREFOX_VER}.source
PKGNAME= ${MOZILLA_PKG_NAME}-${MOZ_BRANCH}${MOZ_BRANCH_MINOR:S/b/beta/:S/esr//}
CATEGORIES= www
MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/}
EXTRACT_SUFX= .tar.xz
WRKSRC= ${WRKDIR}/${DISTNAME:S/.source//}
MAINTAINER= ryoon@NetBSD.org
HOMEPAGE= http://www.mozilla.com/en-US/firefox/
COMMENT= Web browser with support for extensions (version ${MOZ_BRANCH:C/\..*//})
LICENSE= mpl-1.1
MOZILLA_DIR= # empty
# Note: when updating remember to conditionalise about-background.png in PLIST
CONFIGURE_ARGS+= --enable-application=browser
# workround for link of libxul.so etc.
LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${MOZILLA_PKG_NAME}
LDFLAGS.SunOS+= -lm
ALL_ENV+= MOZILLA_PKG_NAME=${MOZILLA_PKG_NAME}
# Avoid ld "invalid section index" errors.
BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections
BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections
LDFLAGS.DragonFly= -lplc4 -lnspr4
LDFLAGS.FreeBSD= -lplc4 -lnspr4
LDFLAGS.Linux= -lnspr4
.include "mozilla-common.mk"
.include "options.mk"
CHECK_INTERPRETER_SKIP+=lib/firefox-sdk/sdk/bin/header.py
CHECK_INTERPRETER_SKIP+=lib/firefox-sdk/sdk/bin/typelib.py
CHECK_INTERPRETER_SKIP+=lib/firefox-sdk/sdk/bin/xpidl.py
CHECK_INTERPRETER_SKIP+=lib/firefox-sdk/sdk/bin/xpt.py
MOZILLA=${MOZILLA_PKG_NAME}
MOZILLA_ICON= ${WRKSRC}/${OBJDIR}/dist/firefox/browser/chrome/icons/default/default48.png
.if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
MOZILLA_NAME= Firefox
.else
MOZILLA_NAME= Browser
.endif
SUBST_CLASSES+= sys-dic
SUBST_STAGE.sys-dic= pre-configure
SUBST_MESSAGE.sys-dic= Reference to system hunspell dictionaries.
SUBST_FILES.sys-dic= extensions/spellcheck/hunspell/glue/mozHunspell.cpp
SUBST_VARS.sys-dic= PREFIX
pre-configure:
cd ${WRKSRC} && mkdir ${OBJDIR}
cd ${WRKSRC} && autoconf
cd ${WRKSRC}/js/src && autoconf
# XXX Makefile is broken? When libxul is provided from devel/xulrunner,
# XXX please remove this.
mkdir ${WRKSRC}/js/src/.deps
post-build:
${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \
-e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \
-e 's|@FIREFOX_ICON@|${MOZILLA}.png|g' \
< ${FILESDIR}/desktop.in \
> ${WRKDIR}/desktop
INSTALLATION_DIRS+= share/applications share/pixmaps
post-install:
${INSTALL_DATA} ${WRKDIR}/desktop \
${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop
${INSTALL_DATA} ${MOZILLA_ICON} \
${DESTDIR}${PREFIX}/share/pixmaps/${MOZILLA}.png
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../mk/bsd.pkg.mk"
@comment $NetBSD: PLIST,v 1.1 2016/04/27 16:36:50 ryoon Exp $
bin/firefox45
lib/firefox45/application.ini
lib/firefox45/browser/blocklist.xml
lib/firefox45/browser/chrome.manifest
${PLIST.nobranding}lib/firefox45/browser/chrome/browser/content/branding/about-background.png
lib/firefox45/browser/chrome/browser/content/branding/about-logo.png
lib/firefox45/browser/chrome/browser/content/branding/about-logo@2x.png
lib/firefox45/browser/chrome/browser/content/branding/about-wordmark.svg
lib/firefox45/browser/chrome/browser/content/branding/about.png
lib/firefox45/browser/chrome/browser/content/branding/aboutDialog.css
lib/firefox45/browser/chrome/browser/content/branding/icon128.png
lib/firefox45/browser/chrome/browser/content/branding/icon16.png
lib/firefox45/browser/chrome/browser/content/branding/icon32.png
lib/firefox45/browser/chrome/browser/content/branding/icon48.png
lib/firefox45/browser/chrome/browser/content/branding/icon64.png
lib/firefox45/browser/chrome/browser/content/branding/identity-icons-brand.svg
lib/firefox45/browser/chrome/browser/content/branding/silhouette-40.svg
lib/firefox45/browser/chrome/browser/content/browser/aboutDialog-appUpdater.js
lib/firefox45/browser/chrome/browser/content/browser/aboutDialog.css
lib/firefox45/browser/chrome/browser/content/browser/aboutDialog.js
lib/firefox45/browser/chrome/browser/content/browser/aboutDialog.xul
lib/firefox45/browser/chrome/browser/content/browser/aboutNetError.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutPrivateBrowsing.css
lib/firefox45/browser/chrome/browser/content/browser/aboutPrivateBrowsing.js
lib/firefox45/browser/chrome/browser/content/browser/aboutPrivateBrowsing.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutProviderDirectory.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutRobots-icon.png
lib/firefox45/browser/chrome/browser/content/browser/aboutRobots-widget-left.png
lib/firefox45/browser/chrome/browser/content/browser/aboutRobots.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutSessionRestore.js
lib/firefox45/browser/chrome/browser/content/browser/aboutSessionRestore.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutSocialError.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutTabCrashed.css
lib/firefox45/browser/chrome/browser/content/browser/aboutTabCrashed.js
lib/firefox45/browser/chrome/browser/content/browser/aboutTabCrashed.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutTabGroupsMigration.js
lib/firefox45/browser/chrome/browser/content/browser/aboutTabGroupsMigration.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutWelcomeBack.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/aboutaccounts.css
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/aboutaccounts.js
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/aboutaccounts.xhtml
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/images/fox.png
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/images/graphic_sync_intro.png
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/images/graphic_sync_intro@2x.png
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/main.css
lib/firefox45/browser/chrome/browser/content/browser/aboutaccounts/normalize.css
lib/firefox45/browser/chrome/browser/content/browser/abouthealthreport/abouthealth.css
lib/firefox45/browser/chrome/browser/content/browser/abouthealthreport/abouthealth.js
lib/firefox45/browser/chrome/browser/content/browser/abouthealthreport/abouthealth.xhtml
lib/firefox45/browser/chrome/browser/content/browser/abouthome/aboutHome.css
lib/firefox45/browser/chrome/browser/content/browser/abouthome/aboutHome.js
lib/firefox45/browser/chrome/browser/content/browser/abouthome/aboutHome.xhtml
lib/firefox45/browser/chrome/browser/content/browser/abouthome/addons.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/addons@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/bookmarks.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/bookmarks@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/downloads.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/downloads@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/history.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/history@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/mozilla.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/mozilla@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/restore-large.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/restore-large@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/restore.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/restore@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/settings.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/settings@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/snippet1.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/snippet1@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/snippet2.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/snippet2@2x.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/sync.png
lib/firefox45/browser/chrome/browser/content/browser/abouthome/sync@2x.png
lib/firefox45/browser/chrome/browser/content/browser/baseMenuOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/blockedSite.xhtml
lib/firefox45/browser/chrome/browser/content/browser/bookmarks/bookmarksPanel.js
lib/firefox45/browser/chrome/browser/content/browser/bookmarks/bookmarksPanel.xul
lib/firefox45/browser/chrome/browser/content/browser/bookmarks/sidebarUtils.js
lib/firefox45/browser/chrome/browser/content/browser/browser-addons.js
lib/firefox45/browser/chrome/browser/content/browser/browser-ctrlTab.js
lib/firefox45/browser/chrome/browser/content/browser/browser-customization.js
lib/firefox45/browser/chrome/browser/content/browser/browser-data-submission-info-bar.js
lib/firefox45/browser/chrome/browser/content/browser/browser-devedition.js
lib/firefox45/browser/chrome/browser/content/browser/browser-eme.js
lib/firefox45/browser/chrome/browser/content/browser/browser-feeds.js
lib/firefox45/browser/chrome/browser/content/browser/browser-fullScreen.js
lib/firefox45/browser/chrome/browser/content/browser/browser-fullZoom.js
lib/firefox45/browser/chrome/browser/content/browser/browser-fxaccounts.js
lib/firefox45/browser/chrome/browser/content/browser/browser-gestureSupport.js
lib/firefox45/browser/chrome/browser/content/browser/browser-places.js
lib/firefox45/browser/chrome/browser/content/browser/browser-plugins.js
lib/firefox45/browser/chrome/browser/content/browser/browser-safebrowsing.js
lib/firefox45/browser/chrome/browser/content/browser/browser-sidebar.js
lib/firefox45/browser/chrome/browser/content/browser/browser-social.js
lib/firefox45/browser/chrome/browser/content/browser/browser-syncui.js
lib/firefox45/browser/chrome/browser/content/browser/browser-tabPreviews.xml
lib/firefox45/browser/chrome/browser/content/browser/browser-tabsintitlebar.js
lib/firefox45/browser/chrome/browser/content/browser/browser-thumbnails.js
lib/firefox45/browser/chrome/browser/content/browser/browser-trackingprotection.js
lib/firefox45/browser/chrome/browser/content/browser/browser.css
lib/firefox45/browser/chrome/browser/content/browser/browser.js
lib/firefox45/browser/chrome/browser/content/browser/browser.xul
lib/firefox45/browser/chrome/browser/content/browser/certerror/aboutCertError.css
lib/firefox45/browser/chrome/browser/content/browser/certerror/aboutCertError.xhtml
lib/firefox45/browser/chrome/browser/content/browser/chatWindow.xul
lib/firefox45/browser/chrome/browser/content/browser/content-UITour.js
lib/firefox45/browser/chrome/browser/content/browser/content-sessionStore.js
lib/firefox45/browser/chrome/browser/content/browser/content.js
lib/firefox45/browser/chrome/browser/content/browser/contentSearchUI.css
lib/firefox45/browser/chrome/browser/content/browser/contentSearchUI.js
lib/firefox45/browser/chrome/browser/content/browser/customizableui/aboutCustomizing.xul
lib/firefox45/browser/chrome/browser/content/browser/customizableui/panelUI.css
lib/firefox45/browser/chrome/browser/content/browser/customizableui/panelUI.js
lib/firefox45/browser/chrome/browser/content/browser/customizableui/panelUI.xml
lib/firefox45/browser/chrome/browser/content/browser/customizableui/toolbar.xml
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/1.footer.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/1.header.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/1.icon.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/1.preview.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/2.footer.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/2.header.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/2.icon.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/2.preview.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/3.footer.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/3.header.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/3.icon.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/3.preview.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/4.footer.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/4.header.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/4.icon.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/4.preview.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/5.footer.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/5.header.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/5.icon.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/5.preview.jpg
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/devedition.header.png
lib/firefox45/browser/chrome/browser/content/browser/defaultthemes/devedition.icon.png
lib/firefox45/browser/chrome/browser/content/browser/downloads/allDownloadsViewOverlay.css
lib/firefox45/browser/chrome/browser/content/browser/downloads/allDownloadsViewOverlay.js
lib/firefox45/browser/chrome/browser/content/browser/downloads/allDownloadsViewOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/downloads/contentAreaDownloadsView.css
lib/firefox45/browser/chrome/browser/content/browser/downloads/contentAreaDownloadsView.js
lib/firefox45/browser/chrome/browser/content/browser/downloads/contentAreaDownloadsView.xul
lib/firefox45/browser/chrome/browser/content/browser/downloads/download.css
lib/firefox45/browser/chrome/browser/content/browser/downloads/download.xml
lib/firefox45/browser/chrome/browser/content/browser/downloads/downloads.css
lib/firefox45/browser/chrome/browser/content/browser/downloads/downloads.js
lib/firefox45/browser/chrome/browser/content/browser/downloads/downloadsOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/downloads/indicator.js
lib/firefox45/browser/chrome/browser/content/browser/downloads/indicatorOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/ext-bookmarks.js
lib/firefox45/browser/chrome/browser/content/browser/ext-browserAction.js
lib/firefox45/browser/chrome/browser/content/browser/ext-contextMenus.js
lib/firefox45/browser/chrome/browser/content/browser/ext-pageAction.js
lib/firefox45/browser/chrome/browser/content/browser/ext-tabs.js
lib/firefox45/browser/chrome/browser/content/browser/ext-utils.js
lib/firefox45/browser/chrome/browser/content/browser/ext-windows.js
lib/firefox45/browser/chrome/browser/content/browser/extension.svg
lib/firefox45/browser/chrome/browser/content/browser/feeds/subscribe.js
lib/firefox45/browser/chrome/browser/content/browser/feeds/subscribe.xhtml
lib/firefox45/browser/chrome/browser/content/browser/gcli_sec_bad.svg
lib/firefox45/browser/chrome/browser/content/browser/gcli_sec_good.svg
lib/firefox45/browser/chrome/browser/content/browser/gcli_sec_moderate.svg
lib/firefox45/browser/chrome/browser/content/browser/hiddenWindow.xul
lib/firefox45/browser/chrome/browser/content/browser/history/history-panel.xul
lib/firefox45/browser/chrome/browser/content/browser/license.html
lib/firefox45/browser/chrome/browser/content/browser/microsoft-translator-attribution.png
lib/firefox45/browser/chrome/browser/content/browser/migration/migration.js
lib/firefox45/browser/chrome/browser/content/browser/migration/migration.xul
lib/firefox45/browser/chrome/browser/content/browser/newtab/newTab.css
lib/firefox45/browser/chrome/browser/content/browser/newtab/newTab.inadjacent.json
lib/firefox45/browser/chrome/browser/content/browser/newtab/newTab.js
lib/firefox45/browser/chrome/browser/content/browser/newtab/newTab.xhtml
lib/firefox45/browser/chrome/browser/content/browser/nsContextMenu.js
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/feeds.js
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/feeds.xml
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/pageInfo.css
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/pageInfo.js
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/pageInfo.xml
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/pageInfo.xul
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/permissions.js
lib/firefox45/browser/chrome/browser/content/browser/pageinfo/security.js
lib/firefox45/browser/chrome/browser/content/browser/places/bookmarkProperties.js
lib/firefox45/browser/chrome/browser/content/browser/places/bookmarkProperties.xul
lib/firefox45/browser/chrome/browser/content/browser/places/bookmarkProperties2.xul
lib/firefox45/browser/chrome/browser/content/browser/places/browserPlacesViews.js
lib/firefox45/browser/chrome/browser/content/browser/places/controller.js
lib/firefox45/browser/chrome/browser/content/browser/places/downloadsViewOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/places/editBookmarkOverlay.js
lib/firefox45/browser/chrome/browser/content/browser/places/editBookmarkOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/places/history-panel.js
lib/firefox45/browser/chrome/browser/content/browser/places/menu.xml
lib/firefox45/browser/chrome/browser/content/browser/places/moveBookmarks.js
lib/firefox45/browser/chrome/browser/content/browser/places/moveBookmarks.xul
lib/firefox45/browser/chrome/browser/content/browser/places/organizer.css
lib/firefox45/browser/chrome/browser/content/browser/places/places.css
lib/firefox45/browser/chrome/browser/content/browser/places/places.js
lib/firefox45/browser/chrome/browser/content/browser/places/places.xul
lib/firefox45/browser/chrome/browser/content/browser/places/placesOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/places/tree.xml
lib/firefox45/browser/chrome/browser/content/browser/places/treeView.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/main.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/css/firasans.css
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/css/normalize.css
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/css/saved.css
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/css/signup.css
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/fonts/FiraSans-Regular.woff
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketerror@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketerror@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketlogo@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketlogo@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketlogosolo@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketlogosolo@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketmenuitem16.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketmenuitem16@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketsignup_button@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketsignup_button@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketsignup_devices@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketsignup_devices@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketsignup_hero@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/pocketsignup_hero@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/signup_firefoxlogo@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/signup_firefoxlogo@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/signup_help@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/signup_help@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/tag_close@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/tag_close@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/tag_closeactive@1x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/img/tag_closeactive@2x.png
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/js/messages.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/js/saved.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/js/signup.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/js/tmpl.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/js/vendor/handlebars.runtime.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/js/vendor/jquery-2.1.1.min.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/js/vendor/jquery.tokeninput.min.js
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/saved.html
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/signup.html
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/tmpl/saved_premiumextras.handlebars
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/tmpl/saved_premiumshell.handlebars
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/tmpl/saved_shell.handlebars
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/tmpl/signup_shell.handlebars
lib/firefox45/browser/chrome/browser/content/browser/pocket/panels/tmpl/signupstoryboard_shell.handlebars
lib/firefox45/browser/chrome/browser/content/browser/pocket/pktApi.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/applicationManager.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/applicationManager.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/blocklists.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/blocklists.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/colors.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/connection.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/connection.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/cookies.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/cookies.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/fonts.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/fonts.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/handlers.css
lib/firefox45/browser/chrome/browser/content/browser/preferences/handlers.xml
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/advanced.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/applications.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/content.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/main.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/preferences.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/preferences.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/privacy.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/search.css
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/search.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/security.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/subdialogs.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/in-content/sync.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/languages.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/languages.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/permissions.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/permissions.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/sanitize.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/sanitize.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/selectBookmark.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/selectBookmark.xul
lib/firefox45/browser/chrome/browser/content/browser/preferences/translation.js
lib/firefox45/browser/chrome/browser/content/browser/preferences/translation.xul
lib/firefox45/browser/chrome/browser/content/browser/remote-newtab/newTab.css
lib/firefox45/browser/chrome/browser/content/browser/remote-newtab/newTab.js
lib/firefox45/browser/chrome/browser/content/browser/remote-newtab/newTab.xhtml
lib/firefox45/browser/chrome/browser/content/browser/report-phishing-overlay.xul
lib/firefox45/browser/chrome/browser/content/browser/safeMode.css
lib/firefox45/browser/chrome/browser/content/browser/safeMode.js
lib/firefox45/browser/chrome/browser/content/browser/safeMode.xul
lib/firefox45/browser/chrome/browser/content/browser/sanitize.js
lib/firefox45/browser/chrome/browser/content/browser/sanitize.xul
lib/firefox45/browser/chrome/browser/content/browser/sanitizeDialog.css
lib/firefox45/browser/chrome/browser/content/browser/sanitizeDialog.js
lib/firefox45/browser/chrome/browser/content/browser/schemas/tabs.json
lib/firefox45/browser/chrome/browser/content/browser/schemas/windows.json
lib/firefox45/browser/chrome/browser/content/browser/search/search.xml
lib/firefox45/browser/chrome/browser/content/browser/search/searchbarBindings.css
lib/firefox45/browser/chrome/browser/content/browser/setDesktopBackground.js
lib/firefox45/browser/chrome/browser/content/browser/setDesktopBackground.xul
lib/firefox45/browser/chrome/browser/content/browser/social-content.js
lib/firefox45/browser/chrome/browser/content/browser/socialchat.xml
lib/firefox45/browser/chrome/browser/content/browser/socialmarks.xml
lib/firefox45/browser/chrome/browser/content/browser/sync/aboutSyncTabs-bindings.xml
lib/firefox45/browser/chrome/browser/content/browser/sync/aboutSyncTabs.css
lib/firefox45/browser/chrome/browser/content/browser/sync/aboutSyncTabs.js
lib/firefox45/browser/chrome/browser/content/browser/sync/aboutSyncTabs.xul
lib/firefox45/browser/chrome/browser/content/browser/sync/addDevice.js
lib/firefox45/browser/chrome/browser/content/browser/sync/addDevice.xul
lib/firefox45/browser/chrome/browser/content/browser/sync/customize.css
lib/firefox45/browser/chrome/browser/content/browser/sync/customize.js
lib/firefox45/browser/chrome/browser/content/browser/sync/customize.xul
lib/firefox45/browser/chrome/browser/content/browser/sync/genericChange.js
lib/firefox45/browser/chrome/browser/content/browser/sync/genericChange.xul
lib/firefox45/browser/chrome/browser/content/browser/sync/key.xhtml
lib/firefox45/browser/chrome/browser/content/browser/sync/setup.js
lib/firefox45/browser/chrome/browser/content/browser/sync/setup.xul
lib/firefox45/browser/chrome/browser/content/browser/sync/utils.js
lib/firefox45/browser/chrome/browser/content/browser/tab-content.js
lib/firefox45/browser/chrome/browser/content/browser/tabbrowser.css
lib/firefox45/browser/chrome/browser/content/browser/tabbrowser.xml
lib/firefox45/browser/chrome/browser/content/browser/translation-infobar.xml
lib/firefox45/browser/chrome/browser/content/browser/urlbarBindings.xml
lib/firefox45/browser/chrome/browser/content/browser/utilityOverlay.js
lib/firefox45/browser/chrome/browser/content/browser/viewSourceOverlay.xul
lib/firefox45/browser/chrome/browser/content/browser/web-panels.js
lib/firefox45/browser/chrome/browser/content/browser/web-panels.xul
lib/firefox45/browser/chrome/browser/content/browser/webrtcIndicator.js
lib/firefox45/browser/chrome/browser/content/browser/webrtcIndicator.xul
lib/firefox45/browser/chrome/browser/skin/classic/browser/Geolocation-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/Geolocation-64.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/Info.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/Privacy-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/Security-broken.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/Toolbar-inverted.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/Toolbar-small.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/Toolbar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutCertError.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutNetError.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutProviderDirectory.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutSessionRestore-window-icon.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutSessionRestore.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutSocialError.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutSyncTabs.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutTabCrashed.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/aboutWelcomeBack.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/actionicon-tab.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-anchor.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-blocked.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-confirm.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-downloading.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-error.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-installed.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-restart.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/addons/addon-install-warning.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/badge-add-engine.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/badge-add-engine@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/browser-lightweightTheme.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/browser.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/cert-error.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/click-to-play-warning-stripes.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/content-contextmenu.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/arrow-subview-back.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/arrow-subview.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/conn-degraded.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/conn-not-secure.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/conn-secure.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/mcb-disabled.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/panel.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/permissions.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/tracking-protection-disabled.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/tracking-protection.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/warning-gray.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/controlcenter/warning-yellow.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/background-noise-toolbar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customize-illustration-rtl.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customize-illustration-rtl@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customize-illustration.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customize-illustration@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customizeFavicon.ico
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customizeMode-gridTexture.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/customizeMode-separatorVertical.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/info-icon-customizeTip.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/info-icon-customizeTip@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/menuPanel-customizeFinish.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/menuPanel-customizeFinish@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/panelUIOverlay.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/panelarrow-customizeTip.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/panelarrow-customizeTip@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/subView-arrow-back-inverted-rtl.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/subView-arrow-back-inverted-rtl@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/subView-arrow-back-inverted.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/subView-arrow-back-inverted@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/whimsy.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/customizableui/whimsy@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/devedition.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/devedition/urlbar-arrow.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/devedition/urlbar-arrow@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/devedition/urlbar-history-dropmarker.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/devtools/common.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/allDownloadsViewOverlay.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/buttons.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/contentAreaDownloadsView.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/download-glow-menuPanel.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/download-notification-finish.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/download-notification-start.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/download-summary.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/downloads/downloads.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/drm-icon.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/feeds/feedIcon.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/feeds/feedIcon16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/feeds/subscribe-ui.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/feeds/subscribe.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/fullscreen/insecure.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/fullscreen/secure.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/android.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/android@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/default-avatar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/default-avatar@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/logo.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/logo@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/sync-illustration.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/sync-illustration.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/fxa/sync-illustration@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/heartbeat-icon.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/heartbeat-star-lit.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/heartbeat-star-off.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/identity-icon.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/identity-mixed-active-blocked.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/identity-mixed-active-loaded.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/identity-mixed-passive-loaded.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/identity-not-secure.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/identity-secure.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/info.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-customize.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-customize@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-exit.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-exit@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-help.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-help@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-small.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel-small@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/menuPanel@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/monitor.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/monitor_16-10.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/newtab/close.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/newtab/controls.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/newtab/newTab.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/newtab/whimsycorn.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/notification-pluginAlert.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/notification-pluginAlert@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/notification-pluginBlocked.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/notification-pluginBlocked@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/notification-pluginNormal.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/notification-pluginNormal@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/page-livemarks.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/pageInfo.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/pageInfo.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/panic-panel/header-small.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/panic-panel/header-small@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/panic-panel/header.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/panic-panel/header@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/panic-panel/icons.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/panic-panel/icons@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/autocomplete-star.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/bookmarks-menu-arrow.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/bookmarks-notification-finish.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/bookmarksMenu.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/bookmarksToolbar-menuPanel.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/bookmarksToolbar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/calendar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/downloads.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/editBookmarkOverlay.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/livemark-item.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/organizer.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/organizer.xml
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/places.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/query.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/starred48.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/tag.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/toolbarDropMarker.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/unsortedBookmarks.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/places/unstarred48.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/pointerLock-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/pointerLock-64.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/Options-sync.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/Options.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/alwaysAsk.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/applications.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/in-content/dialog.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/in-content/favicon.ico
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/in-content/icons.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/in-content/preferences.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/in-content/search.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/mail.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/preferences.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/preferences/search.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing-mask.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing/attention.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing/attention@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing/check.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing/check@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing/mask.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing/shield-page.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/privatebrowsing/shield-page@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/reader-tour.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/reader-tour@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/readerMode.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/reload-stop-go.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/reload-stop-go@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sanitizeDialog.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-arrow-go.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-engine-placeholder.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-engine-placeholder@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-history-icon.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-indicator-badge-add.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-indicator-badge-add@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-indicator-magnifying-glass.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-indicator.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-indicator@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/search-pref.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/searchbar.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/session-restore.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/setDesktopBackground.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/slowStartup-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/social/chat-icons.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/social/gear_clicked.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/social/gear_default.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/social/services-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/social/services-64.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/social/share-button-active.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/social/share-button.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-128.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-32.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-bg.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-desktopIcon.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-horizontalbar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-horizontalbar@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-mobileIcon.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/sync-notification-24.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncCommon.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncProgress-horizontalbar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncProgress-horizontalbar@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncProgress-menuPanel.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncProgress-menuPanel@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncProgress-toolbar-inverted.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncProgress-toolbar.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncQuota.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/syncSetup.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/tab-crashed.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/alltabs-inverted.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/alltabs.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/connecting.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/crashed.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/loading.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/pendingpaint.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-active-middle.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-arrow-left-inverted.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-arrow-left.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-audio-small.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-audio.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-background-end.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-background-middle.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-background-start.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-overflow-indicator.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-selected-end.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-selected-start.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-stroke-end.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tab-stroke-start.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tabbrowser/tabDragIndicator.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/theme-switcher-icon.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/theme-switcher-icon@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/tracking-protection-16.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/tracking-protection-disabled-16.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/translating-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/translating-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/translation-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/translation-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/undoCloseTab.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/undoCloseTab@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/update-badge-failed.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/update-badge.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/urlbar-arrow.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/urlbar-arrow@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/usercontext/banking.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/usercontext/personal.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/usercontext/shopping.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/usercontext/work.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/warning.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/web-notifications-icon.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/web-notifications-tray.svg
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-camera-white-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-indicator.css
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-microphone-white-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-screen-white-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareDevice-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareDevice-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareDevice-64.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareDevice-64@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareMicrophone-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareMicrophone-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareMicrophone-64.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareMicrophone-64@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareScreen-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareScreen-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareScreen-64.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-shareScreen-64@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-sharingDevice-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-sharingDevice-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-sharingMicrophone-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-sharingMicrophone-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-sharingScreen-16.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/webRTC-sharingScreen-16@2x.png
lib/firefox45/browser/chrome/browser/skin/classic/browser/welcome-back.svg
lib/firefox45/browser/chrome/browser/skin/classic/communicator/communicator.css
lib/firefox45/browser/chrome/chrome.manifest
lib/firefox45/browser/chrome/devtools/content/aboutdebugging/aboutdebugging.css
lib/firefox45/browser/chrome/devtools/content/aboutdebugging/aboutdebugging.js
lib/firefox45/browser/chrome/devtools/content/aboutdebugging/aboutdebugging.xhtml
lib/firefox45/browser/chrome/devtools/content/animationinspector/animation-controller.js
lib/firefox45/browser/chrome/devtools/content/animationinspector/animation-inspector.xhtml
lib/firefox45/browser/chrome/devtools/content/animationinspector/animation-panel.js
lib/firefox45/browser/chrome/devtools/content/canvasdebugger/callslist.js
lib/firefox45/browser/chrome/devtools/content/canvasdebugger/canvasdebugger.js
lib/firefox45/browser/chrome/devtools/content/canvasdebugger/canvasdebugger.xul
lib/firefox45/browser/chrome/devtools/content/canvasdebugger/snapshotslist.js
lib/firefox45/browser/chrome/devtools/content/commandline/commandline.css
lib/firefox45/browser/chrome/devtools/content/commandline/commandlineoutput.xhtml
lib/firefox45/browser/chrome/devtools/content/commandline/commandlinetooltip.xhtml
lib/firefox45/browser/chrome/devtools/content/debugger/debugger-controller.js
lib/firefox45/browser/chrome/devtools/content/debugger/debugger-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/debugger.css
lib/firefox45/browser/chrome/devtools/content/debugger/debugger.xul
lib/firefox45/browser/chrome/devtools/content/debugger/utils.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/filter-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/global-search-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/options-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/stack-frames-classic-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/stack-frames-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/toolbar-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/variable-bubble-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/watch-expressions-view.js
lib/firefox45/browser/chrome/devtools/content/debugger/views/workers-view.js
lib/firefox45/browser/chrome/devtools/content/eyedropper/crosshairs.css
lib/firefox45/browser/chrome/devtools/content/eyedropper/eyedropper.xul
lib/firefox45/browser/chrome/devtools/content/eyedropper/nocursor.css
lib/firefox45/browser/chrome/devtools/content/fontinspector/font-inspector.css
lib/firefox45/browser/chrome/devtools/content/fontinspector/font-inspector.js
lib/firefox45/browser/chrome/devtools/content/fontinspector/font-inspector.xhtml
lib/firefox45/browser/chrome/devtools/content/framework/connect/connect.css
lib/firefox45/browser/chrome/devtools/content/framework/connect/connect.js
lib/firefox45/browser/chrome/devtools/content/framework/connect/connect.xhtml
lib/firefox45/browser/chrome/devtools/content/framework/dev-edition-promo/dev-edition-logo.png
lib/firefox45/browser/chrome/devtools/content/framework/dev-edition-promo/dev-edition-promo.css
lib/firefox45/browser/chrome/devtools/content/framework/dev-edition-promo/dev-edition-promo.xul
lib/firefox45/browser/chrome/devtools/content/framework/options-panel.css
lib/firefox45/browser/chrome/devtools/content/framework/toolbox-options.js
lib/firefox45/browser/chrome/devtools/content/framework/toolbox-options.xul
lib/firefox45/browser/chrome/devtools/content/framework/toolbox-process-window.js
lib/firefox45/browser/chrome/devtools/content/framework/toolbox-process-window.xul
lib/firefox45/browser/chrome/devtools/content/framework/toolbox-window.xul
lib/firefox45/browser/chrome/devtools/content/framework/toolbox.xul
lib/firefox45/browser/chrome/devtools/content/inspector/inspector.css
lib/firefox45/browser/chrome/devtools/content/inspector/inspector.xul
lib/firefox45/browser/chrome/devtools/content/layoutview/view.js
lib/firefox45/browser/chrome/devtools/content/layoutview/view.xhtml
lib/firefox45/browser/chrome/devtools/content/markupview/markup-view.css
lib/firefox45/browser/chrome/devtools/content/markupview/markup-view.xhtml
lib/firefox45/browser/chrome/devtools/content/memory/initializer.js
lib/firefox45/browser/chrome/devtools/content/memory/memory.xhtml
lib/firefox45/browser/chrome/devtools/content/netmonitor/netmonitor-controller.js
lib/firefox45/browser/chrome/devtools/content/netmonitor/netmonitor-view.js
lib/firefox45/browser/chrome/devtools/content/netmonitor/netmonitor.css
lib/firefox45/browser/chrome/devtools/content/netmonitor/netmonitor.xul
lib/firefox45/browser/chrome/devtools/content/performance/performance-controller.js
lib/firefox45/browser/chrome/devtools/content/performance/performance-view.js
lib/firefox45/browser/chrome/devtools/content/performance/performance.xul
lib/firefox45/browser/chrome/devtools/content/performance/views/details-abstract-subview.js
lib/firefox45/browser/chrome/devtools/content/performance/views/details-js-call-tree.js
lib/firefox45/browser/chrome/devtools/content/performance/views/details-js-flamegraph.js
lib/firefox45/browser/chrome/devtools/content/performance/views/details-memory-call-tree.js
lib/firefox45/browser/chrome/devtools/content/performance/views/details-memory-flamegraph.js
lib/firefox45/browser/chrome/devtools/content/performance/views/details-waterfall.js
lib/firefox45/browser/chrome/devtools/content/performance/views/details.js
lib/firefox45/browser/chrome/devtools/content/performance/views/optimizations-list.js
lib/firefox45/browser/chrome/devtools/content/performance/views/overview.js
lib/firefox45/browser/chrome/devtools/content/performance/views/recordings.js
lib/firefox45/browser/chrome/devtools/content/performance/views/toolbar.js
lib/firefox45/browser/chrome/devtools/content/projecteditor/chrome/content/projecteditor-loader.js
lib/firefox45/browser/chrome/devtools/content/projecteditor/chrome/content/projecteditor-loader.xul
lib/firefox45/browser/chrome/devtools/content/projecteditor/chrome/content/projecteditor-test.xul
lib/firefox45/browser/chrome/devtools/content/projecteditor/chrome/content/projecteditor.xul
lib/firefox45/browser/chrome/devtools/content/projecteditor/lib/helpers/readdir.js
lib/firefox45/browser/chrome/devtools/content/promisedebugger/promise-controller.js
lib/firefox45/browser/chrome/devtools/content/promisedebugger/promise-debugger.xhtml
lib/firefox45/browser/chrome/devtools/content/promisedebugger/promise-panel.js
lib/firefox45/browser/chrome/devtools/content/scratchpad/scratchpad.js
lib/firefox45/browser/chrome/devtools/content/scratchpad/scratchpad.xul
lib/firefox45/browser/chrome/devtools/content/shadereditor/shadereditor.js
lib/firefox45/browser/chrome/devtools/content/shadereditor/shadereditor.xul
lib/firefox45/browser/chrome/devtools/content/shared/frame-script-utils.js
lib/firefox45/browser/chrome/devtools/content/shared/splitview.css
lib/firefox45/browser/chrome/devtools/content/shared/theme-switching.js
lib/firefox45/browser/chrome/devtools/content/shared/vendor/d3.js
lib/firefox45/browser/chrome/devtools/content/shared/vendor/dagre-d3.js
lib/firefox45/browser/chrome/devtools/content/shared/widgets/VariablesView.xul
lib/firefox45/browser/chrome/devtools/content/shared/widgets/cubic-bezier-frame.xhtml
lib/firefox45/browser/chrome/devtools/content/shared/widgets/cubic-bezier.css
lib/firefox45/browser/chrome/devtools/content/shared/widgets/filter-frame.xhtml
lib/firefox45/browser/chrome/devtools/content/shared/widgets/filter-widget.css
lib/firefox45/browser/chrome/devtools/content/shared/widgets/graphs-frame.xhtml
lib/firefox45/browser/chrome/devtools/content/shared/widgets/mdn-docs-frame.xhtml
lib/firefox45/browser/chrome/devtools/content/shared/widgets/mdn-docs.css
lib/firefox45/browser/chrome/devtools/content/shared/widgets/spectrum-frame.xhtml
lib/firefox45/browser/chrome/devtools/content/shared/widgets/spectrum.css
lib/firefox45/browser/chrome/devtools/content/shared/widgets/widgets.css
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/codemirror.css
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/codemirror.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/comment/comment.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/dialog/dialog.css
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/dialog/dialog.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/edit/closebrackets.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/edit/matchbrackets.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/edit/trailingspace.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/fold/brace-fold.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/fold/comment-fold.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/fold/foldcode.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/fold/foldgutter.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/fold/xml-fold.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/hint/show-hint.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/keymap/emacs.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/keymap/sublime.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/keymap/vim.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/mode/clike.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/mode/css.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/mode/htmlmixed.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/mode/javascript.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/mode/xml.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/mozilla.css
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/search/search.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/search/searchcursor.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/selection/active-line.js
lib/firefox45/browser/chrome/devtools/content/sourceeditor/codemirror/tern/tern.js
lib/firefox45/browser/chrome/devtools/content/storage/storage.xul
lib/firefox45/browser/chrome/devtools/content/styleeditor/styleeditor.css
lib/firefox45/browser/chrome/devtools/content/styleeditor/styleeditor.xul
lib/firefox45/browser/chrome/devtools/content/styleinspector/computedview.xhtml
lib/firefox45/browser/chrome/devtools/content/styleinspector/cssruleview.xhtml
lib/firefox45/browser/chrome/devtools/content/styleinspector/ruleview.css
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/controller.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/includes.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/models.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/views/automation.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/views/context.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/views/inspector.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/views/properties.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/views/utils.js
lib/firefox45/browser/chrome/devtools/content/webaudioeditor/webaudioeditor.xul
lib/firefox45/browser/chrome/devtools/content/webconsole/webconsole.xul
lib/firefox45/browser/chrome/devtools/modules/devtools/acorn/acorn.js
lib/firefox45/browser/chrome/devtools/modules/devtools/acorn/acorn_loose.js
lib/firefox45/browser/chrome/devtools/modules/devtools/acorn/walk.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/aboutdebugging/components/addons.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/aboutdebugging/components/target-list.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/aboutdebugging/components/target.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/aboutdebugging/components/workers.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/animationinspector/components.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/animationinspector/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/canvasdebugger/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/actions/breakpoints.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/actions/event-listeners.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/actions/sources.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/constants.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/globalActions.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/queries.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/reducers/async-requests.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/reducers/breakpoints.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/reducers/event-listeners.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/reducers/index.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/reducers/sources.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/views/event-listeners-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/content/views/sources-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/debugger-commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/debugger/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/definitions.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/eyedropper/commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/eyedropper/eyedropper-child.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/eyedropper/eyedropper.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/ToolboxProcess.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/gDevTools.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/selection.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/sidebar.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/target.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/toolbox-highlighter-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/toolbox-hosts.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/toolbox-options.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/framework/toolbox.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/inspector/breadcrumbs.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/inspector/inspector-commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/inspector/inspector-panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/inspector/inspector-search.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/headers-panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/headers.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/json-panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/main-tabbed-area.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/array.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/caption.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/null.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/number.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/object-box.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/object-link.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/object.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/rep-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/rep.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/string.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/tabs.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/toolbar.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/tree-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/reps/undefined.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/search-box.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/components/text-panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/converter-child.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/converter-observer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/converter-sniffer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/dom-tree.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/general.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/headers-panel.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/json-panel.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/main.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/read-only-prop.svg
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/reps.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/search-box.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/search.svg
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/tabs.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/text-panel.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/toolbar.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/twisty-closed.svg
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/css/twisty-open.svg
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/json-viewer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/lib/require.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/main.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/jsonview/viewer-config.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/main.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/markupview/html-editor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/markupview/markup-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/allocations.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/breakdown.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/diffing.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/filter.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/inverted.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/io.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/refresh.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/actions/snapshot.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/app.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/components/frame.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/components/heap.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/components/list.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/components/snapshot-list-item.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/components/toolbar.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/components/tree-item.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/constants.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/initializer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/models.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers/allocations.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers/breakdown.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers/diffing.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers/errors.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers/filter.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers/inverted.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/reducers/snapshots.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/store.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/memory/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/netmonitor/har/har-automation.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/netmonitor/har/har-builder.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/netmonitor/har/har-collector.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/netmonitor/har/har-exporter.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/netmonitor/har/har-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/netmonitor/har/toolbox-overlay.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/netmonitor/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/events.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/legacy/actors.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/legacy/compatibility.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/legacy/front.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/legacy/recording.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/global.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/io.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/logic/frame-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/logic/jit.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/logic/marker-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/logic/telemetry.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/logic/tree-model.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/logic/waterfall-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/markers.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/widgets/graphs.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/widgets/marker-details.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/widgets/marker-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/widgets/markers-overview.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/widgets/tree-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/modules/widgets/waterfall-ticks.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/performance/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/editors.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/helpers/event.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/helpers/file-picker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/helpers/l10n.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/helpers/prompts.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/helpers/readdir.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/app-manager/app-project-editor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/app-manager/plugin.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/core.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/delete/delete.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/dirty/dirty.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/image-view/image-editor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/image-view/plugin.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/logging/logging.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/new/new.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/rename/rename.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/save/save.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/plugins/status-bar/plugin.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/project.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/projecteditor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/shells.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/stores/base.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/stores/local.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/stores/resource.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/projecteditor/lib/tree.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/responsivedesign/resize-commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/responsivedesign/responsivedesign-child.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/responsivedesign/responsivedesign.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/scratchpad/scratchpad-commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/scratchpad/scratchpad-manager.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/scratchpad/scratchpad-panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shadereditor/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/AppCacheUtils.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/Curl.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/DOMHelpers.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/DeveloperToolbar.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/Jsbeautify.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/SplitView.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/autocomplete-popup.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/browser-loader.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/components/tree.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/css-parsing-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/devices.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/doorhanger.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/frame-script-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/getjson.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/inplace-editor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/node-attribute-parser.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/observable-object.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/options-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/output-parser.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/poller.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/create-store.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/middleware/history.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/middleware/log.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/middleware/promise.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/middleware/task.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/middleware/thunk.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/middleware/wait-service.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/redux/non-react-subscriber.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/source-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/telemetry.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/theme-switching.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/theme.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/undo.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/vendor/react-dom.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/vendor/react-redux.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/vendor/react.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/vendor/redux.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/vendor/seamless-immutable.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/AbstractTreeItem.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/BarGraphWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/BreadcrumbsWidget.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/Chart.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/CubicBezierPresets.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/CubicBezierWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/FastListWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/FilterWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/FlameGraph.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/Graphs.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/GraphsWorker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/LineGraphWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/MdnDocsWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/MountainGraphWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/SideMenuWidget.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/SimpleListWidget.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/Spectrum.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/TableWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/Tooltip.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/TreeWidget.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/VariablesView.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/VariablesViewController.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/shared/widgets/ViewHelpers.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/autocomplete.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/css-autocompleter.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/debugger.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/editor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/browser.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/comment.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/condense.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/def.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/ecma5.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/infer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/signal.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/sourceeditor/tern/tern.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/storage/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/storage/ui.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleeditor/StyleEditorUI.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleeditor/StyleEditorUtil.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleeditor/StyleSheetEditor.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleeditor/styleeditor-commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleeditor/styleeditor-panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleeditor/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleinspector/computed-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleinspector/rule-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleinspector/style-inspector-menu.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleinspector/style-inspector-overlays.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleinspector/style-inspector.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/styleinspector/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/themes/variables.css
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/TiltWorkerCrafter.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/TiltWorkerPicker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/tilt-commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/tilt-gl.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/tilt-math.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/tilt-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/tilt-visualizer-style.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/tilt-visualizer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/tilt/tilt.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webaudioeditor/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webconsole/console-commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webconsole/console-output.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webconsole/hudservice.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webconsole/panel.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webconsole/webconsole.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/addons.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/app-manager.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/app-projects.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/app-validator.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/build.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/config-view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/project-list.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/runtime-list.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/runtimes.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/simulator-process.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/simulators.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/tab-store.js
lib/firefox45/browser/chrome/devtools/modules/devtools/client/webide/modules/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/actor-registry.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/addon.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/animation.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/call-watcher.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/canvas.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/child-process.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/childtab.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/chrome.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/common.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/csscoverage.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/device.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/director-manager.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/director-registry.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/eventlooplag.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/framerate.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/gcli.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/heap-snapshot-file.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters.css
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/auto-refresh.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/box-model.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/css-transform.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/geometry-editor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/measuring-tool.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/rect.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/rulers.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/selector.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/simple-outline.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/highlighters/utils/markup.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/inspector.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/layout.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/memory.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/memprof.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/monitor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/object.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/performance-entries.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/performance-recording.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/performance.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/preference.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/pretty-print-worker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/process.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/profiler.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/promises.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/root.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/script.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/settings.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/storage.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/string.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/styleeditor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/styles.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/stylesheets.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/timeline.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/ScriptStore.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/TabSources.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/actor-registry-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/audionodes.json
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/automation-timeline.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/make-debugger.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/map-uri-to-addon-id.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/stack.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/utils/walker-search.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/webapps.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/webaudio.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/webbrowser.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/webconsole.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/webgl.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/actors/worker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/child.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/content-globals.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/content-server.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/server/main.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/performance/framerate.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/performance/memory.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/performance/profiler.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/performance/recorder.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/performance/timeline.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/protocol.js
lib/firefox45/browser/chrome/devtools/modules/devtools/server/worker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/DevToolsUtils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/Loader.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/Parser.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/apps/Devices.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/apps/Simulator.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/apps/app-actor-front.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/async-storage.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/async-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/client/connection-manager.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/client/main.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/content-observer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/css-color.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/deprecated-sync-thenables.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/discovery/discovery.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/event-emitter.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/event-parsers.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/Templater.jsm
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/addon.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/appcache.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/calllog.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/cmd.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/cookie.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/csscoverage.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/folder.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/highlight.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/index.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/inject.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/jsb.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/listen.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/measure.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/media.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/pagemod.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/paintflashing.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/qsa.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/restart.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/rulers.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/screenshot.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/security.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/commands/tools.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/cli.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/clear.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/commands.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/connect.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/context.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/exec.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/global.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/help.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/intro.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/lang.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/mocks.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/pref.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/preflist.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/commands/test.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/connectors/connectors.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/converters/basic.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/converters/converters.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/converters/html.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/converters/terminal.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/fields/delegate.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/fields/fields.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/fields/selection.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/index.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/l10n.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/languages/command.html
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/languages/command.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/languages/javascript.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/languages/languages.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/mozui/completer.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/mozui/inputter.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/mozui/tooltip.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/settings.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/system.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/array.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/boolean.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/command.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/date.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/delegate.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/file.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/fileparser.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/javascript.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/node.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/number.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/resource.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/selection.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/setting.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/string.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/types.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/union.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/types/url.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/ui/focus.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/ui/history.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/ui/intro.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/ui/menu.css
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/ui/menu.html
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/ui/menu.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/ui/view.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/domtemplate.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/fileparser.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/filesystem.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/host.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/l10n.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/legacy.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/prism.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/spell.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/gcli/source/lib/gcli/util/util.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/heapsnapshot/CensusUtils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/heapsnapshot/DominatorTreeNode.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/heapsnapshot/HeapAnalysesClient.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/heapsnapshot/HeapAnalysesWorker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/heapsnapshot/HeapSnapshotFileUtils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/heapsnapshot/census-tree-node.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/indentation.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/jsbeautify/beautify.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/jsbeautify/lib/sanitytest.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/jsbeautify/lib/urlencode_unpacker.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/jsbeautify/src/beautify-css.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/jsbeautify/src/beautify-html.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/jsbeautify/src/beautify-js.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/jsbeautify/src/beautify-tests.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/layout/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/path.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/performance/process-communication.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/performance/recording-common.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/performance/recording-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/pretty-fast/pretty-fast.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/qrcode/decoder/index.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/qrcode/encoder/index.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/qrcode/index.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/security/auth.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/security/cert.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/security/prompt.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/security/socket.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/sourcemap/source-map.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/styleinspector/css-logic.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/system.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/touch/simulator-content.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/touch/simulator.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/transport/packets.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/transport/stream-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/transport/transport.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/client.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/js-property-provider.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/network-helper.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/network-monitor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/server-logger-monitor.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/server-logger.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/webconsole/worker-utils.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/worker/helper.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/worker/loader.js
lib/firefox45/browser/chrome/devtools/modules/devtools/shared/worker/worker.js
lib/firefox45/browser/chrome/devtools/skin/animationinspector.css
lib/firefox45/browser/chrome/devtools/skin/canvasdebugger.css
lib/firefox45/browser/chrome/devtools/skin/commandline.css
lib/firefox45/browser/chrome/devtools/skin/common.css
lib/firefox45/browser/chrome/devtools/skin/computedview.css
lib/firefox45/browser/chrome/devtools/skin/dark-theme.css
lib/firefox45/browser/chrome/devtools/skin/debugger.css
lib/firefox45/browser/chrome/devtools/skin/eyedropper.css
lib/firefox45/browser/chrome/devtools/skin/floating-scrollbars-light.css
lib/firefox45/browser/chrome/devtools/skin/floating-scrollbars.css
lib/firefox45/browser/chrome/devtools/skin/font-inspector.css
lib/firefox45/browser/chrome/devtools/skin/images/add.svg
lib/firefox45/browser/chrome/devtools/skin/images/alerticon-warning.png
lib/firefox45/browser/chrome/devtools/skin/images/alerticon-warning@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/animation-fast-track.svg
lib/firefox45/browser/chrome/devtools/skin/images/arrow-e.png
lib/firefox45/browser/chrome/devtools/skin/images/arrow-e@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/breadcrumbs-divider@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/breadcrumbs-scrollbutton.png
lib/firefox45/browser/chrome/devtools/skin/images/breadcrumbs-scrollbutton@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/close.png
lib/firefox45/browser/chrome/devtools/skin/images/close@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-console.png
lib/firefox45/browser/chrome/devtools/skin/images/command-console@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-eyedropper.png
lib/firefox45/browser/chrome/devtools/skin/images/command-eyedropper@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-frames.png
lib/firefox45/browser/chrome/devtools/skin/images/command-frames@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-measure.png
lib/firefox45/browser/chrome/devtools/skin/images/command-measure@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-paintflashing.png
lib/firefox45/browser/chrome/devtools/skin/images/command-paintflashing@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-pick.png
lib/firefox45/browser/chrome/devtools/skin/images/command-pick@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-responsivemode.png
lib/firefox45/browser/chrome/devtools/skin/images/command-responsivemode@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-rulers.png
lib/firefox45/browser/chrome/devtools/skin/images/command-rulers@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-scratchpad.png
lib/firefox45/browser/chrome/devtools/skin/images/command-scratchpad@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-screenshot.png
lib/firefox45/browser/chrome/devtools/skin/images/command-screenshot@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/command-tilt.png
lib/firefox45/browser/chrome/devtools/skin/images/command-tilt@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/commandline-icon.png
lib/firefox45/browser/chrome/devtools/skin/images/commandline-icon@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/controls.png
lib/firefox45/browser/chrome/devtools/skin/images/controls@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/cubic-bezier-swatch.png
lib/firefox45/browser/chrome/devtools/skin/images/cubic-bezier-swatch@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-blackbox.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-blackbox@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-collapse.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-collapse@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-expand.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-expand@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-pause.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-pause@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-play.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-play@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-prettyprint.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-prettyprint@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-step-in.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-step-in@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-step-out.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-step-out@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-step-over.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-step-over@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-toggleBreakpoints.png
lib/firefox45/browser/chrome/devtools/skin/images/debugger-toggleBreakpoints@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/debugging-addons.svg
lib/firefox45/browser/chrome/devtools/skin/images/debugging-devices.svg
lib/firefox45/browser/chrome/devtools/skin/images/debugging-workers.svg
lib/firefox45/browser/chrome/devtools/skin/images/dock-bottom-maximize@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/dock-bottom-minimize@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/dock-bottom@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/dock-side@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/dropmarker.svg
lib/firefox45/browser/chrome/devtools/skin/images/editor-breakpoint.png
lib/firefox45/browser/chrome/devtools/skin/images/editor-breakpoint@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/editor-debug-location.png
lib/firefox45/browser/chrome/devtools/skin/images/editor-debug-location@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/editor-error.png
lib/firefox45/browser/chrome/devtools/skin/images/fast-forward.png
lib/firefox45/browser/chrome/devtools/skin/images/fast-forward@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/filetypes/dir-close.svg
lib/firefox45/browser/chrome/devtools/skin/images/filetypes/dir-open.svg
lib/firefox45/browser/chrome/devtools/skin/images/filetypes/globe.svg
lib/firefox45/browser/chrome/devtools/skin/images/filetypes/store.svg
lib/firefox45/browser/chrome/devtools/skin/images/filter-swatch.svg
lib/firefox45/browser/chrome/devtools/skin/images/filters.svg
lib/firefox45/browser/chrome/devtools/skin/images/itemArrow-dark-ltr.svg
lib/firefox45/browser/chrome/devtools/skin/images/itemArrow-dark-rtl.svg
lib/firefox45/browser/chrome/devtools/skin/images/itemArrow-ltr.svg
lib/firefox45/browser/chrome/devtools/skin/images/itemArrow-rtl.svg
lib/firefox45/browser/chrome/devtools/skin/images/itemToggle.png
lib/firefox45/browser/chrome/devtools/skin/images/itemToggle@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/magnifying-glass-light.png
lib/firefox45/browser/chrome/devtools/skin/images/magnifying-glass-light@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/magnifying-glass.png
lib/firefox45/browser/chrome/devtools/skin/images/magnifying-glass@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/noise.png
lib/firefox45/browser/chrome/devtools/skin/images/performance-icons.svg
lib/firefox45/browser/chrome/devtools/skin/images/power.svg
lib/firefox45/browser/chrome/devtools/skin/images/profiler-stopwatch.svg
lib/firefox45/browser/chrome/devtools/skin/images/pseudo-class.svg
lib/firefox45/browser/chrome/devtools/skin/images/reload.svg
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsive-horizontal-resizer.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsive-horizontal-resizer@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsive-se-resizer.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsive-se-resizer@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsive-vertical-resizer.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsive-vertical-resizer@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsiveui-home.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsiveui-rotate.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsiveui-rotate@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsiveui-screenshot.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsiveui-screenshot@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsiveui-touch.png
lib/firefox45/browser/chrome/devtools/skin/images/responsivemode/responsiveui-touch@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/rewind.png
lib/firefox45/browser/chrome/devtools/skin/images/rewind@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/search-clear-dark.svg
lib/firefox45/browser/chrome/devtools/skin/images/search-clear-failed.svg
lib/firefox45/browser/chrome/devtools/skin/images/search-clear-light.svg
lib/firefox45/browser/chrome/devtools/skin/images/security-state-broken.svg
lib/firefox45/browser/chrome/devtools/skin/images/security-state-insecure.svg
lib/firefox45/browser/chrome/devtools/skin/images/security-state-local.svg
lib/firefox45/browser/chrome/devtools/skin/images/security-state-secure.svg
lib/firefox45/browser/chrome/devtools/skin/images/security-state-weak.svg
lib/firefox45/browser/chrome/devtools/skin/images/sort-arrows.svg
lib/firefox45/browser/chrome/devtools/skin/images/timeline-filter.svg
lib/firefox45/browser/chrome/devtools/skin/images/toggle-tools.png
lib/firefox45/browser/chrome/devtools/skin/images/toggle-tools@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/tool-canvas.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-debugger-paused.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-debugger.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-inspector.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-memory-active.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-memory.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-network.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-options.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-profiler-active.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-profiler.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-scratchpad.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-shadereditor.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-storage.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-styleeditor.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-webaudio.svg
lib/firefox45/browser/chrome/devtools/skin/images/tool-webconsole.svg
lib/firefox45/browser/chrome/devtools/skin/images/tracer-icon.png
lib/firefox45/browser/chrome/devtools/skin/images/tracer-icon@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/undock@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-delete.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-delete@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-edit.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-edit@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-lock.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-lock@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-open-inspector.png
lib/firefox45/browser/chrome/devtools/skin/images/vview-open-inspector@2x.png
lib/firefox45/browser/chrome/devtools/skin/images/webconsole.svg
lib/firefox45/browser/chrome/devtools/skin/inspector.css
lib/firefox45/browser/chrome/devtools/skin/layoutview.css
lib/firefox45/browser/chrome/devtools/skin/light-theme.css
lib/firefox45/browser/chrome/devtools/skin/markup-view.css
lib/firefox45/browser/chrome/devtools/skin/memory.css
lib/firefox45/browser/chrome/devtools/skin/netmonitor.css
lib/firefox45/browser/chrome/devtools/skin/performance.css
lib/firefox45/browser/chrome/devtools/skin/projecteditor/projecteditor.css
lib/firefox45/browser/chrome/devtools/skin/promisedebugger.css
lib/firefox45/browser/chrome/devtools/skin/ruleview.css
lib/firefox45/browser/chrome/devtools/skin/scratchpad.css
lib/firefox45/browser/chrome/devtools/skin/shadereditor.css
lib/firefox45/browser/chrome/devtools/skin/splitview.css
lib/firefox45/browser/chrome/devtools/skin/storage.css
lib/firefox45/browser/chrome/devtools/skin/styleeditor.css
lib/firefox45/browser/chrome/devtools/skin/toolbars.css
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-horizontal-dark.png
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-horizontal-dark@2x.png
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-horizontal-light.png
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-horizontal-light@2x.png
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-vertical-dark.png
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-vertical-dark@2x.png
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-vertical-light.png
lib/firefox45/browser/chrome/devtools/skin/tooltip/arrow-vertical-light@2x.png
lib/firefox45/browser/chrome/devtools/skin/variables.css
lib/firefox45/browser/chrome/devtools/skin/webaudioeditor.css
lib/firefox45/browser/chrome/devtools/skin/webconsole.css
lib/firefox45/browser/chrome/devtools/skin/widgets.css
lib/firefox45/browser/chrome/en-US/locale/branding/brand.dtd
lib/firefox45/browser/chrome/en-US/locale/branding/brand.properties
lib/firefox45/browser/chrome/en-US/locale/branding/browserconfig.properties
lib/firefox45/browser/chrome/en-US/locale/browser-region/region.properties
lib/firefox45/browser/chrome/en-US/locale/browser/aboutAccounts.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutCertError.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutDialog.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutHealthReport.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutHome.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutPrivateBrowsing.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutPrivateBrowsing.properties
lib/firefox45/browser/chrome/en-US/locale/browser/aboutRobots.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutSessionRestore.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutSyncTabs.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/aboutTabCrashed.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/accounts.properties
lib/firefox45/browser/chrome/en-US/locale/browser/appstrings.properties
lib/firefox45/browser/chrome/en-US/locale/browser/baseMenuOverlay.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/browser-pocket.properties
lib/firefox45/browser/chrome/en-US/locale/browser/browser.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/browser.properties
lib/firefox45/browser/chrome/en-US/locale/browser/customizableui/customizableWidgets.properties
lib/firefox45/browser/chrome/en-US/locale/browser/downloads/downloads.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/downloads/downloads.properties
lib/firefox45/browser/chrome/en-US/locale/browser/downloads/settingsChange.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/engineManager.properties
lib/firefox45/browser/chrome/en-US/locale/browser/feeds/subscribe.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/feeds/subscribe.properties
lib/firefox45/browser/chrome/en-US/locale/browser/lightweightThemes.properties
lib/firefox45/browser/chrome/en-US/locale/browser/loop/loop.properties
lib/firefox45/browser/chrome/en-US/locale/browser/migration/migration.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/migration/migration.properties
lib/firefox45/browser/chrome/en-US/locale/browser/netError.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/newTab.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/newTab.properties
lib/firefox45/browser/chrome/en-US/locale/browser/pageInfo.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/pageInfo.properties
lib/firefox45/browser/chrome/en-US/locale/browser/places/bookmarkProperties.properties
lib/firefox45/browser/chrome/en-US/locale/browser/places/editBookmarkOverlay.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/places/moveBookmarks.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/places/places.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/places/places.properties
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/advanced.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/applicationManager.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/applicationManager.properties
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/applications.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/blocklists.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/colors.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/connection.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/content.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/cookies.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/fonts.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/languages.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/main.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/permissions.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/preferences.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/preferences.properties
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/privacy.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/search.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/security.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/selectBookmark.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/sync.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/tabs.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/preferences/translation.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/quitDialog.properties
lib/firefox45/browser/chrome/en-US/locale/browser/safeMode.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/safebrowsing/phishing-afterload-warning-message.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/safebrowsing/report-phishing.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/sanitize.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/search.properties
lib/firefox45/browser/chrome/en-US/locale/browser/searchbar.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/amazondotcom.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/bing.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/ddg.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/eBay.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/google.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/list.txt
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/twitter.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/wikipedia.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/yahoo-en-CA.xml
lib/firefox45/browser/chrome/en-US/locale/browser/searchplugins/yahoo.xml
lib/firefox45/browser/chrome/en-US/locale/browser/setDesktopBackground.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/shellservice.properties
lib/firefox45/browser/chrome/en-US/locale/browser/sitePermissions.properties
lib/firefox45/browser/chrome/en-US/locale/browser/syncBrand.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/syncCustomize.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/syncGenericChange.properties
lib/firefox45/browser/chrome/en-US/locale/browser/syncKey.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/syncQuota.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/syncQuota.properties
lib/firefox45/browser/chrome/en-US/locale/browser/syncSetup.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/syncSetup.properties
lib/firefox45/browser/chrome/en-US/locale/browser/tabbrowser.properties
lib/firefox45/browser/chrome/en-US/locale/browser/taskbar.properties
lib/firefox45/browser/chrome/en-US/locale/browser/translation.dtd
lib/firefox45/browser/chrome/en-US/locale/browser/translation.properties
lib/firefox45/browser/chrome/en-US/locale/browser/webrtcIndicator.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/VariablesView.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/aboutdebugging.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/aboutdebugging.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/animationinspector.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/animationinspector.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/app-manager.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/appcacheutils.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/canvasdebugger.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/canvasdebugger.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/connection-screen.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/connection-screen.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/debugger.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/debugger.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/device.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/eyedropper.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/filterwidget.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/filterwidget.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/font-inspector.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/graphs.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/har.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/inspector.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/inspector.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/jsonview.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/layoutview.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/markers.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/memory.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/netmonitor.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/netmonitor.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/performance.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/performance.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/projecteditor.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/promisedebugger.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/promisedebugger.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/responsiveUI.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/scratchpad.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/scratchpad.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/shadereditor.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/shadereditor.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/shared.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/sourceeditor.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/sourceeditor.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/storage.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/styleeditor.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/styleeditor.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/styleinspector.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/tilt.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/toolbox.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/toolbox.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/webConsole.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/webaudioeditor.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/webaudioeditor.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/webconsole.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/webide.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/client/webide.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/shared/csscoverage.dtd
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/shared/csscoverage.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/shared/debugger.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/shared/gcli.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/shared/gclicommands.properties
lib/firefox45/browser/chrome/en-US/locale/en-US/devtools/shared/styleinspector.properties
lib/firefox45/browser/chrome/en-US/locale/pdfviewer/chrome.properties
lib/firefox45/browser/chrome/en-US/locale/pdfviewer/viewer.properties
lib/firefox45/browser/chrome/icons/default/default16.png
lib/firefox45/browser/chrome/icons/default/default32.png
lib/firefox45/browser/chrome/icons/default/default48.png
lib/firefox45/browser/chrome/pdfjs/content/PdfJs.jsm
lib/firefox45/browser/chrome/pdfjs/content/PdfJsTelemetry.jsm
lib/firefox45/browser/chrome/pdfjs/content/PdfStreamConverter.jsm
lib/firefox45/browser/chrome/pdfjs/content/PdfjsChromeUtils.jsm
lib/firefox45/browser/chrome/pdfjs/content/PdfjsContentUtils.jsm
lib/firefox45/browser/chrome/pdfjs/content/build/pdf.js
lib/firefox45/browser/chrome/pdfjs/content/build/pdf.worker.js
lib/firefox45/browser/chrome/pdfjs/content/network.js
lib/firefox45/browser/chrome/pdfjs/content/pdfjschildbootstrap.js
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78-RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78ms-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/78ms-RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/83pv-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/90ms-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/90ms-RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/90msp-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/90msp-RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/90pv-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/90pv-RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Add-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Add-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Add-RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Add-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-0.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-1.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-3.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-4.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-5.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-6.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-CNS1-UCS2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-GB1-0.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-GB1-1.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-GB1-2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-GB1-3.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-GB1-4.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-GB1-5.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-GB1-UCS2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-0.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-1.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-3.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-4.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-5.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-6.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Japan1-UCS2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Korea1-0.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Korea1-1.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Korea1-2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Adobe-Korea1-UCS2.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/B5pc-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/B5pc-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/CNS-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/CNS-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/CNS1-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/CNS1-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/CNS2-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/CNS2-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/ETHK-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/ETHK-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/ETen-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/ETen-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/ETenms-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/ETenms-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Ext-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Ext-RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Ext-RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Ext-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GB-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GB-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GB-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GB-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBK-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBK-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBK2K-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBK2K-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBKp-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBKp-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBT-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBT-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBT-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBT-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBTpc-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBTpc-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBpc-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/GBpc-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKdla-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKdla-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKdlb-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKdlb-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKgccs-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKgccs-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKm314-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKm314-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKm471-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKm471-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKscs-B5-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/HKscs-B5-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Hankaku.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Hiragana.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSC-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSC-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSC-Johab-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSC-Johab-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSCms-UHC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSCms-UHC-HW-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSCms-UHC-HW-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSCms-UHC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSCpc-EUC-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/KSCpc-EUC-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Katakana.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/LICENSE
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/NWP-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/NWP-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/RKSJ-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/RKSJ-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/Roman.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UCS2-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UCS2-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UTF16-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UTF16-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UTF32-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UTF32-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UTF8-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniCNS-UTF8-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UCS2-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UCS2-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UTF16-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UTF16-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UTF32-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UTF32-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UTF8-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniGB-UTF8-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UCS2-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UCS2-HW-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UCS2-HW-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UCS2-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UTF16-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UTF16-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UTF32-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UTF32-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UTF8-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS-UTF8-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS2004-UTF16-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS2004-UTF16-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS2004-UTF32-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS2004-UTF32-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS2004-UTF8-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJIS2004-UTF8-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJISPro-UCS2-HW-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJISPro-UCS2-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJISPro-UTF8-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJISX0213-UTF32-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJISX0213-UTF32-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJISX02132004-UTF32-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniJISX02132004-UTF32-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UCS2-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UCS2-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UTF16-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UTF16-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UTF32-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UTF32-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UTF8-H.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/UniKS-UTF8-V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/V.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/cmaps/WP-Symbol.bcmap
lib/firefox45/browser/chrome/pdfjs/content/web/debugger.js
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-check.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-comment.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-help.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-insert.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-key.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-newparagraph.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-noicon.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-note.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/annotation-paragraph.svg
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-next-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-next-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-next.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-next@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-previous-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-previous-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-previous.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/findbarButton-previous@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/grab.cur
lib/firefox45/browser/chrome/pdfjs/content/web/images/grabbing.cur
lib/firefox45/browser/chrome/pdfjs/content/web/images/loading-icon.gif
lib/firefox45/browser/chrome/pdfjs/content/web/images/loading-small.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/loading-small@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-documentProperties.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-documentProperties@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-firstPage.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-firstPage@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-handTool.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-handTool@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-lastPage.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-lastPage@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-rotateCcw.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-rotateCcw@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-rotateCw.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/secondaryToolbarButton-rotateCw@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/shadow.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/texture.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-bookmark.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-bookmark@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-download.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-download@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-menuArrows.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-menuArrows@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-openFile.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-openFile@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageDown-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageDown-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageDown.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageDown@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageUp-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageUp-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageUp.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-pageUp@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-presentationMode.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-presentationMode@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-print.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-print@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-search.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-search@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-secondaryToolbarToggle-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-secondaryToolbarToggle.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-secondaryToolbarToggle@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-sidebarToggle-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-sidebarToggle-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-sidebarToggle.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-sidebarToggle@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewAttachments.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewAttachments@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewOutline-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewOutline-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewOutline.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewOutline@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewThumbnail.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-viewThumbnail@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-zoomIn.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-zoomIn@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-zoomOut.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/toolbarButton-zoomOut@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/treeitem-collapsed-rtl.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/treeitem-collapsed-rtl@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/treeitem-collapsed.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/treeitem-collapsed@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/treeitem-expanded.png
lib/firefox45/browser/chrome/pdfjs/content/web/images/treeitem-expanded@2x.png
lib/firefox45/browser/chrome/pdfjs/content/web/l10n.js
lib/firefox45/browser/chrome/pdfjs/content/web/viewer.css
lib/firefox45/browser/chrome/pdfjs/content/web/viewer.html
lib/firefox45/browser/chrome/pdfjs/content/web/viewer.js
lib/firefox45/browser/chrome/webide/content/addons.js
lib/firefox45/browser/chrome/webide/content/addons.xhtml
lib/firefox45/browser/chrome/webide/content/details.js
lib/firefox45/browser/chrome/webide/content/details.xhtml
lib/firefox45/browser/chrome/webide/content/devicepreferences.js
lib/firefox45/browser/chrome/webide/content/devicepreferences.xhtml
lib/firefox45/browser/chrome/webide/content/devicesettings.js
lib/firefox45/browser/chrome/webide/content/devicesettings.xhtml
lib/firefox45/browser/chrome/webide/content/logs.js
lib/firefox45/browser/chrome/webide/content/logs.xhtml
lib/firefox45/browser/chrome/webide/content/monitor.js
lib/firefox45/browser/chrome/webide/content/monitor.xhtml
lib/firefox45/browser/chrome/webide/content/newapp.js
lib/firefox45/browser/chrome/webide/content/newapp.xul
lib/firefox45/browser/chrome/webide/content/permissionstable.js
lib/firefox45/browser/chrome/webide/content/permissionstable.xhtml
lib/firefox45/browser/chrome/webide/content/prefs.js
lib/firefox45/browser/chrome/webide/content/prefs.xhtml
lib/firefox45/browser/chrome/webide/content/project-listing.js
lib/firefox45/browser/chrome/webide/content/project-listing.xhtml
lib/firefox45/browser/chrome/webide/content/project-panel.js
lib/firefox45/browser/chrome/webide/content/runtime-listing.js
lib/firefox45/browser/chrome/webide/content/runtime-listing.xhtml
lib/firefox45/browser/chrome/webide/content/runtime-panel.js
lib/firefox45/browser/chrome/webide/content/runtimedetails.js
lib/firefox45/browser/chrome/webide/content/runtimedetails.xhtml
lib/firefox45/browser/chrome/webide/content/simulator.js
lib/firefox45/browser/chrome/webide/content/simulator.xhtml
lib/firefox45/browser/chrome/webide/content/webide.js
lib/firefox45/browser/chrome/webide/content/webide.xul
lib/firefox45/browser/chrome/webide/content/wifi-auth.js
lib/firefox45/browser/chrome/webide/content/wifi-auth.xhtml
lib/firefox45/browser/chrome/webide/skin/addons.css
lib/firefox45/browser/chrome/webide/skin/config-view.css
lib/firefox45/browser/chrome/webide/skin/deck.css
lib/firefox45/browser/chrome/webide/skin/default-app-icon.png
lib/firefox45/browser/chrome/webide/skin/details.css
lib/firefox45/browser/chrome/webide/skin/icons.png
lib/firefox45/browser/chrome/webide/skin/logs.css
lib/firefox45/browser/chrome/webide/skin/monitor.css
lib/firefox45/browser/chrome/webide/skin/newapp.css
lib/firefox45/browser/chrome/webide/skin/noise.png
lib/firefox45/browser/chrome/webide/skin/panel-listing.css
lib/firefox45/browser/chrome/webide/skin/permissionstable.css
lib/firefox45/browser/chrome/webide/skin/rocket.svg
lib/firefox45/browser/chrome/webide/skin/runtimedetails.css
lib/firefox45/browser/chrome/webide/skin/simulator.css
lib/firefox45/browser/chrome/webide/skin/throbber.svg
lib/firefox45/browser/chrome/webide/skin/webide.css
lib/firefox45/browser/chrome/webide/skin/wifi-auth.css
lib/firefox45/browser/components/ChromeProfileMigrator.js
lib/firefox45/browser/components/ExperimentsService.js
lib/firefox45/browser/components/FeedConverter.js
lib/firefox45/browser/components/FeedWriter.js
lib/firefox45/browser/components/FirefoxProfileMigrator.js
lib/firefox45/browser/components/ProfileMigrator.js
lib/firefox45/browser/components/SelfSupportService.js
lib/firefox45/browser/components/WebContentConverter.js
lib/firefox45/browser/components/components.manifest
lib/firefox45/browser/components/devtools-clhandler.js
lib/firefox45/browser/components/fuelApplication.js
lib/firefox45/browser/components/interfaces.xpt
lib/firefox45/browser/components/libbrowsercomps.so
lib/firefox45/browser/components/nsBrowserContentHandler.js
lib/firefox45/browser/components/nsBrowserGlue.js
lib/firefox45/browser/components/nsSessionStartup.js
lib/firefox45/browser/components/nsSessionStore.js
lib/firefox45/browser/components/nsSetDefaultBrowser.js
lib/firefox45/browser/components/webideCli.js
lib/firefox45/browser/defaults/permissions
lib/firefox45/browser/defaults/preferences/devtools.js
lib/firefox45/browser/defaults/preferences/firefox-branding.js
lib/firefox45/browser/defaults/preferences/firefox-l10n.js
lib/firefox45/browser/defaults/preferences/firefox.js
lib/firefox45/browser/defaults/preferences/webide-prefs.js
lib/firefox45/browser/defaults/profile/bookmarks.html
lib/firefox45/browser/defaults/profile/chrome/userChrome-example.css
lib/firefox45/browser/defaults/profile/chrome/userContent-example.css
lib/firefox45/browser/defaults/profile/localstore.rdf
lib/firefox45/browser/defaults/profile/mimeTypes.rdf
lib/firefox45/browser/defaults/profile/prefs.js
lib/firefox45/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome.manifest
lib/firefox45/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
lib/firefox45/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
lib/firefox45/browser/features/loop@mozilla.org/bootstrap.js
lib/firefox45/browser/features/loop@mozilla.org/chrome.manifest
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/locale-fallback/en-US/loop.properties
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/modules/LoopRooms.jsm
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/modules/LoopRoomsCache.jsm
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/modules/MozLoopAPI.jsm
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/modules/MozLoopPushHandler.jsm
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/modules/MozLoopService.jsm
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/modules/MozLoopWorker.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/conversation.html
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/css/panel.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/css/slideshow.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/conversation.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/conversationAppStore.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/feedbackViews.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/otconfig.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/panel.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/roomStore.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/roomViews.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/js/slideshow.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/panel.html
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/slideshow.html
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/vendor/l10n.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/vendor/simpleSlideshow.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/panels/vendor/simpleSlideshow.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/preferences/prefs.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/css/common.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/css/conversation.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/css/reset.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/02.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/02@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/animated-spinner.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/arrow-01.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio-call-avatar.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio-default-16x16@1.5x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio-default-16x16@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio-mute-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio-mute.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio-muted-darkgrey.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/audio.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/avatars.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/beta-ribbon.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/cam_audio-no.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/cam_audio.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/cam_audio_h.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/chatbubble-arrow-left.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/chatbubble-arrow-right.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/check.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/close-02.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/cursor.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/ellipsis-v.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/empty_search.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/exit.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/facemute-14x14.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/facemute-14x14@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/firefox-avatar.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/firefox-hello_logo.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/firefox-hello_tour-slide-01.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/firefox-hello_tour-slide-02.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/firefox-hello_tour-slide-03.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/firefox-hello_tour-slide-04.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/firefox-logo.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/glyph-email-16x16.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/glyph-facebook-16x16.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/glyph-help-16x16.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/glyph-help-no-circle-16x16.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/glyph-link-16x16.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/glyph-user-16x16.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/hangup-inverse-14x14.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/hangup-inverse-14x14@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/happy.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/hello-web-share.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/hello_logo.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/helloicon.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/icon_32.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/icon_64.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/icons-10x10.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/icons-14x14.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/icons-16x16.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/leave.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/media-group-left-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/media-group-right-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/media-group.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/movistar.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/movistar@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/mute-inverse-14x14.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/mute-inverse-14x14@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/pause-12x12.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/paused-hello.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/play-12x12.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/sad.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/sad_hello_icon_64x64.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/settings-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/settings.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/sharing-active.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/sharing-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/sharing-pending.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/sharing.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/spinner.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/spinner.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/spinner@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/stop-12x12.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/telefonica-logo.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/video-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/video-mute-hover.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/video-mute.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/video-muted-darkgrey.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/video.svg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/vivo.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/img/vivo@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/actions.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/activeRoomStore.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/crypto.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/dispatcher.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/linkifiedTextView.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/loopapi-client.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/mixins.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/models.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/otSdkDriver.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/remoteCursorStore.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/store.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/textChatStore.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/textChatView.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/urlRegExps.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/utils.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/validate.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/js/views.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/connected.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/connecting.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/failure.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/message.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/room-joined-in.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/room-joined.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/room-left.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/sounds/terminated.ogg
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/backbone.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/classnames.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/lodash.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/react.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/css/ot.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/access-denied-chrome.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/access-denied-copy-firefox.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/access-denied-firefox.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/access-predenied-chrome.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/access-prompt-chrome.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/audioonly-publisher.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/audioonly-subscriber.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/buttons.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/loader.gif
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/mic-off.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/mic-on.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/speaker-off.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/images/rtc/speaker-on.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk-content/js/dynamic_config.min.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/content/shared/vendor/sdk.js
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/linux/menuPanel.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/linux/menuPanel@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/linux/toolbar-inverted.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/linux/toolbar-inverted@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/linux/toolbar.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/linux/toolbar@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/menuPanel-yosemite.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/menuPanel-yosemite@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/menuPanel.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/menuPanel@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/platform.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/toolbar-inverted.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/toolbar-inverted@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/toolbar-yosemite.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/toolbar-yosemite@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/toolbar.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/osx/toolbar@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/shared/loop.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/menuPanel-aero.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/menuPanel-aero@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/menuPanel.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/menuPanel@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/platform.css
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-XP.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-XP@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-aero.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-aero@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-inverted.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-inverted@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-lunaSilver.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-lunaSilver@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-win8.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar-win8@2x.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar.png
lib/firefox45/browser/features/loop@mozilla.org/chrome/skin/windows/toolbar@2x.png
lib/firefox45/browser/features/loop@mozilla.org/en-US/locale/en-US/loop.properties
lib/firefox45/browser/features/loop@mozilla.org/install.rdf
lib/firefox45/browser/icons/mozicon128.png
lib/firefox45/browser/modules/AboutHome.jsm
lib/firefox45/browser/modules/AboutNewTab.jsm
lib/firefox45/browser/modules/BrowserUITelemetry.jsm
lib/firefox45/browser/modules/CastingApps.jsm
lib/firefox45/browser/modules/Chat.jsm
lib/firefox45/browser/modules/ContentClick.jsm
lib/firefox45/browser/modules/ContentCrashHandlers.jsm
lib/firefox45/browser/modules/ContentLinkHandler.jsm
lib/firefox45/browser/modules/ContentObservers.jsm
lib/firefox45/browser/modules/ContentSearch.jsm
lib/firefox45/browser/modules/ContentWebRTC.jsm
lib/firefox45/browser/modules/CustomizableUI.jsm
lib/firefox45/browser/modules/CustomizableWidgets.jsm
lib/firefox45/browser/modules/CustomizationTabPreloader.jsm
lib/firefox45/browser/modules/CustomizeMode.jsm
lib/firefox45/browser/modules/DirectoryLinksProvider.jsm
lib/firefox45/browser/modules/DownloadsCommon.jsm
lib/firefox45/browser/modules/DownloadsTaskbar.jsm
lib/firefox45/browser/modules/DownloadsViewUI.jsm
lib/firefox45/browser/modules/DragPositionManager.jsm
lib/firefox45/browser/modules/E10SUtils.jsm
lib/firefox45/browser/modules/Feeds.jsm
lib/firefox45/browser/modules/FormSubmitObserver.jsm
lib/firefox45/browser/modules/FormValidationHandler.jsm
lib/firefox45/browser/modules/HiddenFrame.jsm
lib/firefox45/browser/modules/MigrationUtils.jsm
lib/firefox45/browser/modules/NetworkPrioritizer.jsm
lib/firefox45/browser/modules/NewTabURL.jsm
lib/firefox45/browser/modules/PanelFrame.jsm
lib/firefox45/browser/modules/PanelWideWidgetTracker.jsm
lib/firefox45/browser/modules/PlacesUIUtils.jsm
lib/firefox45/browser/modules/PluginContent.jsm
lib/firefox45/browser/modules/Pocket.jsm
lib/firefox45/browser/modules/ProcessHangMonitor.jsm
lib/firefox45/browser/modules/ReaderParent.jsm
lib/firefox45/browser/modules/RecentWindow.jsm
lib/firefox45/browser/modules/RemotePrompt.jsm
lib/firefox45/browser/modules/ScrollbarSampler.jsm
lib/firefox45/browser/modules/SelfSupportBackend.jsm
lib/firefox45/browser/modules/SitePermissions.jsm
lib/firefox45/browser/modules/Social.jsm
lib/firefox45/browser/modules/TabGroupsMigrator.jsm
lib/firefox45/browser/modules/TransientPrefs.jsm
lib/firefox45/browser/modules/UITour.jsm
lib/firefox45/browser/modules/WebappManager.jsm
lib/firefox45/browser/modules/devtools/client/framework/gDevTools.jsm
lib/firefox45/browser/modules/devtools/gDevTools.jsm
lib/firefox45/browser/modules/distribution.js
lib/firefox45/browser/modules/experiments/Experiments.jsm
lib/firefox45/browser/modules/offlineAppCache.jsm
lib/firefox45/browser/modules/sessionstore/ContentRestore.jsm
lib/firefox45/browser/modules/sessionstore/DocShellCapabilities.jsm
lib/firefox45/browser/modules/sessionstore/FrameTree.jsm
lib/firefox45/browser/modules/sessionstore/GlobalState.jsm
lib/firefox45/browser/modules/sessionstore/PageStyle.jsm
lib/firefox45/browser/modules/sessionstore/PrivacyFilter.jsm
lib/firefox45/browser/modules/sessionstore/PrivacyLevel.jsm
lib/firefox45/browser/modules/sessionstore/RecentlyClosedTabsAndWindowsMenuUtils.jsm
lib/firefox45/browser/modules/sessionstore/RunState.jsm
lib/firefox45/browser/modules/sessionstore/SessionCookies.jsm
lib/firefox45/browser/modules/sessionstore/SessionFile.jsm
lib/firefox45/browser/modules/sessionstore/SessionHistory.jsm
lib/firefox45/browser/modules/sessionstore/SessionMigration.jsm
lib/firefox45/browser/modules/sessionstore/SessionSaver.jsm
lib/firefox45/browser/modules/sessionstore/SessionStorage.jsm
lib/firefox45/browser/modules/sessionstore/SessionStore.jsm
lib/firefox45/browser/modules/sessionstore/SessionWorker.js
lib/firefox45/browser/modules/sessionstore/SessionWorker.jsm
lib/firefox45/browser/modules/sessionstore/StartupPerformance.jsm
lib/firefox45/browser/modules/sessionstore/TabAttributes.jsm
lib/firefox45/browser/modules/sessionstore/TabState.jsm
lib/firefox45/browser/modules/sessionstore/TabStateCache.jsm
lib/firefox45/browser/modules/sessionstore/TabStateFlusher.jsm
lib/firefox45/browser/modules/sessionstore/Utils.jsm
lib/firefox45/browser/modules/translation/BingTranslator.jsm
lib/firefox45/browser/modules/translation/LanguageDetector.jsm
lib/firefox45/browser/modules/translation/Translation.jsm
lib/firefox45/browser/modules/translation/TranslationContentHandler.jsm
lib/firefox45/browser/modules/translation/TranslationDocument.jsm
lib/firefox45/browser/modules/translation/YandexTranslator.jsm
lib/firefox45/browser/modules/translation/cld-worker.js
lib/firefox45/browser/modules/translation/cld-worker.js.mem
lib/firefox45/browser/modules/webrtcUI.jsm
lib/firefox45/chrome.manifest
lib/firefox45/chrome/chrome.manifest
lib/firefox45/chrome/en-US/locale/en-US/alerts/alert.dtd
lib/firefox45/chrome/en-US/locale/en-US/alerts/alert.properties
lib/firefox45/chrome/en-US/locale/en-US/autoconfig/autoconfig.properties
lib/firefox45/chrome/en-US/locale/en-US/cookie/cookieAcceptDialog.dtd
lib/firefox45/chrome/en-US/locale/en-US/cookie/cookieAcceptDialog.properties
lib/firefox45/chrome/en-US/locale/en-US/formautofill/requestAutocomplete.dtd
lib/firefox45/chrome/en-US/locale/en-US/global-platform/mac/accessible.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/mac/intl.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/mac/platformKeys.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/unix/accessible.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/unix/intl.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/unix/platformKeys.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/win/accessible.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/win/intl.properties
lib/firefox45/chrome/en-US/locale/en-US/global-platform/win/platformKeys.properties
lib/firefox45/chrome/en-US/locale/en-US/global-region/region.properties
lib/firefox45/chrome/en-US/locale/en-US/global/AccessFu.properties
lib/firefox45/chrome/en-US/locale/en-US/global/about.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/aboutAbout.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/aboutNetworking.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/aboutReader.properties
lib/firefox45/chrome/en-US/locale/en-US/global/aboutRights.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/aboutServiceWorkers.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/aboutServiceWorkers.properties
lib/firefox45/chrome/en-US/locale/en-US/global/aboutSupport.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/aboutSupport.properties
lib/firefox45/chrome/en-US/locale/en-US/global/aboutTelemetry.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/aboutTelemetry.properties
lib/firefox45/chrome/en-US/locale/en-US/global/aboutWebrtc.properties
lib/firefox45/chrome/en-US/locale/en-US/global/appPicker.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/appstrings.properties
lib/firefox45/chrome/en-US/locale/en-US/global/autocomplete.properties
lib/firefox45/chrome/en-US/locale/en-US/global/brand.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/browser.properties
lib/firefox45/chrome/en-US/locale/en-US/global/charsetMenu.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/charsetMenu.properties
lib/firefox45/chrome/en-US/locale/en-US/global/commonDialog.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/commonDialogs.properties
lib/firefox45/chrome/en-US/locale/en-US/global/config.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/config.properties
lib/firefox45/chrome/en-US/locale/en-US/global/console.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/console.properties
lib/firefox45/chrome/en-US/locale/en-US/global/contentAreaCommands.properties
lib/firefox45/chrome/en-US/locale/en-US/global/crashes.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/crashes.properties
lib/firefox45/chrome/en-US/locale/en-US/global/css.properties
lib/firefox45/chrome/en-US/locale/en-US/global/customizeToolbar.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/customizeToolbar.properties
lib/firefox45/chrome/en-US/locale/en-US/global/dateFormat.properties
lib/firefox45/chrome/en-US/locale/en-US/global/datetimepicker.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/dialog.properties
lib/firefox45/chrome/en-US/locale/en-US/global/dialogOverlay.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/dom/dom.properties
lib/firefox45/chrome/en-US/locale/en-US/global/editMenuOverlay.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/fallbackMenubar.properties
lib/firefox45/chrome/en-US/locale/en-US/global/filefield.properties
lib/firefox45/chrome/en-US/locale/en-US/global/filepicker.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/filepicker.properties
lib/firefox45/chrome/en-US/locale/en-US/global/findbar.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/findbar.properties
lib/firefox45/chrome/en-US/locale/en-US/global/finddialog.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/finddialog.properties
lib/firefox45/chrome/en-US/locale/en-US/global/global-strres.properties
lib/firefox45/chrome/en-US/locale/en-US/global/global.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/globalKeys.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/headsUpDisplay.properties
lib/firefox45/chrome/en-US/locale/en-US/global/intl.css
lib/firefox45/chrome/en-US/locale/en-US/global/intl.properties
lib/firefox45/chrome/en-US/locale/en-US/global/keys.properties
lib/firefox45/chrome/en-US/locale/en-US/global/languageNames.properties
lib/firefox45/chrome/en-US/locale/en-US/global/layout/HtmlForm.properties
lib/firefox45/chrome/en-US/locale/en-US/global/layout/MediaDocument.properties
lib/firefox45/chrome/en-US/locale/en-US/global/layout/htmlparser.properties
lib/firefox45/chrome/en-US/locale/en-US/global/layout/xmlparser.properties
lib/firefox45/chrome/en-US/locale/en-US/global/layout_errors.properties
lib/firefox45/chrome/en-US/locale/en-US/global/mathml/mathml.properties
lib/firefox45/chrome/en-US/locale/en-US/global/mozilla.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/netError.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/netErrorApp.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/notification.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/nsWebBrowserPersist.properties
lib/firefox45/chrome/en-US/locale/en-US/global/plugins.properties
lib/firefox45/chrome/en-US/locale/en-US/global/preferences.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/printPageSetup.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/printPreview.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/printPreviewProgress.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/printProgress.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/printdialog.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/printdialog.properties
lib/firefox45/chrome/en-US/locale/en-US/global/printing.properties
lib/firefox45/chrome/en-US/locale/en-US/global/printjoboptions.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/regionNames.properties
lib/firefox45/chrome/en-US/locale/en-US/global/resetProfile.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/resetProfile.properties
lib/firefox45/chrome/en-US/locale/en-US/global/search/search.properties
lib/firefox45/chrome/en-US/locale/en-US/global/security/caps.properties
lib/firefox45/chrome/en-US/locale/en-US/global/security/csp.properties
lib/firefox45/chrome/en-US/locale/en-US/global/security/security.properties
lib/firefox45/chrome/en-US/locale/en-US/global/svg/svg.properties
lib/firefox45/chrome/en-US/locale/en-US/global/textcontext.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/tree.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/videocontrols.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/viewSource.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/viewSource.properties
lib/firefox45/chrome/en-US/locale/en-US/global/webapps.properties
lib/firefox45/chrome/en-US/locale/en-US/global/wizard.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/wizard.properties
lib/firefox45/chrome/en-US/locale/en-US/global/xbl.properties
lib/firefox45/chrome/en-US/locale/en-US/global/xml/prettyprint.dtd
lib/firefox45/chrome/en-US/locale/en-US/global/xslt/xslt.properties
lib/firefox45/chrome/en-US/locale/en-US/global/xul.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/downloads/downloads.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/downloads/downloads.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/downloads/settingsChange.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/downloads/unknownContentType.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/downloads/unknownContentType.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/about.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/blocklist.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/extensions.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/extensions.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/newaddon.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/newaddon.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/selectAddons.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/selectAddons.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/update.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/extensions/update.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/handling/handling.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/handling/handling.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/preferences/changemp.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/preferences/preferences.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/preferences/removemp.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/profile/createProfileWizard.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/profile/profileSelection.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/profile/profileSelection.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/update/history.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/update/updates.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/update/updates.properties
lib/firefox45/chrome/en-US/locale/en-US/mozapps/xpinstall/xpinstallConfirm.dtd
lib/firefox45/chrome/en-US/locale/en-US/mozapps/xpinstall/xpinstallConfirm.properties
lib/firefox45/chrome/en-US/locale/en-US/necko/necko.properties
lib/firefox45/chrome/en-US/locale/en-US/passwordmgr/passwordManager.dtd
lib/firefox45/chrome/en-US/locale/en-US/passwordmgr/passwordmgr.properties
lib/firefox45/chrome/en-US/locale/en-US/pipnss/nsserrors.properties
lib/firefox45/chrome/en-US/locale/en-US/pipnss/pipnss.properties
lib/firefox45/chrome/en-US/locale/en-US/pippki/certManager.dtd
lib/firefox45/chrome/en-US/locale/en-US/pippki/deviceManager.dtd
lib/firefox45/chrome/en-US/locale/en-US/pippki/pippki.dtd
lib/firefox45/chrome/en-US/locale/en-US/pippki/pippki.properties
lib/firefox45/chrome/en-US/locale/en-US/places/places.properties
lib/firefox45/chrome/en-US/locale/en-US/pluginproblem/pluginproblem.dtd
lib/firefox45/chrome/en-US/locale/en-US/services/errors.properties
lib/firefox45/chrome/en-US/locale/en-US/services/sync.properties
lib/firefox45/chrome/marionette/content/Assert.jsm
lib/firefox45/chrome/marionette/content/ChromePowers.js
lib/firefox45/chrome/marionette/content/ChromeUtils.js
lib/firefox45/chrome/marionette/content/EventUtils.js
lib/firefox45/chrome/marionette/content/MockColorPicker.jsm
lib/firefox45/chrome/marionette/content/MockFilePicker.jsm
lib/firefox45/chrome/marionette/content/MockPaymentsUIGlue.jsm
lib/firefox45/chrome/marionette/content/MockPermissionPrompt.jsm
lib/firefox45/chrome/marionette/content/MozillaLogger.js
lib/firefox45/chrome/marionette/content/SpecialPowersObserver.jsm
lib/firefox45/chrome/marionette/content/SpecialPowersObserverAPI.js
lib/firefox45/chrome/marionette/content/actions.js
lib/firefox45/chrome/marionette/content/atoms.js
lib/firefox45/chrome/marionette/content/capture.js
lib/firefox45/chrome/marionette/content/common.js
lib/firefox45/chrome/marionette/content/cookies.js
lib/firefox45/chrome/marionette/content/dispatcher.js
lib/firefox45/chrome/marionette/content/driver.js
lib/firefox45/chrome/marionette/content/elements.js
lib/firefox45/chrome/marionette/content/emulator.js
lib/firefox45/chrome/marionette/content/error.js
lib/firefox45/chrome/marionette/content/frame-manager.js
lib/firefox45/chrome/marionette/content/listener.js
lib/firefox45/chrome/marionette/content/message.js
lib/firefox45/chrome/marionette/content/modal.js
lib/firefox45/chrome/marionette/content/proxy.js
lib/firefox45/chrome/marionette/content/sendkeys.js
lib/firefox45/chrome/marionette/content/server.js
lib/firefox45/chrome/marionette/content/simpletest.js
lib/firefox45/chrome/marionette/content/specialpowers.js
lib/firefox45/chrome/marionette/content/specialpowersAPI.js
lib/firefox45/chrome/pippki/content/pippki/CAOverlay.xul
lib/firefox45/chrome/pippki/content/pippki/MineOverlay.xul
lib/firefox45/chrome/pippki/content/pippki/OrphanOverlay.xul
lib/firefox45/chrome/pippki/content/pippki/OthersOverlay.xul
lib/firefox45/chrome/pippki/content/pippki/WebSitesOverlay.xul
lib/firefox45/chrome/pippki/content/pippki/certDump.xul
lib/firefox45/chrome/pippki/content/pippki/certManager.js
lib/firefox45/chrome/pippki/content/pippki/certManager.xul
lib/firefox45/chrome/pippki/content/pippki/certViewer.xul
lib/firefox45/chrome/pippki/content/pippki/certpicker.js
lib/firefox45/chrome/pippki/content/pippki/certpicker.xul
lib/firefox45/chrome/pippki/content/pippki/changepassword.xul
lib/firefox45/chrome/pippki/content/pippki/choosetoken.js
lib/firefox45/chrome/pippki/content/pippki/choosetoken.xul
lib/firefox45/chrome/pippki/content/pippki/clientauthask.js
lib/firefox45/chrome/pippki/content/pippki/clientauthask.xul
lib/firefox45/chrome/pippki/content/pippki/createCertInfo.js
lib/firefox45/chrome/pippki/content/pippki/createCertInfo.xul
lib/firefox45/chrome/pippki/content/pippki/deletecert.js
lib/firefox45/chrome/pippki/content/pippki/deletecert.xul
lib/firefox45/chrome/pippki/content/pippki/device_manager.js
lib/firefox45/chrome/pippki/content/pippki/device_manager.xul
lib/firefox45/chrome/pippki/content/pippki/downloadcert.js
lib/firefox45/chrome/pippki/content/pippki/downloadcert.xul
lib/firefox45/chrome/pippki/content/pippki/editcacert.xul
lib/firefox45/chrome/pippki/content/pippki/editcerts.js
lib/firefox45/chrome/pippki/content/pippki/exceptionDialog.js
lib/firefox45/chrome/pippki/content/pippki/exceptionDialog.xul
lib/firefox45/chrome/pippki/content/pippki/load_device.xul
lib/firefox45/chrome/pippki/content/pippki/password.js
lib/firefox45/chrome/pippki/content/pippki/pippki.js
lib/firefox45/chrome/pippki/content/pippki/protectedAuth.js
lib/firefox45/chrome/pippki/content/pippki/protectedAuth.xul
lib/firefox45/chrome/pippki/content/pippki/resetpassword.js
lib/firefox45/chrome/pippki/content/pippki/resetpassword.xul
lib/firefox45/chrome/pippki/content/pippki/setp12password.xul
lib/firefox45/chrome/pippki/content/pippki/viewCertDetails.js
lib/firefox45/chrome/pippki/content/pippki/viewCertDetails.xul
lib/firefox45/chrome/recording/content/recording.js
lib/firefox45/chrome/recording/content/recording.xul
lib/firefox45/chrome/toolkit/content/cookie/cookieAcceptDialog.js
lib/firefox45/chrome/toolkit/content/cookie/cookieAcceptDialog.xul
lib/firefox45/chrome/toolkit/content/extensions/ext-alarms.js
lib/firefox45/chrome/toolkit/content/extensions/ext-backgroundPage.js
lib/firefox45/chrome/toolkit/content/extensions/ext-cookies.js
lib/firefox45/chrome/toolkit/content/extensions/ext-extension.js
lib/firefox45/chrome/toolkit/content/extensions/ext-i18n.js
lib/firefox45/chrome/toolkit/content/extensions/ext-idle.js
lib/firefox45/chrome/toolkit/content/extensions/ext-notifications.js
lib/firefox45/chrome/toolkit/content/extensions/ext-runtime.js
lib/firefox45/chrome/toolkit/content/extensions/ext-storage.js
lib/firefox45/chrome/toolkit/content/extensions/ext-test.js
lib/firefox45/chrome/toolkit/content/extensions/ext-webNavigation.js
lib/firefox45/chrome/toolkit/content/extensions/ext-webRequest.js
lib/firefox45/chrome/toolkit/content/extensions/schemas/cookies.json
lib/firefox45/chrome/toolkit/content/extensions/schemas/extension_types.json
lib/firefox45/chrome/toolkit/content/extensions/schemas/web_navigation.json
lib/firefox45/chrome/toolkit/content/extensions/schemas/web_request.json
lib/firefox45/chrome/toolkit/content/formautofill/requestAutocomplete.js
lib/firefox45/chrome/toolkit/content/formautofill/requestAutocomplete.xhtml
lib/firefox45/chrome/toolkit/content/gfxsanity/gfxFrameScript.js
lib/firefox45/chrome/toolkit/content/gfxsanity/sanityparent.html
lib/firefox45/chrome/toolkit/content/gfxsanity/sanitytest.html
lib/firefox45/chrome/toolkit/content/gfxsanity/videotest.mp4
lib/firefox45/chrome/toolkit/content/global/BrowserElementChild.js
lib/firefox45/chrome/toolkit/content/global/BrowserElementChildPreload.js
lib/firefox45/chrome/toolkit/content/global/BrowserElementCopyPaste.js
lib/firefox45/chrome/toolkit/content/global/BrowserElementPanning.js
lib/firefox45/chrome/toolkit/content/global/BrowserElementPanningAPZDisabled.js
lib/firefox45/chrome/toolkit/content/global/TopLevelVideoDocument.js
lib/firefox45/chrome/toolkit/content/global/XPCNativeWrapper.js
lib/firefox45/chrome/toolkit/content/global/about.js
lib/firefox45/chrome/toolkit/content/global/about.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutAbout.js
lib/firefox45/chrome/toolkit/content/global/aboutAbout.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutCache.js
lib/firefox45/chrome/toolkit/content/global/aboutMemory.css
lib/firefox45/chrome/toolkit/content/global/aboutMemory.js
lib/firefox45/chrome/toolkit/content/global/aboutMemory.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutNetworking.js
lib/firefox45/chrome/toolkit/content/global/aboutNetworking.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutRights.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutServiceWorkers.js
lib/firefox45/chrome/toolkit/content/global/aboutServiceWorkers.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutSupport.js
lib/firefox45/chrome/toolkit/content/global/aboutSupport.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutTelemetry.css
lib/firefox45/chrome/toolkit/content/global/aboutTelemetry.js
lib/firefox45/chrome/toolkit/content/global/aboutTelemetry.xhtml
lib/firefox45/chrome/toolkit/content/global/aboutwebrtc/aboutWebrtc.css
lib/firefox45/chrome/toolkit/content/global/aboutwebrtc/aboutWebrtc.js
lib/firefox45/chrome/toolkit/content/global/aboutwebrtc/aboutWebrtc.xhtml
lib/firefox45/chrome/toolkit/content/global/accessibility/AccessFu.css
lib/firefox45/chrome/toolkit/content/global/accessibility/clicked.ogg
lib/firefox45/chrome/toolkit/content/global/accessibility/content-script.js
lib/firefox45/chrome/toolkit/content/global/accessibility/virtual_cursor_key.ogg
lib/firefox45/chrome/toolkit/content/global/accessibility/virtual_cursor_move.ogg
lib/firefox45/chrome/toolkit/content/global/alerts/alert.css
lib/firefox45/chrome/toolkit/content/global/alerts/alert.js
lib/firefox45/chrome/toolkit/content/global/alerts/alert.xul
lib/firefox45/chrome/toolkit/content/global/appPicker.js
lib/firefox45/chrome/toolkit/content/global/appPicker.xul
lib/firefox45/chrome/toolkit/content/global/autocomplete.css
lib/firefox45/chrome/toolkit/content/global/backgroundPageThumbsContent.js
lib/firefox45/chrome/toolkit/content/global/bindings/autocomplete.xml
lib/firefox45/chrome/toolkit/content/global/bindings/browser.xml
lib/firefox45/chrome/toolkit/content/global/bindings/button.xml
lib/firefox45/chrome/toolkit/content/global/bindings/checkbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/colorpicker.xml
lib/firefox45/chrome/toolkit/content/global/bindings/datetimepicker.xml
lib/firefox45/chrome/toolkit/content/global/bindings/dialog.xml
lib/firefox45/chrome/toolkit/content/global/bindings/editor.xml
lib/firefox45/chrome/toolkit/content/global/bindings/expander.xml
lib/firefox45/chrome/toolkit/content/global/bindings/filefield.xml
lib/firefox45/chrome/toolkit/content/global/bindings/findbar.xml
lib/firefox45/chrome/toolkit/content/global/bindings/general.xml
lib/firefox45/chrome/toolkit/content/global/bindings/groupbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/listbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/menu.xml
lib/firefox45/chrome/toolkit/content/global/bindings/menulist.xml
lib/firefox45/chrome/toolkit/content/global/bindings/notification.xml
lib/firefox45/chrome/toolkit/content/global/bindings/numberbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/popup.xml
lib/firefox45/chrome/toolkit/content/global/bindings/preferences.xml
lib/firefox45/chrome/toolkit/content/global/bindings/progressmeter.xml
lib/firefox45/chrome/toolkit/content/global/bindings/radio.xml
lib/firefox45/chrome/toolkit/content/global/bindings/remote-browser.xml
lib/firefox45/chrome/toolkit/content/global/bindings/resizer.xml
lib/firefox45/chrome/toolkit/content/global/bindings/richlistbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/scale.xml
lib/firefox45/chrome/toolkit/content/global/bindings/scrollbar.xml
lib/firefox45/chrome/toolkit/content/global/bindings/scrollbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/spinbuttons.xml
lib/firefox45/chrome/toolkit/content/global/bindings/splitter.xml
lib/firefox45/chrome/toolkit/content/global/bindings/stringbundle.xml
lib/firefox45/chrome/toolkit/content/global/bindings/tabbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/text.xml
lib/firefox45/chrome/toolkit/content/global/bindings/textbox.xml
lib/firefox45/chrome/toolkit/content/global/bindings/toolbar.xml
lib/firefox45/chrome/toolkit/content/global/bindings/toolbarbutton.xml
lib/firefox45/chrome/toolkit/content/global/bindings/tree.xml
lib/firefox45/chrome/toolkit/content/global/bindings/videocontrols.css
lib/firefox45/chrome/toolkit/content/global/bindings/videocontrols.xml
lib/firefox45/chrome/toolkit/content/global/bindings/wizard.xml
lib/firefox45/chrome/toolkit/content/global/browser-child.js
lib/firefox45/chrome/toolkit/content/global/browser-content.js
lib/firefox45/chrome/toolkit/content/global/buildconfig.html
lib/firefox45/chrome/toolkit/content/global/commonDialog.css
lib/firefox45/chrome/toolkit/content/global/commonDialog.js
lib/firefox45/chrome/toolkit/content/global/commonDialog.xul
lib/firefox45/chrome/toolkit/content/global/config.js
lib/firefox45/chrome/toolkit/content/global/config.xul
lib/firefox45/chrome/toolkit/content/global/console.css
lib/firefox45/chrome/toolkit/content/global/console.js
lib/firefox45/chrome/toolkit/content/global/console.xul
lib/firefox45/chrome/toolkit/content/global/consoleBindings.xml
lib/firefox45/chrome/toolkit/content/global/contentAreaUtils.js
lib/firefox45/chrome/toolkit/content/global/customizeToolbar.css
lib/firefox45/chrome/toolkit/content/global/customizeToolbar.js
lib/firefox45/chrome/toolkit/content/global/customizeToolbar.xul
lib/firefox45/chrome/toolkit/content/global/devicestorage.properties
lib/firefox45/chrome/toolkit/content/global/dialogOverlay.js
lib/firefox45/chrome/toolkit/content/global/dialogOverlay.xul
lib/firefox45/chrome/toolkit/content/global/directionDetector.html
lib/firefox45/chrome/toolkit/content/global/editMenuOverlay.js
lib/firefox45/chrome/toolkit/content/global/editMenuOverlay.xul
lib/firefox45/chrome/toolkit/content/global/extensions.js
lib/firefox45/chrome/toolkit/content/global/filepicker.js
lib/firefox45/chrome/toolkit/content/global/filepicker.properties
lib/firefox45/chrome/toolkit/content/global/filepicker.xul
lib/firefox45/chrome/toolkit/content/global/findUtils.js
lib/firefox45/chrome/toolkit/content/global/finddialog.js
lib/firefox45/chrome/toolkit/content/global/finddialog.xul
lib/firefox45/chrome/toolkit/content/global/forms.js
lib/firefox45/chrome/toolkit/content/global/globalOverlay.js
lib/firefox45/chrome/toolkit/content/global/globalOverlay.xul
lib/firefox45/chrome/toolkit/content/global/inlineSpellCheckUI.js
lib/firefox45/chrome/toolkit/content/global/license.html
lib/firefox45/chrome/toolkit/content/global/manifestMessages.js
lib/firefox45/chrome/toolkit/content/global/menulist.css
lib/firefox45/chrome/toolkit/content/global/minimal-xul.css
lib/firefox45/chrome/toolkit/content/global/mozilla.xhtml
lib/firefox45/chrome/toolkit/content/global/netError.xhtml
lib/firefox45/chrome/toolkit/content/global/notfound.wav
lib/firefox45/chrome/toolkit/content/global/nsClipboard.js
lib/firefox45/chrome/toolkit/content/global/nsDragAndDrop.js
lib/firefox45/chrome/toolkit/content/global/nsUserSettings.js
lib/firefox45/chrome/toolkit/content/global/platformHTMLBindings.xml
lib/firefox45/chrome/toolkit/content/global/plugins.css
lib/firefox45/chrome/toolkit/content/global/plugins.html
lib/firefox45/chrome/toolkit/content/global/preload.js
lib/firefox45/chrome/toolkit/content/global/printPageSetup.js
lib/firefox45/chrome/toolkit/content/global/printPageSetup.xul
lib/firefox45/chrome/toolkit/content/global/printPreviewBindings.xml
lib/firefox45/chrome/toolkit/content/global/printPreviewProgress.js
lib/firefox45/chrome/toolkit/content/global/printPreviewProgress.xul
lib/firefox45/chrome/toolkit/content/global/printProgress.js
lib/firefox45/chrome/toolkit/content/global/printProgress.xul
lib/firefox45/chrome/toolkit/content/global/printUtils.js
lib/firefox45/chrome/toolkit/content/global/printdialog.js
lib/firefox45/chrome/toolkit/content/global/printdialog.xul
lib/firefox45/chrome/toolkit/content/global/printjoboptions.js
lib/firefox45/chrome/toolkit/content/global/printjoboptions.xul
lib/firefox45/chrome/toolkit/content/global/process-content.js
lib/firefox45/chrome/toolkit/content/global/reader/aboutReader.html
lib/firefox45/chrome/toolkit/content/global/reader/aboutReader.js
lib/firefox45/chrome/toolkit/content/global/remote-test-ipc.js
lib/firefox45/chrome/toolkit/content/global/resetProfile.css
lib/firefox45/chrome/toolkit/content/global/resetProfile.js
lib/firefox45/chrome/toolkit/content/global/resetProfile.xul
lib/firefox45/chrome/toolkit/content/global/resetProfileProgress.xul
lib/firefox45/chrome/toolkit/content/global/select-child.js
lib/firefox45/chrome/toolkit/content/global/selectDialog.js
lib/firefox45/chrome/toolkit/content/global/selectDialog.xul
lib/firefox45/chrome/toolkit/content/global/strres.js
lib/firefox45/chrome/toolkit/content/global/svg/svgBindings.xml
lib/firefox45/chrome/toolkit/content/global/tabprompts.css
lib/firefox45/chrome/toolkit/content/global/tabprompts.xml
lib/firefox45/chrome/toolkit/content/global/test-ipc.xul
lib/firefox45/chrome/toolkit/content/global/textbox.css
lib/firefox45/chrome/toolkit/content/global/treeUtils.js
lib/firefox45/chrome/toolkit/content/global/viewPartialSource.js
lib/firefox45/chrome/toolkit/content/global/viewPartialSource.xul
lib/firefox45/chrome/toolkit/content/global/viewSource-content.js
lib/firefox45/chrome/toolkit/content/global/viewSource.css
lib/firefox45/chrome/toolkit/content/global/viewSource.js
lib/firefox45/chrome/toolkit/content/global/viewSource.xul
lib/firefox45/chrome/toolkit/content/global/viewSourceUtils.js
lib/firefox45/chrome/toolkit/content/global/viewZoomOverlay.js
lib/firefox45/chrome/toolkit/content/global/xml/XMLMonoPrint.css
lib/firefox45/chrome/toolkit/content/global/xml/XMLPrettyPrint.css
lib/firefox45/chrome/toolkit/content/global/xml/XMLPrettyPrint.xml
lib/firefox45/chrome/toolkit/content/global/xml/XMLPrettyPrint.xsl
lib/firefox45/chrome/toolkit/content/global/xul.css
lib/firefox45/chrome/toolkit/content/mozapps/downloads/DownloadProgressListener.js
lib/firefox45/chrome/toolkit/content/mozapps/downloads/download.xml
lib/firefox45/chrome/toolkit/content/mozapps/downloads/downloads.css
lib/firefox45/chrome/toolkit/content/mozapps/downloads/downloads.js
lib/firefox45/chrome/toolkit/content/mozapps/downloads/downloads.xul
lib/firefox45/chrome/toolkit/content/mozapps/downloads/helperApps.js
lib/firefox45/chrome/toolkit/content/mozapps/downloads/unknownContentType.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/OpenH264-license.txt
lib/firefox45/chrome/toolkit/content/mozapps/extensions/about.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/about.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/blocklist.css
lib/firefox45/chrome/toolkit/content/mozapps/extensions/blocklist.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/blocklist.xml
lib/firefox45/chrome/toolkit/content/mozapps/extensions/blocklist.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/eula.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/eula.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/extensions.css
lib/firefox45/chrome/toolkit/content/mozapps/extensions/extensions.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/extensions.xml
lib/firefox45/chrome/toolkit/content/mozapps/extensions/extensions.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/gmpPrefs.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/list.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/list.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/newaddon.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/newaddon.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/pluginPrefs.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/selectAddons.css
lib/firefox45/chrome/toolkit/content/mozapps/extensions/selectAddons.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/selectAddons.xml
lib/firefox45/chrome/toolkit/content/mozapps/extensions/selectAddons.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/setting.xml
lib/firefox45/chrome/toolkit/content/mozapps/extensions/update.js
lib/firefox45/chrome/toolkit/content/mozapps/extensions/update.xul
lib/firefox45/chrome/toolkit/content/mozapps/extensions/updateinfo.xsl
lib/firefox45/chrome/toolkit/content/mozapps/handling/dialog.js
lib/firefox45/chrome/toolkit/content/mozapps/handling/dialog.xul
lib/firefox45/chrome/toolkit/content/mozapps/handling/handler.css
lib/firefox45/chrome/toolkit/content/mozapps/handling/handler.xml
lib/firefox45/chrome/toolkit/content/mozapps/preferences/changemp.js
lib/firefox45/chrome/toolkit/content/mozapps/preferences/changemp.xul
lib/firefox45/chrome/toolkit/content/mozapps/preferences/fontbuilder.js
lib/firefox45/chrome/toolkit/content/mozapps/preferences/removemp.js
lib/firefox45/chrome/toolkit/content/mozapps/preferences/removemp.xul
lib/firefox45/chrome/toolkit/content/mozapps/profile/createProfileWizard.js
lib/firefox45/chrome/toolkit/content/mozapps/profile/createProfileWizard.xul
lib/firefox45/chrome/toolkit/content/mozapps/profile/profileSelection.js
lib/firefox45/chrome/toolkit/content/mozapps/profile/profileSelection.xul
lib/firefox45/chrome/toolkit/content/mozapps/xpinstall/xpinstallConfirm.css
lib/firefox45/chrome/toolkit/content/mozapps/xpinstall/xpinstallConfirm.js
lib/firefox45/chrome/toolkit/content/mozapps/xpinstall/xpinstallConfirm.xul
lib/firefox45/chrome/toolkit/content/mozapps/xpinstall/xpinstallItem.xml
lib/firefox45/chrome/toolkit/content/passwordmgr/login.xml
lib/firefox45/chrome/toolkit/content/passwordmgr/passwordManager.js
lib/firefox45/chrome/toolkit/content/passwordmgr/passwordManager.xul
lib/firefox45/chrome/toolkit/content/passwordmgr/passwordManagerCommon.js
lib/firefox45/chrome/toolkit/content/passwordmgr/passwordManagerExceptions.js
lib/firefox45/chrome/toolkit/content/passwordmgr/passwordManagerExceptions.xul
lib/firefox45/chrome/toolkit/content/passwordmgr/recipes.json
lib/firefox45/chrome/toolkit/content/satchel/formSubmitListener.js
lib/firefox45/chrome/toolkit/content/xbl-marquee/xbl-marquee.css
lib/firefox45/chrome/toolkit/content/xbl-marquee/xbl-marquee.xml
lib/firefox45/chrome/toolkit/pluginproblem/pluginFinderBinding.css
lib/firefox45/chrome/toolkit/pluginproblem/pluginProblem.xml
lib/firefox45/chrome/toolkit/pluginproblem/pluginProblemBinding.css
lib/firefox45/chrome/toolkit/pluginproblem/pluginProblemContent.css
lib/firefox45/chrome/toolkit/res/arrow-left.gif
lib/firefox45/chrome/toolkit/res/arrow-right.gif
lib/firefox45/chrome/toolkit/res/arrow.gif
lib/firefox45/chrome/toolkit/res/arrowd-left.gif
lib/firefox45/chrome/toolkit/res/arrowd-right.gif
lib/firefox45/chrome/toolkit/res/arrowd.gif
lib/firefox45/chrome/toolkit/res/broken-image.png
lib/firefox45/chrome/toolkit/res/counterstyles.css
lib/firefox45/chrome/toolkit/res/forms.css
lib/firefox45/chrome/toolkit/res/hiddenWindow.html
lib/firefox45/chrome/toolkit/res/html.css
lib/firefox45/chrome/toolkit/res/loading-image.png
lib/firefox45/chrome/toolkit/res/mathml.css
lib/firefox45/chrome/toolkit/res/noframes.css
lib/firefox45/chrome/toolkit/res/noscript.css
lib/firefox45/chrome/toolkit/res/number-control.css
lib/firefox45/chrome/toolkit/res/plaintext.css
lib/firefox45/chrome/toolkit/res/quirk.css
lib/firefox45/chrome/toolkit/res/ua.css
lib/firefox45/chrome/toolkit/res/viewsource.css
lib/firefox45/chrome/toolkit/skin/classic/global/Filepicker.png
lib/firefox45/chrome/toolkit/skin/classic/global/about.css
lib/firefox45/chrome/toolkit/skin/classic/global/aboutCache.css
lib/firefox45/chrome/toolkit/skin/classic/global/aboutCacheEntry.css
lib/firefox45/chrome/toolkit/skin/classic/global/aboutMemory.css
lib/firefox45/chrome/toolkit/skin/classic/global/aboutReader.css
lib/firefox45/chrome/toolkit/skin/classic/global/aboutReaderContent.css
lib/firefox45/chrome/toolkit/skin/classic/global/aboutReaderControls.css
lib/firefox45/chrome/toolkit/skin/classic/global/aboutSupport.css
lib/firefox45/chrome/toolkit/skin/classic/global/alerts/alert-common.css
lib/firefox45/chrome/toolkit/skin/classic/global/alerts/alert.css
lib/firefox45/chrome/toolkit/skin/classic/global/appPicker.css
lib/firefox45/chrome/toolkit/skin/classic/global/arrow.css
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-dn-dis.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-dn-hov.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-dn-sharp.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-dn.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-down.png
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-lft-dis.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-lft-sharp-end.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-lft-sharp.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-lft.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-rit-dis.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-rit-sharp-end.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-rit-sharp.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-rit.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-up-dis.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-up-hov.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-up-sharp.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/arrow-up.gif
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/panelarrow-horizontal-themed.svg
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/panelarrow-horizontal.svg
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/panelarrow-vertical-themed.svg
lib/firefox45/chrome/toolkit/skin/classic/global/arrow/panelarrow-vertical.svg
lib/firefox45/chrome/toolkit/skin/classic/global/autocomplete.css
lib/firefox45/chrome/toolkit/skin/classic/global/button.css
lib/firefox45/chrome/toolkit/skin/classic/global/checkbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/checkbox/cbox-check-dis.gif
lib/firefox45/chrome/toolkit/skin/classic/global/checkbox/cbox-check.gif
lib/firefox45/chrome/toolkit/skin/classic/global/colorpicker.css
lib/firefox45/chrome/toolkit/skin/classic/global/commonDialog.css
lib/firefox45/chrome/toolkit/skin/classic/global/config.css
lib/firefox45/chrome/toolkit/skin/classic/global/console/console-error-caret.gif
lib/firefox45/chrome/toolkit/skin/classic/global/console/console-error-dash.gif
lib/firefox45/chrome/toolkit/skin/classic/global/console/console-toolbar.png
lib/firefox45/chrome/toolkit/skin/classic/global/console/console.css
lib/firefox45/chrome/toolkit/skin/classic/global/console/console.png
lib/firefox45/chrome/toolkit/skin/classic/global/console/itemSelected.png
lib/firefox45/chrome/toolkit/skin/classic/global/customizeToolbar.css
lib/firefox45/chrome/toolkit/skin/classic/global/datetimepicker.css
lib/firefox45/chrome/toolkit/skin/classic/global/dialog.css
lib/firefox45/chrome/toolkit/skin/classic/global/dirListing/dirListing.css
lib/firefox45/chrome/toolkit/skin/classic/global/dirListing/folder.png
lib/firefox45/chrome/toolkit/skin/classic/global/dirListing/local.png
lib/firefox45/chrome/toolkit/skin/classic/global/dirListing/remote.png
lib/firefox45/chrome/toolkit/skin/classic/global/dirListing/up.png
lib/firefox45/chrome/toolkit/skin/classic/global/dropmarker.css
lib/firefox45/chrome/toolkit/skin/classic/global/expander.css
lib/firefox45/chrome/toolkit/skin/classic/global/filefield.css
lib/firefox45/chrome/toolkit/skin/classic/global/filepicker.css
lib/firefox45/chrome/toolkit/skin/classic/global/findBar.css
lib/firefox45/chrome/toolkit/skin/classic/global/global.css
lib/firefox45/chrome/toolkit/skin/classic/global/globalBindings.xml
lib/firefox45/chrome/toolkit/skin/classic/global/groupbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Authentication.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Close.gif
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Error.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Landscape.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Minimize.gif
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Portrait.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Print-preview.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Question.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Restore.gif
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Search-close.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Search-glass.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/Warning.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/autocomplete-search.svg
lib/firefox45/chrome/toolkit/skin/classic/global/icons/autoscroll.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/blacklist_favicon.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/blacklist_large.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/close-inverted.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/close-inverted@2x.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/close.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/close.svg
lib/firefox45/chrome/toolkit/skin/classic/global/icons/close@2x.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/collapse.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/error-16.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/error-64.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/expand.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/find-arrows.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/folder-item.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/info.svg
lib/firefox45/chrome/toolkit/skin/classic/global/icons/information-16.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/information-24.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/information-32.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/loading-inverted.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/loading-inverted@2x.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/loading_16.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/panelarrow-horizontal.svg
lib/firefox45/chrome/toolkit/skin/classic/global/icons/panelarrow-vertical.svg
lib/firefox45/chrome/toolkit/skin/classic/global/icons/question-16.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/question-64.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/resizer-rtl.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/resizer.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/sslWarning.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/tabprompts-bgtexture.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/warning-16.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/warning-64.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/warning-large.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/warning.svg
lib/firefox45/chrome/toolkit/skin/classic/global/icons/webapps-16.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/webapps-64.png
lib/firefox45/chrome/toolkit/skin/classic/global/icons/windowControls.png
lib/firefox45/chrome/toolkit/skin/classic/global/in-content/check-partial.svg
lib/firefox45/chrome/toolkit/skin/classic/global/in-content/check.svg
lib/firefox45/chrome/toolkit/skin/classic/global/in-content/common.css
lib/firefox45/chrome/toolkit/skin/classic/global/in-content/dropdown.svg
lib/firefox45/chrome/toolkit/skin/classic/global/in-content/help-glyph.svg
lib/firefox45/chrome/toolkit/skin/classic/global/in-content/info-pages.css
lib/firefox45/chrome/toolkit/skin/classic/global/in-content/radio.svg
lib/firefox45/chrome/toolkit/skin/classic/global/linkTree.css
lib/firefox45/chrome/toolkit/skin/classic/global/listbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/media/TopLevelImageDocument.css
lib/firefox45/chrome/toolkit/skin/classic/global/media/TopLevelVideoDocument.css
lib/firefox45/chrome/toolkit/skin/classic/global/media/clicktoplay-bgtexture.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/error.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/fullscreenButton.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/imagedoc-darknoise.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/imagedoc-lightnoise.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/muteButton.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/noAudio.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/pauseButton.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/playButton.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/scrubberThumb.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/scrubberThumbWide.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/stalled.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/throbber.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/unmuteButton.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/videoClickToPlayButton.svg
lib/firefox45/chrome/toolkit/skin/classic/global/media/videocontrols.css
lib/firefox45/chrome/toolkit/skin/classic/global/media/volume-empty.png
lib/firefox45/chrome/toolkit/skin/classic/global/media/volume-full.png
lib/firefox45/chrome/toolkit/skin/classic/global/menu.css
lib/firefox45/chrome/toolkit/skin/classic/global/menu/shared-menu-check-active.svg
lib/firefox45/chrome/toolkit/skin/classic/global/menu/shared-menu-check-black.svg
lib/firefox45/chrome/toolkit/skin/classic/global/menu/shared-menu-check-hover.svg
lib/firefox45/chrome/toolkit/skin/classic/global/menu/shared-menu-check.png
lib/firefox45/chrome/toolkit/skin/classic/global/menu/shared-menu-check@2x.png
lib/firefox45/chrome/toolkit/skin/classic/global/menulist.css
lib/firefox45/chrome/toolkit/skin/classic/global/netError.css
lib/firefox45/chrome/toolkit/skin/classic/global/notification.css
lib/firefox45/chrome/toolkit/skin/classic/global/numberbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/passwordmgr.css
lib/firefox45/chrome/toolkit/skin/classic/global/popup.css
lib/firefox45/chrome/toolkit/skin/classic/global/preferences.css
lib/firefox45/chrome/toolkit/skin/classic/global/printPageSetup.css
lib/firefox45/chrome/toolkit/skin/classic/global/printPreview.css
lib/firefox45/chrome/toolkit/skin/classic/global/printpreview/arrow-left-end.png
lib/firefox45/chrome/toolkit/skin/classic/global/printpreview/arrow-left.png
lib/firefox45/chrome/toolkit/skin/classic/global/printpreview/arrow-right-end.png
lib/firefox45/chrome/toolkit/skin/classic/global/printpreview/arrow-right.png
lib/firefox45/chrome/toolkit/skin/classic/global/progressmeter.css
lib/firefox45/chrome/toolkit/skin/classic/global/radio.css
lib/firefox45/chrome/toolkit/skin/classic/global/radio/radio-check-dis.gif
lib/firefox45/chrome/toolkit/skin/classic/global/radio/radio-check.gif
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Add-24x24.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Close-24x24.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Delete-24x24.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Minus-24x24.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Plus-24x24.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Reading-List-24x24.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Type-Controls-24x24.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/RM-Type-Controls-Arrow.svg
lib/firefox45/chrome/toolkit/skin/classic/global/reader/pocket.svg
lib/firefox45/chrome/toolkit/skin/classic/global/resizer.css
lib/firefox45/chrome/toolkit/skin/classic/global/richlistbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/scale.css
lib/firefox45/chrome/toolkit/skin/classic/global/scrollbar/slider.gif
lib/firefox45/chrome/toolkit/skin/classic/global/scrollbars.css
lib/firefox45/chrome/toolkit/skin/classic/global/scrollbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/spinbuttons.css
lib/firefox45/chrome/toolkit/skin/classic/global/splitter.css
lib/firefox45/chrome/toolkit/skin/classic/global/splitter/grip-bottom.gif
lib/firefox45/chrome/toolkit/skin/classic/global/splitter/grip-left.gif
lib/firefox45/chrome/toolkit/skin/classic/global/splitter/grip-right.gif
lib/firefox45/chrome/toolkit/skin/classic/global/splitter/grip-top.gif
lib/firefox45/chrome/toolkit/skin/classic/global/tabbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/tabprompts.css
lib/firefox45/chrome/toolkit/skin/classic/global/textbox.css
lib/firefox45/chrome/toolkit/skin/classic/global/toolbar.css
lib/firefox45/chrome/toolkit/skin/classic/global/toolbar/chevron-inverted.png
lib/firefox45/chrome/toolkit/skin/classic/global/toolbar/chevron.gif
lib/firefox45/chrome/toolkit/skin/classic/global/toolbar/spring.png
lib/firefox45/chrome/toolkit/skin/classic/global/toolbarbutton.css
lib/firefox45/chrome/toolkit/skin/classic/global/tree.css
lib/firefox45/chrome/toolkit/skin/classic/global/tree/columnpicker.gif
lib/firefox45/chrome/toolkit/skin/classic/global/tree/sort-asc-classic.png
lib/firefox45/chrome/toolkit/skin/classic/global/tree/sort-asc.png
lib/firefox45/chrome/toolkit/skin/classic/global/tree/sort-dsc-classic.png
lib/firefox45/chrome/toolkit/skin/classic/global/tree/sort-dsc.png
lib/firefox45/chrome/toolkit/skin/classic/global/tree/twisty-clsd.png
lib/firefox45/chrome/toolkit/skin/classic/global/tree/twisty-open.png
lib/firefox45/chrome/toolkit/skin/classic/global/wizard.css
lib/firefox45/chrome/toolkit/skin/classic/help/Toolbar-rtl.png
lib/firefox45/chrome/toolkit/skin/classic/help/Toolbar.png
lib/firefox45/chrome/toolkit/skin/classic/help/Weblink-rtl.png
lib/firefox45/chrome/toolkit/skin/classic/help/Weblink.png
lib/firefox45/chrome/toolkit/skin/classic/help/helpFileLayout.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/aboutNetworking.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/aboutServiceWorkers.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/downloads/downloadButtons.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/downloads/downloadIcon.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/downloads/downloads.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/downloads/unknownContentType.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/about.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/alerticon-error.svg
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/alerticon-info-negative.svg
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/alerticon-info-positive.svg
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/alerticon-warning.svg
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/blocklist.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/cancel.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/category-available.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/category-discover.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/category-plugins.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/category-recent.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/category-search.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/category-service.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/dictionaryGeneric-16.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/dictionaryGeneric.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/discover-logo.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/eula.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/experimentGeneric.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/extensionGeneric-16.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/extensionGeneric.svg
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/extensions.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/heart.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/localeGeneric.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/navigation.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/newaddon.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/rating-not-won.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/rating-won.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/selectAddons.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/themeGeneric-16.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/themeGeneric.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/update.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/extensions/utilities.svg
lib/firefox45/chrome/toolkit/skin/classic/mozapps/formautofill/requestAutocomplete.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/handling/handling.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/passwordmgr/key-16.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/passwordmgr/key-64.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/places/defaultFavicon.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/places/defaultFavicon@2x.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginActivate.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginBlocked.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginClose.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginCrashed.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginDisabled.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginDownload.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginMissing.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/contentPluginStripe.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/pluginBlocked-64.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/pluginBlocked.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/pluginGeneric-16.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/pluginGeneric.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/pluginHelp-16.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/plugins/pluginProblem.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/profile/profileSelection.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/profile/profileicon.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/update/downloadButtons.png
lib/firefox45/chrome/toolkit/skin/classic/mozapps/update/updates.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/viewsource/viewsource.css
lib/firefox45/chrome/toolkit/skin/classic/mozapps/xpinstall/xpinstallConfirm.css
lib/firefox45/components/ActivityMessageConfigurator.js
lib/firefox45/components/ActivityProxy.js
lib/firefox45/components/ActivityRequestHandler.js
lib/firefox45/components/ActivityWrapper.js
lib/firefox45/components/AlarmsManager.js
lib/firefox45/components/AppsService.js
lib/firefox45/components/BrowserElementParent.js
lib/firefox45/components/BrowserElementProxy.js
lib/firefox45/components/CSSUnprefixingService.js
lib/firefox45/components/ChromeNotifications.js
lib/firefox45/components/ColorAnalyzer.js
lib/firefox45/components/ConsoleAPIStorage.js
lib/firefox45/components/ContactManager.js
lib/firefox45/components/ContentProcessSingleton.js
lib/firefox45/components/DataReportingService.js
lib/firefox45/components/DataStoreImpl.js
lib/firefox45/components/DownloadLegacy.js
lib/firefox45/components/FeedProcessor.js
lib/firefox45/components/FormAutofillContentService.js
lib/firefox45/components/FormAutofillStartup.js
lib/firefox45/components/FormHistoryStartup.js
lib/firefox45/components/InstallPackagedWebapp.js
lib/firefox45/components/MainProcessSingleton.js
lib/firefox45/components/MozKeyboard.js
lib/firefox45/components/NetworkGeolocationProvider.js
lib/firefox45/components/NotificationStorage.js
lib/firefox45/components/PACGenerator.js
lib/firefox45/components/PackagedAppUtils.js
lib/firefox45/components/PageThumbsProtocol.js
lib/firefox45/components/Payment.js
lib/firefox45/components/PaymentFlowInfo.js
lib/firefox45/components/PermissionSettings.js
lib/firefox45/components/PhoneNumberService.js
lib/firefox45/components/PlacesCategoriesStarter.js
lib/firefox45/components/PresentationDeviceInfoManager.js
lib/firefox45/components/PrivateBrowsingTrackingProtectionWhitelist.js
lib/firefox45/components/Push.js
lib/firefox45/components/PushClient.js
lib/firefox45/components/PushNotificationService.js
lib/firefox45/components/RemoteWebNavigation.js
lib/firefox45/components/RequestSyncManager.js
lib/firefox45/components/RequestSyncScheduler.js
lib/firefox45/components/SettingsManager.js
lib/firefox45/components/SiteSpecificUserAgent.js
lib/firefox45/components/SlowScriptDebug.js
lib/firefox45/components/SystemMessageCache.js
lib/firefox45/components/SystemMessageInternal.js
lib/firefox45/components/SystemMessageManager.js
lib/firefox45/components/TCPPresentationServer.js
lib/firefox45/components/TelemetryStartup.js
lib/firefox45/components/UnifiedComplete.js
lib/firefox45/components/Weave.js
lib/firefox45/components/WebVTTParserWrapper.js
lib/firefox45/components/Webapps.js
lib/firefox45/components/XULStore.js
lib/firefox45/components/addonManager.js
lib/firefox45/components/amContentHandler.js
lib/firefox45/components/amInstallTrigger.js
lib/firefox45/components/amWebInstallListener.js
lib/firefox45/components/captivedetect.js
lib/firefox45/components/components.manifest
lib/firefox45/components/contentAreaDropListener.js
lib/firefox45/components/crypto-SDR.js
lib/firefox45/components/defaultShims.js
lib/firefox45/components/htmlMenuBuilder.js
lib/firefox45/components/interfaces.xpt
lib/firefox45/components/jsconsole-clhandler.js
lib/firefox45/components/marionettecomponent.js
lib/firefox45/components/messageWakeupService.js
lib/firefox45/components/multiprocessShims.js
lib/firefox45/components/nsAsyncShutdown.js
lib/firefox45/components/nsBlocklistService.js
lib/firefox45/components/nsBlocklistServiceContent.js
lib/firefox45/components/nsContentDispatchChooser.js
lib/firefox45/components/nsContentPrefService.js
lib/firefox45/components/nsCrashMonitor.js
lib/firefox45/components/nsDefaultCLH.js
lib/firefox45/components/nsFilePicker.js
lib/firefox45/components/nsFormAutoComplete.js
lib/firefox45/components/nsFormHistory.js
lib/firefox45/components/nsHandlerService.js
lib/firefox45/components/nsHelperAppDlg.js
lib/firefox45/components/nsINIProcessor.js
lib/firefox45/components/nsInputListAutoComplete.js
lib/firefox45/components/nsLivemarkService.js
lib/firefox45/components/nsLoginInfo.js
lib/firefox45/components/nsLoginManager.js
lib/firefox45/components/nsLoginManagerPrompter.js
lib/firefox45/components/nsPlacesAutoComplete.js
lib/firefox45/components/nsPlacesExpiration.js
lib/firefox45/components/nsPrompter.js
lib/firefox45/components/nsSearchService.js
lib/firefox45/components/nsSearchSuggestions.js
lib/firefox45/components/nsSidebar.js
lib/firefox45/components/nsTaggingService.js
lib/firefox45/components/nsTerminatorTelemetry.js
lib/firefox45/components/nsURLFormatter.js
lib/firefox45/components/nsUpdateTimerManager.js
lib/firefox45/components/nsUrlClassifierHashCompleter.js
lib/firefox45/components/nsUrlClassifierLib.js
lib/firefox45/components/nsUrlClassifierListManager.js
lib/firefox45/components/nsWebHandlerApp.js
lib/firefox45/components/recording-cmdline.js
lib/firefox45/components/simpleServices.js
lib/firefox45/components/storage-json.js
lib/firefox45/components/txEXSLTRegExFunctions.js
lib/firefox45/defaults/autoconfig/prefcalls.js
lib/firefox45/defaults/pref/channel-prefs.js
lib/firefox45/defaults/pref/services-sync.js
lib/firefox45/dependentlibs.list
lib/firefox45/dictionaries/en-US.aff
lib/firefox45/dictionaries/en-US.dic
lib/firefox45/firefox
lib/firefox45/firefox-bin
lib/firefox45/gmp-clearkey/0.1/clearkey.info
lib/firefox45/gmp-clearkey/0.1/libclearkey.so
lib/firefox45/greprefs.js
lib/firefox45/hyphenation/hyph_af.dic
lib/firefox45/hyphenation/hyph_bg.dic
lib/firefox45/hyphenation/hyph_ca.dic
lib/firefox45/hyphenation/hyph_cy.dic
lib/firefox45/hyphenation/hyph_da.dic
lib/firefox45/hyphenation/hyph_de-1901.dic
lib/firefox45/hyphenation/hyph_de-1996.dic
lib/firefox45/hyphenation/hyph_de-CH.dic
lib/firefox45/hyphenation/hyph_en_US.dic
lib/firefox45/hyphenation/hyph_eo.dic
lib/firefox45/hyphenation/hyph_es.dic
lib/firefox45/hyphenation/hyph_et.dic
lib/firefox45/hyphenation/hyph_fi.dic
lib/firefox45/hyphenation/hyph_fr.dic
lib/firefox45/hyphenation/hyph_gl.dic
lib/firefox45/hyphenation/hyph_hr.dic
lib/firefox45/hyphenation/hyph_hsb.dic
lib/firefox45/hyphenation/hyph_hu.dic
lib/firefox45/hyphenation/hyph_ia.dic
lib/firefox45/hyphenation/hyph_is.dic
lib/firefox45/hyphenation/hyph_it.dic
lib/firefox45/hyphenation/hyph_kmr.dic
lib/firefox45/hyphenation/hyph_la.dic
lib/firefox45/hyphenation/hyph_lt.dic
lib/firefox45/hyphenation/hyph_mn.dic
lib/firefox45/hyphenation/hyph_nb.dic
lib/firefox45/hyphenation/hyph_nl.dic
lib/firefox45/hyphenation/hyph_nn.dic
lib/firefox45/hyphenation/hyph_pl.dic
lib/firefox45/hyphenation/hyph_pt.dic
lib/firefox45/hyphenation/hyph_ru.dic
lib/firefox45/hyphenation/hyph_sh.dic
lib/firefox45/hyphenation/hyph_sl.dic
lib/firefox45/hyphenation/hyph_sv.dic
lib/firefox45/hyphenation/hyph_tr.dic
lib/firefox45/hyphenation/hyph_uk.dic
lib/firefox45/liblgpllibs.so
lib/firefox45/libmozsqlite3.so
lib/firefox45/libxul.so
lib/firefox45/modules/AboutReader.jsm
lib/firefox45/modules/ActivitiesService.jsm
lib/firefox45/modules/ActivitiesServiceFilter.jsm
lib/firefox45/modules/AddonManager.jsm
lib/firefox45/modules/AlarmDB.jsm
lib/firefox45/modules/AlarmService.jsm
lib/firefox45/modules/AppConstants.jsm
lib/firefox45/modules/AppDownloadManager.jsm
lib/firefox45/modules/AppsServiceChild.jsm
lib/firefox45/modules/AppsUtils.jsm
lib/firefox45/modules/AsyncShutdown.jsm
lib/firefox45/modules/AsyncSpellCheckTestHelper.jsm
lib/firefox45/modules/AutoCompleteE10S.jsm
lib/firefox45/modules/BackgroundPageThumbs.jsm
lib/firefox45/modules/Battery.jsm
lib/firefox45/modules/BinarySearch.jsm
lib/firefox45/modules/BookmarkHTMLUtils.jsm
lib/firefox45/modules/BookmarkJSONUtils.jsm
lib/firefox45/modules/Bookmarks.jsm
lib/firefox45/modules/BrowserElementPromptService.jsm
lib/firefox45/modules/BrowserUtils.jsm
lib/firefox45/modules/CertUtils.jsm
lib/firefox45/modules/CharsetMenu.jsm
lib/firefox45/modules/ChromeManifestParser.jsm
lib/firefox45/modules/ClientID.jsm
lib/firefox45/modules/CloudSync.jsm
lib/firefox45/modules/CloudSyncAdapters.jsm
lib/firefox45/modules/CloudSyncBookmarks.jsm
lib/firefox45/modules/CloudSyncBookmarksFolderCache.jsm
lib/firefox45/modules/CloudSyncEventSource.jsm
lib/firefox45/modules/CloudSyncLocal.jsm
lib/firefox45/modules/CloudSyncPlacesWrapper.jsm
lib/firefox45/modules/CloudSyncTabs.jsm
lib/firefox45/modules/ClusterLib.js
lib/firefox45/modules/ColorAnalyzer_worker.js
lib/firefox45/modules/ColorConversion.js
lib/firefox45/modules/CommonDialog.jsm
lib/firefox45/modules/CompatWarning.jsm
lib/firefox45/modules/Console.jsm
lib/firefox45/modules/ContactDB.jsm
lib/firefox45/modules/ContactService.jsm
lib/firefox45/modules/ContentPrefInstance.jsm
lib/firefox45/modules/ContentPrefService2.jsm
lib/firefox45/modules/ContentPrefServiceChild.jsm
lib/firefox45/modules/ContentPrefServiceParent.jsm
lib/firefox45/modules/ContentPrefStore.jsm
lib/firefox45/modules/ContentPrefUtils.jsm
lib/firefox45/modules/CrashMonitor.jsm
lib/firefox45/modules/Credentials.jsm
lib/firefox45/modules/DOMRequestHelper.jsm
lib/firefox45/modules/DataStoreChangeNotifier.jsm
lib/firefox45/modules/DataStoreCursorImpl.jsm
lib/firefox45/modules/DataStoreDB.jsm
lib/firefox45/modules/DeferredSave.jsm
lib/firefox45/modules/DeferredTask.jsm
lib/firefox45/modules/Deprecated.jsm
lib/firefox45/modules/DownloadCore.jsm
lib/firefox45/modules/DownloadImport.jsm
lib/firefox45/modules/DownloadIntegration.jsm
lib/firefox45/modules/DownloadLastDir.jsm
lib/firefox45/modules/DownloadList.jsm
lib/firefox45/modules/DownloadPaths.jsm
lib/firefox45/modules/DownloadStore.jsm
lib/firefox45/modules/DownloadTaskbarProgress.jsm
lib/firefox45/modules/DownloadUIHelper.jsm
lib/firefox45/modules/DownloadUtils.jsm
lib/firefox45/modules/Downloads.jsm
lib/firefox45/modules/Extension.jsm
lib/firefox45/modules/ExtensionContent.jsm
lib/firefox45/modules/ExtensionManagement.jsm
lib/firefox45/modules/ExtensionStorage.jsm
lib/firefox45/modules/ExtensionUtils.jsm
lib/firefox45/modules/FileUtils.jsm
lib/firefox45/modules/Finder.jsm
lib/firefox45/modules/ForgetAboutSite.jsm
lib/firefox45/modules/FormAutofill.jsm
lib/firefox45/modules/FormAutofillIntegration.jsm
lib/firefox45/modules/FormData.jsm
lib/firefox45/modules/FormHistory.jsm
lib/firefox45/modules/FrameWorker.jsm
lib/firefox45/modules/FrameWorkerContent.js
lib/firefox45/modules/FreeSpaceWatcher.jsm
lib/firefox45/modules/FxAccounts.jsm
lib/firefox45/modules/FxAccountsClient.jsm
lib/firefox45/modules/FxAccountsCommon.js
lib/firefox45/modules/FxAccountsOAuthClient.jsm
lib/firefox45/modules/FxAccountsOAuthGrantClient.jsm
lib/firefox45/modules/FxAccountsProfile.jsm
lib/firefox45/modules/FxAccountsProfileClient.jsm
lib/firefox45/modules/FxAccountsStorage.jsm
lib/firefox45/modules/FxAccountsWebChannel.jsm
lib/firefox45/modules/GMPInstallManager.jsm
lib/firefox45/modules/GMPUtils.jsm
lib/firefox45/modules/Geometry.jsm
lib/firefox45/modules/HealthReport.jsm
lib/firefox45/modules/History.jsm
lib/firefox45/modules/Http.jsm
lib/firefox45/modules/ISO8601DateUtils.jsm
lib/firefox45/modules/ImageObjectProcessor.jsm
lib/firefox45/modules/ImportExport.jsm
lib/firefox45/modules/IndexedDBHelper.jsm
lib/firefox45/modules/InlineSpellChecker.jsm
lib/firefox45/modules/InlineSpellCheckerContent.jsm
lib/firefox45/modules/InsecurePasswordUtils.jsm
lib/firefox45/modules/InterAppCommService.jsm
lib/firefox45/modules/Keyboard.jsm
lib/firefox45/modules/Langpacks.jsm
lib/firefox45/modules/LightweightThemeConsumer.jsm
lib/firefox45/modules/LightweightThemeManager.jsm
lib/firefox45/modules/LoadContextInfo.jsm
lib/firefox45/modules/Locale.jsm
lib/firefox45/modules/Log.jsm
lib/firefox45/modules/LoginDoorhangers.jsm
lib/firefox45/modules/LoginHelper.jsm
lib/firefox45/modules/LoginImport.jsm
lib/firefox45/modules/LoginManagerContent.jsm
lib/firefox45/modules/LoginManagerContextMenu.jsm
lib/firefox45/modules/LoginManagerParent.jsm
lib/firefox45/modules/LoginRecipes.jsm
lib/firefox45/modules/LoginStore.jsm
lib/firefox45/modules/ManifestFinder.jsm
lib/firefox45/modules/ManifestObtainer.jsm
lib/firefox45/modules/ManifestProcessor.jsm
lib/firefox45/modules/MatchPattern.jsm
lib/firefox45/modules/MessageBroadcaster.jsm
lib/firefox45/modules/MessagePortBase.jsm
lib/firefox45/modules/MessagePortWorker.js
lib/firefox45/modules/Metrics.jsm
lib/firefox45/modules/Microformats.js
lib/firefox45/modules/MozSocialAPI.jsm
lib/firefox45/modules/NativeApp.jsm
lib/firefox45/modules/NetUtil.jsm
lib/firefox45/modules/NewTabUtils.jsm
lib/firefox45/modules/NotificationDB.jsm
lib/firefox45/modules/OSCrypto.jsm
lib/firefox45/modules/ObjectUtils.jsm
lib/firefox45/modules/OfflineCacheInstaller.jsm
lib/firefox45/modules/OperatorApps.jsm
lib/firefox45/modules/PageMenu.jsm
lib/firefox45/modules/PageMetadata.jsm
lib/firefox45/modules/PageThumbUtils.jsm
lib/firefox45/modules/PageThumbs.jsm
lib/firefox45/modules/PageThumbsWorker.js
lib/firefox45/modules/Payment.jsm
lib/firefox45/modules/PerfMeasurement.jsm
lib/firefox45/modules/PermissionSettings.jsm
lib/firefox45/modules/PermissionsInstaller.jsm
lib/firefox45/modules/PermissionsTable.jsm
lib/firefox45/modules/PermissionsUtils.jsm
lib/firefox45/modules/PhoneNumber.jsm
lib/firefox45/modules/PhoneNumberMetaData.jsm
lib/firefox45/modules/PhoneNumberNormalizer.jsm
lib/firefox45/modules/PhoneNumberUtils.jsm
lib/firefox45/modules/PlacesBackups.jsm
lib/firefox45/modules/PlacesDBUtils.jsm
lib/firefox45/modules/PlacesRemoteTabsAutocompleteProvider.jsm
lib/firefox45/modules/PlacesSearchAutocompleteProvider.jsm
lib/firefox45/modules/PlacesTransactions.jsm
lib/firefox45/modules/PlacesUtils.jsm
lib/firefox45/modules/PluralForm.jsm
lib/firefox45/modules/PopupNotifications.jsm
lib/firefox45/modules/Preferences.jsm
lib/firefox45/modules/Prefetcher.jsm
lib/firefox45/modules/PresentationDeviceInfoManager.jsm
lib/firefox45/modules/PrivateBrowsingUtils.jsm
lib/firefox45/modules/ProfileAge.jsm
lib/firefox45/modules/Promise-backend.js
lib/firefox45/modules/Promise.jsm
lib/firefox45/modules/PromiseMessage.jsm
lib/firefox45/modules/PromiseUtils.jsm
lib/firefox45/modules/PromiseWorker.jsm
lib/firefox45/modules/PropertyListUtils.jsm
lib/firefox45/modules/PushCrypto.jsm
lib/firefox45/modules/PushDB.jsm
lib/firefox45/modules/PushRecord.jsm
lib/firefox45/modules/PushService.jsm
lib/firefox45/modules/PushServiceChildPreload.jsm
lib/firefox45/modules/PushServiceHttp2.jsm
lib/firefox45/modules/PushServiceWebSocket.jsm
lib/firefox45/modules/ReaderMode.jsm
lib/firefox45/modules/RemoteAddonsChild.jsm
lib/firefox45/modules/RemoteAddonsParent.jsm
lib/firefox45/modules/RemoteController.jsm
lib/firefox45/modules/RemoteFinder.jsm
lib/firefox45/modules/RemotePageManager.jsm
lib/firefox45/modules/RemoteSecurityUI.jsm
lib/firefox45/modules/RemoteWebProgress.jsm
lib/firefox45/modules/RequestAutocompleteUI.jsm
lib/firefox45/modules/RequestSyncApp.jsm
lib/firefox45/modules/RequestSyncService.jsm
lib/firefox45/modules/RequestSyncTask.jsm
lib/firefox45/modules/ResetProfile.jsm
lib/firefox45/modules/ResourceStatsDB.jsm
lib/firefox45/modules/ResourceStatsService.jsm
lib/firefox45/modules/RokuApp.jsm
lib/firefox45/modules/SafeBrowsing.jsm
lib/firefox45/modules/Schemas.jsm
lib/firefox45/modules/ScriptPreloader.jsm
lib/firefox45/modules/ScrollPosition.jsm
lib/firefox45/modules/SearchStaticData.jsm
lib/firefox45/modules/SearchSuggestionController.jsm
lib/firefox45/modules/SelectContentHelper.jsm
lib/firefox45/modules/SelectParentHelper.jsm
lib/firefox45/modules/Services.jsm
lib/firefox45/modules/SessionRecorder.jsm
lib/firefox45/modules/SettingsDB.jsm
lib/firefox45/modules/SettingsRequestManager.jsm
lib/firefox45/modules/SharedPromptUtils.jsm
lib/firefox45/modules/ShimWaiver.jsm
lib/firefox45/modules/ShortcutUtils.jsm
lib/firefox45/modules/SimpleServiceDiscovery.jsm
lib/firefox45/modules/Sntp.jsm
lib/firefox45/modules/SocialService.jsm
lib/firefox45/modules/SpatialNavigation.jsm
lib/firefox45/modules/Sqlite.jsm
lib/firefox45/modules/StoreTrustAnchor.jsm
lib/firefox45/modules/SystemMessagePermissionsChecker.jsm
lib/firefox45/modules/SystemUpdateService.jsm
lib/firefox45/modules/Task.jsm
lib/firefox45/modules/TelemetryArchive.jsm
lib/firefox45/modules/TelemetryController.jsm
lib/firefox45/modules/TelemetryEnvironment.jsm
lib/firefox45/modules/TelemetryLog.jsm
lib/firefox45/modules/TelemetryReportingPolicy.jsm
lib/firefox45/modules/TelemetrySend.jsm
lib/firefox45/modules/TelemetrySession.jsm
lib/firefox45/modules/TelemetryStopwatch.jsm
lib/firefox45/modules/TelemetryStorage.jsm
lib/firefox45/modules/TelemetryTimestamps.jsm
lib/firefox45/modules/TelemetryUtils.jsm
lib/firefox45/modules/ThirdPartyCookieProbe.jsm
lib/firefox45/modules/Timer.jsm
lib/firefox45/modules/Troubleshoot.jsm
lib/firefox45/modules/UITelemetry.jsm
lib/firefox45/modules/UpdateUtils.jsm
lib/firefox45/modules/UserAgentOverrides.jsm
lib/firefox45/modules/UserAgentUpdates.jsm
lib/firefox45/modules/UserCustomizations.jsm
lib/firefox45/modules/ValueExtractor.jsm
lib/firefox45/modules/ViewSourceBrowser.jsm
lib/firefox45/modules/WebChannel.jsm
lib/firefox45/modules/WebNavigation.jsm
lib/firefox45/modules/WebNavigationContent.js
lib/firefox45/modules/WebRequest.jsm
lib/firefox45/modules/WebRequestCommon.jsm
lib/firefox45/modules/WebRequestContent.js
lib/firefox45/modules/WebappOSUtils.jsm
lib/firefox45/modules/Webapps.jsm
lib/firefox45/modules/WindowDraggingUtils.jsm
lib/firefox45/modules/WorkerAPI.jsm
lib/firefox45/modules/XPCOMUtils.jsm
lib/firefox45/modules/XPathGenerator.jsm
lib/firefox45/modules/ZipUtils.jsm
lib/firefox45/modules/accessibility/AccessFu.jsm
lib/firefox45/modules/accessibility/Constants.jsm
lib/firefox45/modules/accessibility/ContentControl.jsm
lib/firefox45/modules/accessibility/EventManager.jsm
lib/firefox45/modules/accessibility/Gestures.jsm
lib/firefox45/modules/accessibility/OutputGenerator.jsm
lib/firefox45/modules/accessibility/PointerAdapter.jsm
lib/firefox45/modules/accessibility/Presentation.jsm
lib/firefox45/modules/accessibility/Traversal.jsm
lib/firefox45/modules/accessibility/Utils.jsm
lib/firefox45/modules/addons/AddonConstants.jsm
lib/firefox45/modules/addons/AddonLogging.jsm
lib/firefox45/modules/addons/AddonRepository.jsm
lib/firefox45/modules/addons/AddonRepository_SQLiteMigrator.jsm
lib/firefox45/modules/addons/AddonUpdateChecker.jsm
lib/firefox45/modules/addons/Content.js
lib/firefox45/modules/addons/GMPProvider.jsm
lib/firefox45/modules/addons/LightweightThemeImageOptimizer.jsm
lib/firefox45/modules/addons/PluginProvider.jsm
lib/firefox45/modules/addons/ProductAddonChecker.jsm
lib/firefox45/modules/addons/SpellCheckDictionaryBootstrap.js
lib/firefox45/modules/addons/WebExtensionBootstrap.js
lib/firefox45/modules/addons/XPIProvider.jsm
lib/firefox45/modules/addons/XPIProviderUtils.js
lib/firefox45/modules/commonjs/dev/debuggee.js
lib/firefox45/modules/commonjs/dev/frame-script.js
lib/firefox45/modules/commonjs/dev/panel.js
lib/firefox45/modules/commonjs/dev/panel/view.js
lib/firefox45/modules/commonjs/dev/ports.js
lib/firefox45/modules/commonjs/dev/theme.js
lib/firefox45/modules/commonjs/dev/theme/hooks.js
lib/firefox45/modules/commonjs/dev/toolbox.js
lib/firefox45/modules/commonjs/dev/utils.js
lib/firefox45/modules/commonjs/dev/volcan.js
lib/firefox45/modules/commonjs/diffpatcher/diff.js
lib/firefox45/modules/commonjs/diffpatcher/index.js
lib/firefox45/modules/commonjs/diffpatcher/patch.js
lib/firefox45/modules/commonjs/diffpatcher/rebase.js
lib/firefox45/modules/commonjs/diffpatcher/test/common.js
lib/firefox45/modules/commonjs/diffpatcher/test/diff.js
lib/firefox45/modules/commonjs/diffpatcher/test/index.js
lib/firefox45/modules/commonjs/diffpatcher/test/patch.js
lib/firefox45/modules/commonjs/diffpatcher/test/tap.js
lib/firefox45/modules/commonjs/framescript/FrameScriptManager.jsm
lib/firefox45/modules/commonjs/framescript/content.jsm
lib/firefox45/modules/commonjs/framescript/context-menu.js
lib/firefox45/modules/commonjs/framescript/manager.js
lib/firefox45/modules/commonjs/framescript/util.js
lib/firefox45/modules/commonjs/index.js
lib/firefox45/modules/commonjs/jetpack-id/index.js
lib/firefox45/modules/commonjs/method/core.js
lib/firefox45/modules/commonjs/method/test/browser.js
lib/firefox45/modules/commonjs/method/test/common.js
lib/firefox45/modules/commonjs/mozilla-toolkit-versioning/index.js
lib/firefox45/modules/commonjs/mozilla-toolkit-versioning/lib/utils.js
lib/firefox45/modules/commonjs/node/os.js
lib/firefox45/modules/commonjs/sdk/addon/bootstrap.js
lib/firefox45/modules/commonjs/sdk/addon/events.js
lib/firefox45/modules/commonjs/sdk/addon/host.js
lib/firefox45/modules/commonjs/sdk/addon/installer.js
lib/firefox45/modules/commonjs/sdk/addon/manager.js
lib/firefox45/modules/commonjs/sdk/addon/runner.js
lib/firefox45/modules/commonjs/sdk/addon/window.js
lib/firefox45/modules/commonjs/sdk/base64.js
lib/firefox45/modules/commonjs/sdk/browser/events.js
lib/firefox45/modules/commonjs/sdk/clipboard.js
lib/firefox45/modules/commonjs/sdk/console/plain-text.js
lib/firefox45/modules/commonjs/sdk/console/traceback.js
lib/firefox45/modules/commonjs/sdk/content/content-worker.js
lib/firefox45/modules/commonjs/sdk/content/content.js
lib/firefox45/modules/commonjs/sdk/content/context-menu.js
lib/firefox45/modules/commonjs/sdk/content/events.js
lib/firefox45/modules/commonjs/sdk/content/l10n-html.js
lib/firefox45/modules/commonjs/sdk/content/loader.js
lib/firefox45/modules/commonjs/sdk/content/mod.js
lib/firefox45/modules/commonjs/sdk/content/page-mod.js
lib/firefox45/modules/commonjs/sdk/content/page-worker.js
lib/firefox45/modules/commonjs/sdk/content/sandbox.js
lib/firefox45/modules/commonjs/sdk/content/sandbox/events.js
lib/firefox45/modules/commonjs/sdk/content/tab-events.js
lib/firefox45/modules/commonjs/sdk/content/thumbnail.js
lib/firefox45/modules/commonjs/sdk/content/utils.js
lib/firefox45/modules/commonjs/sdk/content/worker-child.js
lib/firefox45/modules/commonjs/sdk/content/worker.js
lib/firefox45/modules/commonjs/sdk/context-menu.js
lib/firefox45/modules/commonjs/sdk/context-menu/context.js
lib/firefox45/modules/commonjs/sdk/context-menu/core.js
lib/firefox45/modules/commonjs/sdk/context-menu/readers.js
lib/firefox45/modules/commonjs/sdk/context-menu@2.js
lib/firefox45/modules/commonjs/sdk/core/disposable.js
lib/firefox45/modules/commonjs/sdk/core/heritage.js
lib/firefox45/modules/commonjs/sdk/core/namespace.js
lib/firefox45/modules/commonjs/sdk/core/observer.js
lib/firefox45/modules/commonjs/sdk/core/promise.js
lib/firefox45/modules/commonjs/sdk/core/reference.js
lib/firefox45/modules/commonjs/sdk/deprecated/api-utils.js
lib/firefox45/modules/commonjs/sdk/deprecated/events/assembler.js
lib/firefox45/modules/commonjs/sdk/deprecated/sync-worker.js
lib/firefox45/modules/commonjs/sdk/deprecated/unit-test-finder.js
lib/firefox45/modules/commonjs/sdk/deprecated/unit-test.js
lib/firefox45/modules/commonjs/sdk/deprecated/window-utils.js
lib/firefox45/modules/commonjs/sdk/dom/events-shimmed.js
lib/firefox45/modules/commonjs/sdk/dom/events.js
lib/firefox45/modules/commonjs/sdk/dom/events/keys.js
lib/firefox45/modules/commonjs/sdk/event/chrome.js
lib/firefox45/modules/commonjs/sdk/event/core.js
lib/firefox45/modules/commonjs/sdk/event/dom.js
lib/firefox45/modules/commonjs/sdk/event/target.js
lib/firefox45/modules/commonjs/sdk/event/utils.js
lib/firefox45/modules/commonjs/sdk/frame/hidden-frame.js
lib/firefox45/modules/commonjs/sdk/frame/utils.js
lib/firefox45/modules/commonjs/sdk/fs/path.js
lib/firefox45/modules/commonjs/sdk/hotkeys.js
lib/firefox45/modules/commonjs/sdk/indexed-db.js
lib/firefox45/modules/commonjs/sdk/input/browser.js
lib/firefox45/modules/commonjs/sdk/input/customizable-ui.js
lib/firefox45/modules/commonjs/sdk/input/frame.js
lib/firefox45/modules/commonjs/sdk/input/system.js
lib/firefox45/modules/commonjs/sdk/io/buffer.js
lib/firefox45/modules/commonjs/sdk/io/byte-streams.js
lib/firefox45/modules/commonjs/sdk/io/file.js
lib/firefox45/modules/commonjs/sdk/io/fs.js
lib/firefox45/modules/commonjs/sdk/io/stream.js
lib/firefox45/modules/commonjs/sdk/io/text-streams.js
lib/firefox45/modules/commonjs/sdk/keyboard/hotkeys.js
lib/firefox45/modules/commonjs/sdk/keyboard/observer.js
lib/firefox45/modules/commonjs/sdk/keyboard/utils.js
lib/firefox45/modules/commonjs/sdk/l10n.js
lib/firefox45/modules/commonjs/sdk/l10n/core.js
lib/firefox45/modules/commonjs/sdk/l10n/html.js
lib/firefox45/modules/commonjs/sdk/l10n/json/core.js
lib/firefox45/modules/commonjs/sdk/l10n/loader.js
lib/firefox45/modules/commonjs/sdk/l10n/locale.js
lib/firefox45/modules/commonjs/sdk/l10n/plural-rules.js
lib/firefox45/modules/commonjs/sdk/l10n/prefs.js
lib/firefox45/modules/commonjs/sdk/l10n/properties/core.js
lib/firefox45/modules/commonjs/sdk/lang/functional.js
lib/firefox45/modules/commonjs/sdk/lang/functional/concurrent.js
lib/firefox45/modules/commonjs/sdk/lang/functional/core.js
lib/firefox45/modules/commonjs/sdk/lang/functional/helpers.js
lib/firefox45/modules/commonjs/sdk/lang/type.js
lib/firefox45/modules/commonjs/sdk/lang/weak-set.js
lib/firefox45/modules/commonjs/sdk/loader/cuddlefish.js
lib/firefox45/modules/commonjs/sdk/loader/sandbox.js
lib/firefox45/modules/commonjs/sdk/messaging.js
lib/firefox45/modules/commonjs/sdk/model/core.js
lib/firefox45/modules/commonjs/sdk/net/url.js
lib/firefox45/modules/commonjs/sdk/net/xhr.js
lib/firefox45/modules/commonjs/sdk/notifications.js
lib/firefox45/modules/commonjs/sdk/output/system.js
lib/firefox45/modules/commonjs/sdk/page-mod.js
lib/firefox45/modules/commonjs/sdk/page-mod/match-pattern.js
lib/firefox45/modules/commonjs/sdk/page-worker.js
lib/firefox45/modules/commonjs/sdk/panel.js
lib/firefox45/modules/commonjs/sdk/panel/events.js
lib/firefox45/modules/commonjs/sdk/panel/utils.js
lib/firefox45/modules/commonjs/sdk/passwords.js
lib/firefox45/modules/commonjs/sdk/passwords/utils.js
lib/firefox45/modules/commonjs/sdk/places/bookmarks.js
lib/firefox45/modules/commonjs/sdk/places/contract.js
lib/firefox45/modules/commonjs/sdk/places/events.js
lib/firefox45/modules/commonjs/sdk/places/favicon.js
lib/firefox45/modules/commonjs/sdk/places/history.js
lib/firefox45/modules/commonjs/sdk/places/host/host-bookmarks.js
lib/firefox45/modules/commonjs/sdk/places/host/host-query.js
lib/firefox45/modules/commonjs/sdk/places/host/host-tags.js
lib/firefox45/modules/commonjs/sdk/places/utils.js
lib/firefox45/modules/commonjs/sdk/platform/xpcom.js
lib/firefox45/modules/commonjs/sdk/preferences/event-target.js
lib/firefox45/modules/commonjs/sdk/preferences/native-options.js
lib/firefox45/modules/commonjs/sdk/preferences/service.js
lib/firefox45/modules/commonjs/sdk/preferences/utils.js
lib/firefox45/modules/commonjs/sdk/private-browsing.js
lib/firefox45/modules/commonjs/sdk/private-browsing/utils.js
lib/firefox45/modules/commonjs/sdk/querystring.js
lib/firefox45/modules/commonjs/sdk/remote/child.js
lib/firefox45/modules/commonjs/sdk/remote/core.js
lib/firefox45/modules/commonjs/sdk/remote/parent.js
lib/firefox45/modules/commonjs/sdk/remote/utils.js
lib/firefox45/modules/commonjs/sdk/request.js
lib/firefox45/modules/commonjs/sdk/selection.js
lib/firefox45/modules/commonjs/sdk/self.js
lib/firefox45/modules/commonjs/sdk/simple-prefs.js
lib/firefox45/modules/commonjs/sdk/simple-storage.js
lib/firefox45/modules/commonjs/sdk/stylesheet/style.js
lib/firefox45/modules/commonjs/sdk/stylesheet/utils.js
lib/firefox45/modules/commonjs/sdk/system.js
lib/firefox45/modules/commonjs/sdk/system/child_process.js
lib/firefox45/modules/commonjs/sdk/system/child_process/subprocess.js
lib/firefox45/modules/commonjs/sdk/system/child_process/subprocess_worker_unix.js
lib/firefox45/modules/commonjs/sdk/system/child_process/subprocess_worker_win.js
lib/firefox45/modules/commonjs/sdk/system/environment.js
lib/firefox45/modules/commonjs/sdk/system/events-shimmed.js
lib/firefox45/modules/commonjs/sdk/system/events.js
lib/firefox45/modules/commonjs/sdk/system/globals.js
lib/firefox45/modules/commonjs/sdk/system/process.js
lib/firefox45/modules/commonjs/sdk/system/runtime.js
lib/firefox45/modules/commonjs/sdk/system/unload.js
lib/firefox45/modules/commonjs/sdk/system/xul-app.js
lib/firefox45/modules/commonjs/sdk/system/xul-app.jsm
lib/firefox45/modules/commonjs/sdk/tab/events.js
lib/firefox45/modules/commonjs/sdk/tabs.js
lib/firefox45/modules/commonjs/sdk/tabs/common.js
lib/firefox45/modules/commonjs/sdk/tabs/events.js
lib/firefox45/modules/commonjs/sdk/tabs/helpers.js
lib/firefox45/modules/commonjs/sdk/tabs/namespace.js
lib/firefox45/modules/commonjs/sdk/tabs/observer.js
lib/firefox45/modules/commonjs/sdk/tabs/tab-fennec.js
lib/firefox45/modules/commonjs/sdk/tabs/tab-firefox.js
lib/firefox45/modules/commonjs/sdk/tabs/tab.js
lib/firefox45/modules/commonjs/sdk/tabs/tabs-firefox.js
lib/firefox45/modules/commonjs/sdk/tabs/utils.js
lib/firefox45/modules/commonjs/sdk/tabs/worker.js
lib/firefox45/modules/commonjs/sdk/test.js
lib/firefox45/modules/commonjs/sdk/test/assert.js
lib/firefox45/modules/commonjs/sdk/test/harness.js
lib/firefox45/modules/commonjs/sdk/test/httpd.js
lib/firefox45/modules/commonjs/sdk/test/loader.js
lib/firefox45/modules/commonjs/sdk/test/memory.js
lib/firefox45/modules/commonjs/sdk/test/options.js
lib/firefox45/modules/commonjs/sdk/test/runner.js
lib/firefox45/modules/commonjs/sdk/test/utils.js
lib/firefox45/modules/commonjs/sdk/timers.js
lib/firefox45/modules/commonjs/sdk/ui.js
lib/firefox45/modules/commonjs/sdk/ui/button/action.js
lib/firefox45/modules/commonjs/sdk/ui/button/contract.js
lib/firefox45/modules/commonjs/sdk/ui/button/toggle.js
lib/firefox45/modules/commonjs/sdk/ui/button/view.js
lib/firefox45/modules/commonjs/sdk/ui/button/view/events.js
lib/firefox45/modules/commonjs/sdk/ui/component.js
lib/firefox45/modules/commonjs/sdk/ui/frame.js
lib/firefox45/modules/commonjs/sdk/ui/frame/model.js
lib/firefox45/modules/commonjs/sdk/ui/frame/view.html
lib/firefox45/modules/commonjs/sdk/ui/frame/view.js
lib/firefox45/modules/commonjs/sdk/ui/id.js
lib/firefox45/modules/commonjs/sdk/ui/sidebar.js
lib/firefox45/modules/commonjs/sdk/ui/sidebar/actions.js
lib/firefox45/modules/commonjs/sdk/ui/sidebar/contract.js
lib/firefox45/modules/commonjs/sdk/ui/sidebar/namespace.js
lib/firefox45/modules/commonjs/sdk/ui/sidebar/utils.js
lib/firefox45/modules/commonjs/sdk/ui/sidebar/view.js
lib/firefox45/modules/commonjs/sdk/ui/state.js
lib/firefox45/modules/commonjs/sdk/ui/state/events.js
lib/firefox45/modules/commonjs/sdk/ui/toolbar.js
lib/firefox45/modules/commonjs/sdk/ui/toolbar/model.js
lib/firefox45/modules/commonjs/sdk/ui/toolbar/view.js
lib/firefox45/modules/commonjs/sdk/uri/resource.js
lib/firefox45/modules/commonjs/sdk/url.js
lib/firefox45/modules/commonjs/sdk/url/utils.js
lib/firefox45/modules/commonjs/sdk/util/array.js
lib/firefox45/modules/commonjs/sdk/util/collection.js
lib/firefox45/modules/commonjs/sdk/util/contract.js
lib/firefox45/modules/commonjs/sdk/util/deprecate.js
lib/firefox45/modules/commonjs/sdk/util/dispatcher.js
lib/firefox45/modules/commonjs/sdk/util/list.js
lib/firefox45/modules/commonjs/sdk/util/match-pattern.js
lib/firefox45/modules/commonjs/sdk/util/object.js
lib/firefox45/modules/commonjs/sdk/util/rules.js
lib/firefox45/modules/commonjs/sdk/util/sequence.js
lib/firefox45/modules/commonjs/sdk/util/uuid.js
lib/firefox45/modules/commonjs/sdk/view/core.js
lib/firefox45/modules/commonjs/sdk/window/browser.js
lib/firefox45/modules/commonjs/sdk/window/events.js
lib/firefox45/modules/commonjs/sdk/window/helpers.js
lib/firefox45/modules/commonjs/sdk/window/namespace.js
lib/firefox45/modules/commonjs/sdk/window/utils.js
lib/firefox45/modules/commonjs/sdk/windows.js
lib/firefox45/modules/commonjs/sdk/windows/fennec.js
lib/firefox45/modules/commonjs/sdk/windows/firefox.js
lib/firefox45/modules/commonjs/sdk/windows/observer.js
lib/firefox45/modules/commonjs/sdk/windows/tabs-fennec.js
lib/firefox45/modules/commonjs/sdk/worker/utils.js
lib/firefox45/modules/commonjs/sdk/zip/utils.js
lib/firefox45/modules/commonjs/test.js
lib/firefox45/modules/commonjs/toolkit/loader.js
lib/firefox45/modules/commonjs/toolkit/require.js
lib/firefox45/modules/ctypes.jsm
lib/firefox45/modules/debug.js
lib/firefox45/modules/devtools/Console.jsm
lib/firefox45/modules/devtools/Loader.jsm
lib/firefox45/modules/devtools/Simulator.jsm
lib/firefox45/modules/devtools/dbg-client.jsm
lib/firefox45/modules/devtools/dbg-server.jsm
lib/firefox45/modules/devtools/event-emitter.js
lib/firefox45/modules/devtools/shared/Console.jsm
lib/firefox45/modules/devtools/shared/Loader.jsm
lib/firefox45/modules/devtools/shared/apps/Simulator.jsm
lib/firefox45/modules/identity/FirefoxAccounts.jsm
lib/firefox45/modules/identity/Identity.jsm
lib/firefox45/modules/identity/IdentityProvider.jsm
lib/firefox45/modules/identity/IdentityStore.jsm
lib/firefox45/modules/identity/IdentityUtils.jsm
lib/firefox45/modules/identity/LogUtils.jsm
lib/firefox45/modules/identity/MinimalIdentity.jsm
lib/firefox45/modules/identity/RelyingParty.jsm
lib/firefox45/modules/identity/Sandbox.jsm
lib/firefox45/modules/identity/jwcrypto.jsm
lib/firefox45/modules/jsdebugger.jsm
lib/firefox45/modules/lz4.js
lib/firefox45/modules/lz4_internal.js
lib/firefox45/modules/mcc_iso3166_table.jsm
lib/firefox45/modules/media/IdpSandbox.jsm
lib/firefox45/modules/media/PeerConnectionIdp.jsm
lib/firefox45/modules/media/RTCStatsReport.jsm
lib/firefox45/modules/nsFormAutoCompleteResult.jsm
lib/firefox45/modules/osfile.jsm
lib/firefox45/modules/osfile/osfile_async_front.jsm
lib/firefox45/modules/osfile/osfile_async_worker.js
lib/firefox45/modules/osfile/osfile_native.jsm
lib/firefox45/modules/osfile/osfile_shared_allthreads.jsm
lib/firefox45/modules/osfile/osfile_shared_front.jsm
lib/firefox45/modules/osfile/osfile_unix_allthreads.jsm
lib/firefox45/modules/osfile/osfile_unix_back.jsm
lib/firefox45/modules/osfile/osfile_unix_front.jsm
lib/firefox45/modules/osfile/osfile_win_allthreads.jsm
lib/firefox45/modules/osfile/osfile_win_back.jsm
lib/firefox45/modules/osfile/osfile_win_front.jsm
lib/firefox45/modules/osfile/ospath.jsm
lib/firefox45/modules/osfile/ospath_unix.jsm
lib/firefox45/modules/osfile/ospath_win.jsm
lib/firefox45/modules/reader/JSDOMParser.js
lib/firefox45/modules/reader/Readability.js
lib/firefox45/modules/reader/ReaderWorker.js
lib/firefox45/modules/reader/ReaderWorker.jsm
lib/firefox45/modules/reflect.jsm
lib/firefox45/modules/sdk/bootstrap.js
lib/firefox45/modules/sdk/system/Startup.js
lib/firefox45/modules/services-common/async.js
lib/firefox45/modules/services-common/bagheeraclient.js
lib/firefox45/modules/services-common/hawkclient.js
lib/firefox45/modules/services-common/hawkrequest.js
lib/firefox45/modules/services-common/logmanager.js
lib/firefox45/modules/services-common/moz-kinto-client.js
lib/firefox45/modules/services-common/observers.js
lib/firefox45/modules/services-common/rest.js
lib/firefox45/modules/services-common/stringbundle.js
lib/firefox45/modules/services-common/tokenserverclient.js
lib/firefox45/modules/services-common/utils.js
lib/firefox45/modules/services-crypto/WeaveCrypto.js
lib/firefox45/modules/services-crypto/utils.js
lib/firefox45/modules/services-sync/FxaMigrator.jsm
lib/firefox45/modules/services-sync/SyncedTabs.jsm
lib/firefox45/modules/services-sync/addonsreconciler.js
lib/firefox45/modules/services-sync/addonutils.js
lib/firefox45/modules/services-sync/browserid_identity.js
lib/firefox45/modules/services-sync/constants.js
lib/firefox45/modules/services-sync/engines.js
lib/firefox45/modules/services-sync/engines/addons.js
lib/firefox45/modules/services-sync/engines/bookmarks.js
lib/firefox45/modules/services-sync/engines/clients.js
lib/firefox45/modules/services-sync/engines/forms.js
lib/firefox45/modules/services-sync/engines/history.js
lib/firefox45/modules/services-sync/engines/passwords.js
lib/firefox45/modules/services-sync/engines/prefs.js
lib/firefox45/modules/services-sync/engines/tabs.js
lib/firefox45/modules/services-sync/healthreport.jsm
lib/firefox45/modules/services-sync/identity.js
lib/firefox45/modules/services-sync/jpakeclient.js
lib/firefox45/modules/services-sync/keys.js
lib/firefox45/modules/services-sync/main.js
lib/firefox45/modules/services-sync/policies.js
lib/firefox45/modules/services-sync/record.js
lib/firefox45/modules/services-sync/resource.js
lib/firefox45/modules/services-sync/rest.js
lib/firefox45/modules/services-sync/service.js
lib/firefox45/modules/services-sync/stages/cluster.js
lib/firefox45/modules/services-sync/stages/declined.js
lib/firefox45/modules/services-sync/stages/enginesync.js
lib/firefox45/modules/services-sync/status.js
lib/firefox45/modules/services-sync/userapi.js
lib/firefox45/modules/services-sync/util.js
lib/firefox45/modules/services/datareporting/policy.jsm
lib/firefox45/modules/services/healthreport/healthreporter.jsm
lib/firefox45/modules/services/healthreport/profile.jsm
lib/firefox45/modules/services/healthreport/providers.jsm
lib/firefox45/modules/services/metrics/dataprovider.jsm
lib/firefox45/modules/services/metrics/providermanager.jsm
lib/firefox45/modules/services/metrics/storage.jsm
lib/firefox45/modules/sqlite/sqlite_internal.js
lib/firefox45/modules/vtt.jsm
lib/firefox45/modules/workers/PromiseWorker.js
lib/firefox45/modules/workers/require.js
lib/firefox45/platform.ini
lib/firefox45/plugin-container
lib/firefox45/removed-files
lib/firefox45/res/EditorOverride.css
lib/firefox45/res/ImageDocument.css
lib/firefox45/res/TopLevelImageDocument.css
lib/firefox45/res/TopLevelVideoDocument.css
lib/firefox45/res/accessiblecaret.png
lib/firefox45/res/accessiblecaret@1.5x.png
lib/firefox45/res/accessiblecaret@2.25x.png
lib/firefox45/res/accessiblecaret@2x.png
lib/firefox45/res/accessiblecaret_tilt_left.png
lib/firefox45/res/accessiblecaret_tilt_left@1.5x.png
lib/firefox45/res/accessiblecaret_tilt_left@2.25x.png
lib/firefox45/res/accessiblecaret_tilt_left@2x.png
lib/firefox45/res/accessiblecaret_tilt_right.png
lib/firefox45/res/accessiblecaret_tilt_right@1.5x.png
lib/firefox45/res/accessiblecaret_tilt_right@2.25x.png
lib/firefox45/res/accessiblecaret_tilt_right@2x.png
lib/firefox45/res/contenteditable.css
lib/firefox45/res/designmode.css
lib/firefox45/res/dtd/htmlmathml-f.ent
lib/firefox45/res/entityTables/html40Latin1.properties
lib/firefox45/res/entityTables/html40Special.properties
lib/firefox45/res/entityTables/html40Symbols.properties
lib/firefox45/res/entityTables/mathml20.properties
lib/firefox45/res/fonts/mathfont.properties
lib/firefox45/res/fonts/mathfontSTIXGeneral.properties
lib/firefox45/res/fonts/mathfontUnicode.properties
lib/firefox45/res/grabber.gif
lib/firefox45/res/html/folder.png
lib/firefox45/res/language.properties
lib/firefox45/res/svg.css
lib/firefox45/res/table-add-column-after-active.gif
lib/firefox45/res/table-add-column-after-hover.gif
lib/firefox45/res/table-add-column-after.gif
lib/firefox45/res/table-add-column-before-active.gif
lib/firefox45/res/table-add-column-before-hover.gif
lib/firefox45/res/table-add-column-before.gif
lib/firefox45/res/table-add-row-after-active.gif
lib/firefox45/res/table-add-row-after-hover.gif
lib/firefox45/res/table-add-row-after.gif
lib/firefox45/res/table-add-row-before-active.gif
lib/firefox45/res/table-add-row-before-hover.gif
lib/firefox45/res/table-add-row-before.gif
lib/firefox45/res/table-remove-column-active.gif
lib/firefox45/res/table-remove-column-hover.gif
lib/firefox45/res/table-remove-column.gif
lib/firefox45/res/table-remove-row-active.gif
lib/firefox45/res/table-remove-row-hover.gif
lib/firefox45/res/table-remove-row.gif
lib/firefox45/res/text_caret.png
lib/firefox45/res/text_caret@1.5x.png
lib/firefox45/res/text_caret@2.25x.png
lib/firefox45/res/text_caret@2x.png
lib/firefox45/res/text_caret_tilt_left.png
lib/firefox45/res/text_caret_tilt_left@1.5x.png
lib/firefox45/res/text_caret_tilt_left@2.25x.png
lib/firefox45/res/text_caret_tilt_left@2x.png
lib/firefox45/res/text_caret_tilt_right.png
lib/firefox45/res/text_caret_tilt_right@1.5x.png
lib/firefox45/res/text_caret_tilt_right@2.25x.png
lib/firefox45/res/text_caret_tilt_right@2x.png
lib/firefox45/run-mozilla.sh
lib/firefox45/webapprt-stub
lib/firefox45/webapprt/chrome.manifest
lib/firefox45/webapprt/chrome/chrome.manifest
lib/firefox45/webapprt/chrome/en-US/locale/webapprt/appstrings.properties
lib/firefox45/webapprt/chrome/en-US/locale/webapprt/dom.properties
lib/firefox45/webapprt/chrome/en-US/locale/webapprt/downloads/downloads.dtd
lib/firefox45/webapprt/chrome/en-US/locale/webapprt/getUserMediaDialog.dtd
lib/firefox45/webapprt/chrome/en-US/locale/webapprt/webapp.dtd
lib/firefox45/webapprt/chrome/en-US/locale/webapprt/webapp.properties
lib/firefox45/webapprt/chrome/webapprt/content/downloads/download.xml
lib/firefox45/webapprt/chrome/webapprt/content/downloads/downloads.css
lib/firefox45/webapprt/chrome/webapprt/content/downloads/downloads.js
lib/firefox45/webapprt/chrome/webapprt/content/downloads/downloads.xul
lib/firefox45/webapprt/chrome/webapprt/content/getUserMediaDialog.js
lib/firefox45/webapprt/chrome/webapprt/content/getUserMediaDialog.xul
lib/firefox45/webapprt/chrome/webapprt/content/mochitest-shared.js
lib/firefox45/webapprt/chrome/webapprt/content/mochitest.js
lib/firefox45/webapprt/chrome/webapprt/content/mochitest.xul
lib/firefox45/webapprt/chrome/webapprt/content/webapp.js
lib/firefox45/webapprt/chrome/webapprt/content/webapp.xul
lib/firefox45/webapprt/chrome/webapprt/skin/classic/webapprt/downloads/downloadButtons.png
lib/firefox45/webapprt/chrome/webapprt/skin/classic/webapprt/downloads/downloadIcon.png
lib/firefox45/webapprt/chrome/webapprt/skin/classic/webapprt/downloads/downloads.css
lib/firefox45/webapprt/components/CommandLineHandler.js
lib/firefox45/webapprt/components/ContentPermission.js
lib/firefox45/webapprt/components/DirectoryProvider.js
lib/firefox45/webapprt/components/PaymentUIGlue.js
lib/firefox45/webapprt/components/components.manifest
lib/firefox45/webapprt/defaults/preferences/prefs.js
lib/firefox45/webapprt/modules/DownloadView.jsm
lib/firefox45/webapprt/modules/Startup.jsm
lib/firefox45/webapprt/modules/WebRTCHandler.jsm
lib/firefox45/webapprt/modules/WebappManager.jsm
lib/firefox45/webapprt/modules/WebappRT.jsm
lib/firefox45/webapprt/webapprt.ini
share/applications/firefox45.desktop
share/pixmaps/firefox45.png
$NetBSD: distinfo,v 1.1 2016/04/27 16:36:50 ryoon Exp $
SHA1 (firefox-45.1.0esr.source.tar.xz) = 177b27772d1009bfc277577ad4e97d538073f508
RMD160 (firefox-45.1.0esr.source.tar.xz) = 8bb7166260dbe8faca9e799bc93cdd0fc3bdd144
SHA512 (firefox-45.1.0esr.source.tar.xz) = 0190cc133171ff731ba2ae7a5296e44b95ee2371c36c016dd0838fd8da8765d607ab2ebf6c7d32abdee2aa1ad5e52c58d40d73cc887e2caaad1f863d04211463
Size (firefox-45.1.0esr.source.tar.xz) = 184373664 bytes
SHA1 (patch-aa) = c97ef4b107ea917c2a10d1a1fdaf524d794612a0
SHA1 (patch-ao) = f4244b8e3d89743cb97395913e8916f7121c172e
SHA1 (patch-as) = d5d7f8250a9cd462f25d529c2a79c59a1bba9db2
SHA1 (patch-bf) = 75c971043e9f693203d6bd670b2c20c4952a7756
SHA1 (patch-browser_installer_package-manifest.in) = 7c4f1822cd78a5ed465b954f4b62514c64ad7b84
SHA1 (patch-build_autoconf_compiler-opts.m4) = ccdc06a2b07b7664f9cb91bcc4fb29052dda8b07
SHA1 (patch-build_autoconf_nss.m4) = 970fcd9aeede2347651c516d5211c4555dd28a4d
SHA1 (patch-build_gyp.mozbuild) = 201715e30e20090e9a9ef54cb981d283c9aabf8f
SHA1 (patch-build_pgo_profileserver.py) = 8666187258e47c037f2065a19a5b38946fdc0f6c
SHA1 (patch-config_Makefile.in) = 0a072de112e0e5cc4b929a7094498fcf003e27b3
SHA1 (patch-config_baseconfig.mk) = b8e8d46be72d381f7b95b62b9c0778e98954a888
SHA1 (patch-config_external_moz.build) = fa4f350b077f5c4a1d7a07d123c635bd9c7f1f75
SHA1 (patch-config_rules.mk) = d7f7060b246092eae3d7a792e43b14e462a37abd
SHA1 (patch-config_stl__wrappers_ios) = 00d723e2f2f252485350ede5833f0bb84c1235c1
SHA1 (patch-config_stl__wrappers_ostream) = 7be7fe36704ffbdc070a113b46b4f391a598206b
SHA1 (patch-config_system-headers) = a87a47454da13791bd0158ba6c8431164c1fb1b4
SHA1 (patch-config_system__wrappers_unwind.h) = b3bdac0710179b9c8f8eabd824216d0114504491
SHA1 (patch-dom_base_DOMRequest.cpp) = b934991e8ad03c3785e4c7d197b42f697571ec09
SHA1 (patch-dom_base_moz.build) = 8b59c33958b7037c4c051742c64f1455096ced46
SHA1 (patch-dom_media_gstreamer_GStreamerAllocator.cpp) = 4685a646a76282619d7c42fac43500e0065f067d
SHA1 (patch-dom_media_moz.build) = a89695c9557f59e00b42c60742f27a82de0f77fb
SHA1 (patch-dom_plugins_ipc_PluginModuleChild.cpp) = 6219ce1b3f2893c1d53453fcb5568d081b72e106
SHA1 (patch-dom_plugins_ipc_PluginModuleChild.h) = 0a7f3167e939822013ae6195406657453578453e
SHA1 (patch-dom_plugins_ipc_PluginProcessChild.cpp) = 0d10aa4c913d431fb8fa5f995f6e40cb364f069e
SHA1 (patch-dom_system_OSFileConstants.cpp) = 78d66c5ef615e5464a1003bcc817388102333200
SHA1 (patch-extensions_spellcheck_hunspell_glue_mozHunspell.cpp) = 376a4197f665ede1c27be19ac2618533655a63f1
SHA1 (patch-gfx_cairo_libpixman_src_pixman-arm-neon-asm.S) = 0379bef956f8abf2da2e059389149e133527faab
SHA1 (patch-gfx_gl_GLContextProviderGLX.cpp) = 2cc997cab71a84c1f50a791693519a0626564426
SHA1 (patch-gfx_graphite2_src_Bidi.cpp) = 5e80b4a32a47ae44d237fec69ea87bdd612a76ce
SHA1 (patch-gfx_moz.build) = a98bda4727538f4a0f09a20b84f9dd883edaf7d9
SHA1 (patch-gfx_skia_generate__mozbuild.py) = 68d690afd9092f11e17b7ec7db0987e8b6778cc5
SHA1 (patch-gfx_skia_moz.build) = 019f502ee236c67ab3cba8c0e31591899c2c857c
SHA1 (patch-gfx_skia_skia_src_core_SkUtilsArm.cpp) = 80283dd702be199ec7d038f4b2bb3385e0c4b482
SHA1 (patch-gfx_skia_skia_src_opts_SkBitmapProcState__opts__arm.cpp) = 99fad319f00a72754f3596791f353b8ab1359d2b
SHA1 (patch-gfx_skia_skia_src_opts_memset.arm.S) = a7ecacb40b482b2713ec71af197528bbe4bea00d
SHA1 (patch-gfx_thebes_moz.build) = bbc67642604042c8d63e6de1a02d2c62fcf16d83
SHA1 (patch-gfx_ycbcr__row__arm.s) = cddf801b7ffc113a3e26bcc1f8d4a0aa3ced60c7
SHA1 (patch-gfx_ycbcr_moz.build) = 121386ef62ff7425e6f93bc624555199f2ac3485
SHA1 (patch-gfx_ycbcr_yuv__row__arm.S) = f9909ded72762b2c3547dd002707db43745f2b9d
SHA1 (patch-image_decoders_nsJPEGDecoder.cpp) = 522c46732d44be15411d39e16c89bc848d5c6f7a
SHA1 (patch-intl_hyphenation_glue_hnjalloc.h) = 4d5e1ff0b7b7da4755fb1dbab1fd671478c0335c
SHA1 (patch-ipc_chromium_src_base_atomicops.h) = 24b63a6e51d9ab27f2788ee02f2ffa7e1c36f29a
SHA1 (patch-ipc_chromium_src_base_file__util__posix.cc) = 70772ab2a474b7d3d15cf401c636ca843cfe2034
SHA1 (patch-ipc_chromium_src_base_message__loop.cc) = 16158489773bbcba35e224d30bebace0c93599ae
SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 2c5ce6290760e0435365dac788d283f9bb78acd9
SHA1 (patch-ipc_chromium_src_base_platform__thread.h) = e6d7ac39a8b2a1b232638f7671e8530acfed0b97
SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = 6c98bbecde21b8571c71477f351488d9a3da45f3
SHA1 (patch-ipc_chromium_src_base_process__util.h) = 4b24c3467866a601d68bb83f44e5fd38fb27188d
SHA1 (patch-ipc_chromium_src_base_process__util__bsd.cc) = 9ffe81c7c4485bef53c4e0846b1d4499f4b5b23c
SHA1 (patch-ipc_chromium_src_base_process__util__posix.cc) = 6b2611cc902f17e726aabcf4fb5fff2c71852408
SHA1 (patch-ipc_chromium_src_base_scoped__nsautorelease__pool.h) = 8c61a35e99e7f54e4b2bf5931c59eb2b7a04127a
SHA1 (patch-ipc_chromium_src_base_sys__info__posix.cc) = 927f1f700c917f6f6b531aa4c10aba0fdd181195
SHA1 (patch-ipc_chromium_src_base_time__posix.cc) = 337a0b4a5d51d68c7699b79c7591b953ea23ca67
SHA1 (patch-ipc_chromium_src_build_build__config.h) = af5a10df7d8fe9715f0e43cd6be14f8f20c53517
SHA1 (patch-ipc_chromium_src_chrome_common_transport__dib.h) = 7af18973c005d7b144a225bacf41833e059cb400
SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 45f2f22b4f567ffddd4458f635179b5201e87e64
SHA1 (patch-ipc_glue_StringUtil.cpp) = f238adebb5bdf57f7109a781c6f3fb195763f3c0
SHA1 (patch-ipc_glue_moz.build) = 5c3f99ede7ab2d8ad58e92b31576971de87cb528
SHA1 (patch-js__src__vm__SPSProfiler.cpp) = 989ba25e4c5308d21d07baa802decce13609a475
SHA1 (patch-js_src_ctypes_CTypes.h) = 768a084239f92a424c1c7dc9eaaf9be9456ca9f0
SHA1 (patch-js_src_frontend_ParseMaps.cpp) = c00117d79b78904bc50a1d664a8fc0e4e339bfbc
SHA1 (patch-js_src_jit-LIR.cpp) = 6e678d6886724dd346b8ca58ef903bd00dc8f5da
SHA1 (patch-js_src_jit_MIR.cpp) = 32586fb4437b48c62ef3dd8267f4b1796196230b
SHA1 (patch-js_src_jit_arm_Architecture-arm.cpp) = d734bea22d803f5f1019fd817cd3993da29a422b
SHA1 (patch-js_src_jsdate.cpp) = 4e15badd1d9a08462a851aa2a8c47fd1e137626b
SHA1 (patch-js_src_jskwgen.cpp) = 34d3b92e13366d4b43ff755ad54f392c116d5c59
SHA1 (patch-js_src_jsmath.cpp) = 7d4993ae91e9b5e6820358165603819aefb586f9
SHA1 (patch-js_src_shell_jsoptparse.cpp) = 2502ae2b4e6103788c2a888b6cb19cedf9d2976f
SHA1 (patch-js_xpconnect_src_XPCConvert.cpp) = 915777e9bb5366be41866cdb6ea0ad2b1c006dde
SHA1 (patch-js_xpconnect_src_xpcprivate.h) = 8a15ff542c9d3fce448d9ec63706f7dfb411d926
SHA1 (patch-media_libcubeb_src_cubeb.c) = 5c2a9adef2c3b8fe40490ac8062ae77d182b5e59
SHA1 (patch-media_libcubeb_src_cubeb__alsa.c) = 7394a73b1624ea525885aed524357bbd1a19138b
SHA1 (patch-media_libcubeb_src_cubeb__oss.c) = 54e2a210411c7083bc395033fbf519d581bc4a62
SHA1 (patch-media_libcubeb_src_moz.build) = 3ed7f6e8caf8cca718cd8dcb120bc401cd9a82ef
SHA1 (patch-media_libpng_pngpriv.h) = c9cefd1b5dd85fbd0c875c3f9bc108975398fe3a
SHA1 (patch-media_libsoundtouch_src_cpu__detect__x86.cpp) = db61737afa7773e8cbd82976de3a02c917174696
SHA1 (patch-media_libstagefright_frameworks_av_include_media_stagefright_foundation_AString.h) = b280f691dbe67b6de592dcd04baf33c6cf480cc8
SHA1 (patch-media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp) = b7c21a68f09176100794148aa75eb19829417fed
SHA1 (patch-media_libstagefright_system_core_liblog_fake__log__device.c) = b59809a7292d41bdb352bc425dc46273f1c0c270
SHA1 (patch-media_libstagefright_system_core_liblog_logprint.c) = 56c5590b57caf568e12f8ff7df07daec281855de
SHA1 (patch-media_libtheora_lib_arm_armcpu.c) = 4b215277f9c81154377d401166023c1bf78a3718
SHA1 (patch-media_libtheora_lib_info.c) = cb7628134427aaa4d5824c0e0770c30e5111a933
SHA1 (patch-media_libtheora_moz.build) = 4d03d454e13bda8321198aeb957aaabcfb4c6512
SHA1 (patch-media_libtremor_Makefile.in) = 497d03646caa721bdd129de365aadea8466043af
SHA1 (patch-media_libtremor_moz.build) = 994b04e4c344a91c4b474a752ddc4ca0e2732910
SHA1 (patch-media_libvorbis_Makefile.in) = fd1ce15268eed9c97dd0774398d559cdbed63e53
SHA1 (patch-media_libvorbis_lib_vorbis_info.c) = 1d85195a5553202b0c38dc8dec6db1f4f0513e5f
SHA1 (patch-media_libvorbis_moz.build) = 927f7848305eb2341c9efa96800d30b4a1b8eaa4
SHA1 (patch-media_libyuv_include_libyuv_scale__row.h) = 503b6f2065e9d548a1f01f7158d65874f4886c78
SHA1 (patch-media_mtransport_third__party_nICEr_src_util_mbslen.c) = 2e6f125ae50125a1fff7197e42f3a61b92e0fcfc
SHA1 (patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h) = de7055f891387f96f8fd32366c7189d480354e9e
SHA1 (patch-media_openmax__dl_dl_api_armCOMM__s.h) = 1ce4fe73581ea53f03858f97ce7d7214bcbb5f51
SHA1 (patch-media_webrtc_signaling_test_common.build) = febf2033154d64208632524732c4ef26e9247267
SHA1 (patch-media_webrtc_trunk_webrtc_build_common.gypi) = 4ff5796e15d9aa6adb8495d6f2e5a7f0445a0fac
SHA1 (patch-media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi) = 54c05a12758c377b0f80143048280a7738e7038d
SHA1 (patch-media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc) = 53481a80b410afe962146f08eafe8ff38ac6a241
SHA1 (patch-media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h) = b972e59204760eb885a9a0432ec977f604208a53
SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc) = 9ff1dcf200feaf67bf576f07beb612e0ec91d7d1
SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc) = ee3d3421a4cec22dbd94b5a22e7b877e356a7d9c
SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi) = 0bc751e73456dec547567797ef4b9199e7220f23
SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp) = 7c08c0586874bcb69a9005e8661b853f8664db4c
SHA1 (patch-memory_build_mozjemalloc__compat.c) = c27c745fd6e0bbb120ef34d8a984937d5f2e1319
SHA1 (patch-memory_mozalloc_mozalloc__abort.cpp) = f61a8ef233963d5d9639a4ce68e8584bc7d7c1b2
SHA1 (patch-memory_volatile_VolatileBufferOSX.cpp) = ebea8a615443206376cb4264ed43b5c74e029b7d
SHA1 (patch-mfbt_Attributes.h) = bf3378667704d7c9194b00024bb51ed23fd92286
SHA1 (patch-mfbt_Poison.cpp) = f502581db96b3e5eca25a9aa9035f436e9167503
SHA1 (patch-modules_libjar_nsZipArchive.cpp) = 6aff0f8ed42575d8ca36a524e12e9a1f7351004a
SHA1 (patch-modules_libpref_init_all.js) = fc47d4133490d3da79217864028f5a86023a632f
SHA1 (patch-mozglue_build_arm.cpp) = e89e9ff5a26fb11b55df29a0b29d1cd6f35e46e6
SHA1 (patch-mozglue_build_arm.h) = e303e53d1931b28aab68346c7f6caac4402d16f1
SHA1 (patch-netwerk_dns_moz.build) = 6bf4691cf81d5f6fc1b392a4fac4368615e18faa
SHA1 (patch-pb) = 97c9b2e4cefd524dc6ba825f71c3da2a761aa1f4
SHA1 (patch-pc) = 8b2baa88f0983a2fef4f801cf6b1ae425f6c813a
SHA1 (patch-rc) = 3bc75b2005bb1a371231846ea605bcf55251db57
SHA1 (patch-storage_SQLiteMutex.h) = 9552e325e4e6e0f611a83a5eea2617e04236616f
SHA1 (patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops.h) = 4b664bb6ac2c23e8bfddd406bf76e288548e8910
SHA1 (patch-toolkit_components_protobuf_src_google_protobuf_stubs_platform__macros.h) = 3b0973c96eadb7bff91eab211d3c159a9b22fa9c
SHA1 (patch-toolkit_library_moz.build) = 625d78e64959f78a5d0b8148749bb43a0abcbcf7
SHA1 (patch-toolkit_xre_glxtest.cpp) = cf048491778610454b914400e53072afedd96e7b
SHA1 (patch-toolkit_xre_nsAppRunner.cpp) = f335d64cb0e1d248fd2c41a167ee1874218e7db6
SHA1 (patch-toolkit_xre_nsEmbedFunctions.cpp) = 6ee6fba04a3ecc6596f8aed67f752a1075901fa8
SHA1 (patch-webapprt_moz.build) = 177468d5e12c49db1ad5376f0f3df34fa9df070c
SHA1 (patch-xpcom_base_nscore.h) = f4fe66cc9e714a2101a4d1287359d1c300574438
SHA1 (patch-xpcom_build_PoisonIOInterposer.h) = b0a53ec580bf5c2277d19618c1240a447575ae68
SHA1 (patch-xpcom_components_Module.h) = 35c5d831b0f916be4cbed18f904ab561dde72ab0
SHA1 (patch-xpcom_reflect_xptcall_md_unix_Makefile.in) = 6083e298140357bc5f2fa018885fed42eecb1ac4
SHA1 (patch-xpcom_reflect_xptcall_md_unix_moz.build) = 4717f2a285200ccb5f580e12ffd73c51ae9e9c00
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp) = 493d1433ae72bbd0c65ab3f51de43fb864a6f58d
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S) = f310105510bb5fa6c6de122ebdebbfa18423d8d3
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s) = 8e367d4d0baf24714ee80449fc8d6849ff08ca1c
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp) = 8cb72e1bc9a38e3f123539d7bb2aca6793f2b574
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp) = b6dc5d54eeaa908d914116429e61f4b65a6a5f8e
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp) = 71a33723a557a6153405f6baec8404b25f841608
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp) = 0792c2c626d906e71c5183994cb32bf8cdb3e239
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp) = 3a902eb9a23b3b5737f3c8cb5f96a5ad9a98a189
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S) = 79a4686d368132aff804f217baa685b2e06bc396
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s) = 522bc237bc90d85c98b61a467a431fddd91d8c3c
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp) = d246f0695eb43d43bfd5571297945a4b7a88f72c
SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp) = 75db49c9cb6bf2993afba82b731d80389d866212
SHA1 (patch-xulrunner_installer_Makefile.in) = 9d32ff87d0962c0406ed38de995c0350dd372e49
# $NetBSD: hacks.mk,v 1.1 2016/04/27 16:36:50 ryoon Exp $
.if !defined(XULRUNNER_HACKS_MK)
XULRUNNER_HACKS_MK= defined
.include "../../mk/bsd.fast.prefs.mk"
.include "../../mk/compiler.mk"
.if !empty(PKGSRC_COMPILER:Mclang)
CXXFLAGS+= -Wno-return-type-c-linkage
.endif
.endif # XULRUNNER_HACKS_MK
# $NetBSD: mozilla-common.mk,v 1.1 2016/04/27 16:36:50 ryoon Exp $
#
# common Makefile fragment for mozilla packages based on gecko 2.0.
#
# used by www/firefox/Makefile
# used by www/seamonkey/Makefile
.include "../../mk/bsd.prefs.mk"
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
BUILD_DEPENDS+= yasm>=1.1:../../devel/yasm
.endif
GNU_CONFIGURE= yes
USE_TOOLS+= pkg-config perl gmake autoconf213 unzip zip
USE_LANGUAGES+= c99 c++
UNLIMIT_RESOURCES+= datasize
test:
cd ${WRKSRC}/${OBJDIR}/dist/bin && \
./run-mozilla.sh ${WRKSRC}/mach check-spidermonkey
# tar(1) of OpenBSD 5.5 has no --exclude command line option.
.if ${OPSYS} == "OpenBSD"
TOOLS_PLATFORM.tar= ${TOOLS_PATH.bsdtar}
USE_TOOLS+= bsdtar
.endif
# GCC 4.6 is required to support nullptr.
GCC_REQD+= 4.8
.if ${MACHINE_ARCH} == "i386"
# Fix for PR pkg/48152.
CXXFLAGS+= -march=i586
# This is required for SSE2 code under i386.
CXXFLAGS+= -mstackrealign
.endif
CHECK_PORTABILITY_SKIP+=${MOZILLA_DIR}security/nss/tests/libpkix/libpkix.sh
CHECK_PORTABILITY_SKIP+=${MOZILLA_DIR}security/nss/tests/multinit/multinit.sh
CHECK_PORTABILITY_SKIP+=${MOZILLA_DIR}js/src/tests/update-test262.sh
CHECK_PORTABILITY_SKIP+=${MOZILLA_DIR}intl/icu/source/configure
CHECK_PORTABILITY_SKIP+=${MOZILLA_DIR}browser/components/loop/run-all-loop-tests.sh
CHECK_PORTABILITY_SKIP+=${MOZILLA_DIR}browser/extensions/loop/run-all-loop-tests.sh
CONFIGURE_ARGS+= --enable-pie
CONFIGURE_ARGS+= --disable-tests
CONFIGURE_ARGS+= --disable-pedantic
CONFIGURE_ARGS+= --enable-crypto
CONFIGURE_ARGS+= --with-pthreads
CONFIGURE_ARGS+= --disable-javaxpcom
CONFIGURE_ARGS+= --enable-default-toolkit=cairo-gtk2
CONFIGURE_ARGS+= --enable-gstreamer=1.0
#CONFIGURE_ARGS+= --disable-gstreamer
CONFIGURE_ARGS+= --enable-svg
CONFIGURE_ARGS+= --enable-mathml
CONFIGURE_ARGS+= --enable-pango
CONFIGURE_ARGS+= --enable-system-cairo
CONFIGURE_ARGS+= --enable-system-pixman
CONFIGURE_ARGS+= --with-system-libvpx
CONFIGURE_ARGS+= --enable-system-hunspell
CONFIGURE_ARGS+= --enable-system-ffi
CONFIGURE_ARGS+= --with-system-icu
CONFIGURE_ARGS+= --with-system-nss
CONFIGURE_ARGS+= --with-system-nspr
CONFIGURE_ARGS+= --with-system-jpeg
CONFIGURE_ARGS+= --with-system-zlib
CONFIGURE_ARGS+= --with-system-bz2
# 1.2 or later is required.
#CONFIGURE_ARGS+= --with-system-theora
#CONFIGURE_ARGS+= --with-system-ogg
#CONFIGURE_ARGS+= --with-system-tremor
#CONFIGURE_ARGS+= --with-system-vorbis
# opus support requires Ogg Theora support
#CONFIGURE_ARGS+= --with-system-opus
CONFIGURE_ARGS+= --with-system-graphite2
CONFIGURE_ARGS+= --with-system-harfbuzz
CONFIGURE_ARGS+= --with-system-libevent=${BUILDLINK_PREFIX.libevent}
#CONFIGURE_ARGS+= --enable-system-sqlite
CONFIGURE_ARGS+= --disable-crashreporter
CONFIGURE_ARGS+= --disable-necko-wifi
CONFIGURE_ARGS+= --enable-chrome-format=flat
CONFIGURE_ARGS+= --disable-libjpeg-turbo
CONFIGURE_ARGS+= --disable-elf-hack
CONFIGURE_ARGS+= --disable-elf-dynstr-gc
CONFIGURE_ARGS+= --disable-gconf
CONFIGURE_ARGS+= --enable-gio
CONFIGURE_ARGS+= --enable-extensions=gio
CONFIGURE_ARGS+= --disable-mochitest
CONFIGURE_ARGS+= --enable-canvas
#CONFIGURE_ARGS+= --enable-readline
CONFIGURE_ARGS+= --disable-installer
CONFIGURE_ARGS+= --enable-url-classifier
#CONFIGURE_ARGS+= --enable-startup-notification
#CONFIGURE_ARGS+= --enable-shared-js
CONFIGURE_ARGS+= --with-system-ply
CONFIGURE_ARGS+= --disable-icf
CONFIGURE_ARGS+= --disable-updater
SUBST_CLASSES+= fix-paths
SUBST_STAGE.fix-paths= pre-configure
SUBST_MESSAGE.fix-paths= Fixing absolute paths.
SUBST_FILES.fix-paths= ${MOZILLA_DIR}xpcom/build/nsXPCOMPrivate.h
SUBST_FILES.fix-paths+= ${MOZILLA_DIR}xpcom/io/nsAppFileLocationProvider.cpp
SUBST_SED.fix-paths+= -e 's,/usr/lib/mozilla/plugins,${PREFIX}/lib/netscape/plugins,g'
CONFIG_GUESS_OVERRIDE+= ${MOZILLA_DIR}build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+= ${MOZILLA_DIR}js/src/build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+= ${MOZILLA_DIR}nsprpub/build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+= ${MOZILLA_DIR}/js/ctypes/libffi/config.guess
CONFIG_SUB_OVERRIDE+= ${MOZILLA_DIR}build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+= ${MOZILLA_DIR}js/src/build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+= ${MOZILLA_DIR}nsprpub/build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+= ${MOZILLA_DIR}/js/ctypes/libffi/config.sub
PYTHON_VERSIONS_ACCEPTED= 27
PYTHON_FOR_BUILD_ONLY= yes
PYTHON_VERSIONS_INCOMPATIBLE= 33 34 35 # py-sqlite2
.include "../../lang/python/application.mk"
CONFIGURE_ENV+= PYTHON=${PYTHONBIN:Q}
#BUILD_MAKE_FLAGS+= MOZ_WEBRTC_IN_LIBXUL=1
SUBST_CLASSES+= python
SUBST_STAGE.python= pre-configure
SUBST_MESSAGE.python= Fixing path to python.
SUBST_FILES.python+= media/webrtc/trunk/build/common.gypi
SUBST_SED.python+= -e 's,<!(python,<!(${PYTHONBIN},'
# Build outside ${WRKSRC}
# Try to avoid conflict with config/makefiles/xpidl/Makefile.in
OBJDIR= ../build
CONFIGURE_DIRS= ${OBJDIR}
CONFIGURE_SCRIPT= ${WRKSRC}/configure
PLIST_VARS+= sps vorbis tremor glskia throwwrapper mozglue
.include "../../mk/endian.mk"
.if ${MACHINE_ENDIAN} == "little"
PLIST.glskia= yes
.endif
.if ${MACHINE_ARCH} != "sparc64"
# For some reasons the configure test for GCC bug 26905 still triggers on
# sparc64, which makes mozilla skip the installation of a few wrapper headers.
# Other archs end up with one additional file in the SDK headers
PLIST.throwwrapper= yes
.endif
.if !empty(MACHINE_PLATFORM:S/i386/x86/:MLinux-*-x86*)
PLIST.sps= yes
.endif
.if !empty(MACHINE_PLATFORM:MLinux-*-arm*)
PLIST.tremor= yes
.else
PLIST.vorbis= yes
.endif
# See ${WRKSRC}/mozglue/build/moz.build: libmozglue is built and
# installed as a shared library on these platforms.
.if ${OPSYS} == "Cygwin" || ${OPSYS} == "Darwin" # or Android
PLIST.mozglue= yes
.endif
# See ${WRKSRC}/security/sandbox/mac/Sandbox.mm: On Darwin, sandboxing
# support is only available when the toolkit is cairo-cocoa.
CONFIGURE_ARGS.Darwin+= --disable-sandbox
# See ${WRKSRC}/configure.in: It tries to use MacOS X 10.6 SDK by
# default, which is not always possible.
.if !empty(MACHINE_PLATFORM:MDarwin-8.*-*)
CONFIGURE_ARGS+= --enable-macos-target=10.4
.elif !empty(MACHINE_PLATFORM:MDarwin-9.*-*)
CONFIGURE_ARGS+= --enable-macos-target=10.5
.endif
#
# pysqlite2 is used by xulrunner's Python virtualenv. If pysqlite2 isn't
# installed at build time it will attempt to download it instead, so the
# problem is stealthy in a networked environment, and obvious in an
# offline environment.
#
BUILD_DEPENDS+= ${PYPKGPREFIX}-sqlite2-[0-9]*:../../databases/py-sqlite2
# Makefiles sometimes call "rm -f" without more arguments. Kludge around ...
.PHONY: create-rm-wrapper
pre-configure: create-rm-wrapper
create-rm-wrapper:
printf '#!/bin/sh\n[ "$$*" = "-f" ] && exit 0\nexec /bin/rm $$@\n' > \
${WRAPPER_DIR}/bin/rm
chmod +x ${WRAPPER_DIR}/bin/rm
# The configure test for __thread succeeds, but later we end up with:
# dist/bin/libxul.so: undefined reference to `__tls_get_addr'
CONFIGURE_ENV.NetBSD+= ac_cv_thread_keyword=no
.if ${OPSYS} == "SunOS"
# native libbz2.so hides BZ2_crc32Table
PREFER.bzip2?= pkgsrc
.endif
.if ${OPSYS} == "OpenBSD"
PLIST_SUBST+= DLL_SUFFIX=".so.1.0"
.elif ${OPSYS} == "Darwin"
PLIST_SUBST+= DLL_SUFFIX=".dylib"
.else
PLIST_SUBST+= DLL_SUFFIX=".so"
.endif
.include "../../archivers/bzip2/buildlink3.mk"
#.include "../../audio/libopus/buildlink3.mk"
#.include "../../audio/tremor/buildlink3.mk"
#.include "../../audio/libvorbis/buildlink3.mk"
#BUILDLINK_API_DEPENDS.sqlite3+= sqlite3>=3.8.9
#CONFIGURE_ENV+= ac_cv_sqlite_secure_delete=yes # c.f. patches/patch-al
#.include "../../databases/sqlite3/buildlink3.mk"
BUILDLINK_API_DEPENDS.libevent+= libevent>=1.1
.include "../../devel/libevent/buildlink3.mk"
.include "../../devel/libffi/buildlink3.mk"
BUILDLINK_API_DEPENDS.nspr+= nspr>=4.10.10
.include "../../devel/nspr/buildlink3.mk"
.include "../../textproc/icu/buildlink3.mk"
BUILDLINK_API_DEPENDS.nss+= nss>=3.21
.include "../../devel/nss/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../mk/jpeg.buildlink3.mk"
.include "../../graphics/MesaLib/buildlink3.mk"
BUILDLINK_API_DEPENDS.cairo+= cairo>=1.10.2nb4
.include "../../graphics/cairo/buildlink3.mk"
.include "../../graphics/graphite2/buildlink3.mk"
#.include "../../multimedia/libogg/buildlink3.mk"
#.include "../../multimedia/libtheora/buildlink3.mk"
BUILDLINK_API_DEPENDS.libvpx+= libvpx>=1.3.0
.include "../../multimedia/libvpx/buildlink3.mk"
.include "../../net/libIDL/buildlink3.mk"
.include "../../textproc/hunspell/buildlink3.mk"
BUILDLINK_API_DEPENDS.gtk2+= gtk2+>=2.18.3nb1
.include "../../x11/gtk2/buildlink3.mk"
.include "../../multimedia/gstreamer1/buildlink3.mk"
.include "../../multimedia/gst-plugins1-base/buildlink3.mk"
.include "../../x11/libXt/buildlink3.mk"
BUILDLINK_API_DEPENDS.pixman+= pixman>=0.25.2
.include "../../x11/pixman/buildlink3.mk"
# $NetBSD: options.mk,v 1.1 2016/04/27 16:36:50 ryoon Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.firefox
PKG_SUPPORTED_OPTIONS= official-mozilla-branding
PKG_SUPPORTED_OPTIONS+= debug debug-info mozilla-jemalloc gnome webrtc
PKG_SUPPORTED_OPTIONS+= alsa oss pulseaudio
PLIST_VARS+= gnome jemalloc debug
.if ${OPSYS} == "Linux"
PKG_SUGGESTED_OPTIONS+= alsa mozilla-jemalloc
.else
PKG_SUGGESTED_OPTIONS+= pulseaudio
.endif
# On NetBSD/amd64 6.99.21 libxul.so is invalid when --enable-webrtc is set.
PKG_SUGGESTED_OPTIONS.Linux+= webrtc
.include "../../mk/bsd.options.mk"
.if !empty(PKG_OPTIONS:Malsa)
CONFIGURE_ARGS+= --enable-alsa
.include "../../audio/alsa-lib/buildlink3.mk"
.else
CONFIGURE_ARGS+= --disable-alsa
.endif
.if !empty(PKG_OPTIONS:Moss)
CONFIGURE_ARGS+= --with-oss
.include "../../mk/oss.buildlink3.mk"
.else
CONFIGURE_ARGS+= --without-oss
.endif
.if !empty(PKG_OPTIONS:Mgnome)
.include "../../devel/libgnomeui/buildlink3.mk"
#.include "../../sysutils/gnome-vfs/buildlink3.mk"
.include "../../sysutils/libnotify/buildlink3.mk"
CONFIGURE_ARGS+= --enable-dbus --enable-gnomeui
CONFIGURE_ARGS+= --enable-libnotify
PLIST.gnome= yes
.else
CONFIGURE_ARGS+= --disable-dbus --disable-gnomeui
CONFIGURE_ARGS+= --disable-libnotify
.endif
.if !empty(PKG_OPTIONS:Mmozilla-jemalloc)
PLIST.jemalloc= yes
CONFIGURE_ARGS+= --enable-jemalloc
.else
CONFIGURE_ARGS+= --disable-jemalloc
.endif
.include "../../mk/compiler.mk"
.if !empty(PKGSRC_COMPILER:Mgcc)
.if ${CC_VERSION:S/gcc-//:S/.//g} >= 480
# Modern gcc does not run any "tracking" passes when compiling with -O0,
# which makes the generated debug info mostly useless. So explicitly
# request them.
O0TRACKING=-fvar-tracking-assignments -fvar-tracking
.endif
.endif
.if !empty(PKG_OPTIONS:Mdebug)
CONFIGURE_ARGS+= --enable-debug="-g -O0 ${O0TRACKING}" --enable-debug-symbols --disable-optimize
CONFIGURE_ARGS+= --disable-install-strip
PLIST.debug= yes
.else
.if !empty(PKG_OPTIONS:Mdebug-info)
CONFIGURE_ARGS+= --enable-debug-symbols
.else
CONFIGURE_ARGS+= --disable-debug-symbols
.endif
CONFIGURE_ARGS+= --disable-debug
CONFIGURE_ARGS+= --enable-optimize=-O2
CONFIGURE_ARGS+= --enable-install-strip
.endif
.if !empty(PKG_OPTIONS:Mpulseaudio)
.include "../../audio/pulseaudio/buildlink3.mk"
CONFIGURE_ARGS+= --enable-pulseaudio
.else
CONFIGURE_ARGS+= --disable-pulseaudio
.endif
# XXX end
PLIST_VARS+= branding nobranding
.if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
CONFIGURE_ARGS+= --enable-official-branding
LICENSE= mozilla-trademark-license
RESTRICTED= Trademark holder prohibits distribution of modified versions.
NO_BIN_ON_CDROM= ${RESTRICTED}
NO_BIN_ON_FTP= ${RESTRICTED}
PLIST.branding= yes
.else
PLIST.nobranding= yes
.endif
PLIST_VARS+= webrtc
.if !empty(PKG_OPTIONS:Mwebrtc)
.include "../../graphics/libv4l/buildlink3.mk"
CONFIGURE_ARGS+= --enable-webrtc
.else
CONFIGURE_ARGS+= --disable-webrtc
.endif
# $NetBSD: xpi.mk,v 1.1 2016/04/27 16:36:50 ryoon Exp $
#
# common logic for repackaging mozilla extensions (.xpi files)
# Used by the {firefox,seamonkey,thunderbird}-l10n packages.
USE_TOOLS+= unzip pax
post-extract: extract-xpi
.PHONY: extract-xpi
extract-xpi:
.for f in ${XPI_FILES}
${RUN} ${MKDIR} ${WRKDIR}/${f:S/.xpi//} && cd ${WRKDIR}/${f:S/.xpi//} && ${UNZIP_CMD} -aqo "${WRKDIR}/${f}"
.endfor
do-install: install-xpi
.PHONY: install-xpi
install-xpi:
.for f in ${XPI_FILES}
id=$$(${AWK} '/em:id=/ {sub("^.*em:id=\"", "");sub("\".*$$","");print $$0}' < ${WRKDIR}/${f:S/.xpi//}/install.rdf); \
${MKDIR} ${DESTDIR}${EXTENSIONS_DIR}/$${id} && \
cd ${WRKDIR}/${f:S/.xpi//} && \
pax -rw . ${DESTDIR}${EXTENSIONS_DIR}/$${id}
.endfor
[Desktop Entry]
Encoding=UTF-8
Name=@MOZILLA_NAME@ Web Browser
Name[am]=
Name[ar]=
Name[az]=@MOZILLA_NAME@ Veb Səyyahı
Name[be]=
Name[bg]=Интернет браузър @MOZILLA_NAME@
Name[bn]=
Name[bs]=@MOZILLA_NAME@ web preglednik
Name[ca]=Navegador web @MOZILLA_NAME@
Name[cs]=Prohlížeč WWW @MOZILLA_NAME@
Name[cy]=Y Porwr Gwe @MOZILLA_NAME@
Name[da]=@MOZILLA_NAME@ - internetsurfning
Name[de]=@MOZILLA_NAME@ Webbrowser
Name[el]=Περιηγητής Διαδικτύου @MOZILLA_NAME@
Name[en_CA]=@MOZILLA_NAME@ Web Browser
Name[en_GB]=@MOZILLA_NAME@ Web Browser
Name[es]=Navegador Web @MOZILLA_NAME@
Name[et]=@MOZILLA_NAME@ veebibrauser
Name[eu]=@MOZILLA_NAME@ web arakatzailea
Name[fi]=@MOZILLA_NAME@, WWW-selain
Name[fr]=Navigateur Web @MOZILLA_NAME@
Name[ga]=Brabhsálaí Lín @MOZILLA_NAME@
Name[gu]=એપીફની વૅબ બ્રાઉઝર
Name[he]=דפדפן @MOZILLA_NAME@
Name[hi]=
Name[hr]=@MOZILLA_NAME@ Web preglednik
Name[hu]=@MOZILLA_NAME@ webböngésző
Name[id]=Web Browser @MOZILLA_NAME@
Name[it]=Browser web @MOZILLA_NAME@
Name[ja]=@MOZILLA_NAME@ ウェブ・ブラウザ
Name[ko]=@MOZILLA_NAME@ 웹 브라우저
Name[li]=@MOZILLA_NAME@ Web Browser
Name[lt]=@MOZILLA_NAME@ web naršyklė
Name[mk]=@MOZILLA_NAME@ веб прелистувач
Name[ml]=എപ്പിഫാനി വെബ്ബ് ബ്രൌസര്
Name[mn]=@MOZILLA_NAME@ веб хөтөч
Name[ms]=Pelungsur Web @MOZILLA_NAME@
Name[nb]=@MOZILLA_NAME@ nettleser
Name[nl]=@MOZILLA_NAME@ Webbrowser
Name[nn]=@MOZILLA_NAME@ nettlesar
Name[no]=@MOZILLA_NAME@ nettleser
Name[pa]=ਏਪੀਫਾਨੀ ਵੈੱਬ ਬਰਾਊਜ਼ਰ
Name[pl]=Przeglądarka WWW @MOZILLA_NAME@
Name[pt]=Navegador Web @MOZILLA_NAME@
Name[pt_BR]=Navegador Web @MOZILLA_NAME@
Name[ro]=Navigatorul @MOZILLA_NAME@
Name[ru]=Веб-браузер @MOZILLA_NAME@
Name[sk]=
Name[sl]=Spletni brskalnik @MOZILLA_NAME@
Name[sq]=@MOZILLA_NAME@ - Shfletuesi Web
Name[sr]=
Name[sr@Latn]=Veb čitač Spoznaja
Name[sv]=Webbläsaren @MOZILLA_NAME@
Name[ta]=எபிபனி வலை உலாவி
Name[tk]=@MOZILLA_NAME@ Web Ahtarçisi
Name[tr]=@MOZILLA_NAME@ Web Tarayıcı
Name[uk]=Переглядач web @MOZILLA_NAME@
Name[vi]=Trình Duyệt Web @MOZILLA_NAME@
Name[wa]=Betchteu waibe epiphany
Name[zh_CN]=@MOZILLA_NAME@ Web 浏览器
Name[zh_TW]=@MOZILLA_NAME@ 網頁瀏覽器
GenericName=Web Browser
GenericName[ar]=متصفّح الانترنت
GenericName[az]=Veb Səyyahı
GenericName[be]=Вандроўнік па павуціньню
GenericName[bg]=Браузър
GenericName[bn]=ওয়েব ব্রাউজার
GenericName[bs]=Web preglednik
GenericName[ca]=Navegador web
GenericName[cs]=Prohlížeč WWW
GenericName[cy]=Porwr Gwe
GenericName[da]=Internetsurfning
GenericName[de]=Webbrowser
GenericName[el]=Περιηγητής Ιστοσελίδων
GenericName[en_CA]=Web Browser
GenericName[en_GB]=Web Browser
GenericName[es]=Navegador web
GenericName[et]=Veebilehitseja
GenericName[eu]=Web arakatzailea
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web @MOZILLA_NAME@
GenericName[ga]=Brabhsálaí Lín
GenericName[gu]=વેબ બ્રાઉઝર
GenericName[he]=דפדפן אינטרנט
GenericName[hi]=वेब ब्राउज़र
GenericName[hr]=Web preglednik
GenericName[hu]=Webböngésző
GenericName[id]=Browser Web
GenericName[it]=Browser web
GenericName[ja]=GNOME ウェブ・ブラウザ
GenericName[ko]=웹 브라우저
GenericName[li]=Wèb Browser
GenericName[lt]=Web naršyklė
GenericName[mk]=Веб прелистувач
GenericName[mn]=Веб хөтөч
GenericName[ms]=Pelungsur Web
GenericName[nb]=Nettleser
GenericName[nl]=Web-browser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName[pa]=ਵੈਬ ਬਰਾਊਜ਼
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[ro]=Navigator Internet
GenericName[ru]=Веб-браузер
GenericName[sk]=WWW prehliadač
GenericName[sl]=Spletni brskalnik
GenericName[sq]=Shfletuesi Web
GenericName[sr]=Веб читач
GenericName[sr@Latn]=Veb čitač
GenericName[sv]=Webbläsare
GenericName[ta]=வலை உலாவி
GenericName[th]=เว็บบราวเซอร์
GenericName[tk]=Web Ahtarçysy
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Переглядач web-сторінок
GenericName[vi]=Trình duyệt Web
GenericName[wa]=Betchteu waibe
GenericName[zh_CN]=Web 浏览器
GenericName[zh_TW]=網頁瀏覽器
Comment=Browse the web
Comment[ar]=تصفح الانترنت
Comment[az]=Vebi gəzin
Comment[be]=Вандраваць па павуціньню
Comment[bg]=Сърфиране в интернет
Comment[bn]=ওয়েব ব্রাউজ করুন
Comment[bs]=Pregledaj na internetu
Comment[ca]=Navegueu per la web
Comment[cs]=Prohlížet WWW
Comment[cy]=Pori'r we
Comment[da]=Surf på internettet
Comment[de]=Im Web surfen
Comment[el]=Περιήγηση στον παγκόσμιο ιστό
Comment[en_CA]=Browse the web
Comment[en_GB]=Browse the web
Comment[es]=Navegar por la web
Comment[et]=Sirvi veebi
Comment[eu]=Arakatu web-a
Comment[fi]=Selaa WWW:tä
Comment[fr]=Naviguer sur Internet
Comment[ga]=Brabhsáil an Líon
Comment[gu]=વેબમાં શોધો
Comment[he]=גלוש ברשת
Comment[hi]=वेब ब्राउज़ करें
Comment[hr]=Pregledaj Web
Comment[hu]=A világháló böngészése
Comment[id]=Jelajah web
Comment[it]=Esplora il web
Comment[ja]=ウェブを閲覧します
Comment[ko]=웹을 돌아 다닙니다
Comment[li]=Blajere op internet
Comment[lt]=Naršyti internete
Comment[mk]=Прелистувајте на веб
Comment[ml]=വലക്കെട്ട് തിരയുക
Comment[mn]=Веб броузе хийх
Comment[ms]=Layari web
Comment[nb]=Surf på nettet
Comment[nl]=Websurfen
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pa]=ਵੈਬ ਬਰਾਊਜ਼
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegar na web
Comment[pt_BR]=Navegar na web
Comment[ro]=Navigare Internet
Comment[ru]=Веб-браузер
Comment[sk]=Prehliadať internet
Comment[sl]=Brskaj po spletu
Comment[sq]=Eksploro web-in
Comment[sr]=Прегледај веб
Comment[sr@Latn]=Pregledaj veb
Comment[sv]=Surfa på nätet
Comment[ta]=வலையில் உலாவு
Comment[th]=ใช้งานเว็บบราวเซอร์ @MOZILLA_NAME@
Comment[tk]=Webi Ahtar
Comment[tr]=Web'e Gözat
Comment[uk]=Програма перегляду web-сторінок
Comment[vi]=Duyệt web
Comment[wa]=Naivyî avå les waibes
Comment[zh_CN]=浏览 Web
Comment[zh_TW]=瀏覽網頁
Exec=@MOZILLA@ %u
Icon=@FIREFOX_ICON@
StartupNotify=false
Terminal=false
Type=Application
Categories=Application;Network;
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;
$NetBSD: patch-aa,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* The profiler does not support Darwin/PPC so don't try to enable it
on that platform. Also it makes extra files appear in the PLIST on Linux
so disable it everywhere.
* Cocoa gamepad backend can only be used if the toolkit is cocoa too.
* The preprocessor macro XP_MACOSX is misused everywhere. They tend to
say "#if defined(XP_MACOSX)" to actually mean
"#if defined(MOZ_WIDGET_COCOA)". It's okay to equate XP_MACOSX with
XP_DARWIN but equating it with MOZ_WIDGET_COCOA is just wrong. As a
result, cairo-gtk2 build on Darwin is completely broken and needs
heavy patching. Ideally they should be fixed individually but that
will be an extremely hard work, so don't define XP_MACOSX for now.
--- configure.in.orig 2016-03-03 21:47:52.000000000 +0000
+++ configure.in
@@ -1746,7 +1746,7 @@ fi
dnl ========================================================
dnl SPS Profiler
dnl ========================================================
-MOZ_ENABLE_PROFILER_SPS=1
+MOZ_ENABLE_PROFILER_SPS=
case "${OS_TARGET}" in
Android)
@@ -1996,7 +1996,6 @@ case "$target" in
_PLATFORM_DEFAULT_TOOLKIT='cairo-uikit'
direct_nspr_config=1
else
- AC_DEFINE(XP_MACOSX)
AC_DEFINE(XP_DARWIN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
# The ExceptionHandling framework is needed for Objective-C exception
@@ -2580,8 +2579,7 @@ MOZ_CXX11
AC_LANG_C
-dnl Check for .hidden assembler directive and visibility attribute.
-dnl Borrowed from glibc configure.in
+dnl Setup default hidden visibility and wrapped system headers.
dnl ===============================================================
if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then
AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
@@ -3476,6 +3474,14 @@ if test -n "$YASM"; then
_YASM_BUILD=` echo ${YASM_VERSION} | $AWK -F\. '{ print $4 }'`
fi
+if test -n "${LIBXUL_SDK_DIR}"; then
+ AC_MSG_WARN([pkgsrc: LIBXUL_SDK_DIR is set; assuming we want nss and nspr from xulrunner.])
+ NSPR_CFLAGS="-I${prefix}/include/xulrunner/unstable `pkg-config --cflags nspr`"
+ NSPR_LIBS="`pkg-config --libs nspr`"
+ NSS_CFLAGS="`pkg-config --cflags nss`"
+ NSS_LIBS="`pkg-config --libs nss`"
+fi
+
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl system JPEG support
dnl ========================================================
@@ -3503,11 +3509,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then
#include <jpeglib.h> ],
[ #if JPEG_LIB_VERSION < $MOZJPEG
#error "Insufficient JPEG library version ($MOZJPEG required)."
- #endif
- #ifndef JCS_EXTENSIONS
- #error "libjpeg-turbo JCS_EXTENSIONS required"
- #endif
- ],
+ #endif ],
MOZ_NATIVE_JPEG=1,
AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
fi
@@ -4260,6 +4262,10 @@ cairo-gonk)
esac
+if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
+ AC_DEFINE(XP_MACOSX)
+fi
+
AC_SUBST(MOZ_PDF_PRINTING)
if test "$MOZ_PDF_PRINTING"; then
PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
@@ -5018,6 +5024,9 @@ if test -n "$MOZ_WEBRTC"; then
MOZ_VPX=1
MOZ_VPX_ERROR_CONCEALMENT=1
+ dnl with libv4l2 we can support more cameras
+ PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2)
+
dnl enable once Signaling lands
MOZ_WEBRTC_SIGNALING=1
AC_DEFINE(MOZ_WEBRTC_SIGNALING)
@@ -5161,6 +5170,142 @@ if test "${ac_cv_c_attribute_aligned}" !
fi
dnl ========================================================
+dnl Check for libogg
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-ogg,
+[ --with-system-ogg Use system libogg (located with pkgconfig)],
+MOZ_NATIVE_OGG=1,
+MOZ_NATIVE_OGG=)
+
+if test -n "$MOZ_NATIVE_OGG"; then
+ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.2.1)
+
+ _SAVE_LIBS=$LIBS
+ LIBS="$LIBS $MOZ_OGG_LIBS"
+ AC_CHECK_FUNC(ogg_set_mem_functions, [],
+ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)])
+ LIBS=$_SAVE_LIBS
+fi
+
+AC_SUBST(MOZ_NATIVE_OGG)
+
+dnl ========================================================
+dnl Check for libvorbis
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-vorbis,
+[ --with-system-vorbis Use system libvorbis (located with pkgconfig)],
+MOZ_NATIVE_VORBIS=1,
+MOZ_NATIVE_VORBIS=)
+
+if test -n "$MOZ_NATIVE_VORBIS"; then
+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5)
+fi
+
+AC_SUBST(MOZ_NATIVE_VORBIS)
+
+dnl ========================================================
+dnl Check for integer-only libvorbis aka tremor
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-tremor,
+[ --with-system-tremor Use system libtremor (located with pkgconfig)],
+MOZ_NATIVE_TREMOR=1,
+MOZ_NATIVE_TREMOR=)
+
+if test -n "$MOZ_NATIVE_TREMOR"; then
+ PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1)
+fi
+
+AC_SUBST(MOZ_NATIVE_TREMOR)
+
+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 ========================================================
+
+MOZ_ARG_WITH_BOOL(system-opus,
+[ --with-system-opus Use system libopus (located with pkgconfig)],
+MOZ_NATIVE_OPUS=1,
+MOZ_NATIVE_OPUS=)
+
+if test -n "$MOZ_NATIVE_OPUS"; then
+ PKG_CHECK_MODULES(MOZ_OPUS, opus >= 1.1)
+else
+ MOZ_OPUS_CFLAGS='-I$(topsrcdir)/media/libopus/include'
+fi
+
+AC_SUBST(MOZ_NATIVE_OPUS)
+
+dnl ========================================================
+dnl Check for libtheora
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-theora,
+[ --with-system-theora Use system libtheora (located with pkgconfig)],
+MOZ_NATIVE_THEORA=1,
+MOZ_NATIVE_THEORA=)
+
+if test -n "$MOZ_NATIVE_THEORA"; then
+ PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2)
+fi
+
+AC_SUBST(MOZ_NATIVE_THEORA)
+
+dnl ========================================================
+dnl Check for libsoundtouch
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-soundtouch,
+[ --with-system-soundtouch Use system libsoundtouch (located with pkgconfig)],
+MOZ_NATIVE_SOUNDTOUCH=1,
+MOZ_NATIVE_SOUNDTOUCH=)
+
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.8.0)
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ _SAVE_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS"
+ AC_CACHE_CHECK(for soundtouch sample type,
+ ac_cv_soundtouch_sample_type,
+ [AC_TRY_COMPILE([#include <SoundTouch.h>
+ #ifndef SOUNDTOUCH_INTEGER_SAMPLES
+ #error soundtouch expects float samples
+ #endif],
+ [],
+ [ac_cv_soundtouch_sample_type=short],
+ [ac_cv_soundtouch_sample_type=float])])
+ CXXFLAGS=$_SAVE_CXXFLAGS
+ AC_LANG_RESTORE
+
+ if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \
+ -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then
+ AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.])
+ fi
+fi
+
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
+
+dnl ========================================================
dnl = Disable VP8 decoder support
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(webm,
@@ -5563,6 +5708,67 @@ fi
AC_SUBST(MOZ_WEBM_ENCODER)
dnl ==================================
+dnl = Check OSS availability
+dnl ==================================
+
+dnl If using Linux, Solaris or BSDs, ensure that OSS is available
+case "$OS_TARGET" in
+Linux|SunOS|DragonFly|FreeBSD|GNU/kFreeBSD)
+ MOZ_OSS=1
+ ;;
+esac
+
+MOZ_ARG_WITH_STRING(oss,
+[ --with-oss[=PFX] Enable OpenSoundSystem support [installed at prefix PFX]],
+ OSSPREFIX=$withval)
+
+if test -n "$OSSPREFIX"; then
+ if test "$OSSPREFIX" != "no"; then
+ MOZ_OSS=1
+ else
+ MOZ_OSS=
+ fi
+fi
+
+_SAVE_CFLAGS=$CFLAGS
+_SAVE_LIBS=$LIBS
+if test -n "$MOZ_OSS"; then
+ dnl Prefer 4Front implementation
+ AC_MSG_CHECKING([MOZ_OSS_CFLAGS])
+ if test "$OSSPREFIX" != "yes"; then
+ oss_conf=${OSSPREFIX}/etc/oss.conf
+ if test -f "$oss_conf"; then
+ . "$oss_conf"
+ else
+ OSSLIBDIR=$OSSPREFIX/lib/oss
+ fi
+ if test -d "$OSSLIBDIR"; then
+ MOZ_OSS_CFLAGS="$MOZ_OSS_CFLAGS -I$OSSLIBDIR/include"
+ fi
+ fi
+ AC_MSG_RESULT([$MOZ_OSS_CFLAGS])
+
+ CFLAGS="$CFLAGS $MOZ_OSS_CFLAGS"
+ MOZ_CHECK_HEADERS(sys/soundcard.h soundcard.h)
+
+ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \
+ "$ac_cv_header_soundcard_h" != "yes"; then
+ AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --disable-ogg --disable-wave --disable-webm.])
+ fi
+
+ dnl Assume NetBSD implementation over SunAudio
+ AC_CHECK_LIB(ossaudio, _oss_ioctl,
+ [AC_DEFINE_UNQUOTED(CUBEB_OSS_DEFAULT_OUTPUT, "/dev/sound")
+ MOZ_OSS_LIBS="$MOZ_OSS_LIBS -lossaudio"])
+fi
+CFLAGS=$_SAVE_CFLAGS
+LIBS=$_SAVE_LIBS
+
+AC_SUBST(MOZ_OSS)
+AC_SUBST_LIST(MOZ_OSS_CFLAGS)
+AC_SUBST_LIST(MOZ_OSS_LIBS)
+
+dnl ==================================
dnl = Check alsa availability on Linux
dnl ==================================
@@ -5576,12 +5782,23 @@ MOZ_ARG_ENABLE_BOOL(alsa,
MOZ_ALSA=1,
MOZ_ALSA=)
+MOZ_ARG_DISABLE_BOOL(alsa-dlopen,
+[ --disable-alsa-dlopen Disable runtime linking of libasound.so],
+ DISABLE_LIBASOUND_DLOPEN=1,
+ DISABLE_LIBASOUND_DLOPEN=)
+
if test -n "$MOZ_ALSA"; then
PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
[echo "$MOZ_ALSA_PKG_ERRORS"
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
+ AC_DEFINE(DISABLE_LIBASOUND_DLOPEN)
+else
+ MOZ_ALSA_LIBS=
+fi
+
AC_SUBST(MOZ_ALSA)
dnl ========================================================
@@ -8139,6 +8356,49 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
+dnl Check for harfbuzz
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-harfbuzz,
+[ --with-system-harfbuzz Use system harfbuzz (located with pkgconfig)],
+MOZ_NATIVE_HARFBUZZ=1,
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.34)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
+
+dnl ========================================================
+dnl Check for graphite2
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-graphite2,
+[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)],
+MOZ_NATIVE_GRAPHITE2=1,
+MOZ_NATIVE_GRAPHITE2=)
+
+if test -n "$MOZ_NATIVE_GRAPHITE2"; then
+ PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2)
+
+ dnl graphite2.pc has bogus version, check manually
+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
+ #if !GR2_VERSION_REQUIRE(1,2,4)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
+fi
+
+AC_SUBST(MOZ_NATIVE_GRAPHITE2)
+
+dnl ========================================================
dnl Check for pixman and cairo
dnl ========================================================
$NetBSD: patch-ao,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- toolkit/mozapps/installer/packager.mk.orig 2016-04-20 21:33:09.000000000 +0000
+++ toolkit/mozapps/installer/packager.mk
@@ -131,9 +131,9 @@ endif
(cd $(DIST)/$(MOZ_PKG_DIR) && $(TAR) --exclude=precomplete $(TAR_CREATE_FLAGS) - .) | \
(cd $(DESTDIR)$(installdir) && tar -xf -)
$(NSINSTALL) -D $(DESTDIR)$(bindir)
- $(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)
- ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
-ifdef INSTALL_SDK # Here comes the hard part
+ $(RM) -f $(DESTDIR)$(bindir)/$(MOZILLA_PKG_NAME)
+ 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) - .) | \
(cd $(DESTDIR)$(includedir) && tar -xf -)
$NetBSD: patch-as,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Treat DragonFly like FreeBSD.
--- js/src/configure.in.orig 2016-01-23 23:23:39.000000000 +0000
+++ js/src/configure.in
@@ -2123,8 +2123,7 @@ AC_LANG_CPLUSPLUS
MOZ_CXX11
-dnl Check for .hidden assembler directive and visibility attribute.
-dnl Borrowed from glibc configure.in
+dnl Setup default hidden visibility and wrapped system headers.
dnl ===============================================================
if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then
AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
@@ -2960,7 +2959,7 @@ if test "$MOZ_MEMORY"; then
*-darwin*)
AC_DEFINE(MOZ_MEMORY_DARWIN)
;;
- *-*freebsd*)
+ *-*freebsd*|*-*dragonfly*)
AC_DEFINE(MOZ_MEMORY_BSD)
;;
*-android*|*-linuxandroid*)
@@ -3808,6 +3807,16 @@ MOZ_SUBCONFIGURE_ICU()
dnl ========================================================
dnl JavaScript shell
dnl ========================================================
+ICU_LIB_NAMES=
+MOZ_NATIVE_ICU=
+MOZ_ARG_WITH_BOOL(system-icu,
+[ --with-system-icu
+ Use system icu (located with pkgconfig)],
+ MOZ_NATIVE_ICU=1)
+
+if test -n "$MOZ_NATIVE_ICU"; then
+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
+fi
MOZ_CHECK_ALLOCATOR
$NetBSD: patch-bf,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/jsnativestack.cpp.orig 2013-09-10 03:43:36.000000000 +0000
+++ js/src/jsnativestack.cpp
@@ -114,7 +114,7 @@ js::GetNativeStackBaseImpl()
pthread_attr_init(&sattr);
# if defined(__OpenBSD__)
stack_t ss;
-# elif defined(PTHREAD_NP_H) || defined(_PTHREAD_NP_H_) || defined(NETBSD)
+# elif defined(PTHREAD_NP_H) || defined(_PTHREAD_NP_H_) || defined(__DragonFly__) || defined(NETBSD) || defined(__NetBSD__) /* XXX tnn not sure why NETBSD isn't defined, it looks like it should be ... */
/* e.g. on FreeBSD 4.8 or newer, neundorf@kde.org */
pthread_attr_get_np(thread, &sattr);
# else
$NetBSD: patch-browser_installer_package-manifest.in,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Limit SPARC bits to just SPARC (untested, but fixes x86).
--- browser/installer/package-manifest.in.orig 2015-10-22 22:30:28.000000000 +0000
+++ browser/installer/package-manifest.in
@@ -620,7 +620,7 @@
@RESPATH@/components/MozKeyboard.js
@RESPATH@/components/InputMethod.manifest
-#ifdef MOZ_DEBUG
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
@RESPATH@/components/TestInterfaceJS.js
@RESPATH@/components/TestInterfaceJS.manifest
@RESPATH@/components/TestInterfaceJSMaplike.js
@@ -822,7 +822,7 @@
#endif
; for Solaris SPARC
-#ifdef SOLARIS
+#if defined(SOLARIS) && defined(SPARC)
bin/libfreebl_32fpu_3.so
bin/libfreebl_32int_3.so
bin/libfreebl_32int64_3.so
$NetBSD: patch-build_autoconf_compiler-opts.m4,v 1.1 2016/04/27 16:36:50 ryoon Exp $
It's true Clang is required if we use the cocoa toolkit, but we don't
do that anyway. GCC is perfectly working as long as we use cairo-gtk2.
--- build/autoconf/compiler-opts.m4.orig 2014-05-06 22:55:14.000000000 +0000
+++ build/autoconf/compiler-opts.m4
@@ -53,14 +53,6 @@ case "$target" in
if test -z "$CXX"; then
MOZ_PATH_PROGS(CXX, clang++)
fi
- IS_GCC=$($CC -v 2>&1 | grep gcc)
- if test -n "$IS_GCC"
- then
- echo gcc is known to be broken on OS X, please use clang.
- echo see http://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites
- echo for more information.
- exit 1
- fi
;;
esac
fi
$NetBSD: patch-build_autoconf_nss.m4,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- build/autoconf/nss.m4.orig 2015-04-29 21:11:43.000000000 +0000
+++ build/autoconf/nss.m4
@@ -22,18 +22,18 @@ AC_ARG_WITH(nss-exec-prefix,
if test -n "$nss_config_exec_prefix"; then
nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
if test -z "$NSS_CONFIG"; then
- NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
+ NSS_CONFIG=$nss_config_exec_prefix/bin/pkg-config
fi
fi
if test -n "$nss_config_prefix"; then
nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
if test -z "$NSS_CONFIG"; then
- NSS_CONFIG=$nss_config_prefix/bin/nss-config
+ NSS_CONFIG=$nss_config_prefix/bin/pkg-config
fi
fi
unset ac_cv_path_NSS_CONFIG
- AC_PATH_PROG(NSS_CONFIG, nss-config, no)
+ AC_PATH_PROG(NSS_CONFIG, pkg-config, no)
min_nss_version=ifelse([$1], ,3.0.0,$1)
AC_MSG_CHECKING(for NSS - version >= $min_nss_version)
@@ -41,14 +41,14 @@ AC_ARG_WITH(nss-exec-prefix,
if test "$NSS_CONFIG" = "no"; then
no_nss="yes"
else
- NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
- NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
+ NSS_CFLAGS=`$NSS_CONFIG $nss_config_args nss --cflags`
+ NSS_LIBS=`$NSS_CONFIG $nss_config_args nss --libs`
- 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]]*\)\)\{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]]*\)\)\{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]]*\)\)\{0,1\}/\4/'`
if test -z "$nss_config_micro_version"; then
nss_config_micro_version="0"
$NetBSD: patch-build_gyp.mozbuild,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Hunk #2:
On Darwin, don't assume iOS just because the toolkit is not
cocoa. Ideally there should be an AC_SUBST just like 'ARM_ARCH' but
nothing exists currently.
Hunk #3:
MacOS X SDK version should be able to configure with
./configure --enable-macos-target=VER
--- build/gyp.mozbuild.orig 2015-01-23 05:59:58.000000000 +0000
+++ build/gyp.mozbuild
@@ -12,6 +12,7 @@ gyp_vars = {
'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0,
'include_alsa_audio': 1 if CONFIG['MOZ_ALSA'] else 0,
'include_pulse_audio': 1 if CONFIG['MOZ_PULSEAUDIO'] else 0,
+ 'use_libv4l2': 1 if CONFIG['MOZ_LIBV4L2_LIBS'] else 0,
# basic stuff for everything
'include_internal_video_render': 0,
'clang_use_chrome_plugins': 0,
@@ -85,7 +86,7 @@ flavors = {
'WINNT': 'win',
'Android': 'linux' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' else 'android',
'Linux': 'linux',
- 'Darwin': 'mac' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' else 'ios',
+ 'Darwin': 'ios' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cairo-uikit' else 'mac',
'SunOS': 'solaris',
'GNU/kFreeBSD': 'freebsd',
'DragonFly': 'dragonfly',
@@ -120,5 +121,11 @@ if CONFIG['INTEL_ARCHITECTURE']:
if not CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSSE3'] or not CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSE4_1']:
gyp_vars['yuv_disable_asm'] = 1
+# MacOS X SDK version should be able to configure with ./configure
+# --enable-macos-target=VER
+if CONFIG['MACOSX_DEPLOYMENT_TARGET']:
+ gyp_vars['mac_sdk_min'] = CONFIG['MACOSX_DEPLOYMENT_TARGET']
+ gyp_vars['mac_deployment_target'] = CONFIG['MACOSX_DEPLOYMENT_TARGET']
+
if CONFIG['MACOS_SDK_DIR']:
gyp_vars['mac_sdk_path'] = CONFIG['MACOS_SDK_DIR']
$NetBSD: patch-build_pgo_profileserver.py,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- build/pgo/profileserver.py.orig 2014-03-15 05:19:09.000000000 +0000
+++ build/pgo/profileserver.py
@@ -59,7 +59,7 @@ if __name__ == '__main__':
env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog)
print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"]
- cmdargs = ["http://localhost:%d/index.html" % PORT]
+ cmdargs = ["http://127.0.0.1:%d/index.html" % PORT]
runner = FirefoxRunner(profile=profile,
binary=build.get_binary_path(where="staged-package"),
cmdargs=cmdargs,
$NetBSD: patch-config_Makefile.in,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/Makefile.in.orig 2015-05-04 00:43:23.000000000 +0000
+++ config/Makefile.in
@@ -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) \
+ -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
+ -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
+ -DMOZ_NATIVE_OGG=$(MOZ_NATIVE_OGG) \
+ -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) \
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
$(INSTALL) system_wrappers $(DIST)
$NetBSD: patch-config_baseconfig.mk,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/baseconfig.mk.orig 2016-02-25 23:01:53.000000000 +0000
+++ config/baseconfig.mk
@@ -2,10 +2,10 @@
# directly in python/mozbuild/mozbuild/base.py for gmake validation.
# We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
# whether a normal build is happening or whether the check is running.
-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
+includedir := $(includedir)/${MOZILLA_PKG_NAME}
+idldir = $(datadir)/idl/${MOZILLA_PKG_NAME}
+installdir = $(libdir)/${MOZILLA_PKG_NAME}
+sdkdir = $(libdir)/${MOZILLA_PKG_NAME}
ifeq (.,$(DEPTH))
DIST = dist
else
$NetBSD: patch-config_external_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/external/moz.build.orig 2015-08-24 21:53:10.000000000 +0000
+++ config/external/moz.build
@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']:
# There's no "native brotli" yet, but probably in the future...
external_dirs += ['modules/brotli']
-if CONFIG['MOZ_VORBIS']:
+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']
+
+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']:
external_dirs += ['media/libvorbis']
-if CONFIG['MOZ_TREMOR']:
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
external_dirs += ['media/libtremor']
if CONFIG['MOZ_WEBM']:
@@ -49,9 +58,6 @@ if CONFIG['MOZ_WEBSPEECH_POCKETSPHINX']:
external_dirs += [
'media/kiss_fft',
'media/libcubeb',
- 'media/libogg',
- 'media/libopus',
- 'media/libtheora',
'media/libspeex_resampler',
'media/libstagefright',
'media/libsoundtouch',
$NetBSD: patch-config_rules.mk,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/rules.mk.orig 2015-02-17 21:40:40.000000000 +0000
+++ config/rules.mk
@@ -765,6 +765,7 @@ endif
ifdef DTRACE_PROBE_OBJ
EXTRA_DEPS += $(DTRACE_PROBE_OBJ)
OBJS += $(DTRACE_PROBE_OBJ)
+EXCLUDED_OBJS += $(DTRACE_PROBE_OBJ)
endif
$(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(STATIC_LIBS_DEPS) $(filter %.$(LIB_SUFFIX),$(EXTRA_LIBS)) $(EXTRA_DEPS) $(GLOBAL_DEPS)
$NetBSD: patch-config_stl__wrappers_ios,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/stl_wrappers/ios.orig 2013-05-13 18:23:07.000000000 +0000
+++ config/stl_wrappers/ios
@@ -0,0 +1,3 @@
+#pragma GCC visibility push(default)
+#include_next <ios>
+#pragma GCC visibility pop
$NetBSD: patch-config_stl__wrappers_ostream,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/stl_wrappers/ostream.orig 2013-05-13 18:22:40.000000000 +0000
+++ config/stl_wrappers/ostream
@@ -0,0 +1,3 @@
+#pragma GCC visibility push(default)
+#include_next <ostream>
+#pragma GCC visibility pop
$NetBSD: patch-config_system-headers,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/system-headers.orig 2016-01-15 01:01:40.000000000 +0000
+++ config/system-headers
@@ -627,6 +627,7 @@ libgnome/libgnome.h
libgnomeui/gnome-icon-lookup.h
libgnomeui/gnome-icon-theme.h
libgnomeui/gnome-ui-init.h
+libv4l2.h
lib$routines.h
limits
limits.h
@@ -721,6 +722,7 @@ mapiutil.h
mapix.h
Math64.h
math.h
+complex
mbstring.h
#ifdef ANDROID
media/AudioEffect.h
@@ -1313,6 +1315,25 @@ vpx/vp8cx.h
vpx/vp8dx.h
vpx_mem/vpx_mem.h
#endif
+#ifdef GKMEDIAS_SHARED_LIBRARY
+vpx/vpx_codec.h
+vpx/vpx_decoder.h
+vpx/vpx_encoder.h
+vpx/vp8cx.h
+vpx/vp8dx.h
+vpx_mem/vpx_mem.h
+vorbis/codec.h
+theora/theoradec.h
+tremor/ivorbiscodec.h
+speex/speex_resampler.h
+soundtouch/SoundTouch.h
+ogg/ogg.h
+ogg/os_types.h
+nestegg/nestegg.h
+cubeb/cubeb.h
+speex/speex_resampler.h
+soundtouch/SoundTouch.h
+#endif
gst/gst.h
gst/app/gstappsink.h
gst/app/gstappsrc.h
@@ -1343,3 +1364,43 @@ unicode/utypes.h
#endif
libutil.h
unwind.h
+#if MOZ_NATIVE_GRAPHITE2==1
+graphite2/Font.h
+graphite2/Segment.h
+#endif
+#if MOZ_NATIVE_HARFBUZZ==1
+harfbuzz/hb-ot.h
+harfbuzz/hb.h
+#endif
+#if MOZ_NATIVE_OGG==1
+ogg/ogg.h
+ogg/os_types.h
+#endif
+#if MOZ_NATIVE_THEORA==1
+theora/theoradec.h
+#endif
+#if MOZ_NATIVE_VORBIS==1
+vorbis/codec.h
+vorbis/vorbisenc.h
+#endif
+#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
+opus/opus.h
+opus/opus_multistream.h
+#endif
+#if MOZ_NATIVE_SPEEX==1
+speex/speex_resampler.h
+#endif
+#if MOZ_NATIVE_SOUNDTOUCH==1
+soundtouch/SoundTouch.h
+#endif
$NetBSD: patch-config_system__wrappers_unwind.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- config/system_wrappers/unwind.h.orig 2013-05-13 19:56:18.000000000 +0000
+++ 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
$NetBSD: patch-dom_base_DOMRequest.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- dom/base/DOMRequest.cpp.orig 2015-09-17 22:13:30.000000000 +0000
+++ dom/base/DOMRequest.cpp
@@ -19,7 +19,6 @@ using mozilla::dom::DOMError;
using mozilla::dom::DOMRequest;
using mozilla::dom::DOMRequestService;
using mozilla::dom::DOMCursor;
-using mozilla::dom::Promise;
using mozilla::dom::AutoJSAPI;
DOMRequest::DOMRequest(nsPIDOMWindow* aWindow)
$NetBSD: patch-dom_base_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- dom/base/moz.build.orig 2015-02-17 21:40:41.000000000 +0000
+++ dom/base/moz.build
@@ -361,6 +361,9 @@ if CONFIG['INTEL_ARCHITECTURE']:
SOURCES += ['nsTextFragmentSSE2.cpp']
SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
EXTRA_COMPONENTS += [
'ConsoleAPI.manifest',
'ConsoleAPIStorage.js',
$NetBSD: patch-dom_media_gstreamer_GStreamerAllocator.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- dom/media/gstreamer/GStreamerAllocator.cpp.orig 2015-02-17 21:40:44.000000000 +0000
+++ dom/media/gstreamer/GStreamerAllocator.cpp
@@ -51,7 +51,6 @@ typedef struct
#pragma GCC diagnostic ignored "-Wunused-function"
G_DEFINE_TYPE(MozGfxMemoryAllocator, moz_gfx_memory_allocator, GST_TYPE_ALLOCATOR);
G_DEFINE_TYPE(MozGfxBufferPool, moz_gfx_buffer_pool, GST_TYPE_VIDEO_BUFFER_POOL);
-#pragma GCC diagnostic pop
void
moz_gfx_memory_reset(MozGfxMemory *mem)
$NetBSD: patch-dom_media_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- dom/media/moz.build.orig 2015-03-27 02:20:26.000000000 +0000
+++ dom/media/moz.build
@@ -276,6 +276,27 @@ if CONFIG['ANDROID_VERSION'] > '15':
CFLAGS += CONFIG['GSTREAMER_CFLAGS']
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
+if CONFIG['MOZ_NATIVE_OGG']:
+ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_THEORA']:
+ CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_VORBIS']:
+ CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_TREMOR']:
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_OPUS']:
+ CXXFLAGS += CONFIG['MOZ_OPUS_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_SPEEX']:
+ CXXFLAGS += CONFIG['MOZ_SPEEX_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
+
include('/ipc/chromium/chromium-config.mozbuild')
# Suppress some GCC warnings being treated as errors:
$NetBSD: patch-dom_plugins_ipc_PluginModuleChild.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- dom/plugins/ipc/PluginModuleChild.cpp.orig 2015-03-27 02:20:27.000000000 +0000
+++ dom/plugins/ipc/PluginModuleChild.cpp
@@ -320,7 +320,7 @@ PluginModuleChild::InitForChrome(const s
// TODO: use PluginPRLibrary here
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
mShutdownFunc =
(NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown");
@@ -1882,7 +1882,7 @@ PluginModuleChild::AnswerNP_GetEntryPoin
AssertPluginThread();
MOZ_ASSERT(mIsChrome);
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
return true;
#elif defined(OS_WIN) || defined(OS_MACOSX)
*_retval = mGetEntryPointsFunc(&mFunctions);
@@ -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)
result = mInitializeFunc(&sBrowserFuncs, &mFunctions);
#elif defined(OS_WIN) || defined(OS_MACOSX)
result = mInitializeFunc(&sBrowserFuncs);
$NetBSD: patch-dom_plugins_ipc_PluginModuleChild.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- dom/plugins/ipc/PluginModuleChild.h.orig 2013-05-11 19:19:27.000000000 +0000
+++ dom/plugins/ipc/PluginModuleChild.h
@@ -325,7 +325,7 @@ private:
// we get this from the plugin
NP_PLUGINSHUTDOWN mShutdownFunc;
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
NP_PLUGINUNIXINIT mInitializeFunc;
#elif defined(OS_WIN) || defined(OS_MACOSX)
NP_PLUGININIT mInitializeFunc;
$NetBSD: patch-dom_plugins_ipc_PluginProcessChild.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Just because OS_ARCH is Darwin does not mean
libplugin_child_interpose.dylib is used.
--- dom/plugins/ipc/PluginProcessChild.cpp.orig 2015-02-17 21:40:45.000000000 +0000
+++ dom/plugins/ipc/PluginProcessChild.cpp
@@ -56,7 +56,7 @@ PluginProcessChild::Init()
{
nsDebugImpl::SetMultiprocessMode("NPAPI");
-#if defined(XP_MACOSX)
+#if defined(MOZ_WIDGET_COCOA)
// Remove the trigger for "dyld interposing" that we added in
// GeckoChildProcessHost::PerformAsyncLaunchInternal(), in the host
// process just before we were launched. Dyld interposing will still
$NetBSD: patch-dom_system_OSFileConstants.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* NetBSD 5 does not support posix_spawn(3)
* Replace XP_MACOSX with XP_DARWIN as the former is not defined when
the toolkit is not cocoa.
--- dom/system/OSFileConstants.cpp.orig 2015-10-22 22:30:38.000000000 +0000
+++ dom/system/OSFileConstants.cpp
@@ -11,6 +11,10 @@
#include "prsystem.h"
+#if defined(__NetBSD__)
+#include <sys/param.h>
+#endif
+
#if defined(XP_UNIX)
#include "unistd.h"
#include "dirent.h"
@@ -20,7 +24,9 @@
#define statvfs statfs
#else
#include "sys/statvfs.h"
+#if !(defined(__NetBSD__) && (__NetBSD_Version__ < 600000000))
#include <spawn.h>
+#endif // !NetBSD 5.*
#endif // defined(ANDROID)
#endif // defined(XP_UNIX)
@@ -28,9 +34,9 @@
#include <linux/fadvise.h>
#endif // defined(XP_LINUX)
-#if defined(XP_MACOSX)
+#if defined(XP_DARWIN)
#include "copyfile.h"
-#endif // defined(XP_MACOSX)
+#endif // defined(XP_DARWIN)
#if defined(XP_WIN)
#include <windows.h>
@@ -590,7 +596,7 @@ static const dom::ConstantSpec gLibcProp
// The size of |fsblkcnt_t|.
{ "OSFILE_SIZEOF_FSBLKCNT_T", JS::Int32Value(sizeof (fsblkcnt_t)) },
-#if !defined(ANDROID)
+#if !defined(ANDROID) && !(defined(__NetBSD__) && (__NetBSD_Version__ < 600000000))
// The size of |posix_spawn_file_actions_t|.
{ "OSFILE_SIZEOF_POSIX_SPAWN_FILE_ACTIONS_T", JS::Int32Value(sizeof (posix_spawn_file_actions_t)) },
#endif // !defined(ANDROID)
$NetBSD: patch-extensions_spellcheck_hunspell_glue_mozHunspell.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- extensions/spellcheck/hunspell/glue/mozHunspell.cpp.orig 2015-12-04 00:37:13.000000000 +0000
+++ extensions/spellcheck/hunspell/glue/mozHunspell.cpp
@@ -392,6 +392,14 @@ mozHunspell::LoadDictionaryList(bool aNo
}
}
+ // load system hunspell dictionaries
+ nsCOMPtr<nsIFile> hunDir;
+ NS_NewNativeLocalFile(NS_LITERAL_CSTRING("@PREFIX@/share/hunspell"),
+ true, getter_AddRefs(hunDir));
+ if (hunDir) {
+ LoadDictionariesFromDir(hunDir);
+ }
+
// find dictionaries from extensions requiring restart
nsCOMPtr<nsISimpleEnumerator> dictDirs;
rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY_LIST,
$NetBSD: patch-gfx_cairo_libpixman_src_pixman-arm-neon-asm.S,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/cairo/libpixman/src/pixman-arm-neon-asm.S.orig 2015-09-29 21:45:08.000000000 +0000
+++ gfx/cairo/libpixman/src/pixman-arm-neon-asm.S
@@ -34,6 +34,12 @@
* - pixman_composite_over_n_8_0565_asm_neon
*/
+#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+#define UNWIND
+#else
+#define UNWIND @
+#endif
+
/* Prevent the stack from becoming executable for no reason... */
#if defined(__linux__) && defined(__ELF__)
.section .note.GNU-stack,"",%progbits
@@ -3141,7 +3147,8 @@ pixman_asm_function fname
TMP4 .req r9
STRIDE .req r2
- .fnstart
+ .cfi_startproc
+ UNWIND .fnstart
mov ip, sp
.save {r4, r5, r6, r7, r8, r9}
push {r4, r5, r6, r7, r8, r9}
@@ -3244,7 +3251,8 @@ pixman_asm_function fname
.endif
pop {r4, r5, r6, r7, r8, r9}
bx lr
- .fnend
+ UNWIND .fnend
+ .cfi_endproc
.unreq OUT
.unreq TOP
$NetBSD: patch-gfx_gl_GLContextProviderGLX.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Fix libGL.so filename on NetBSD,
see https://bugzilla.mozilla.org/show_bug.cgi?id=1180498
--- gfx/gl/GLContextProviderGLX.cpp.orig 2015-07-01 00:58:10.000000000 +0200
+++ gfx/gl/GLContextProviderGLX.cpp 2015-07-04 21:13:15.000000000 +0200
@@ -82,7 +82,7 @@
// see e.g. bug 608526: it is intrinsically interesting to know whether we have dynamically linked to libGL.so.1
// because at least the NVIDIA implementation requires an executable stack, which causes mprotect calls,
// which trigger glibc bug http://sourceware.org/bugzilla/show_bug.cgi?id=12225
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
libGLfilename = "libGL.so";
#else
libGLfilename = "libGL.so.1";
$NetBSD: patch-gfx_graphite2_src_Bidi.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/graphite2/src/Bidi.cpp.orig 2013-05-11 19:19:30.000000000 +0000
+++ gfx/graphite2/src/Bidi.cpp
@@ -30,6 +30,11 @@ of the License or (at your option) any l
using namespace graphite2;
+#ifdef __sun
+#undef CS
+#undef ES
+#endif
+
enum DirCode { // Hungarian: dirc
Unk = -1,
N = 0, // other neutrals (default) - ON
$NetBSD: patch-gfx_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/moz.build.orig 2014-03-15 05:19:16.000000000 +0000
+++ gfx/moz.build
@@ -7,6 +7,12 @@
if CONFIG['MOZ_TREE_CAIRO']:
DIRS += ['cairo']
+if not CONFIG['MOZ_NATIVE_GRAPHITE2']:
+ DIRS += ['graphite2/src' ]
+
+if not CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ DIRS += ['harfbuzz/src']
+
DIRS += [
'2d',
'ycbcr',
@@ -15,8 +21,6 @@ DIRS += [
'qcms',
'gl',
'layers',
- 'graphite2/src',
- 'harfbuzz/src',
'ots/src',
'thebes',
'ipc',
$NetBSD: patch-gfx_skia_generate__mozbuild.py,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/skia/generate_mozbuild.py.orig 2015-10-22 22:30:23.000000000 +0000
+++ gfx/skia/generate_mozbuild.py
@@ -147,6 +147,12 @@ if CONFIG['GNU_CXX']:
if CONFIG['CPU_ARCH'] == 'arm':
SOURCES['skia/src/opts/SkBlitRow_opts_arm.cpp'].flags += ['-fomit-frame-pointer']
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
$NetBSD: patch-gfx_skia_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/skia/moz.build.orig 2015-10-22 22:30:23.000000000 +0000
+++ gfx/skia/moz.build
@@ -675,6 +675,12 @@ if CONFIG['GNU_CXX']:
if CONFIG['CPU_ARCH'] == 'arm':
SOURCES['skia/src/opts/SkBlitRow_opts_arm.cpp'].flags += ['-fomit-frame-pointer']
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
$NetBSD: patch-gfx_skia_skia_src_core_SkUtilsArm.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/skia/skia/src/core/SkUtilsArm.cpp.orig 2015-10-22 22:30:24.000000000 +0000
+++ gfx/skia/skia/src/core/SkUtilsArm.cpp
@@ -16,6 +16,10 @@
#include <string.h>
#include <pthread.h>
+#if defined(__NetBSD__)
+#include <sys/sysctl.h>
+#endif
+
// Set USE_ANDROID_NDK_CPU_FEATURES to use the Android NDK's
// cpu-features helper library to detect NEON at runtime. See
// http://crbug.com/164154 to see why this is needed in Chromium
@@ -47,6 +51,11 @@
# endif
#endif
+#if !defined(TEMP_FAILURE_RETRY)
+ // TEMP_FAILURE_RETRY is glibc specific
+# define TEMP_FAILURE_RETRY
+#endif
+
// A function used to determine at runtime if the target CPU supports
// the ARM NEON instruction set. This implementation is Linux-specific.
static bool sk_cpu_arm_check_neon(void) {
@@ -82,6 +91,17 @@ static bool sk_cpu_arm_check_neon(void)
result = (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
+#elif defined(__NetBSD__)
+
+ size_t len;
+ int flag;
+ len = sizeof(flag);
+ if (sysctlbyname("machdep.neon_present", &flag, &len, NULL, 0) == 0) {
+ result = flag != 0;
+ } else {
+ result = false;
+ }
+
#else // USE_ANDROID_NDK_CPU_FEATURES
// There is no user-accessible CPUID instruction on ARM that we can use.
$NetBSD: patch-gfx_skia_skia_src_opts_SkBitmapProcState__opts__arm.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/skia/skia/src/opts/SkBitmapProcState_opts_arm.cpp.orig 2015-10-22 22:30:24.000000000 +0000
+++ gfx/skia/skia/src/opts/SkBitmapProcState_opts_arm.cpp
@@ -97,7 +97,11 @@ void SI8_D16_nofilter_DX_arm(const SkBit
"2: \n\t"
: [xx] "+r" (xx), [count8] "+r" (count8), [colors] "+r" (colors)
: [table] "r" (table), [srcAddr] "r" (srcAddr)
+#if defined(__NetBSD__)
+ : "memory", "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10"
+#else
: "memory", "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
+#endif
);
for (i = (count & 7); i > 0; --i) {
@@ -181,7 +185,11 @@ void SI8_opaque_D32_nofilter_DX_arm(cons
"4: \n\t" // exit
: [xx] "+r" (xx), [count] "+r" (count), [colors] "+r" (colors)
: [table] "r" (table), [srcAddr] "r" (srcAddr)
+#if defined(__NetBSD__)
+ : "memory", "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10"
+#else
: "memory", "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
+#endif
);
}
$NetBSD: patch-gfx_skia_skia_src_opts_memset.arm.S,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/skia/skia/src/opts/memset.arm.S.orig 2015-10-22 22:30:24.000000000 +0000
+++ gfx/skia/skia/src/opts/memset.arm.S
@@ -13,6 +13,12 @@
* to aid future maintenance.
*/
+#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+#define UNWIND
+#else
+#define UNWIND @
+#endif
+
.text
.align 4
.syntax unified
@@ -30,7 +36,8 @@
*
*/
arm_memset16:
- .fnstart
+ .cfi_startproc
+ UNWIND .fnstart
push {lr}
/* if count is equal to zero then abort */
@@ -51,10 +58,12 @@ arm_memset16:
/* Now jump into the main loop below. */
b .Lwork_32
- .fnend
+ UNWIND .fnend
+ .cfi_endproc
arm_memset32:
- .fnstart
+ .cfi_startproc
+ UNWIND .fnstart
push {lr}
/* if count is equal to zero then abort */
@@ -108,4 +117,5 @@ arm_memset32:
.Lfinish:
pop {pc}
- .fnend
+ UNWIND .fnend
+ .cfi_endproc
$NetBSD: patch-gfx_thebes_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/thebes/moz.build.orig 2016-01-23 23:23:35.000000000 +0000
+++ gfx/thebes/moz.build
@@ -291,6 +291,12 @@ CXXFLAGS += CONFIG['TK_CFLAGS']
CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CFLAGS += CONFIG['TK_CFLAGS']
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
+if CONFIG['MOZ_NATIVE_GRAPHITE2']:
+ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk', 'qt'):
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
@@ -304,7 +310,5 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk
LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
-DEFINES['GRAPHITE2_STATIC'] = True
-
if CONFIG['OS_ARCH'] == 'WINNT':
del DEFINES['UNICODE']
$NetBSD: patch-gfx_ycbcr__row__arm.s,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/ycbcr/yuv_row_arm.s.orig 2015-09-29 21:44:50.000000000 +0000
+++ gfx/ycbcr/yuv_row_arm.s
@@ -2,6 +2,12 @@
* 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/. */
+#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+#define UNWIND
+#else
+#define UNWIND @
+#endif
+
.arch armv7-a
.fpu neon
/* Allow to build on targets not supporting neon, and force the object file
@@ -74,7 +80,8 @@ YCbCr42xToRGB565_DITHER30_CONSTS_NEON:
.global ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
.type ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, %function
.balign 64
- .fnstart
+ .cfi_startproc
+ UNWIND .fnstart
ScaleYCbCr42xToRGB565_BilinearY_Row_NEON:
STMFD r13!,{r4-r9,r14} @ 8 words.
ADR r14,YCbCr42xToRGB565_DITHER03_CONSTS_NEON
@@ -296,7 +303,8 @@ s42xbily_neon_tail:
s42xbily_neon_done:
VPOP {Q4-Q7} @ 16 words.
LDMFD r13!,{r4-r9,PC} @ 8 words.
- .fnend
+ UNWIND .fnend
+ .cfi_endproc
.size ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, .-ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
#if defined(__ELF__)&&defined(__linux__)
$NetBSD: patch-gfx_ycbcr_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/ycbcr/moz.build.orig 2014-11-26 12:30:03.000000000 +0000
+++ gfx/ycbcr/moz.build
@@ -63,7 +63,7 @@ else:
if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']:
SOURCES += [
- 'yuv_row_arm.s',
+ 'yuv_row_arm.S',
]
SOURCES += [
'yuv_convert_arm.cpp',
$NetBSD: patch-gfx_ycbcr_yuv__row__arm.S,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- gfx/ycbcr/yuv_row_arm.S.orig 2014-12-01 14:53:14.000000000 +0000
+++ gfx/ycbcr/yuv_row_arm.S
@@ -0,0 +1,312 @@
+/* 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/. */
+
+#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+#define UNWIND
+#else
+#define UNWIND @
+#endif
+
+ .arch armv7-a
+ .fpu neon
+/* Allow to build on targets not supporting neon, and force the object file
+ * target to avoid bumping the final binary target */
+ .object_arch armv4t
+ .text
+ .align
+
+ .balign 64
+YCbCr42xToRGB565_DITHER03_CONSTS_NEON:
+ .short -14240
+ .short -14240+384
+ .short 8672
+ .short 8672+192
+ .short -17696
+ .short -17696+384
+ .byte 102
+ .byte 25
+ .byte 52
+ .byte 129
+YCbCr42xToRGB565_DITHER12_CONSTS_NEON:
+ .short -14240+128
+ .short -14240+256
+ .short 8672+64
+ .short 8672+128
+ .short -17696+128
+ .short -17696+256
+ .byte 102
+ .byte 25
+ .byte 52
+ .byte 129
+YCbCr42xToRGB565_DITHER21_CONSTS_NEON:
+ .short -14240+256
+ .short -14240+128
+ .short 8672+128
+ .short 8672+64
+ .short -17696+256
+ .short -17696+128
+ .byte 102
+ .byte 25
+ .byte 52
+ .byte 129
+YCbCr42xToRGB565_DITHER30_CONSTS_NEON:
+ .short -14240+384
+ .short -14240
+ .short 8672+192
+ .short 8672
+ .short -17696+384
+ .short -17696
+ .byte 102
+ .byte 25
+ .byte 52
+ .byte 129
+
+@ void ScaleYCbCr42xToRGB565_BilinearY_Row_NEON(
+@ yuv2rgb565_row_scale_bilinear_ctx *ctx, int dither);
+@
+@ ctx = {
+@ uint16_t *rgb_row; /*r0*/
+@ const uint8_t *y_row; /*r1*/
+@ const uint8_t *u_row; /*r2*/
+@ const uint8_t *v_row; /*r3*/
+@ int y_yweight; /*r4*/
+@ int y_pitch; /*r5*/
+@ int width; /*r6*/
+@ int source_x0_q16; /*r7*/
+@ int source_dx_q16; /*r8*/
+@ int source_uv_xoffs_q16; /*r9*/
+@ };
+ .global ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
+ .type ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, %function
+ .balign 64
+ .cfi_startproc
+ UNWIND .fnstart
+ScaleYCbCr42xToRGB565_BilinearY_Row_NEON:
+ STMFD r13!,{r4-r9,r14} @ 8 words.
+ ADR r14,YCbCr42xToRGB565_DITHER03_CONSTS_NEON
+ VPUSH {Q4-Q7} @ 16 words.
+ ADD r14,r14,r1, LSL #4 @ Select the dither table to use
+ LDMIA r0, {r0-r9}
+ @ Set up image index registers.
+ ADD r12,r8, r8
+ VMOV.I32 D16,#0 @ Q8 = < 2| 2| 0| 0>*source_dx_q16
+ VDUP.32 D17,r12
+ ADD r12,r12,r12
+ VTRN.32 D16,D17 @ Q2 = < 2| 0| 2| 0>*source_dx_q16
+ VDUP.32 D19,r12 @ Q9 = < 4| 4| ?| ?>*source_dx_q16
+ ADD r12,r12,r12
+ VDUP.32 Q0, r7 @ Q0 = < 1| 1| 1| 1>*source_x0_q16
+ VADD.I32 D17,D17,D19 @ Q8 = < 6| 4| 2| 0>*source_dx_q16
+ CMP r8, #0 @ If source_dx_q16 is negative...
+ VDUP.32 Q9, r12 @ Q9 = < 8| 8| 8| 8>*source_dx_q16
+ ADDLT r7, r7, r8, LSL #4 @ Make r7 point to the end of the block
+ VADD.I32 Q0, Q0, Q8 @ Q0 = < 6| 4| 2| 0>*source_dx_q16+source_x0_q16
+ SUBLT r7, r7, r8 @ (i.e., the lowest address we'll use)
+ VADD.I32 Q1, Q0, Q9 @ Q1 = <14|12|10| 8>*source_dx_q16+source_x0_q16
+ VDUP.I32 Q9, r8 @ Q8 = < 1| 1| 1| 1>*source_dx_q16
+ VADD.I32 Q2, Q0, Q9 @ Q2 = < 7| 5| 3| 1>*source_dx_q16+source_x0_q16
+ VADD.I32 Q3, Q1, Q9 @ Q3 = <15|13|11| 9>*source_dx_q16+source_x0_q16
+ VLD1.64 {D30,D31},[r14,:128] @ Load some constants
+ VMOV.I8 D28,#52
+ VMOV.I8 D29,#129
+ @ The basic idea here is to do aligned loads of a block of data and then
+ @ index into it using VTBL to extract the data from the source X
+ @ coordinate corresponding to each destination pixel.
+ @ This is significantly less code and significantly fewer cycles than doing
+ @ a series of single-lane loads, but it means that the X step between
+ @ pixels must be limited to 2.0 or less, otherwise we couldn't guarantee
+ @ that we could read 8 pixels from a single aligned 32-byte block of data.
+ @ Q0...Q3 contain the 16.16 fixed-point X coordinates of each pixel,
+ @ separated into even pixels and odd pixels to make extracting offsets and
+ @ weights easier.
+ @ We then pull out two bytes from the middle of each coordinate: the top
+ @ byte corresponds to the integer part of the X coordinate, and the bottom
+ @ byte corresponds to the weight to use for bilinear blending.
+ @ These are separated out into different registers with VTRN.
+ @ Then by subtracting the integer X coordinate of the first pixel in the
+ @ data block we loaded, we produce an index register suitable for use by
+ @ VTBL.
+s42xbily_neon_loop:
+ @ Load the Y' data.
+ MOV r12,r7, ASR #16
+ VRSHRN.S32 D16,Q0, #8
+ AND r12,r12,#~15 @ Read 16-byte aligned blocks
+ VDUP.I8 D20,r12
+ ADD r12,r1, r12 @ r12 = y_row+(source_x&~7)
+ VRSHRN.S32 D17,Q1, #8
+ PLD [r12,#64]
+ VLD1.64 {D8, D9, D10,D11},[r12,:128],r5 @ Load Y' top row
+ ADD r14,r7, r8, LSL #3
+ VRSHRN.S32 D18,Q2, #8
+ MOV r14,r14,ASR #16
+ VRSHRN.S32 D19,Q3, #8
+ AND r14,r14,#~15 @ Read 16-byte aligned blocks
+ VLD1.64 {D12,D13,D14,D15},[r12,:128] @ Load Y' bottom row
+ PLD [r12,#64]
+ VDUP.I8 D21,r14
+ ADD r14,r1, r14 @ r14 = y_row+(source_x&~7)
+ VMOV.I8 Q13,#1
+ PLD [r14,#64]
+ VTRN.8 Q8, Q9 @ Q8 = <wFwEwDwCwBwAw9w8w7w6w5w4w3w2w1w0>
+ @ Q9 = <xFxExDxCxBxAx9x8x7x6x5x4x3x2x1x0>
+ VSUB.S8 Q9, Q9, Q10 @ Make offsets relative to the data we loaded.
+ @ First 8 Y' pixels
+ VTBL.8 D20,{D8, D9, D10,D11},D18 @ Index top row at source_x
+ VTBL.8 D24,{D12,D13,D14,D15},D18 @ Index bottom row at source_x
+ VADD.S8 Q13,Q9, Q13 @ Add 1 to source_x
+ VTBL.8 D22,{D8, D9, D10,D11},D26 @ Index top row at source_x+1
+ VTBL.8 D26,{D12,D13,D14,D15},D26 @ Index bottom row at source_x+1
+ @ Next 8 Y' pixels
+ VLD1.64 {D8, D9, D10,D11},[r14,:128],r5 @ Load Y' top row
+ VLD1.64 {D12,D13,D14,D15},[r14,:128] @ Load Y' bottom row
+ PLD [r14,#64]
+ VTBL.8 D21,{D8, D9, D10,D11},D19 @ Index top row at source_x
+ VTBL.8 D25,{D12,D13,D14,D15},D19 @ Index bottom row at source_x
+ VTBL.8 D23,{D8, D9, D10,D11},D27 @ Index top row at source_x+1
+ VTBL.8 D27,{D12,D13,D14,D15},D27 @ Index bottom row at source_x+1
+ @ Blend Y'.
+ VDUP.I16 Q9, r4 @ Load the y weights.
+ VSUBL.U8 Q4, D24,D20 @ Q5:Q4 = c-a
+ VSUBL.U8 Q5, D25,D21
+ VSUBL.U8 Q6, D26,D22 @ Q7:Q6 = d-b
+ VSUBL.U8 Q7, D27,D23
+ VMUL.S16 Q4, Q4, Q9 @ Q5:Q4 = (c-a)*yweight
+ VMUL.S16 Q5, Q5, Q9
+ VMUL.S16 Q6, Q6, Q9 @ Q7:Q6 = (d-b)*yweight
+ VMUL.S16 Q7, Q7, Q9
+ VMOVL.U8 Q12,D16 @ Promote the x weights to 16 bits.
+ VMOVL.U8 Q13,D17 @ Sadly, there's no VMULW.
+ VRSHRN.S16 D8, Q4, #8 @ Q4 = (c-a)*yweight+128>>8
+ VRSHRN.S16 D9, Q5, #8
+ VRSHRN.S16 D12,Q6, #8 @ Q6 = (d-b)*yweight+128>>8
+ VRSHRN.S16 D13,Q7, #8
+ VADD.I8 Q10,Q10,Q4 @ Q10 = a+((c-a)*yweight+128>>8)
+ VADD.I8 Q11,Q11,Q6 @ Q11 = b+((d-b)*yweight+128>>8)
+ VSUBL.U8 Q4, D22,D20 @ Q5:Q4 = b-a
+ VSUBL.U8 Q5, D23,D21
+ VMUL.S16 Q4, Q4, Q12 @ Q5:Q4 = (b-a)*xweight
+ VMUL.S16 Q5, Q5, Q13
+ VRSHRN.S16 D8, Q4, #8 @ Q4 = (b-a)*xweight+128>>8
+ ADD r12,r7, r9
+ VRSHRN.S16 D9, Q5, #8
+ MOV r12,r12,ASR #17
+ VADD.I8 Q8, Q10,Q4 @ Q8 = a+((b-a)*xweight+128>>8)
+ @ Start extracting the chroma x coordinates, and load Cb and Cr.
+ AND r12,r12,#~15 @ Read 16-byte aligned blocks
+ VDUP.I32 Q9, r9 @ Q9 = source_uv_xoffs_q16 x 4
+ ADD r14,r2, r12
+ VADD.I32 Q10,Q0, Q9
+ VLD1.64 {D8, D9, D10,D11},[r14,:128] @ Load Cb
+ PLD [r14,#64]
+ VADD.I32 Q11,Q1, Q9
+ ADD r14,r3, r12
+ VADD.I32 Q12,Q2, Q9
+ VLD1.64 {D12,D13,D14,D15},[r14,:128] @ Load Cr
+ PLD [r14,#64]
+ VADD.I32 Q13,Q3, Q9
+ VRSHRN.S32 D20,Q10,#9 @ Q10 = <xEwExCwCxAwAx8w8x6w6x4w4x2w2x0w0>
+ VRSHRN.S32 D21,Q11,#9
+ VDUP.I8 Q9, r12
+ VRSHRN.S32 D22,Q12,#9 @ Q11 = <xFwFxDwDxBwBx9w9x7w7x5w5x3w3x1w1>
+ VRSHRN.S32 D23,Q13,#9
+ @ We don't actually need the x weights, but we get them for free.
+ @ Free ALU slot
+ VTRN.8 Q10,Q11 @ Q10 = <wFwEwDwCwBwAw9w8w7w6w5w4w3w2w1w0>
+ @ Free ALU slot @ Q11 = <xFxExDxCxBxAx9x8x7x6x5x4x3x2x1x0>
+ VSUB.S8 Q11,Q11,Q9 @ Make offsets relative to the data we loaded.
+ VTBL.8 D18,{D8, D9, D10,D11},D22 @ Index Cb at source_x
+ VMOV.I8 D24,#74
+ VTBL.8 D19,{D8, D9, D10,D11},D23
+ VMOV.I8 D26,#102
+ VTBL.8 D20,{D12,D13,D14,D15},D22 @ Index Cr at source_x
+ VMOV.I8 D27,#25
+ VTBL.8 D21,{D12,D13,D14,D15},D23
+ @ We now have Y' in Q8, Cb in Q9, and Cr in Q10
+ @ We use VDUP to expand constants, because it's a permute instruction, so
+ @ it can dual issue on the A8.
+ SUBS r6, r6, #16 @ width -= 16
+ VMULL.U8 Q4, D16,D24 @ Q5:Q4 = Y'*74
+ VDUP.32 Q6, D30[1] @ Q7:Q6 = bias_G
+ VMULL.U8 Q5, D17,D24
+ VDUP.32 Q7, D30[1]
+ VMLSL.U8 Q6, D18,D27 @ Q7:Q6 = -25*Cb+bias_G
+ VDUP.32 Q11,D30[0] @ Q12:Q11 = bias_R
+ VMLSL.U8 Q7, D19,D27
+ VDUP.32 Q12,D30[0]
+ VMLAL.U8 Q11,D20,D26 @ Q12:Q11 = 102*Cr+bias_R
+ VDUP.32 Q8, D31[0] @ Q13:Q8 = bias_B
+ VMLAL.U8 Q12,D21,D26
+ VDUP.32 Q13,D31[0]
+ VMLAL.U8 Q8, D18,D29 @ Q13:Q8 = 129*Cb+bias_B
+ VMLAL.U8 Q13,D19,D29
+ VMLSL.U8 Q6, D20,D28 @ Q7:Q6 = -25*Cb-52*Cr+bias_G
+ VMLSL.U8 Q7, D21,D28
+ VADD.S16 Q11,Q4, Q11 @ Q12:Q11 = 74*Y'+102*Cr+bias_R
+ VADD.S16 Q12,Q5, Q12
+ VQADD.S16 Q8, Q4, Q8 @ Q13:Q8 = 74*Y'+129*Cr+bias_B
+ VQADD.S16 Q13,Q5, Q13
+ VADD.S16 Q6, Q4, Q6 @ Q7:Q6 = 74*Y'-25*Cb-52*Cr+bias_G
+ VADD.S16 Q7, Q5, Q7
+ @ Push each value to the top of its word and saturate it.
+ VQSHLU.S16 Q11,Q11,#2
+ VQSHLU.S16 Q12,Q12,#2
+ VQSHLU.S16 Q6, Q6, #2
+ VQSHLU.S16 Q7, Q7, #2
+ VQSHLU.S16 Q8, Q8, #2
+ VQSHLU.S16 Q13,Q13,#2
+ @ Merge G and B into R.
+ VSRI.U16 Q11,Q6, #5
+ VSRI.U16 Q12,Q7, #5
+ VSRI.U16 Q11,Q8, #11
+ MOV r14,r8, LSL #4
+ VSRI.U16 Q12,Q13,#11
+ BLT s42xbily_neon_tail
+ VDUP.I32 Q13,r14
+ @ Store the result.
+ VST1.16 {D22,D23,D24,D25},[r0]!
+ BEQ s42xbily_neon_done
+ @ Advance the x coordinates.
+ VADD.I32 Q0, Q0, Q13
+ VADD.I32 Q1, Q1, Q13
+ ADD r7, r14
+ VADD.I32 Q2, Q2, Q13
+ VADD.I32 Q3, Q3, Q13
+ B s42xbily_neon_loop
+s42xbily_neon_tail:
+ @ We have between 1 and 15 pixels left to write.
+ @ -r6 == the number of pixels we need to skip writing.
+ @ Adjust r0 to point to the last one we need to write, because we're going
+ @ to write them in reverse order.
+ ADD r0, r0, r6, LSL #1
+ MOV r14,#-2
+ ADD r0, r0, #30
+ @ Skip past the ones we don't need to write.
+ SUB PC, PC, r6, LSL #2
+ ORR r0, r0, r0
+ VST1.16 {D25[3]},[r0,:16],r14
+ VST1.16 {D25[2]},[r0,:16],r14
+ VST1.16 {D25[1]},[r0,:16],r14
+ VST1.16 {D25[0]},[r0,:16],r14
+ VST1.16 {D24[3]},[r0,:16],r14
+ VST1.16 {D24[2]},[r0,:16],r14
+ VST1.16 {D24[1]},[r0,:16],r14
+ VST1.16 {D24[0]},[r0,:16],r14
+ VST1.16 {D23[3]},[r0,:16],r14
+ VST1.16 {D23[2]},[r0,:16],r14
+ VST1.16 {D23[1]},[r0,:16],r14
+ VST1.16 {D23[0]},[r0,:16],r14
+ VST1.16 {D22[3]},[r0,:16],r14
+ VST1.16 {D22[2]},[r0,:16],r14
+ VST1.16 {D22[1]},[r0,:16],r14
+ VST1.16 {D22[0]},[r0,:16]
+s42xbily_neon_done:
+ VPOP {Q4-Q7} @ 16 words.
+ LDMFD r13!,{r4-r9,PC} @ 8 words.
+ UNWIND .fnend
+ .cfi_endproc
+ .size ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, .-ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
+
+#if defined(__ELF__)&&(defined(__linux__) || defined(__NetBSD__))
+ .section .note.GNU-stack,"",%progbits
+#endif
$NetBSD: patch-image_decoders_nsJPEGDecoder.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- image/decoders/nsJPEGDecoder.cpp.orig 2015-08-07 15:54:06.000000000 +0000
+++ image/decoders/nsJPEGDecoder.cpp
@@ -23,13 +23,28 @@
extern "C" {
#include "iccjpeg.h"
-}
+#ifdef JCS_EXTENSIONS
#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
#endif
+#else
+/* Colorspace conversion (copied from jpegint.h) */
+struct jpeg_color_deconverter {
+ JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
+ JMETHOD(void, color_convert, (j_decompress_ptr cinfo,
+ JSAMPIMAGE input_buf, JDIMENSION input_row,
+ JSAMPARRAY output_buf, int num_rows));
+};
+
+METHODDEF(void)
+ycc_rgb_convert_argb (j_decompress_ptr cinfo,
+ JSAMPIMAGE input_buf, JDIMENSION input_row,
+ JSAMPARRAY output_buf, int num_rows);
+#endif
+}
static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width);
@@ -373,6 +388,7 @@ nsJPEGDecoder::WriteInternal(const char*
case JCS_GRAYSCALE:
case JCS_RGB:
case JCS_YCbCr:
+#ifdef JCS_EXTENSIONS
// if we're not color managing we can decode directly to
// MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
if (mCMSMode != eCMSMode_All) {
@@ -381,6 +397,9 @@ nsJPEGDecoder::WriteInternal(const char*
} else {
mInfo.out_color_space = JCS_RGB;
}
+#else
+ mInfo.out_color_space = JCS_RGB;
+#endif
break;
case JCS_CMYK:
case JCS_YCCK:
@@ -448,6 +467,16 @@ nsJPEGDecoder::WriteInternal(const char*
return; // I/O suspension
}
+#ifndef JCS_EXTENSIONS
+ /* Force to use our YCbCr to Packed RGB converter when possible */
+ if (!mTransform && (mCMSMode != eCMSMode_All) &&
+ mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) {
+ /* Special case for the most common case: transform from YCbCr direct into packed ARGB */
+ mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/
+ mInfo.cconvert->color_convert = ycc_rgb_convert_argb;
+ }
+#endif
+
// If this is a progressive JPEG ...
mState = mInfo.buffered_image ?
JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
@@ -629,7 +658,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) {
+#else
+ if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) {
+#endif
// Special case: scanline will be directly converted into packed ARGB
if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
*suspend = true; // suspend
@@ -953,6 +986,282 @@ term_source (j_decompress_ptr jd)
} // namespace image
} // namespace mozilla
+#ifndef JCS_EXTENSIONS
+/**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/
+
+/*
+ * YCbCr is defined per CCIR 601-1, except that Cb and Cr are
+ * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5.
+ * The conversion equations to be implemented are therefore
+ * R = Y + 1.40200 * Cr
+ * G = Y - 0.34414 * Cb - 0.71414 * Cr
+ * B = Y + 1.77200 * Cb
+ * where Cb and Cr represent the incoming values less CENTERJSAMPLE.
+ * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.)
+ *
+ * To avoid floating-point arithmetic, we represent the fractional constants
+ * as integers scaled up by 2^16 (about 4 digits precision); we have to divide
+ * the products by 2^16, with appropriate rounding, to get the correct answer.
+ * Notice that Y, being an integral input, does not contribute any fraction
+ * so it need not participate in the rounding.
+ *
+ * For even more speed, we avoid doing any multiplications in the inner loop
+ * by precalculating the constants times Cb and Cr for all possible values.
+ * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table);
+ * for 12-bit samples it is still acceptable. It's not very reasonable for
+ * 16-bit samples, but if you want lossless storage you shouldn't be changing
+ * colorspace anyway.
+ * The Cr=>R and Cb=>B values can be rounded to integers in advance; the
+ * values for the G calculation are left scaled up, since we must add them
+ * together before rounding.
+ */
+
+#define SCALEBITS 16 /* speediest right-shift on some machines */
+
+/* Use static tables for color processing. */
+/* Four tables, each 256 entries of 4 bytes totals 4K which is not bad... */
+
+const int Cr_r_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ -0xb3, -0xb2, -0xb1, -0xaf, -0xae, -0xac,
+ -0xab, -0xaa, -0xa8, -0xa7, -0xa5, -0xa4,
+ -0xa3, -0xa1, -0xa0, -0x9e, -0x9d, -0x9c,
+ -0x9a, -0x99, -0x97, -0x96, -0x95, -0x93,
+ -0x92, -0x90, -0x8f, -0x8e, -0x8c, -0x8b,
+ -0x89, -0x88, -0x87, -0x85, -0x84, -0x82,
+ -0x81, -0x80, -0x7e, -0x7d, -0x7b, -0x7a,
+ -0x79, -0x77, -0x76, -0x74, -0x73, -0x72,
+ -0x70, -0x6f, -0x6d, -0x6c, -0x6b, -0x69,
+ -0x68, -0x66, -0x65, -0x64, -0x62, -0x61,
+ -0x5f, -0x5e, -0x5d, -0x5b, -0x5a, -0x58,
+ -0x57, -0x56, -0x54, -0x53, -0x51, -0x50,
+ -0x4f, -0x4d, -0x4c, -0x4a, -0x49, -0x48,
+ -0x46, -0x45, -0x43, -0x42, -0x40, -0x3f,
+ -0x3e, -0x3c, -0x3b, -0x39, -0x38, -0x37,
+ -0x35, -0x34, -0x32, -0x31, -0x30, -0x2e,
+ -0x2d, -0x2b, -0x2a, -0x29, -0x27, -0x26,
+ -0x24, -0x23, -0x22, -0x20, -0x1f, -0x1d,
+ -0x1c, -0x1b, -0x19, -0x18, -0x16, -0x15,
+ -0x14, -0x12, -0x11, -0x0f, -0x0e, -0x0d,
+ -0x0b, -0x0a, -0x08, -0x07, -0x06, -0x04,
+ -0x03, -0x01, 0x00, 0x01, 0x03, 0x04,
+ 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0d,
+ 0x0e, 0x0f, 0x11, 0x12, 0x14, 0x15,
+ 0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1d,
+ 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26,
+ 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e,
+ 0x30, 0x31, 0x32, 0x34, 0x35, 0x37,
+ 0x38, 0x39, 0x3b, 0x3c, 0x3e, 0x3f,
+ 0x40, 0x42, 0x43, 0x45, 0x46, 0x48,
+ 0x49, 0x4a, 0x4c, 0x4d, 0x4f, 0x50,
+ 0x51, 0x53, 0x54, 0x56, 0x57, 0x58,
+ 0x5a, 0x5b, 0x5d, 0x5e, 0x5f, 0x61,
+ 0x62, 0x64, 0x65, 0x66, 0x68, 0x69,
+ 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x72,
+ 0x73, 0x74, 0x76, 0x77, 0x79, 0x7a,
+ 0x7b, 0x7d, 0x7e, 0x80, 0x81, 0x82,
+ 0x84, 0x85, 0x87, 0x88, 0x89, 0x8b,
+ 0x8c, 0x8e, 0x8f, 0x90, 0x92, 0x93,
+ 0x95, 0x96, 0x97, 0x99, 0x9a, 0x9c,
+ 0x9d, 0x9e, 0xa0, 0xa1, 0xa3, 0xa4,
+ 0xa5, 0xa7, 0xa8, 0xaa, 0xab, 0xac,
+ 0xae, 0xaf, 0xb1, 0xb2,
+ };
+
+const int Cb_b_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ -0xe3, -0xe1, -0xdf, -0xde, -0xdc, -0xda,
+ -0xd8, -0xd6, -0xd5, -0xd3, -0xd1, -0xcf,
+ -0xce, -0xcc, -0xca, -0xc8, -0xc6, -0xc5,
+ -0xc3, -0xc1, -0xbf, -0xbe, -0xbc, -0xba,
+ -0xb8, -0xb7, -0xb5, -0xb3, -0xb1, -0xaf,
+ -0xae, -0xac, -0xaa, -0xa8, -0xa7, -0xa5,
+ -0xa3, -0xa1, -0x9f, -0x9e, -0x9c, -0x9a,
+ -0x98, -0x97, -0x95, -0x93, -0x91, -0x90,
+ -0x8e, -0x8c, -0x8a, -0x88, -0x87, -0x85,
+ -0x83, -0x81, -0x80, -0x7e, -0x7c, -0x7a,
+ -0x78, -0x77, -0x75, -0x73, -0x71, -0x70,
+ -0x6e, -0x6c, -0x6a, -0x69, -0x67, -0x65,
+ -0x63, -0x61, -0x60, -0x5e, -0x5c, -0x5a,
+ -0x59, -0x57, -0x55, -0x53, -0x52, -0x50,
+ -0x4e, -0x4c, -0x4a, -0x49, -0x47, -0x45,
+ -0x43, -0x42, -0x40, -0x3e, -0x3c, -0x3a,
+ -0x39, -0x37, -0x35, -0x33, -0x32, -0x30,
+ -0x2e, -0x2c, -0x2b, -0x29, -0x27, -0x25,
+ -0x23, -0x22, -0x20, -0x1e, -0x1c, -0x1b,
+ -0x19, -0x17, -0x15, -0x13, -0x12, -0x10,
+ -0x0e, -0x0c, -0x0b, -0x09, -0x07, -0x05,
+ -0x04, -0x02, 0x00, 0x02, 0x04, 0x05,
+ 0x07, 0x09, 0x0b, 0x0c, 0x0e, 0x10,
+ 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b,
+ 0x1c, 0x1e, 0x20, 0x22, 0x23, 0x25,
+ 0x27, 0x29, 0x2b, 0x2c, 0x2e, 0x30,
+ 0x32, 0x33, 0x35, 0x37, 0x39, 0x3a,
+ 0x3c, 0x3e, 0x40, 0x42, 0x43, 0x45,
+ 0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50,
+ 0x52, 0x53, 0x55, 0x57, 0x59, 0x5a,
+ 0x5c, 0x5e, 0x60, 0x61, 0x63, 0x65,
+ 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x70,
+ 0x71, 0x73, 0x75, 0x77, 0x78, 0x7a,
+ 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x85,
+ 0x87, 0x88, 0x8a, 0x8c, 0x8e, 0x90,
+ 0x91, 0x93, 0x95, 0x97, 0x98, 0x9a,
+ 0x9c, 0x9e, 0x9f, 0xa1, 0xa3, 0xa5,
+ 0xa7, 0xa8, 0xaa, 0xac, 0xae, 0xaf,
+ 0xb1, 0xb3, 0xb5, 0xb7, 0xb8, 0xba,
+ 0xbc, 0xbe, 0xbf, 0xc1, 0xc3, 0xc5,
+ 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xcf,
+ 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda,
+ 0xdc, 0xde, 0xdf, 0xe1,
+ };
+
+const int Cr_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ 0x5b6900, 0x5ab22e, 0x59fb5c, 0x59448a, 0x588db8, 0x57d6e6,
+ 0x572014, 0x566942, 0x55b270, 0x54fb9e, 0x5444cc, 0x538dfa,
+ 0x52d728, 0x522056, 0x516984, 0x50b2b2, 0x4ffbe0, 0x4f450e,
+ 0x4e8e3c, 0x4dd76a, 0x4d2098, 0x4c69c6, 0x4bb2f4, 0x4afc22,
+ 0x4a4550, 0x498e7e, 0x48d7ac, 0x4820da, 0x476a08, 0x46b336,
+ 0x45fc64, 0x454592, 0x448ec0, 0x43d7ee, 0x43211c, 0x426a4a,
+ 0x41b378, 0x40fca6, 0x4045d4, 0x3f8f02, 0x3ed830, 0x3e215e,
+ 0x3d6a8c, 0x3cb3ba, 0x3bfce8, 0x3b4616, 0x3a8f44, 0x39d872,
+ 0x3921a0, 0x386ace, 0x37b3fc, 0x36fd2a, 0x364658, 0x358f86,
+ 0x34d8b4, 0x3421e2, 0x336b10, 0x32b43e, 0x31fd6c, 0x31469a,
+ 0x308fc8, 0x2fd8f6, 0x2f2224, 0x2e6b52, 0x2db480, 0x2cfdae,
+ 0x2c46dc, 0x2b900a, 0x2ad938, 0x2a2266, 0x296b94, 0x28b4c2,
+ 0x27fdf0, 0x27471e, 0x26904c, 0x25d97a, 0x2522a8, 0x246bd6,
+ 0x23b504, 0x22fe32, 0x224760, 0x21908e, 0x20d9bc, 0x2022ea,
+ 0x1f6c18, 0x1eb546, 0x1dfe74, 0x1d47a2, 0x1c90d0, 0x1bd9fe,
+ 0x1b232c, 0x1a6c5a, 0x19b588, 0x18feb6, 0x1847e4, 0x179112,
+ 0x16da40, 0x16236e, 0x156c9c, 0x14b5ca, 0x13fef8, 0x134826,
+ 0x129154, 0x11da82, 0x1123b0, 0x106cde, 0x0fb60c, 0x0eff3a,
+ 0x0e4868, 0x0d9196, 0x0cdac4, 0x0c23f2, 0x0b6d20, 0x0ab64e,
+ 0x09ff7c, 0x0948aa, 0x0891d8, 0x07db06, 0x072434, 0x066d62,
+ 0x05b690, 0x04ffbe, 0x0448ec, 0x03921a, 0x02db48, 0x022476,
+ 0x016da4, 0x00b6d2, 0x000000, -0x00b6d2, -0x016da4, -0x022476,
+ -0x02db48, -0x03921a, -0x0448ec, -0x04ffbe, -0x05b690, -0x066d62,
+ -0x072434, -0x07db06, -0x0891d8, -0x0948aa, -0x09ff7c, -0x0ab64e,
+ -0x0b6d20, -0x0c23f2, -0x0cdac4, -0x0d9196, -0x0e4868, -0x0eff3a,
+ -0x0fb60c, -0x106cde, -0x1123b0, -0x11da82, -0x129154, -0x134826,
+ -0x13fef8, -0x14b5ca, -0x156c9c, -0x16236e, -0x16da40, -0x179112,
+ -0x1847e4, -0x18feb6, -0x19b588, -0x1a6c5a, -0x1b232c, -0x1bd9fe,
+ -0x1c90d0, -0x1d47a2, -0x1dfe74, -0x1eb546, -0x1f6c18, -0x2022ea,
+ -0x20d9bc, -0x21908e, -0x224760, -0x22fe32, -0x23b504, -0x246bd6,
+ -0x2522a8, -0x25d97a, -0x26904c, -0x27471e, -0x27fdf0, -0x28b4c2,
+ -0x296b94, -0x2a2266, -0x2ad938, -0x2b900a, -0x2c46dc, -0x2cfdae,
+ -0x2db480, -0x2e6b52, -0x2f2224, -0x2fd8f6, -0x308fc8, -0x31469a,
+ -0x31fd6c, -0x32b43e, -0x336b10, -0x3421e2, -0x34d8b4, -0x358f86,
+ -0x364658, -0x36fd2a, -0x37b3fc, -0x386ace, -0x3921a0, -0x39d872,
+ -0x3a8f44, -0x3b4616, -0x3bfce8, -0x3cb3ba, -0x3d6a8c, -0x3e215e,
+ -0x3ed830, -0x3f8f02, -0x4045d4, -0x40fca6, -0x41b378, -0x426a4a,
+ -0x43211c, -0x43d7ee, -0x448ec0, -0x454592, -0x45fc64, -0x46b336,
+ -0x476a08, -0x4820da, -0x48d7ac, -0x498e7e, -0x4a4550, -0x4afc22,
+ -0x4bb2f4, -0x4c69c6, -0x4d2098, -0x4dd76a, -0x4e8e3c, -0x4f450e,
+ -0x4ffbe0, -0x50b2b2, -0x516984, -0x522056, -0x52d728, -0x538dfa,
+ -0x5444cc, -0x54fb9e, -0x55b270, -0x566942, -0x572014, -0x57d6e6,
+ -0x588db8, -0x59448a, -0x59fb5c, -0x5ab22e,
+ };
+
+const int Cb_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ 0x2c8d00, 0x2c34e6, 0x2bdccc, 0x2b84b2, 0x2b2c98, 0x2ad47e,
+ 0x2a7c64, 0x2a244a, 0x29cc30, 0x297416, 0x291bfc, 0x28c3e2,
+ 0x286bc8, 0x2813ae, 0x27bb94, 0x27637a, 0x270b60, 0x26b346,
+ 0x265b2c, 0x260312, 0x25aaf8, 0x2552de, 0x24fac4, 0x24a2aa,
+ 0x244a90, 0x23f276, 0x239a5c, 0x234242, 0x22ea28, 0x22920e,
+ 0x2239f4, 0x21e1da, 0x2189c0, 0x2131a6, 0x20d98c, 0x208172,
+ 0x202958, 0x1fd13e, 0x1f7924, 0x1f210a, 0x1ec8f0, 0x1e70d6,
+ 0x1e18bc, 0x1dc0a2, 0x1d6888, 0x1d106e, 0x1cb854, 0x1c603a,
+ 0x1c0820, 0x1bb006, 0x1b57ec, 0x1affd2, 0x1aa7b8, 0x1a4f9e,
+ 0x19f784, 0x199f6a, 0x194750, 0x18ef36, 0x18971c, 0x183f02,
+ 0x17e6e8, 0x178ece, 0x1736b4, 0x16de9a, 0x168680, 0x162e66,
+ 0x15d64c, 0x157e32, 0x152618, 0x14cdfe, 0x1475e4, 0x141dca,
+ 0x13c5b0, 0x136d96, 0x13157c, 0x12bd62, 0x126548, 0x120d2e,
+ 0x11b514, 0x115cfa, 0x1104e0, 0x10acc6, 0x1054ac, 0x0ffc92,
+ 0x0fa478, 0x0f4c5e, 0x0ef444, 0x0e9c2a, 0x0e4410, 0x0debf6,
+ 0x0d93dc, 0x0d3bc2, 0x0ce3a8, 0x0c8b8e, 0x0c3374, 0x0bdb5a,
+ 0x0b8340, 0x0b2b26, 0x0ad30c, 0x0a7af2, 0x0a22d8, 0x09cabe,
+ 0x0972a4, 0x091a8a, 0x08c270, 0x086a56, 0x08123c, 0x07ba22,
+ 0x076208, 0x0709ee, 0x06b1d4, 0x0659ba, 0x0601a0, 0x05a986,
+ 0x05516c, 0x04f952, 0x04a138, 0x04491e, 0x03f104, 0x0398ea,
+ 0x0340d0, 0x02e8b6, 0x02909c, 0x023882, 0x01e068, 0x01884e,
+ 0x013034, 0x00d81a, 0x008000, 0x0027e6, -0x003034, -0x00884e,
+ -0x00e068, -0x013882, -0x01909c, -0x01e8b6, -0x0240d0, -0x0298ea,
+ -0x02f104, -0x03491e, -0x03a138, -0x03f952, -0x04516c, -0x04a986,
+ -0x0501a0, -0x0559ba, -0x05b1d4, -0x0609ee, -0x066208, -0x06ba22,
+ -0x07123c, -0x076a56, -0x07c270, -0x081a8a, -0x0872a4, -0x08cabe,
+ -0x0922d8, -0x097af2, -0x09d30c, -0x0a2b26, -0x0a8340, -0x0adb5a,
+ -0x0b3374, -0x0b8b8e, -0x0be3a8, -0x0c3bc2, -0x0c93dc, -0x0cebf6,
+ -0x0d4410, -0x0d9c2a, -0x0df444, -0x0e4c5e, -0x0ea478, -0x0efc92,
+ -0x0f54ac, -0x0facc6, -0x1004e0, -0x105cfa, -0x10b514, -0x110d2e,
+ -0x116548, -0x11bd62, -0x12157c, -0x126d96, -0x12c5b0, -0x131dca,
+ -0x1375e4, -0x13cdfe, -0x142618, -0x147e32, -0x14d64c, -0x152e66,
+ -0x158680, -0x15de9a, -0x1636b4, -0x168ece, -0x16e6e8, -0x173f02,
+ -0x17971c, -0x17ef36, -0x184750, -0x189f6a, -0x18f784, -0x194f9e,
+ -0x19a7b8, -0x19ffd2, -0x1a57ec, -0x1ab006, -0x1b0820, -0x1b603a,
+ -0x1bb854, -0x1c106e, -0x1c6888, -0x1cc0a2, -0x1d18bc, -0x1d70d6,
+ -0x1dc8f0, -0x1e210a, -0x1e7924, -0x1ed13e, -0x1f2958, -0x1f8172,
+ -0x1fd98c, -0x2031a6, -0x2089c0, -0x20e1da, -0x2139f4, -0x21920e,
+ -0x21ea28, -0x224242, -0x229a5c, -0x22f276, -0x234a90, -0x23a2aa,
+ -0x23fac4, -0x2452de, -0x24aaf8, -0x250312, -0x255b2c, -0x25b346,
+ -0x260b60, -0x26637a, -0x26bb94, -0x2713ae, -0x276bc8, -0x27c3e2,
+ -0x281bfc, -0x287416, -0x28cc30, -0x29244a, -0x297c64, -0x29d47e,
+ -0x2a2c98, -0x2a84b2, -0x2adccc, -0x2b34e6,
+ };
+
+
+/* We assume that right shift corresponds to signed division by 2 with
+ * rounding towards minus infinity. This is correct for typical "arithmetic
+ * shift" instructions that shift in copies of the sign bit. But some
+ * C compilers implement >> with an unsigned shift. For these machines you
+ * must define RIGHT_SHIFT_IS_UNSIGNED.
+ * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity.
+ * It is only applied with constant shift counts. SHIFT_TEMPS must be
+ * included in the variables of any routine using RIGHT_SHIFT.
+ */
+
+#ifdef RIGHT_SHIFT_IS_UNSIGNED
+#define SHIFT_TEMPS INT32 shift_temp;
+#define RIGHT_SHIFT(x,shft) \
+ ((shift_temp = (x)) < 0 ? \
+ (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \
+ (shift_temp >> (shft)))
+#else
+#define SHIFT_TEMPS
+#define RIGHT_SHIFT(x,shft) ((x) >> (shft))
+#endif
+
+
+METHODDEF(void)
+ycc_rgb_convert_argb (j_decompress_ptr cinfo,
+ JSAMPIMAGE input_buf, JDIMENSION input_row,
+ JSAMPARRAY output_buf, int num_rows)
+{
+ JDIMENSION num_cols = cinfo->output_width;
+ JSAMPLE * range_limit = cinfo->sample_range_limit;
+
+ SHIFT_TEMPS
+
+ /* This is used if we don't have SSE2 */
+
+ while (--num_rows >= 0) {
+ JSAMPROW inptr0 = input_buf[0][input_row];
+ JSAMPROW inptr1 = input_buf[1][input_row];
+ JSAMPROW inptr2 = input_buf[2][input_row];
+ input_row++;
+ uint32_t *outptr = (uint32_t *) *output_buf++;
+ for (JDIMENSION col = 0; col < num_cols; col++) {
+ int y = GETJSAMPLE(inptr0[col]);
+ int cb = GETJSAMPLE(inptr1[col]);
+ int cr = GETJSAMPLE(inptr2[col]);
+ JSAMPLE * range_limit_y = range_limit + y;
+ /* Range-limiting is essential due to noise introduced by DCT losses. */
+ outptr[col] = 0xFF000000 |
+ ( range_limit_y[Cr_r_tab[cr]] << 16 ) |
+ ( range_limit_y[((int) RIGHT_SHIFT(Cb_g_tab[cb] + Cr_g_tab[cr], SCALEBITS))] << 8 ) |
+ ( range_limit_y[Cb_b_tab[cb]] );
+ }
+ }
+}
+#endif
+
+
///*************** Inverted CMYK -> RGB conversion *************************
/// Input is (Inverted) CMYK stored as 4 bytes per pixel.
/// Output is RGB stored as 3 bytes per pixel.
$NetBSD: patch-intl_hyphenation_glue_hnjalloc.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- intl/hyphenation/glue/hnjalloc.h.orig 2015-12-04 00:36:54.000000000 +0000
+++ intl/hyphenation/glue/hnjalloc.h
@@ -24,6 +24,9 @@
*/
#include <stdio.h> /* ensure stdio.h is loaded before our macros */
+#ifdef __sun
+#include <wchar.h>
+#endif
#undef FILE
#define FILE hnjFile
$NetBSD: patch-ipc_chromium_src_base_atomicops.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Avoid invalid cast errors under NetBSD/evbearmv7hf-el.
--- ipc/chromium/src/base/atomicops.h.orig 2014-11-13 22:49:59.000000000 +0000
+++ ipc/chromium/src/base/atomicops.h
@@ -45,7 +45,7 @@ typedef int64_t Atomic64;
// Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or
// Atomic64 routines below, depending on your architecture.
-#ifdef OS_OPENBSD
+#if defined(OS_OPENBSD) || (defined(OS_NETBSD) && defined(ARCH_CPU_ARM_FAMILY))
#ifdef ARCH_CPU_64_BITS
typedef Atomic64 AtomicWord;
#else
$NetBSD: patch-ipc_chromium_src_base_file__util__posix.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Just because OS_ARCH is Darwin does not mean MacOS X specific
implementation should be used.
--- ipc/chromium/src/base/file_util_posix.cc.orig 2015-08-07 15:54:10.000000000 +0000
+++ ipc/chromium/src/base/file_util_posix.cc
@@ -266,7 +266,7 @@ bool SetCurrentDirectory(const FilePath&
return !ret;
}
-#if !defined(OS_MACOSX)
+#if !defined(MOZ_WIDGET_COCOA)
bool GetTempDir(FilePath* path) {
const char* tmp = getenv("TMPDIR");
if (tmp)
@@ -330,6 +330,6 @@ bool CopyFile(const FilePath& from_path,
return result;
}
-#endif // !defined(OS_MACOSX)
+#endif // !defined(MOZ_WIDGET_COCOA)
} // namespace file_util
$NetBSD: patch-ipc_chromium_src_base_message__loop.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Don't assume cocoa toolkit just because OS_ARCH is Darwin.
--- ipc/chromium/src/base/message_loop.cc.orig 2014-05-29 23:30:52.000000000 +0000
+++ ipc/chromium/src/base/message_loop.cc
@@ -14,20 +14,18 @@
#include "base/string_util.h"
#include "base/thread_local.h"
-#if defined(OS_MACOSX)
+#if defined(MOZ_WIDGET_COCOA)
#include "base/message_pump_mac.h"
#endif
#if defined(OS_POSIX)
#include "base/message_pump_libevent.h"
#endif
-#if defined(OS_LINUX) || defined(OS_BSD)
#if defined(MOZ_WIDGET_GTK)
#include "base/message_pump_glib.h"
#endif
#ifdef MOZ_WIDGET_QT
#include "base/message_pump_qt.h"
#endif
-#endif
#ifdef ANDROID
#include "base/message_pump_android.h"
#endif
@@ -135,9 +133,9 @@ MessageLoop::MessageLoop(Type type)
}
#elif defined(OS_POSIX)
if (type_ == TYPE_UI) {
-#if defined(OS_MACOSX)
+#if defined(MOZ_WIDGET_COCOA)
pump_ = base::MessagePumpMac::Create();
-#elif defined(OS_LINUX) || defined(OS_BSD)
+#elif defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_QT)
pump_ = new base::MessagePumpForUI();
#endif // OS_LINUX
} else if (type_ == TYPE_IO) {
$NetBSD: patch-ipc_chromium_src_base_message__pump__libevent.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Allow older libevent
--- ipc/chromium/src/base/message_pump_libevent.cc.orig 2016-01-23 23:23:38.000000000 +0000
+++ ipc/chromium/src/base/message_pump_libevent.cc
@@ -20,6 +20,7 @@
// This macro checks that the _EVENT_SIZEOF_* constants defined in
// ipc/chromiume/src/third_party/<platform>/event2/event-config.h are correct.
+#if 0
#define CHECK_EVENT_SIZEOF(TYPE, type) \
static_assert(_EVENT_SIZEOF_##TYPE == sizeof(type), \
"bad _EVENT_SIZEOF_"#TYPE);
@@ -30,6 +31,7 @@ CHECK_EVENT_SIZEOF(PTHREAD_T, pthread_t)
CHECK_EVENT_SIZEOF(SHORT, short);
CHECK_EVENT_SIZEOF(SIZE_T, size_t);
CHECK_EVENT_SIZEOF(VOID_P, void*);
+#endif
// Lifecycle of struct event
// Libevent uses two main data structures:
$NetBSD: patch-ipc_chromium_src_base_platform__thread.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- ipc/chromium/src/base/platform_thread.h.orig 2013-09-10 03:43:34.000000000 +0000
+++ ipc/chromium/src/base/platform_thread.h
@@ -25,6 +25,9 @@ typedef pthread_t PlatformThreadHandle;
#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(__GLIBC__)
#include <unistd.h>
typedef pid_t PlatformThreadId;
+#elif defined(OS_SOLARIS)
+#include <sys/lwp.h>
+typedef lwpid_t PlatformThreadId;
#elif defined(OS_BSD)
#include <sys/types.h>
typedef lwpid_t PlatformThreadId;
$NetBSD: patch-ipc_chromium_src_base_platform__thread__posix.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Just because OS_ARCH is Darwin does not mean MacOS X specific
kludges are needed.
--- ipc/chromium/src/base/platform_thread_posix.cc.orig 2016-02-25 23:01:54.000000000 +0000
+++ ipc/chromium/src/base/platform_thread_posix.cc
@@ -9,22 +9,24 @@
#if defined(OS_MACOSX)
#include <mach/mach.h>
+#include <dlfcn.h>
+#include <string>
#elif defined(OS_NETBSD)
+_Pragma("GCC visibility push(default)")
#include <lwp.h>
+_Pragma("GCC visibility pop")
#elif defined(OS_LINUX)
#include <sys/syscall.h>
#include <sys/prctl.h>
#endif
-#if !defined(OS_MACOSX)
#include <unistd.h>
-#endif
#if defined(OS_BSD) && !defined(OS_NETBSD) && !defined(__GLIBC__)
#include <pthread_np.h>
#endif
-#if defined(OS_MACOSX)
+#if defined(MOZ_WIDGET_COCOA)
namespace base {
void InitThreading();
} // namespace
@@ -82,7 +84,7 @@ void PlatformThread::Sleep(int duration_
sleep_time = remaining;
}
-#ifndef OS_MACOSX
+#ifndef MOZ_WIDGET_COCOA
// Mac is implemented in platform_thread_mac.mm.
// static
@@ -105,19 +107,41 @@ void PlatformThread::SetName(const char*
pthread_setname_np(pthread_self(), "%s", (void *)name);
#elif defined(OS_BSD) && !defined(__GLIBC__)
pthread_set_name_np(pthread_self(), name);
-#else
+#elif defined(OS_MACOSX)
+ // Copied from platform_thread_mac.mm
+
+ // pthread_setname_np is only available in 10.6 or later, so test
+ // for it at runtime.
+ int (*dynamic_pthread_setname_np)(const char*);
+ *reinterpret_cast<void**>(&dynamic_pthread_setname_np) =
+ dlsym(RTLD_DEFAULT, "pthread_setname_np");
+ if (!dynamic_pthread_setname_np)
+ return;
+
+ // Mac OS X does not expose the length limit of the name, so
+ // hardcode it.
+ const int kMaxNameLength = 63;
+ std::string shortened_name = std::string(name).substr(0, kMaxNameLength);
+ // pthread_setname() fails (harmlessly) in the sandbox, ignore when it does.
+ // See http://crbug.com/47058
+
+ // The name parameter is copied thus it's safe to release it after calling.
+ // Checked against the bionic implementation in bionic/libc/bionic/pthread.c
+ dynamic_pthread_setname_np(shortened_name.c_str());
+#elif !defined(OS_SOLARIS)
+ prctl(PR_SET_NAME, reinterpret_cast<uintptr_t>(name), 0, 0, 0);
#endif
}
-#endif // !OS_MACOSX
+#endif // !MOZ_WIDGET_COCOA
namespace {
bool CreateThread(size_t stack_size, bool joinable,
PlatformThread::Delegate* delegate,
PlatformThreadHandle* thread_handle) {
-#if defined(OS_MACOSX)
+#if defined(MOZ_WIDGET_COCOA)
base::InitThreading();
-#endif // OS_MACOSX
+#endif // MOZ_WIDGET_COCOA
bool success = false;
pthread_attr_t attributes;
$NetBSD: patch-ipc_chromium_src_base_process__util.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- ipc/chromium/src/base/process_util.h.orig 2015-01-09 04:38:16.000000000 +0000
+++ ipc/chromium/src/base/process_util.h
@@ -41,6 +41,9 @@
typedef PROCESSENTRY32 ProcessEntry;
typedef IO_COUNTERS IoCounters;
#elif defined(OS_POSIX)
+#ifndef NAME_MAX
+#define NAME_MAX _POSIX_NAME_MAX
+#endif
// TODO(port): we should not rely on a Win32 structure.
struct ProcessEntry {
int pid;
$NetBSD: patch-ipc_chromium_src_base_process__util__bsd.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Darwin does not provide kvm_getprocs(3). The code for OS_MACOSX is
simply copied from process_util_mac.mm
--- ipc/chromium/src/base/process_util_bsd.cc.orig 2016-02-25 23:01:54.000000000 +0000
+++ ipc/chromium/src/base/process_util_bsd.cc
@@ -10,6 +10,10 @@
#include <spawn.h>
#include <sys/wait.h>
+#if defined(OS_BSD)
+#include <kvm.h>
+#endif
+
#include <string>
#include "base/eintr_wrapper.h"
$NetBSD: patch-ipc_chromium_src_base_process__util__posix.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- ipc/chromium/src/base/process_util_posix.cc.orig 2013-05-11 19:19:32.000000000 +0000
+++ ipc/chromium/src/base/process_util_posix.cc
@@ -110,7 +110,7 @@ void CloseSuperfluousFds(const base::Inj
#if defined(ANDROID)
static const rlim_t kSystemDefaultMaxFds = 1024;
static const char kFDDir[] = "/proc/self/fd";
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
static const rlim_t kSystemDefaultMaxFds = 8192;
static const char kFDDir[] = "/proc/self/fd";
#elif defined(OS_MACOSX)
@@ -202,7 +202,7 @@ void CloseSuperfluousFds(const base::Inj
// TODO(agl): Remove this function. It's fundamentally broken for multithreaded
// apps.
void SetAllFDsToCloseOnExec() {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_SOLARIS)
const char fd_dir[] = "/proc/self/fd";
#elif defined(OS_MACOSX) || defined(OS_BSD)
const char fd_dir[] = "/dev/fd";
$NetBSD: patch-ipc_chromium_src_base_scoped__nsautorelease__pool.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Just because OS_ARCH is Darwin does not mean ScopedNSAutoreleasePool
is needed.
--- ipc/chromium/src/base/scoped_nsautorelease_pool.h.orig 2014-05-06 22:55:41.000000000 +0000
+++ ipc/chromium/src/base/scoped_nsautorelease_pool.h
@@ -7,13 +7,13 @@
#include "base/basictypes.h"
-#if defined(OS_MACOSX)
+#if defined(MOZ_WIDGET_COCOA)
#if defined(__OBJC__)
@class NSAutoreleasePool;
#else // __OBJC__
class NSAutoreleasePool;
#endif // __OBJC__
-#endif // OS_MACOSX
+#endif // MOZ_WIDGET_COCOA
namespace base {
@@ -27,10 +27,10 @@ namespace base {
// ugly #ifdefs.
class ScopedNSAutoreleasePool {
public:
-#if !defined(OS_MACOSX)
+#if !defined(MOZ_WIDGET_COCOA)
ScopedNSAutoreleasePool() {}
void Recycle() { }
-#else // OS_MACOSX
+#else // MOZ_WIDGET_COCOA
ScopedNSAutoreleasePool();
~ScopedNSAutoreleasePool();
@@ -41,7 +41,7 @@ class ScopedNSAutoreleasePool {
void Recycle();
private:
NSAutoreleasePool* autorelease_pool_;
-#endif // OS_MACOSX
+#endif // MOZ_WIDGET_COCOA
private:
DISALLOW_COPY_AND_ASSIGN(ScopedNSAutoreleasePool);
$NetBSD: patch-ipc_chromium_src_base_sys__info__posix.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- ipc/chromium/src/base/sys_info_posix.cc.orig 2016-01-15 01:01:44.000000000 +0000
+++ ipc/chromium/src/base/sys_info_posix.cc
@@ -119,7 +119,11 @@ std::wstring SysInfo::GetEnvVar(const wc
// static
std::string SysInfo::OperatingSystemName() {
+#ifdef OS_SOLARIS
+ struct utsname info;
+#else
utsname info;
+#endif
if (uname(&info) < 0) {
NOTREACHED();
return "";
$NetBSD: patch-ipc_chromium_src_base_time__posix.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- ipc/chromium/src/base/time_posix.cc.orig 2013-05-11 19:19:32.000000000 +0000
+++ ipc/chromium/src/base/time_posix.cc
@@ -65,8 +65,10 @@ Time Time::FromExploded(bool is_local, c
timestruct.tm_wday = exploded.day_of_week; // mktime/timegm ignore this
timestruct.tm_yday = 0; // mktime/timegm ignore this
timestruct.tm_isdst = -1; // attempt to figure it out
+#ifndef OS_SOLARIS
timestruct.tm_gmtoff = 0; // not a POSIX field, so mktime/timegm ignore
timestruct.tm_zone = NULL; // not a POSIX field, so mktime/timegm ignore
+#endif
time_t seconds;
#ifdef ANDROID
$NetBSD: patch-ipc_chromium_src_build_build__config.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- ipc/chromium/src/build/build_config.h.orig 2013-05-11 19:19:32.000000000 +0000
+++ ipc/chromium/src/build/build_config.h
@@ -27,6 +27,8 @@
#define OS_NETBSD 1
#elif defined(__OpenBSD__)
#define OS_OPENBSD 1
+#elif defined(__sun)
+#define OS_SOLARIS 1
#elif defined(_WIN32)
#define OS_WIN 1
#else
@@ -42,7 +44,7 @@
// For access to standard POSIX features, use OS_POSIX instead of a more
// specific macro.
-#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
#define OS_POSIX 1
#endif
$NetBSD: patch-ipc_chromium_src_chrome_common_transport__dib.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- ipc/chromium/src/chrome/common/transport_dib.h.orig 2013-05-11 19:19:32.000000000 +0000
+++ ipc/chromium/src/chrome/common/transport_dib.h
@@ -70,7 +70,7 @@ class TransportDIB {
typedef base::SharedMemoryHandle Handle;
// On Mac, the inode number of the backing file is used as an id.
typedef base::SharedMemoryId Id;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
typedef int Handle; // These two ints are SysV IPC shared memory keys
typedef int Id;
#endif
$NetBSD: patch-ipc_glue_GeckoChildProcessHost.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Just because OS_ARCH is Darwin does not mean MacOS X specific
kludges are needed.
--- ipc/glue/GeckoChildProcessHost.cpp.orig 2015-01-09 04:38:16.000000000 +0000
+++ ipc/glue/GeckoChildProcessHost.cpp
@@ -4,7 +4,13 @@
* 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/. */
+#if defined(__NetBSD__)
+_Pragma("GCC visibility push(default)")
+#endif
#include "GeckoChildProcessHost.h"
+#if defined(__NetBSD__)
+_Pragma("GCC visibility pop")
+#endif
#include "base/command_line.h"
#include "base/string_util.h"
@@ -533,7 +539,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
// and passing wstrings from one config to the other is unsafe. So
// we split the logic here.
-#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD) || defined(OS_SOLARIS)
base::environment_map newEnvVars;
ChildPrivileges privs = mPrivileges;
if (privs == base::PRIVILEGES_DEFAULT) {
@@ -672,7 +678,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
childArgv.push_back(pidstring);
#if defined(MOZ_CRASHREPORTER)
-# if defined(OS_LINUX) || defined(OS_BSD)
+# if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
int childCrashFd, childCrashRemapFd;
if (!CrashReporter::CreateNotificationPipeForChild(
&childCrashFd, &childCrashRemapFd))
@@ -705,7 +711,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
childArgv.push_back(childProcessType);
base::LaunchApp(childArgv, mFileMap,
-#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD) || defined(OS_SOLARIS)
newEnvVars, privs,
#endif
false, &process, arch);
$NetBSD: patch-ipc_glue_StringUtil.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Just because OS_ARCH is Darwin does not mean
sys_string_conversions_mac.mm can be used.
--- ipc/glue/StringUtil.cpp.orig 2014-05-06 22:55:41.000000000 +0000
+++ ipc/glue/StringUtil.cpp
@@ -64,14 +64,14 @@ namespace base {
// converters, and implementing the one that doesn't exist for OS X
// and Windows.
-#if !defined(OS_MACOSX) && !defined(OS_WIN)
+#if !defined(MOZ_WIDGET_COCOA) && !defined(OS_WIN)
std::string SysWideToUTF8(const std::wstring& wide) {
// FIXME/cjones: do this with iconv
return GhettoStringConvert<std::wstring, std::string>(wide);
}
#endif
-#if !defined(OS_MACOSX) && !defined(OS_WIN)
+#if !defined(MOZ_WIDGET_COCOA) && !defined(OS_WIN)
std::wstring SysUTF8ToWide(const StringPiece& utf8) {
// FIXME/cjones: do this with iconv
return GhettoStringConvert<StringPiece, std::wstring>(utf8);
$NetBSD: patch-ipc_glue_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Don't assume cocoa toolkit just because OS_ARCH is Darwin.
--- ipc/glue/moz.build.orig 2015-06-18 20:55:28.000000000 +0000
+++ ipc/glue/moz.build
@@ -87,7 +87,7 @@ elif CONFIG['OS_ARCH'] in ('DragonFly',
UNIFIED_SOURCES += [
'ProcessUtils_bsd.cpp'
]
-elif CONFIG['OS_ARCH'] == 'Darwin':
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
UNIFIED_SOURCES += [
'ProcessUtils_mac.mm'
]
$NetBSD: patch-js__src__vm__SPSProfiler.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Unclear fallout from our version of bug 840242, attachment v1: some architectures
fail to link if we do not add the inlines here - might be compiler/arch specific.
--- js/src/vm/SPSProfiler.cpp.orig 2014-04-18 02:03:21.000000000 +0000
+++ js/src/vm/SPSProfiler.cpp
@@ -4,6 +4,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/. */
+#include "jscntxtinlines.h"
+
#include "vm/SPSProfiler.h"
#include "mozilla/DebugOnly.h"
$NetBSD: patch-js_src_ctypes_CTypes.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/ctypes/CTypes.h.orig 2014-02-12 21:29:02.000000000 +0000
+++ js/src/ctypes/CTypes.h
@@ -14,6 +14,23 @@
#include "js/Vector.h"
#include "vm/String.h"
+#if defined(__NetBSD__)
+#include <stdint.h>
+/* XXX why do we have those funky __ #defines in stdint.h? */
+#warning this is a retarded workaround
+#define uint8_t uint8_t
+#define uint16_t uint16_t
+#define uint32_t uint32_t
+#define uint64_t uint64_t
+#define int8_t int8_t
+#define int16_t int16_t
+#define int32_t int32_t
+#define int64_t int64_t
+#define intptr_t intptr_t
+#define uintptr_t uintptr_t
+#define off_t off_t
+#endif
+
namespace js {
namespace ctypes {
$NetBSD: patch-js_src_frontend_ParseMaps.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/frontend/ParseMaps.cpp.orig 2013-09-10 03:43:34.000000000 +0000
+++ js/src/frontend/ParseMaps.cpp
@@ -132,5 +132,5 @@ frontend::InitAtomMap(JSContext *cx, fro
}
}
-template class js::frontend::AtomDecls<FullParseHandler>;
-template class js::frontend::AtomDecls<SyntaxParseHandler>;
+template class frontend::AtomDecls<FullParseHandler>;
+template class frontend::AtomDecls<SyntaxParseHandler>;
$NetBSD: patch-js_src_jit-LIR.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/jit/LIR.cpp.orig 2015-08-24 21:53:12.000000000 +0000
+++ js/src/jit/LIR.cpp
@@ -323,7 +323,7 @@ LNode::printName(GenericPrinter& out, Op
const char* name = names[op];
size_t len = strlen(name);
for (size_t i = 0; i < len; i++)
- out.printf("%c", tolower(name[i]));
+ out.printf("%c", tolower((unsigned char)name[i]));
}
void
$NetBSD: patch-js_src_jit_MIR.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/jit/MIR.cpp.orig 2015-08-24 21:53:12.000000000 +0000
+++ js/src/jit/MIR.cpp
@@ -72,7 +72,7 @@ MDefinition::PrintOpcodeName(GenericPrin
const char* name = names[op];
size_t len = strlen(name);
for (size_t i = 0; i < len; i++)
- out.printf("%c", tolower(name[i]));
+ out.printf("%c", tolower((unsigned char)name[i]));
}
const Value&
$NetBSD: patch-js_src_jit_arm_Architecture-arm.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/jit/arm/Architecture-arm.cpp.orig 2015-08-24 21:53:12.000000000 +0000
+++ js/src/jit/arm/Architecture-arm.cpp
@@ -16,7 +16,7 @@
#include "jit/arm/Assembler-arm.h"
#include "jit/RegisterSets.h"
-#if !defined(__linux__) || defined(ANDROID) || defined(JS_SIMULATOR_ARM)
+#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.
# define HWCAP_VFP (1 << 6)
$NetBSD: patch-js_src_jsdate.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/jsdate.cpp.orig 2016-02-25 23:02:04.000000000 +0000
+++ js/src/jsdate.cpp
@@ -2672,8 +2672,8 @@ ToLocaleFormatHelper(JSContext* cx, Hand
if (strcmp(format, "%x") == 0 && result_len >= 6 &&
/* Format %x means use OS settings, which may have 2-digit yr, so
hack end of 3/11/22 or 11.03.22 or 11Mar22 to use 4-digit yr...*/
- !isdigit(buf[result_len - 3]) &&
- isdigit(buf[result_len - 2]) && isdigit(buf[result_len - 1]) &&
+ !isdigit(((unsigned char)buf[result_len - 3])) &&
+ isdigit(((unsigned char)buf[result_len - 2])) && isdigit(((unsigned char)buf[result_len - 1])) &&
/* ...but not if starts with 4-digit year, like 2022/3/11. */
!(isdigit(buf[0]) && isdigit(buf[1]) &&
isdigit(buf[2]) && isdigit(buf[3]))) {
$NetBSD: patch-js_src_jskwgen.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/jskwgen.cpp.orig 2015-01-23 06:00:01.000000000 +0000
+++ js/src/jskwgen.cpp 2015-02-05 11:42:30.000000000 +0000
@@ -181,7 +181,7 @@
*s++ = '\\';
break;
default:
- if (!isprint(c)) {
+ if (!isprint(((unsigned char)c))) {
*s++ = '\\';
*s++ = (char)('0' + (0x3 & (((unsigned char)c) >> 6)));
*s++ = (char)('0' + (0x7 & (((unsigned char)c) >> 3)));
$NetBSD: patch-js_src_jsmath.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/jsmath.cpp.orig 2013-09-10 03:43:36.000000000 +0000
+++ js/src/jsmath.cpp
@@ -244,7 +244,7 @@ js::ecmaAtan2(double y, double x)
}
#endif
-#if defined(SOLARIS) && defined(__GNUC__)
+#if defined(notSOLARIS) && defined(__GNUC__)
if (y == 0) {
if (IsNegativeZero(x))
return js_copysign(M_PI, y);
$NetBSD: patch-js_src_shell_jsoptparse.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- js/src/shell/jsoptparse.cpp.orig 2015-06-18 20:55:32.000000000 +0000
+++ js/src/shell/jsoptparse.cpp
@@ -95,7 +95,7 @@ PrintParagraph(const char* text, unsigne
++it;
while (*it != '\0') {
- MOZ_ASSERT(!isspace(*it));
+ MOZ_ASSERT(!isspace((unsigned char)*it));
/* Delimit the current token. */
const char* limit = it;
$NetBSD: patch-js_xpconnect_src_XPCConvert.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Suggested workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1147837
Avoids a crash on big endian 64 bit architectures.
--- js/xpconnect/src/XPCConvert.cpp.orig 2015-03-21 04:42:37.000000000 +0100
+++ js/xpconnect/src/XPCConvert.cpp 2015-03-30 13:49:16.000000000 +0200
@@ -134,7 +134,7 @@
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));
$NetBSD: patch-js_xpconnect_src_xpcprivate.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
From commit log 1.1:
Instantiate WeakMapPtr explicitly to get the right visibility with
clang.
--- js/xpconnect/src/xpcprivate.h.orig 2015-01-23 06:00:06.000000000 +0000
+++ js/xpconnect/src/xpcprivate.h
@@ -1016,6 +1016,8 @@ static inline bool IS_PROTO_CLASS(const
/***************************************************************************/
// XPCWrappedNativeScope is one-to-one with a JS global object.
+extern template class JS_PUBLIC_API(JS::WeakMapPtr)<JSObject*, JSObject*>;
+
class nsIAddonInterposition;
class nsXPCComponentsBase;
class XPCWrappedNativeScope : public PRCList
$NetBSD: patch-media_libcubeb_src_cubeb.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libcubeb/src/cubeb.c.orig 2016-02-25 23:01:58.000000000 +0000
+++ media/libcubeb/src/cubeb.c
@@ -60,6 +60,9 @@ int audiotrack_init(cubeb ** context, ch
#if defined(USE_KAI)
int kai_init(cubeb ** context, char const * context_name);
#endif
+#if defined(USE_OSS)
+int oss_init(cubeb ** context, char const * context_name);
+#endif
int
validate_stream_params(cubeb_stream_params stream_params)
@@ -129,6 +132,9 @@ cubeb_init(cubeb ** context, char const
#if defined(USE_KAI)
kai_init,
#endif
+#if defined(USE_OSS)
+ oss_init,
+#endif
};
int i;
$NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libcubeb/src/cubeb_alsa.c.orig 2016-02-25 23:01:58.000000000 +0000
+++ media/libcubeb/src/cubeb_alsa.c
@@ -7,12 +7,18 @@
#undef NDEBUG
#define _DEFAULT_SOURCE
#define _BSD_SOURCE
+#if defined(__NetBSD__)
+#define _NETBSD_SOURCE
+#endif
#define _XOPEN_SOURCE 500
#include <pthread.h>
#include <sys/time.h>
#include <assert.h>
#include <limits.h>
+#include <dlfcn.h>
#include <poll.h>
+#include <stdlib.h>
+#include <stdio.h>
#include <unistd.h>
#include <alsa/asoundlib.h>
#include "cubeb/cubeb.h"
@@ -25,6 +31,51 @@
#define ALSA_PA_PLUGIN "ALSA <-> PulseAudio PCM I/O Plugin"
+#ifdef DISABLE_LIBASOUND_DLOPEN
+#define WRAP(x) x
+#else
+#define WRAP(x) cubeb_##x
+#define MAKE_TYPEDEF(x) static typeof(x) * cubeb_##x
+MAKE_TYPEDEF(snd_config);
+MAKE_TYPEDEF(snd_config_add);
+MAKE_TYPEDEF(snd_config_copy);
+MAKE_TYPEDEF(snd_config_delete);
+MAKE_TYPEDEF(snd_config_get_id);
+MAKE_TYPEDEF(snd_config_get_string);
+MAKE_TYPEDEF(snd_config_imake_integer);
+MAKE_TYPEDEF(snd_config_search);
+MAKE_TYPEDEF(snd_config_search_definition);
+MAKE_TYPEDEF(snd_lib_error_set_handler);
+MAKE_TYPEDEF(snd_pcm_avail_update);
+MAKE_TYPEDEF(snd_pcm_close);
+MAKE_TYPEDEF(snd_pcm_delay);
+MAKE_TYPEDEF(snd_pcm_drain);
+MAKE_TYPEDEF(snd_pcm_forward);
+MAKE_TYPEDEF(snd_pcm_frames_to_bytes);
+MAKE_TYPEDEF(snd_pcm_get_params);
+/* snd_pcm_hw_params_alloca is actually a macro */
+/* MAKE_TYPEDEF(snd_pcm_hw_params_alloca); */
+MAKE_TYPEDEF(snd_pcm_hw_params_sizeof);
+#define snd_pcm_hw_params_sizeof cubeb_snd_pcm_hw_params_sizeof
+MAKE_TYPEDEF(snd_pcm_hw_params_any);
+MAKE_TYPEDEF(snd_pcm_hw_params_get_channels_max);
+MAKE_TYPEDEF(snd_pcm_hw_params_get_rate);
+MAKE_TYPEDEF(snd_pcm_hw_params_set_rate_near);
+MAKE_TYPEDEF(snd_pcm_nonblock);
+MAKE_TYPEDEF(snd_pcm_open);
+MAKE_TYPEDEF(snd_pcm_open_lconf);
+MAKE_TYPEDEF(snd_pcm_pause);
+MAKE_TYPEDEF(snd_pcm_poll_descriptors);
+MAKE_TYPEDEF(snd_pcm_poll_descriptors_count);
+MAKE_TYPEDEF(snd_pcm_poll_descriptors_revents);
+MAKE_TYPEDEF(snd_pcm_recover);
+MAKE_TYPEDEF(snd_pcm_set_params);
+MAKE_TYPEDEF(snd_pcm_state);
+MAKE_TYPEDEF(snd_pcm_writei);
+
+#undef MAKE_TYPEDEF
+#endif
+
/* 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),
@@ -65,6 +116,8 @@ struct cubeb {
workaround is not required. */
snd_config_t * local_config;
int is_pa;
+
+ void * libasound;
};
enum stream_state {
@@ -258,32 +311,35 @@ alsa_refill_stream(cubeb_stream * stm)
long got;
void * p;
int draining;
+ unsigned pipefailures, againfailures;
draining = 0;
pthread_mutex_lock(&stm->mutex);
- r = snd_pcm_poll_descriptors_revents(stm->pcm, stm->fds, stm->nfds, &revents);
- if (r < 0 || revents != POLLOUT) {
- /* This should be a stream error; it makes no sense for poll(2) to wake
- for this stream and then have the stream report that it's not ready.
- Unfortunately, this does happen, so just bail out and try again. */
- pthread_mutex_unlock(&stm->mutex);
- return RUNNING;
- }
-
- avail = snd_pcm_avail_update(stm->pcm);
- if (avail == -EPIPE) {
- snd_pcm_recover(stm->pcm, avail, 1);
- avail = snd_pcm_avail_update(stm->pcm);
- }
+ for (pipefailures = 0;;) {
+ r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents);
+ if (r < 0 || revents != POLLOUT ||
+ (avail = WRAP(snd_pcm_avail_update)(stm->pcm)) == 0) {
+ /* This should be a stream error; it makes no sense for poll(2) to wake
+ for this stream and then have the stream report that it's not ready.
+ Unfortunately, this does happen, so just bail out and try again. */
+ pthread_mutex_unlock(&stm->mutex);
+ return RUNNING;
+ }
- /* Failed to recover from an xrun, this stream must be broken. */
- if (avail < 0) {
- pthread_mutex_unlock(&stm->mutex);
- stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
- return ERROR;
+ if (avail > 0)
+ break;
+ if (pipefailures++ > 11) {
+ fprintf(stderr, "%s: repeated failures from snd_pcm_avail_update, "
+ "giving up\n", __func__);
+ pthread_mutex_unlock(&stm->mutex);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ return ERROR;
+ }
+ WRAP(snd_pcm_recover)(stm->pcm, avail, 1);
}
+ pipefailures = againfailures = 0;
/* This should never happen. */
if ((unsigned int) avail > stm->buffer_size) {
@@ -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) {
- snd_pcm_recover(stm->pcm, -EPIPE, 1);
- avail = snd_pcm_avail_update(stm->pcm);
+ WRAP(snd_pcm_recover)(stm->pcm, -EPIPE, 1);
+ avail = WRAP(snd_pcm_avail_update)(stm->pcm);
if (avail <= 0) {
pthread_mutex_unlock(&stm->mutex);
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
@@ -303,7 +359,7 @@ alsa_refill_stream(cubeb_stream * stm)
}
}
- p = calloc(1, snd_pcm_frames_to_bytes(stm->pcm, avail));
+ p = calloc(1, WRAP(snd_pcm_frames_to_bytes)(stm->pcm, avail));
assert(p);
pthread_mutex_unlock(&stm->mutex);
@@ -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);
+ free(p);
return ERROR;
}
if (got > 0) {
- snd_pcm_sframes_t wrote;
+ snd_pcm_sframes_t wrote, towrite = got;
if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) {
float * b = (float *) p;
@@ -328,14 +385,66 @@ alsa_refill_stream(cubeb_stream * stm)
b[i] *= stm->volume;
}
}
- wrote = snd_pcm_writei(stm->pcm, p, got);
- if (wrote == -EPIPE) {
- snd_pcm_recover(stm->pcm, wrote, 1);
- wrote = snd_pcm_writei(stm->pcm, p, got);
- }
- assert(wrote >= 0 && wrote == got);
- stm->write_position += wrote;
- gettimeofday(&stm->last_activity, NULL);
+ for (;;) {
+ wrote = WRAP(snd_pcm_writei)(stm->pcm, p,
+ towrite > avail ? avail : towrite);
+ switch(wrote) {
+ case -EPIPE:
+ if (pipefailures++ > 3) {
+ fprintf(stderr, "%s: Too many underflows, giving up\n", __func__);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ pthread_mutex_unlock(&stm->mutex);
+ free(p);
+ return ERROR;
+ }
+ WRAP(snd_pcm_recover)(stm->pcm, wrote, 1);
+ continue;
+ case -EAGAIN:
+ if (againfailures++ > 3) {
+ fprintf(stderr, "%s: Too many -EAGAIN errors from snd_pcm_writei, "
+ "giving up\n", __func__);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ pthread_mutex_unlock(&stm->mutex);
+ free(p);
+ return ERROR;
+ }
+ continue;
+#if __linux__
+ case -EBADFD:
+#else
+ case -EBADF:
+#endif
+ fprintf(stderr, "%s: snc_pcm_writei returned -%s, giving up\n",
+ __func__, "EBADFD");
+ free(p);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ pthread_mutex_unlock(&stm->mutex);
+ return ERROR;
+ }
+ if (wrote < 0) {
+ fprintf(stderr, "%s: snc_pcm_writei returned unexpected error %lld, "
+ "giving up\n", __func__, (long long)wrote);
+ free(p);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ pthread_mutex_unlock(&stm->mutex);
+ return ERROR;
+ }
+ pipefailures = againfailures = 0;
+ stm->write_position += wrote;
+ gettimeofday(&stm->last_activity, NULL);
+ if (wrote > towrite) {
+ fprintf(stderr, "%s: snc_pcm_writei wrote %lld frames, which was more "
+ "than we requested (%lld). This should not happen, giving up\n",
+ __func__, (long long)wrote, (long long)towrite);
+ free(p);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ pthread_mutex_unlock(&stm->mutex);
+ return ERROR;
+ }
+ if (towrite == wrote)
+ break;
+ towrite -= wrote;
+ }
}
if (got != avail) {
long buffer_fill = stm->buffer_size - (avail - got);
@@ -343,7 +452,7 @@ alsa_refill_stream(cubeb_stream * stm)
/* Fill the remaining buffer with silence to guarantee one full period
has been written. */
- snd_pcm_writei(stm->pcm, (char *) p + got, avail - got);
+ WRAP(snd_pcm_writei)(stm->pcm, (char *) p + got, avail - got);
set_timeout(&stm->drain_timeout, buffer_time * 1000);
@@ -454,26 +563,26 @@ get_slave_pcm_node(snd_config_t * lconf,
slave_def = NULL;
- r = snd_config_search(root_pcm, "slave", &slave_pcm);
+ r = WRAP(snd_config_search)(root_pcm, "slave", &slave_pcm);
if (r < 0) {
return NULL;
}
- r = snd_config_get_string(slave_pcm, &string);
+ r = WRAP(snd_config_get_string)(slave_pcm, &string);
if (r >= 0) {
- r = snd_config_search_definition(lconf, "pcm_slave", string, &slave_def);
+ r = WRAP(snd_config_search_definition)(lconf, "pcm_slave", string, &slave_def);
if (r < 0) {
return NULL;
}
}
do {
- r = snd_config_search(slave_def ? slave_def : slave_pcm, "pcm", &pcm);
+ r = WRAP(snd_config_search)(slave_def ? slave_def : slave_pcm, "pcm", &pcm);
if (r < 0) {
break;
}
- r = snd_config_get_string(slave_def ? slave_def : slave_pcm, &string);
+ r = WRAP(snd_config_get_string)(slave_def ? slave_def : slave_pcm, &string);
if (r < 0) {
break;
}
@@ -482,7 +591,7 @@ get_slave_pcm_node(snd_config_t * lconf,
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
- r = snd_config_search(lconf, node_name, &pcm);
+ r = WRAP(snd_config_search)(lconf, node_name, &pcm);
if (r < 0) {
break;
}
@@ -491,7 +600,7 @@ get_slave_pcm_node(snd_config_t * lconf,
} while (0);
if (slave_def) {
- snd_config_delete(slave_def);
+ WRAP(snd_config_delete)(slave_def);
}
return NULL;
@@ -514,22 +623,22 @@ init_local_config_with_workaround(char c
lconf = NULL;
- if (snd_config == NULL) {
+ if (*WRAP(snd_config) == NULL) {
return NULL;
}
- r = snd_config_copy(&lconf, snd_config);
+ r = WRAP(snd_config_copy)(&lconf, *WRAP(snd_config));
if (r < 0) {
return NULL;
}
do {
- r = snd_config_search_definition(lconf, "pcm", pcm_name, &pcm_node);
+ r = WRAP(snd_config_search_definition)(lconf, "pcm", pcm_name, &pcm_node);
if (r < 0) {
break;
}
- r = snd_config_get_id(pcm_node, &string);
+ r = WRAP(snd_config_get_id)(pcm_node, &string);
if (r < 0) {
break;
}
@@ -538,7 +647,7 @@ init_local_config_with_workaround(char c
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
- r = snd_config_search(lconf, node_name, &pcm_node);
+ r = WRAP(snd_config_search)(lconf, node_name, &pcm_node);
if (r < 0) {
break;
}
@@ -549,12 +658,12 @@ init_local_config_with_workaround(char c
}
/* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */
- r = snd_config_search(pcm_node, "type", &node);
+ r = WRAP(snd_config_search)(pcm_node, "type", &node);
if (r < 0) {
break;
}
- r = snd_config_get_string(node, &string);
+ r = WRAP(snd_config_get_string)(node, &string);
if (r < 0) {
break;
}
@@ -565,18 +674,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. */
- r = snd_config_search(pcm_node, "handle_underrun", &node);
+ r = WRAP(snd_config_search)(pcm_node, "handle_underrun", &node);
if (r != -ENOENT) {
break;
}
/* Disable pcm_pulse's asynchronous underrun handling. */
- r = snd_config_imake_integer(&node, "handle_underrun", 0);
+ r = WRAP(snd_config_imake_integer)(&node, "handle_underrun", 0);
if (r < 0) {
break;
}
- r = snd_config_add(pcm_node, node);
+ r = WRAP(snd_config_add)(pcm_node, node);
if (r < 0) {
break;
}
@@ -584,7 +693,7 @@ init_local_config_with_workaround(char c
return lconf;
} while (0);
- snd_config_delete(lconf);
+ WRAP(snd_config_delete)(lconf);
return NULL;
}
@@ -596,9 +705,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, s
pthread_mutex_lock(&cubeb_alsa_mutex);
if (local_config) {
- r = snd_pcm_open_lconf(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config);
+ r = WRAP(snd_pcm_open_lconf)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config);
} else {
- r = snd_pcm_open(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK);
+ r = WRAP(snd_pcm_open)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK);
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
@@ -611,7 +720,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
int r;
pthread_mutex_lock(&cubeb_alsa_mutex);
- r = snd_pcm_close(pcm);
+ r = WRAP(snd_pcm_close)(pcm);
pthread_mutex_unlock(&cubeb_alsa_mutex);
return r;
@@ -668,12 +777,65 @@ alsa_init(cubeb ** context, char const *
pthread_attr_t attr;
snd_pcm_t * dummy;
+ void * libasound = NULL;
+
+#ifndef DISABLE_LIBASOUND_DLOPEN
+ libasound = dlopen("libasound.so", RTLD_LAZY);
+ if (!libasound) {
+ return CUBEB_ERROR;
+ }
+
+#define LOAD(x) do { \
+ cubeb_##x = dlsym(libasound, #x); \
+ if (!cubeb_##x) { \
+ dlclose(libasound); \
+ return CUBEB_ERROR; \
+ } \
+ } while(0)
+
+ LOAD(snd_config);
+ LOAD(snd_config_add);
+ LOAD(snd_config_copy);
+ LOAD(snd_config_delete);
+ LOAD(snd_config_get_id);
+ LOAD(snd_config_get_string);
+ LOAD(snd_config_imake_integer);
+ LOAD(snd_config_search);
+ LOAD(snd_config_search_definition);
+ LOAD(snd_lib_error_set_handler);
+ LOAD(snd_pcm_avail_update);
+ LOAD(snd_pcm_close);
+ LOAD(snd_pcm_delay);
+ LOAD(snd_pcm_drain);
+ LOAD(snd_pcm_frames_to_bytes);
+ LOAD(snd_pcm_get_params);
+ /* snd_pcm_hw_params_alloca is actually a macro */
+ /* LOAD(snd_pcm_hw_params_alloca); */
+ LOAD(snd_pcm_hw_params_sizeof);
+ LOAD(snd_pcm_hw_params_any);
+ LOAD(snd_pcm_hw_params_get_channels_max);
+ LOAD(snd_pcm_hw_params_get_rate);
+ LOAD(snd_pcm_hw_params_set_rate_near);
+ LOAD(snd_pcm_nonblock);
+ LOAD(snd_pcm_open);
+ LOAD(snd_pcm_open_lconf);
+ LOAD(snd_pcm_pause);
+ LOAD(snd_pcm_poll_descriptors);
+ LOAD(snd_pcm_poll_descriptors_count);
+ LOAD(snd_pcm_poll_descriptors_revents);
+ LOAD(snd_pcm_recover);
+ LOAD(snd_pcm_set_params);
+ LOAD(snd_pcm_state);
+ LOAD(snd_pcm_writei);
+
+#undef LOAD
+#endif
assert(context);
*context = NULL;
pthread_mutex_lock(&cubeb_alsa_mutex);
if (!cubeb_alsa_error_handler_set) {
- snd_lib_error_set_handler(silent_error_handler);
+ WRAP(snd_lib_error_set_handler)(silent_error_handler);
cubeb_alsa_error_handler_set = 1;
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
@@ -681,6 +843,8 @@ alsa_init(cubeb ** context, char const *
ctx = calloc(1, sizeof(*ctx));
assert(ctx);
+ ctx->libasound = libasound;
+
ctx->ops = &alsa_ops;
r = pthread_mutex_init(&ctx->mutex, NULL);
@@ -730,7 +894,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);
- snd_config_delete(ctx->local_config);
+ WRAP(snd_config_delete)(ctx->local_config);
pthread_mutex_unlock(&cubeb_alsa_mutex);
ctx->local_config = NULL;
} else if (r >= 0) {
@@ -769,9 +933,13 @@ alsa_destroy(cubeb * ctx)
pthread_mutex_destroy(&ctx->mutex);
free(ctx->fds);
+ if (ctx->libasound) {
+ dlclose(ctx->libasound);
+ }
+
if (ctx->local_config) {
pthread_mutex_lock(&cubeb_alsa_mutex);
- snd_config_delete(ctx->local_config);
+ WRAP(snd_config_delete)(ctx->local_config);
pthread_mutex_unlock(&cubeb_alsa_mutex);
}
@@ -839,7 +1007,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
return CUBEB_ERROR;
}
- r = snd_pcm_nonblock(stm->pcm, 1);
+ r = WRAP(snd_pcm_nonblock)(stm->pcm, 1);
assert(r == 0);
/* Ugly hack: the PA ALSA plugin allows buffer configurations that can't
@@ -849,23 +1017,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
latency = latency < 500 ? 500 : latency;
}
- r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
- stm->params.channels, stm->params.rate, 1,
- latency * 1000);
+ r = WRAP(snd_pcm_set_params)(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
+ stm->params.channels, stm->params.rate, 1,
+ latency * 1000);
if (r < 0) {
alsa_stream_destroy(stm);
return CUBEB_ERROR_INVALID_FORMAT;
}
- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size);
+ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->period_size);
assert(r == 0);
- stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm);
+ stm->nfds = WRAP(snd_pcm_poll_descriptors_count)(stm->pcm);
assert(stm->nfds > 0);
stm->saved_fds = calloc(stm->nfds, sizeof(struct pollfd));
assert(stm->saved_fds);
- r = snd_pcm_poll_descriptors(stm->pcm, stm->saved_fds, stm->nfds);
+ r = WRAP(snd_pcm_poll_descriptors)(stm->pcm, stm->saved_fds, stm->nfds);
assert((nfds_t) r == stm->nfds);
r = pthread_cond_init(&stm->cond, NULL);
@@ -896,7 +1064,7 @@ alsa_stream_destroy(cubeb_stream * stm)
pthread_mutex_lock(&stm->mutex);
if (stm->pcm) {
if (stm->state == DRAINING) {
- snd_pcm_drain(stm->pcm);
+ WRAP(snd_pcm_drain)(stm->pcm);
}
alsa_locked_pcm_close(stm->pcm);
stm->pcm = NULL;
@@ -906,7 +1074,10 @@ alsa_stream_destroy(cubeb_stream * stm)
pthread_mutex_destroy(&stm->mutex);
r = pthread_cond_destroy(&stm->cond);
- assert(r == 0);
+ if (r != 0) { /* XXX stopgap until someone figures out the real reason */
+ fprintf(stderr,"alsa_stream_destroy: pthread_cond_destroy failed: %s",
+ strerror(r));
+ }
alsa_unregister_stream(stm);
@@ -938,12 +1109,12 @@ alsa_get_max_channel_count(cubeb * ctx,
return CUBEB_ERROR;
}
- 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;
}
- 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;
}
@@ -963,34 +1134,34 @@ alsa_get_preferred_sample_rate(cubeb * c
/* get a pcm, disabling resampling, so we get a rate the
* hardware/dmix/pulse/etc. supports. */
- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
+ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
if (r < 0) {
return CUBEB_ERROR;
}
- 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;
}
- 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);
return CUBEB_OK;
}
/* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */
*rate = 44100;
- 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;
}
- snd_pcm_close(pcm);
+ WRAP(snd_pcm_close)(pcm);
return CUBEB_OK;
}
@@ -1014,7 +1185,7 @@ alsa_stream_start(cubeb_stream * stm)
ctx = stm->context;
pthread_mutex_lock(&stm->mutex);
- snd_pcm_pause(stm->pcm, 0);
+ WRAP(snd_pcm_pause)(stm->pcm, 0);
gettimeofday(&stm->last_activity, NULL);
pthread_mutex_unlock(&stm->mutex);
@@ -1048,7 +1219,7 @@ alsa_stream_stop(cubeb_stream * stm)
pthread_mutex_unlock(&ctx->mutex);
pthread_mutex_lock(&stm->mutex);
- snd_pcm_pause(stm->pcm, 1);
+ WRAP(snd_pcm_pause)(stm->pcm, 1);
pthread_mutex_unlock(&stm->mutex);
return CUBEB_OK;
@@ -1064,14 +1235,17 @@ alsa_stream_get_position(cubeb_stream *
pthread_mutex_lock(&stm->mutex);
delay = -1;
- if (snd_pcm_state(stm->pcm) != SND_PCM_STATE_RUNNING ||
- snd_pcm_delay(stm->pcm, &delay) != 0) {
+ if (WRAP(snd_pcm_state)(stm->pcm) != SND_PCM_STATE_RUNNING ||
+ WRAP(snd_pcm_delay)(stm->pcm, &delay) != 0) {
*position = stm->last_position;
pthread_mutex_unlock(&stm->mutex);
return CUBEB_OK;
}
- assert(delay >= 0);
+ if (delay < 0) {
+ WRAP(snd_pcm_forward)(stm->pcm, -delay);
+ delay = 0;
+ }
*position = 0;
if (stm->write_position >= (snd_pcm_uframes_t) delay) {
@@ -1090,7 +1264,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. */
- if (snd_pcm_delay(stm->pcm, &delay)) {
+ if (WRAP(snd_pcm_delay)(stm->pcm, &delay)) {
return CUBEB_ERROR;
}
$NetBSD: patch-media_libcubeb_src_cubeb__oss.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libcubeb/src/cubeb_oss.c.orig 2015-02-20 05:47:26.000000000 +0000
+++ media/libcubeb/src/cubeb_oss.c
@@ -0,0 +1,402 @@
+/*
+ * Copyright © 2014 Mozilla Foundation
+ *
+ * This program is made available under an ISC-style license. See the
+ * accompanying file LICENSE for details.
+ */
+#if defined(HAVE_SYS_SOUNDCARD_H)
+#include <sys/soundcard.h>
+#else
+#include <soundcard.h>
+#endif
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+
+#include "cubeb/cubeb.h"
+#include "cubeb-internal.h"
+
+#ifndef CUBEB_OSS_DEFAULT_OUTPUT
+#define CUBEB_OSS_DEFAULT_OUTPUT "/dev/dsp"
+#endif
+
+#define OSS_BUFFER_SIZE 1024
+
+struct cubeb {
+ struct cubeb_ops const * ops;
+};
+
+struct cubeb_stream {
+ cubeb * context;
+
+ cubeb_data_callback data_callback;
+ cubeb_state_callback state_callback;
+ void * user_ptr;
+ float volume;
+ float panning;
+
+ pthread_mutex_t state_mutex;
+ pthread_cond_t state_cond;
+
+ int running;
+ int stopped;
+ int floating;
+
+ /* These two vars are needed to support old versions of OSS */
+ unsigned int position_bytes;
+ unsigned int last_position_bytes;
+
+ uint64_t written_frags; /* The number of fragments written to /dev/dsp */
+ uint64_t missed_frags; /* fragments output with stopped stream */
+
+ cubeb_stream_params params;
+ int fd;
+ pthread_t th;
+};
+
+static struct cubeb_ops const oss_ops;
+
+int oss_init(cubeb ** context, char const * context_name)
+{
+ cubeb* ctx = (cubeb*)malloc(sizeof(cubeb));
+ ctx->ops = &oss_ops;
+ *context = ctx;
+ return CUBEB_OK;
+}
+
+static void oss_destroy(cubeb *ctx)
+{
+ free(ctx);
+}
+
+static char const * oss_get_backend_id(cubeb * context)
+{
+ static char oss_name[] = "oss";
+ return oss_name;
+}
+
+static int oss_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
+{
+ *max_channels = 2; /* Let's support only stereo for now */
+ return CUBEB_OK;
+}
+
+static int oss_get_min_latency(cubeb * context, cubeb_stream_params params,
+ uint32_t * latency_ms)
+{
+ /* 40ms is a big enough number to work ok */
+ *latency_ms = 40;
+ return CUBEB_OK;
+}
+
+static int oss_get_preferred_sample_rate(cubeb *context, uint32_t * rate)
+{
+ /* 48000 seems a prefered choice for most audio devices
+ * and a good choice for OSS */
+ *rate = 48000;
+ return CUBEB_OK;
+}
+
+static void run_state_callback(cubeb_stream *stream, cubeb_state state)
+{
+ if (stream->state_callback) {
+ stream->state_callback(stream, stream->user_ptr, state);
+ }
+}
+
+static long run_data_callback(cubeb_stream *stream, void *buffer, long nframes)
+{
+ long got = 0;
+ pthread_mutex_lock(&stream->state_mutex);
+ if (stream->data_callback && stream->running && !stream->stopped) {
+ pthread_mutex_unlock(&stream->state_mutex);
+ got = stream->data_callback(stream, stream->user_ptr, buffer, nframes);
+ } else {
+ pthread_mutex_unlock(&stream->state_mutex);
+ }
+ return got;
+}
+
+static void apply_volume(int16_t* buffer, unsigned int n,
+ float volume, float panning)
+{
+ float left = volume;
+ float right = volume;
+ unsigned int i;
+ int pan[2];
+ if (panning<0) {
+ right *= (1+panning);
+ } else {
+ left *= (1-panning);
+ }
+ pan[0] = 128.0*left;
+ pan[1] = 128.0*right;
+ for(i=0; i<n; i++){
+ buffer[i] = ((int)buffer[i])*pan[i%2]/128;
+ }
+}
+
+static void *writer(void *stm)
+{
+ cubeb_stream* stream = (cubeb_stream*)stm;
+ int16_t buffer[OSS_BUFFER_SIZE];
+ float f_buffer[OSS_BUFFER_SIZE];
+ int got;
+ unsigned long i;
+ while (stream->running) {
+ pthread_mutex_lock(&stream->state_mutex);
+ if (stream->stopped) {
+ pthread_mutex_unlock(&stream->state_mutex);
+ run_state_callback(stream, CUBEB_STATE_STOPPED);
+ pthread_mutex_lock(&stream->state_mutex);
+ while (stream->stopped) {
+ pthread_cond_wait(&stream->state_cond, &stream->state_mutex);
+ }
+ pthread_mutex_unlock(&stream->state_mutex);
+ run_state_callback(stream, CUBEB_STATE_STARTED);
+ continue;
+ }
+ pthread_mutex_unlock(&stream->state_mutex);
+ if (stream->floating) {
+ got = run_data_callback(stream, f_buffer,
+ OSS_BUFFER_SIZE/stream->params.channels);
+ for (i=0; i<((unsigned long)got)*stream->params.channels; i++) {
+ buffer[i] = f_buffer[i]*32767.0;
+ }
+ } else {
+ got = run_data_callback(stream, buffer,
+ OSS_BUFFER_SIZE/stream->params.channels);
+ }
+ apply_volume(buffer, got*stream->params.channels,
+ stream->volume, stream->panning);
+ if (got<0) {
+ run_state_callback(stream, CUBEB_STATE_ERROR);
+ break;
+ }
+ if (!got) {
+ run_state_callback(stream, CUBEB_STATE_DRAINED);
+ }
+ if (got) {
+ size_t i = 0;
+ size_t s = got*stream->params.channels*sizeof(int16_t);
+ while (i < s) {
+ ssize_t n = write(stream->fd, ((char*)buffer) + i, s - i);
+ if (n<=0) {
+ run_state_callback(stream, CUBEB_STATE_ERROR);
+ break;
+ }
+ i+=n;
+ }
+ stream->written_frags+=got;
+ }
+ }
+ return NULL;
+}
+
+static void oss_try_set_latency(cubeb_stream* stream, unsigned int latency)
+{
+ unsigned int latency_bytes, n_frag;
+ int frag;
+ /* fragment size of 1024 is a good choice with good chances to be accepted */
+ unsigned int frag_size=1024;
+ unsigned int frag_log=10; /* 2^frag_log = frag_size */
+ latency_bytes =
+ latency*stream->params.rate*stream->params.channels*sizeof(uint16_t)/1000;
+ n_frag = latency_bytes>>frag_log;
+ frag = (n_frag<<16) | frag_log;
+ /* Even if this fails we wish to continue, not checking for errors */
+ ioctl(stream->fd, SNDCTL_DSP_SETFRAGMENT, &frag);
+}
+
+static int oss_stream_init(cubeb * context, cubeb_stream ** stm,
+ char const * stream_name,
+ cubeb_stream_params stream_params,
+ unsigned int latency,
+ cubeb_data_callback data_callback,
+ cubeb_state_callback state_callback, void * user_ptr)
+{
+ cubeb_stream* stream = (cubeb_stream*)malloc(sizeof(cubeb_stream));
+ stream->context = context;
+ stream->data_callback = data_callback;
+ stream->state_callback = state_callback;
+ stream->user_ptr = user_ptr;
+
+ if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) {
+ free(stream);
+ return CUBEB_ERROR;
+ }
+#define SET(what, to) do { unsigned int i = to; \
+ int j = ioctl(stream->fd, what, &i); \
+ if (j == -1 || i != to) { \
+ close(stream->fd); \
+ free(stream); \
+ return CUBEB_ERROR_INVALID_FORMAT; } } while (0)
+
+ stream->params = stream_params;
+ stream->volume = 1.0;
+ stream->panning = 0.0;
+
+ oss_try_set_latency(stream, latency);
+
+ stream->floating = 0;
+ SET(SNDCTL_DSP_CHANNELS, stream_params.channels);
+ SET(SNDCTL_DSP_SPEED, stream_params.rate);
+ switch (stream_params.format) {
+ case CUBEB_SAMPLE_S16LE:
+ SET(SNDCTL_DSP_SETFMT, AFMT_S16_LE);
+ break;
+ case CUBEB_SAMPLE_S16BE:
+ SET(SNDCTL_DSP_SETFMT, AFMT_S16_BE);
+ break;
+ case CUBEB_SAMPLE_FLOAT32LE:
+ SET(SNDCTL_DSP_SETFMT, AFMT_S16_NE);
+ stream->floating = 1;
+ break;
+ default:
+ close(stream->fd);
+ free(stream);
+ return CUBEB_ERROR;
+ }
+
+
+ pthread_mutex_init(&stream->state_mutex, NULL);
+ pthread_cond_init(&stream->state_cond, NULL);
+
+ stream->running = 1;
+ stream->stopped = 1;
+ stream->position_bytes = 0;
+ stream->last_position_bytes = 0;
+ stream->written_frags = 0;
+ stream->missed_frags = 0;
+
+ pthread_create(&stream->th, NULL, writer, (void*)stream);
+
+ *stm = stream;
+
+ return CUBEB_OK;
+}
+
+static void oss_stream_destroy(cubeb_stream * stream)
+{
+ pthread_mutex_lock(&stream->state_mutex);
+
+ stream->running = 0;
+ stream->stopped = 0;
+ pthread_cond_signal(&stream->state_cond);
+
+ pthread_mutex_unlock(&stream->state_mutex);
+
+ pthread_join(stream->th, NULL);
+
+ pthread_mutex_destroy(&stream->state_mutex);
+ pthread_cond_destroy(&stream->state_cond);
+ close(stream->fd);
+ free(stream);
+}
+
+static int oss_stream_get_latency(cubeb_stream * stream, uint32_t * latency)
+{
+ if (ioctl(stream->fd, SNDCTL_DSP_GETODELAY, latency)==-1) {
+ return CUBEB_ERROR;
+ }
+ /* Convert latency from bytes to frames */
+ *latency /= stream->params.channels*sizeof(int16_t);
+ return CUBEB_OK;
+}
+
+
+static int oss_stream_current_optr(cubeb_stream * stream, uint64_t * position)
+{
+ count_info ci;
+ /* Unfortunately, this ioctl is only available in OSS 4.x */
+#ifdef SNDCTL_DSP_CURRENT_OPTR
+ oss_count_t count;
+ if (ioctl(stream->fd, SNDCTL_DSP_CURRENT_OPTR, &count) != -1) {
+ *position = count.samples;// + count.fifo_samples;
+ return CUBEB_OK;
+ }
+#endif
+ /* Fall back to this ioctl in case the previous one fails */
+ if (ioctl(stream->fd, SNDCTL_DSP_GETOPTR, &ci) == -1) {
+ return CUBEB_ERROR;
+ }
+ /* ci.bytes is only 32 bit and will start to wrap after arithmetic overflow */
+ stream->position_bytes += ci.bytes - stream->last_position_bytes;
+ stream->last_position_bytes = ci.bytes;
+ *position = stream->position_bytes/stream->params.channels/sizeof(int16_t);
+ return CUBEB_OK;
+}
+
+static int oss_stream_get_position(cubeb_stream * stream, uint64_t * position)
+{
+ if ( oss_stream_current_optr(stream, position) == CUBEB_OK ){
+ *position -= stream->missed_frags;
+ return CUBEB_OK;
+ }
+ /* If no correct method to get position works we resort to this */
+ *position = stream->written_frags;
+ return CUBEB_OK;
+}
+
+
+static int oss_stream_start(cubeb_stream * stream)
+{
+ pthread_mutex_lock(&stream->state_mutex);
+ if (stream->stopped) {
+ uint64_t ptr;
+ oss_stream_current_optr(stream, &ptr);
+ stream->missed_frags = ptr - stream->written_frags;
+ stream->stopped = 0;
+ pthread_cond_signal(&stream->state_cond);
+ }
+ pthread_mutex_unlock(&stream->state_mutex);
+ return CUBEB_OK;
+}
+
+static int oss_stream_stop(cubeb_stream * stream)
+{
+ pthread_mutex_lock(&stream->state_mutex);
+ stream->stopped = 1;
+ pthread_mutex_unlock(&stream->state_mutex);
+ return CUBEB_OK;
+}
+
+int oss_stream_set_panning(cubeb_stream * stream, float panning)
+{
+ if (stream->params.channels == 2) {
+ stream->panning=panning;
+ }
+ return CUBEB_OK;
+}
+
+int oss_stream_set_volume(cubeb_stream * stream, float volume)
+{
+ stream->volume=volume;
+ return CUBEB_OK;
+}
+
+static struct cubeb_ops const oss_ops = {
+ .init = oss_init,
+ .get_backend_id = oss_get_backend_id,
+ .get_max_channel_count = oss_get_max_channel_count,
+ .get_min_latency = oss_get_min_latency,
+ .get_preferred_sample_rate = oss_get_preferred_sample_rate,
+ .destroy = oss_destroy,
+ .stream_init = oss_stream_init,
+ .stream_destroy = oss_stream_destroy,
+ .stream_start = oss_stream_start,
+ .stream_stop = oss_stream_stop,
+ .stream_get_position = oss_stream_get_position,
+ .stream_get_latency = oss_stream_get_latency,
+ .stream_set_volume = oss_stream_set_volume,
+ .stream_set_panning = oss_stream_set_panning,
+ .stream_get_current_device = NULL,
+ .stream_device_destroy = NULL,
+ .stream_register_device_changed_callback = NULL
+};
$NetBSD: patch-media_libcubeb_src_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Don't assume cocoa toolkit just because OS_TARGET is Darwin.
--- media/libcubeb/src/moz.build.orig 2016-02-25 23:01:58.000000000 +0000
+++ media/libcubeb/src/moz.build
@@ -17,6 +17,12 @@ if CONFIG['MOZ_ALSA']:
]
DEFINES['USE_ALSA'] = True
+if CONFIG['MOZ_OSS']:
+ SOURCES += [
+ 'cubeb_oss.c',
+ ]
+ DEFINES['USE_OSS'] = True
+
if CONFIG['MOZ_PULSEAUDIO']:
SOURCES += [
'cubeb_pulse.c',
@@ -31,7 +37,7 @@ if CONFIG['OS_ARCH'] == 'OpenBSD':
]
DEFINES['USE_SNDIO'] = True
-if CONFIG['OS_TARGET'] == 'Darwin':
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
SOURCES += [
'cubeb_audiounit.c',
]
@@ -64,6 +70,9 @@ if CONFIG['OS_TARGET'] == 'Android':
FINAL_LIBRARY = 'gkmedias'
+if CONFIG['MOZ_NATIVE_SPEEX']:
+ SOURCES['cubeb_resampler.cpp'].flags += CONFIG['MOZ_SPEEX_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
if CONFIG['ANDROID_VERSION'] >= '17':
LOCAL_INCLUDES += [
@@ -74,5 +83,6 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
'%' + '%s/system/media/wilhelm/include' % CONFIG['ANDROID_SOURCE'],
]
+CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']
CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS']
$NetBSD: patch-media_libpng_pngpriv.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libpng/pngpriv.h.orig 2014-02-12 21:29:13.000000000 +0000
+++ media/libpng/pngpriv.h
@@ -38,6 +38,7 @@
* still required (as of 2011-05-02.)
*/
#define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */
+#define _XOPEN_SOURCE 600
#ifndef PNG_VERSION_INFO_ONLY
/* Standard library headers not required by png.h: */
$NetBSD: patch-media_libsoundtouch_src_cpu__detect__x86.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libsoundtouch/src/cpu_detect_x86.cpp.orig 2014-04-18 02:03:48.000000000 +0000
+++ media/libsoundtouch/src/cpu_detect_x86.cpp
@@ -130,7 +130,9 @@ uint detectCPUextensions(void)
#endif
return res & ~_dwDisabledISA;
-
+#elif defined(__GNUC__)
+ // No cpuid.h --> no cpuid support
+ return 0;
#else
/// One of these is true:
$NetBSD: patch-media_libstagefright_frameworks_av_include_media_stagefright_foundation_AString.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libstagefright/frameworks/av/include/media/stagefright/foundation/AString.h.orig 2015-12-08 18:06:36.000000000 +0000
+++ media/libstagefright/frameworks/av/include/media/stagefright/foundation/AString.h
@@ -18,6 +18,7 @@
#define A_STRING_H_
+#include <cctype>
#include <sys/types.h>
namespace stagefright {
$NetBSD: patch-media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp.orig 2015-02-23 07:39:35.000000000 +0000
+++ media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp
@@ -23,6 +23,17 @@
#include "ADebug.h"
#include "AString.h"
+#ifdef __FreeBSD__
+# include <osreldate.h>
+# if __FreeBSD_version < 900506
+# undef tolower
+# endif
+#endif
+
+#if defined(__NetBSD__) && defined(tolower)
+#undef tolower
+#endif
+
namespace stagefright {
// static
$NetBSD: patch-media_libstagefright_system_core_liblog_fake__log__device.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libstagefright/system/core/liblog/fake_log_device.c.orig 2015-01-23 05:59:59.000000000 +0000
+++ media/libstagefright/system/core/liblog/fake_log_device.c 2015-02-16 14:09:00.000000000 +0000
@@ -229,11 +229,11 @@
char tagName[kMaxTagLen];
int i, minPrio;
- while (isspace(*tags))
+ while (isspace((unsigned char)*tags))
tags++;
i = 0;
- while (*tags != '\0' && !isspace(*tags) && *tags != ':' &&
+ while (*tags != '\0' && !isspace((unsigned char)*tags) && *tags != ':' &&
i < kMaxTagLen)
{
tagName[i++] = *tags++;
@@ -272,7 +272,7 @@
}
tags++;
- if (*tags != '\0' && !isspace(*tags)) {
+ if (*tags != '\0' && !isspace((unsigned char)*tags)) {
TRACE("ERROR: garbage in tag env; expected whitespace\n");
TRACE(" env='%s'\n", tags);
return;
$NetBSD: patch-media_libstagefright_system_core_liblog_logprint.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libstagefright/system/core/liblog/logprint.c.orig 2015-01-23 05:59:59.000000000 +0000
+++ media/libstagefright/system/core/liblog/logprint.c 2015-02-16 14:12:46.000000000 +0000
@@ -101,7 +101,7 @@
{
android_LogPriority pri;
- c = tolower(c);
+ c = tolower((unsigned char)c);
if (c >= '0' && c <= '9') {
if (c >= ('0'+ANDROID_LOG_SILENT)) {
@@ -370,7 +370,7 @@
{
char *end = str + strlen(str) - 1;
- while (end >= str && isspace(*end))
+ while (end >= str && isspace((unsigned char)*end))
*end-- = '\0';
return str;
}
$NetBSD: patch-media_libtheora_lib_arm_armcpu.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* NetBSD/evbearmv7hf-el's /proc/cpuinfo return empty, use hardcoded flags.
--- media/libtheora/lib/arm/armcpu.c.orig 2014-11-13 22:50:10.000000000 +0000
+++ media/libtheora/lib/arm/armcpu.c
@@ -107,6 +107,18 @@ ogg_uint32_t oc_cpu_flags_get(void){
return flags;
}
+#elif defined(__NetBSD__)
+ogg_uint32_t oc_cpu_flags_get(void){
+ ogg_uint32_t flags;
+ /* XXX ryoon: I have no idea about ARM CPU extensions detection mechanism
+ under NetBSD/earm.
+ evbearmv6hf-el machine, Raspberry Pi does not have NEON.
+ evbearmv7hf-el machine, CubieBoard2 does not have EDSP.
+ I have no idea about MEDIA.
+ So I will disable all options. */
+ flags=0;
+ return flags;
+}
#else
/*The feature registers which can tell us what the processor supports are
accessible in priveleged modes only, so we can't have a general user-space
$NetBSD: patch-media_libtheora_lib_info.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libtheora/lib/info.c.orig 2015-01-23 05:59:59.000000000 +0000
+++ media/libtheora/lib/info.c 2015-02-16 14:49:17.000000000 +0000
@@ -29,7 +29,7 @@
static int oc_tagcompare(const char *_s1,const char *_s2,int _n){
int c;
for(c=0;c<_n;c++){
- if(toupper(_s1[c])!=toupper(_s2[c]))return !0;
+ if(toupper((unsigned char)_s1[c])!=toupper((unsigned char)_s2[c]))return !0;
}
return _s1[c]!='=';
}
$NetBSD: patch-media_libtheora_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libtheora/moz.build.orig 2015-08-24 21:53:11.000000000 +0000
+++ media/libtheora/moz.build
@@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
# The encoder is currently not included.
DEFINES['THEORA_DISABLE_ENCODE'] = True
+if CONFIG['MOZ_NATIVE_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
+
# Suppress warnings in third-party code.
if CONFIG['GNU_CC']:
CFLAGS += ['-Wno-type-limits']
$NetBSD: patch-media_libtremor_Makefile.in,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libtremor/Makefile.in.orig 2014-03-20 11:09:40.000000000 +0000
+++ media/libtremor/Makefile.in
@@ -0,0 +1,9 @@
+# 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 $(topsrcdir)/config/rules.mk
+
+ifdef MOZ_NATIVE_OGG
+CFLAGS += $(MOZ_OGG_CFLAGS)
+endif
$NetBSD: patch-media_libtremor_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libtremor/moz.build.orig 2014-11-21 03:37:42.000000000 +0000
+++ media/libtremor/moz.build
@@ -6,3 +6,5 @@
DIRS += ['include/tremor', 'lib']
+if CONFIG['MOZ_NATIVE_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
$NetBSD: patch-media_libvorbis_Makefile.in,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libvorbis/Makefile.in.orig 2014-03-20 11:09:40.000000000 +0000
+++ media/libvorbis/Makefile.in
@@ -0,0 +1,9 @@
+# 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 $(topsrcdir)/config/rules.mk
+
+ifdef MOZ_NATIVE_OGG
+CFLAGS += $(MOZ_OGG_CFLAGS)
+endif
$NetBSD: patch-media_libvorbis_lib_vorbis_info.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libvorbis/lib/vorbis_info.c.orig 2015-01-23 05:59:59.000000000 +0000
+++ media/libvorbis/lib/vorbis_info.c 2015-02-16 14:36:05.000000000 +0000
@@ -87,7 +87,7 @@
static int tagcompare(const char *s1, const char *s2, int n){
int c=0;
while(c < n){
- if(toupper(s1[c]) != toupper(s2[c]))
+ if(toupper((unsigned char)s1[c]) != toupper((unsigned char)s2[c]))
return !0;
c++;
}
$NetBSD: patch-media_libvorbis_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libvorbis/moz.build.orig 2014-11-21 03:37:42.000000000 +0000
+++ media/libvorbis/moz.build
@@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias'
# Suppress warnings in third-party code.
if CONFIG['GNU_CC']:
CFLAGS += ['-Wno-uninitialized']
+
+if CONFIG['MOZ_NATIVE_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
$NetBSD: patch-media_libyuv_include_libyuv_scale__row.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/libyuv/include/libyuv/scale_row.h.orig 2014-11-13 22:50:11.000000000 +0000
+++ media/libyuv/include/libyuv/scale_row.h
@@ -219,10 +219,10 @@ void ScaleARGBFilterCols_SSSE3(uint8* ds
void ScaleARGBColsUp2_SSE2(uint8* dst_argb, const uint8* src_argb,
int dst_width, int x, int dx);
// Row functions.
-void ScaleARGBRowDownEven_NEON(const uint8* src_argb, int src_stride,
+void ScaleARGBRowDownEven_NEON(const uint8* src_argb, ptrdiff_t src_stride,
int src_stepx,
uint8* dst_argb, int dst_width);
-void ScaleARGBRowDownEvenBox_NEON(const uint8* src_argb, int src_stride,
+void ScaleARGBRowDownEvenBox_NEON(const uint8* src_argb, ptrdiff_t src_stride,
int src_stepx,
uint8* dst_argb, int dst_width);
void ScaleARGBRowDown2_NEON(const uint8* src_ptr, ptrdiff_t src_stride,
$NetBSD: patch-media_mtransport_third__party_nICEr_src_util_mbslen.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/mtransport/third_party/nICEr/src/util/mbslen.c.orig 2016-02-25 23:02:01.000000000 +0000
+++ media/mtransport/third_party/nICEr/src/util/mbslen.c
@@ -47,6 +47,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#define HAVE_XLOCALE
#endif
+#ifdef __DragonFly__
+#include <osreldate.h>
+# if __DragonFly_version > 300502
+# define HAVE_XLOCALE
+# endif
+#endif
+
#ifdef HAVE_XLOCALE
#include <xlocale.h>
#endif /* HAVE_XLOCALE */
$NetBSD: patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h.orig 2014-07-17 01:45:31.000000000 +0000
+++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
@@ -30,7 +30,13 @@
* $FreeBSD: src/sys/sys/queue.h,v 1.58 2004/04/07 04:19:49 imp Exp $
*/
-#ifndef _SYS_QUEUE_H_
+#if (defined(BSD) && !defined(__OpenBSD__)) || defined(DARWIN)
+#include_next <sys/queue.h>
+# if defined(__DragonFly__)
+#define STAILQ_FOREACH_SAFE STAILQ_FOREACH_MUTABLE
+#define TAILQ_FOREACH_SAFE TAILQ_FOREACH_MUTABLE
+# endif
+#elif !defined(_SYS_QUEUE_H_)
#define _SYS_QUEUE_H_
#include <stddef.h>
$NetBSD: patch-media_openmax__dl_dl_api_armCOMM__s.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/openmax_dl/dl/api/armCOMM_s.h.orig 2015-09-29 21:44:56.000000000 +0000
+++ media/openmax_dl/dl/api/armCOMM_s.h
@@ -11,6 +11,12 @@
@// This file was originally licensed as follows. It has been
@// relicensed with permission from the copyright holders.
@//
+
+#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+#define UNWIND
+#else
+#define UNWIND @
+#endif
@//
@// File Name: armCOMM_s.h
@@ -175,7 +181,8 @@
.object_arch armv4
.align 2
\name :
-.fnstart
+ .cfi_startproc
+ UNWIND .fnstart
@ Save specified R registers
_M_GETRREGLIST \rreg
_M_PUSH_RREG
@@ -202,7 +209,8 @@
.endif
@ Restore any saved R or D registers.
_M_RET
- .fnend
+ UNWIND .fnend
+ .cfi_endproc
.endfunc
@ Reset the global stack tracking variables back to their
@ initial values.
$NetBSD: patch-media_webrtc_signaling_test_common.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/signaling/test/common.build.orig 2015-08-07 15:54:13.000000000 +0000
+++ media/webrtc/signaling/test/common.build
@@ -99,15 +99,19 @@ if CONFIG['JS_SHARED_LIBRARY']:
USE_LIBS += ['mozglue']
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
OS_LIBS += CONFIG['REALTIME_LIBS']
-if CONFIG['MOZ_ALSA']:
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
+if CONFIG['MOZ_OSS']:
+ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
if CONFIG['MOZ_NATIVE_JPEG']:
OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
+if CONFIG['MOZ_NATIVE_OPUS']:
+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
+
if CONFIG['MOZ_NATIVE_LIBVPX']:
OS_LIBS += CONFIG['MOZ_LIBVPX_LIBS']
$NetBSD: patch-media_webrtc_trunk_webrtc_build_common.gypi,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/build/common.gypi.orig 2014-04-18 02:03:52.000000000 +0000
+++ media/webrtc/trunk/webrtc/build/common.gypi
@@ -256,7 +256,7 @@
}],
['OS=="dragonfly" or OS=="netbsd"', {
'defines': [
- # doesn't support pthread_condattr_setclock
+ # doesn't support pthread_condattr_setclock, NetBSD 6 supports it.
'WEBRTC_CLOCK_TYPE_REALTIME',
],
}],
$NetBSD: patch-media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi.orig 2015-05-04 00:43:28.000000000 +0000
+++ 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': [
$NetBSD: patch-media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc.orig 2014-10-11 09:06:41.000000000 +0000
+++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
@@ -18,7 +18,7 @@ ScreenCapturer* ScreenCapturer::Create()
return Create(DesktopCaptureOptions::CreateDefault());
}
-#if defined(WEBRTC_LINUX)
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
ScreenCapturer* ScreenCapturer::CreateWithXDamage(
bool use_update_notifications) {
DesktopCaptureOptions options;
$NetBSD: patch-media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h.orig 2014-10-11 09:06:41.000000000 +0000
+++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
@@ -74,7 +74,7 @@ class ScreenCapturer : public DesktopCap
static ScreenCapturer* Create(const DesktopCaptureOptions& options);
static ScreenCapturer* Create();
-#if defined(WEBRTC_LINUX)
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
// Creates platform-specific capturer and instructs it whether it should use
// X DAMAGE support.
static ScreenCapturer* CreateWithXDamage(bool use_x_damage);
$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc.orig 2014-05-29 23:31:23.000000000 +0000
+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
@@ -25,10 +25,21 @@
#else
#include <linux/videodev2.h>
#endif
+#ifdef HAVE_LIBV4L2
+#include <libv4l2.h>
+#endif
#include "webrtc/system_wrappers/interface/ref_count.h"
#include "webrtc/system_wrappers/interface/trace.h"
+#ifdef HAVE_LIBV4L2
+#define open v4l2_open
+#define close v4l2_close
+#define dup v4l2_dup
+#define ioctl v4l2_ioctl
+#define mmap v4l2_mmap
+#define munmap v4l2_munmap
+#endif
namespace webrtc
{
@@ -136,6 +147,11 @@ int32_t DeviceInfoLinux::GetDeviceName(
memset(deviceNameUTF8, 0, deviceNameLength);
memcpy(cameraName, cap.card, sizeof(cap.card));
+ if (cameraName[0] == '\0')
+ {
+ sprintf(cameraName, "Camera at /dev/video%d", deviceNumber);
+ }
+
if (deviceNameLength >= strlen(cameraName))
{
memcpy(deviceNameUTF8, cameraName, strlen(cameraName));
$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc.orig 2016-02-25 23:02:06.000000000 +0000
+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
@@ -25,6 +25,9 @@
#else
#include <linux/videodev2.h>
#endif
+#ifdef HAVE_LIBV4L2
+#include <libv4l2.h>
+#endif
#include <new>
@@ -33,6 +36,15 @@
#include "webrtc/system_wrappers/interface/ref_count.h"
#include "webrtc/system_wrappers/interface/trace.h"
+#ifdef HAVE_LIBV4L2
+#define open v4l2_open
+#define close v4l2_close
+#define dup v4l2_dup
+#define ioctl v4l2_ioctl
+#define mmap v4l2_mmap
+#define munmap v4l2_munmap
+#endif
+
namespace webrtc
{
namespace videocapturemodule
$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi.orig 2016-02-25 23:02:07.000000000 +0000
+++ 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.
{
+ 'variables': {
+ 'use_libv4l2%': 0,
+ },
'targets': [
{
# Note this library is missing an implementation for the video capture.
@@ -64,8 +67,32 @@
'video_capture_module',
'<(webrtc_root)/common.gyp:webrtc_common',
],
- 'cflags_mozilla': [
- '$(NSPR_CFLAGS)',
+ 'conditions': [
+ ['use_libv4l2==1', {
+ 'defines': [
+ 'HAVE_LIBV4L2',
+ ],
+ 'cflags_mozilla': [
+ '$(MOZ_LIBV4L2_CFLAGS)',
+ ],
+ 'libraries': [
+ '-lv4l2',
+ ],
+ }],
+ ],
+ }], # linux
+ ['OS=="mac"', {
+ 'sources': [
+ 'mac/qtkit/video_capture_qtkit.h',
+ 'mac/qtkit/video_capture_qtkit.mm',
+ 'mac/qtkit/video_capture_qtkit_info.h',
+ 'mac/qtkit/video_capture_qtkit_info.mm',
+ 'mac/qtkit/video_capture_qtkit_info_objc.h',
+ 'mac/qtkit/video_capture_qtkit_info_objc.mm',
+ 'mac/qtkit/video_capture_qtkit_objc.h',
+ 'mac/qtkit/video_capture_qtkit_objc.mm',
+ 'mac/qtkit/video_capture_qtkit_utility.h',
+ 'mac/video_capture_mac.mm',
],
'conditions': [
['include_v4l2_video_capture==1', {
$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig 2015-08-07 15:54:15.000000000 +0000
+++ media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp
@@ -14,6 +14,13 @@ Cygwin fix provided by:
Scott McMurray
*/
+#ifdef __FreeBSD__
+# include <osreldate.h>
+# if __FreeBSD_version < 900506
+# define getchar boost_getchar
+# endif
+#endif
+
#ifndef BOOST_SPREAD_SORT_H
#define BOOST_SPREAD_SORT_H
#include <algorithm>
@@ -21,10 +28,24 @@ Scott McMurray
#include <vector>
#include "webrtc/system_wrappers/source/spreadsortlib/constants.hpp"
+#ifdef __FreeBSD__
+# include <osreldate.h>
+# if __FreeBSD_version < 900506
+# define getchar boost_getchar
+# endif
+#endif
+
#ifdef getchar
#undef getchar
#endif
+#ifdef __FreeBSD__
+# include <osreldate.h>
+# if __FreeBSD_version < 900506
+# define getchar boost_getchar
+# endif
+#endif
+
namespace boost {
namespace detail {
//This only works on unsigned data types
$NetBSD: patch-memory_build_mozjemalloc__compat.c,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- memory/build/mozjemalloc_compat.c.orig 2015-12-04 00:37:04.000000000 +0000
+++ memory/build/mozjemalloc_compat.c
@@ -140,6 +140,48 @@ compute_bin_unused_and_bookkeeping(jemal
stats->bin_unused = bin_unused;
}
+static size_t
+compute_bin_unused(unsigned int narenas)
+{
+ size_t bin_unused = 0;
+
+ uint32_t nregs; // number of regions per run in the j-th bin
+ size_t reg_size; // size of regions served by the j-th bin
+ size_t curruns; // number of runs belonging to a bin
+ size_t curregs; // number of allocated regions in a bin
+
+ unsigned int nbins; // number of bins per arena
+ unsigned int i, j;
+
+ // curruns and curregs are not defined for uninitialized arenas,
+ // so we skip them when computing bin_unused. However, initialized
+ // arenas are not guaranteed to be sequential, so we must test each
+ // one when iterating below.
+ bool initialized[100]; // should be narenas, but MSVC doesn't have VLAs
+ size_t isz = sizeof(initialized) / sizeof(initialized[0]);
+
+ je_(mallctl)("arenas.initialized", initialized, &isz, NULL, 0);
+ CTL_GET("arenas.nbins", nbins);
+
+ for (j = 0; j < nbins; j++) {
+ CTL_I_GET("arenas.bin.0.nregs", nregs, j);
+ CTL_I_GET("arenas.bin.0.size", reg_size, j);
+
+ for (i = 0; i < narenas; i++) {
+ if (!initialized[i]) {
+ continue;
+ }
+
+ CTL_IJ_GET("stats.arenas.0.bins.0.curruns", curruns, i, j);
+ CTL_IJ_GET("stats.arenas.0.bins.0.curregs", curregs, i, j);
+
+ bin_unused += (nregs * curruns - curregs) * reg_size;
+ }
+ }
+
+ return bin_unused;
+}
+
MOZ_JEMALLOC_API void
jemalloc_stats_impl(jemalloc_stats_t *stats)
{
$NetBSD: patch-memory_mozalloc_mozalloc__abort.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- memory/mozalloc/mozalloc_abort.cpp.orig 2015-08-24 21:53:14.000000000 +0000
+++ memory/mozalloc/mozalloc_abort.cpp
@@ -68,7 +68,11 @@ void fillAbortMessage(char (&msg)[N], ui
//
// That segmentation fault will be interpreted as another bug by ASan and as a
// result, ASan will just exit(1) instead of aborting.
+#if defined(SOLARIS)
+void std::abort(void)
+#else
void abort(void)
+#endif
{
#ifdef MOZ_WIDGET_ANDROID
char msg[64] = {};
$NetBSD: patch-memory_volatile_VolatileBufferOSX.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- memory/volatile/VolatileBufferOSX.cpp.orig 2015-03-27 02:20:26.000000000 +0000
+++ memory/volatile/VolatileBufferOSX.cpp
@@ -47,7 +47,14 @@ VolatileBuffer::Init(size_t aSize, size_
}
heap_alloc:
+#if defined(HAVE_POSIX_MEMALIGN)
(void)moz_posix_memalign(&mBuf, aAlignment, aSize);
+#else
+ MOZ_RELEASE_ASSERT(
+ !(aAlignment > (size_t)getpagesize()),
+ "Cannot fallback to valloc(3): alignment is larger than the page size");
+ mBuf = valloc(aSize);
+#endif
mHeap = true;
return !!mBuf;
}
$NetBSD: patch-mfbt_Attributes.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- mfbt/Attributes.h.orig 2015-10-22 22:30:35.000000000 +0000
+++ mfbt/Attributes.h
@@ -50,6 +50,7 @@
* don't indicate support for them here, due to
* http://stackoverflow.com/questions/20498142/visual-studio-2013-explicit-keyword-bug
*/
+# define MOZ_HAVE_CXX11_ALIGNAS
# define MOZ_HAVE_NEVER_INLINE __declspec(noinline)
# define MOZ_HAVE_NORETURN __declspec(noreturn)
# if _MSC_VER >= 1900
@@ -73,6 +74,9 @@
# ifndef __has_extension
# define __has_extension __has_feature /* compatibility, for older versions of clang */
# endif
+# if __has_extension(cxx_alignas)
+# define MOZ_HAVE_CXX11_ALIGNAS
+# endif
# if __has_extension(cxx_constexpr)
# define MOZ_HAVE_CXX11_CONSTEXPR
# endif
@@ -89,6 +93,7 @@
# if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
# define MOZ_HAVE_CXX11_CONSTEXPR
# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
+# define MOZ_HAVE_CXX11_ALIGNAS
# define MOZ_HAVE_CXX11_CONSTEXPR_IN_TEMPLATES
# endif
# define MOZ_HAVE_EXPLICIT_CONVERSION
$NetBSD: patch-mfbt_Poison.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Use posix_madvise(3) instead of madvise(3) for Solaris/SunOS.
Solaris/SunOS's madvise(3) is not enabled in this context,
and its first argument type is different from NetBSD/Linux's one.
--- mfbt/Poison.cpp.orig 2014-11-13 22:50:12.000000000 +0000
+++ mfbt/Poison.cpp
@@ -129,7 +129,11 @@ ReleaseRegion(void* aRegion, uintptr_t a
static bool
ProbeRegion(uintptr_t aRegion, uintptr_t aSize)
{
+#if !defined(__sun__)
if (madvise(reinterpret_cast<void*>(aRegion), aSize, MADV_NORMAL)) {
+#else
+ if (posix_madvise(reinterpret_cast<void*>(aRegion), aSize, MADV_NORMAL)) {
+#endif
return true;
} else {
return false;
$NetBSD: patch-modules_libjar_nsZipArchive.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- modules/libjar/nsZipArchive.cpp.orig 2013-06-18 11:01:37.000000000 +0000
+++ modules/libjar/nsZipArchive.cpp
@@ -590,7 +590,9 @@ MOZ_WIN_MEM_TRY_BEGIN
// Success means optimized jar layout from bug 559961 is in effect
uint32_t readaheadLength = xtolong(startp);
if (readaheadLength) {
-#if defined(XP_UNIX)
+#if defined(OS_SOLARIS)
+ posix_madvise(const_cast<uint8_t*>(startp), readaheadLength, POSIX_MADV_WILLNEED);
+#elif defined(XP_UNIX)
madvise(const_cast<uint8_t*>(startp), readaheadLength, MADV_WILLNEED);
#elif defined(XP_WIN)
if (aFd) {
$NetBSD: patch-modules_libpref_init_all.js,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Improve stability under NetBSD.
--- modules/libpref/init/all.js.orig 2015-10-29 22:17:56.000000000 +0000
+++ modules/libpref/init/all.js
@@ -4283,7 +4283,7 @@ pref("layers.max-active", -1);
pref("layers.tiles.adjust", true);
// Set the default values, and then override per-platform as needed
-pref("layers.offmainthreadcomposition.enabled", true);
+pref("layers.offmainthreadcomposition.enabled", false);
// Compositor target frame rate. NOTE: If vsync is enabled the compositor
// frame rate will still be capped.
// -1 -> default (match layout.frame_rate or 60 FPS)
$NetBSD: patch-mozglue_build_arm.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- mozglue/build/arm.cpp.orig 2015-09-29 21:45:02.000000000 +0000
+++ mozglue/build/arm.cpp
@@ -102,10 +102,13 @@ check_neon(void)
}
# endif // !MOZILLA_PRESUME_NEON
-# elif defined(__linux__) || defined(ANDROID)
+# elif defined(__linux__) || defined(ANDROID) || defined(__NetBSD__)
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
+# if defined(__NetBSD__)
+# include <sys/sysctl.h>
+# endif
enum{
MOZILLA_HAS_EDSP_FLAG=1,
@@ -114,6 +117,29 @@ enum{
MOZILLA_HAS_NEON_FLAG=8
};
+# if defined(__NetBSD__)
+static unsigned
+get_arm_cpu_flags(void)
+{
+ unsigned flags = 0;
+ size_t len;
+ int flag;
+
+ len = sizeof(flag);
+ if (sysctlbyname("machdep.simdex_present", &flag, &len, NULL, 0) == 0 && flag) {
+ flags |= MOZILLA_HAS_ARMV6_FLAG;
+ flags |= MOZILLA_HAS_EDSP_FLAG;
+ }
+
+ len = sizeof(flag);
+ if (sysctlbyname("machdep.neon_present", &flag, &len, NULL, 0) == 0 && flag) {
+ flags |= MOZILLA_HAS_ARMV7_FLAG;
+ flags |= MOZILLA_HAS_NEON_FLAG;
+ }
+
+ return flags;
+}
+# else
static unsigned
get_arm_cpu_flags(void)
{
@@ -178,6 +204,7 @@ get_arm_cpu_flags(void)
}
return flags;
}
+# endif
// Cache a local copy so we only have to read /proc/cpuinfo once.
static unsigned arm_cpu_flags = get_arm_cpu_flags();
$NetBSD: patch-mozglue_build_arm.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- mozglue/build/arm.h.orig 2015-09-29 21:45:02.000000000 +0000
+++ mozglue/build/arm.h
@@ -76,7 +76,7 @@
# endif
// Currently we only have CPU detection for Linux via /proc/cpuinfo
-# if defined(__linux__) || defined(ANDROID)
+# if defined(__linux__) || defined(ANDROID) || defined(__NetBSD__)
# define MOZILLA_ARM_HAVE_CPUID_DETECTION 1
# endif
$NetBSD: patch-netwerk_dns_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- netwerk/dns/moz.build.orig 2016-02-25 23:02:18.000000000 +0000
+++ netwerk/dns/moz.build
@@ -66,6 +66,9 @@ 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':
LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']]
$NetBSD: patch-pb,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xulrunner/installer/libxul.pc.in.orig 2013-07-30 00:59:18.000000000 +0000
+++ xulrunner/installer/libxul.pc.in
@@ -7,5 +7,5 @@ Name: libxul
Description: The Mozilla Runtime and Embedding Engine
Version: %MOZILLA_VERSION%
Requires: %NSPR_NAME% >= %NSPR_VERSION%
-Libs: -L${sdkdir}/lib %MOZ_XUL_LINK%
+Libs: -Wl,-R${prefix}/lib/xulrunner -Wl,-R${prefix}/lib/xulrunner -Wl,-R${prefix}/lib/xulrunner -Wl,-R${prefix}/lib/xulrunner -L${prefix}/lib/xulrunner %MOZ_XUL_LINK%
Cflags: -I${includedir} %WCHAR_CFLAGS%
$NetBSD: patch-pc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xulrunner/installer/libxul-embedding.pc.in.orig 2013-07-30 00:59:18.000000000 +0000
+++ xulrunner/installer/libxul-embedding.pc.in
@@ -6,5 +6,6 @@ idldir=%idldir%
Name: libxul-embedding
Description: Static library for version-independent embedding of the Mozilla runtime
Version: %MOZILLA_VERSION%
-Libs: -L${sdkdir}/lib -lxpcomglue -ldl
+# XXXtnn -ldl removed
+Libs: -Wl,-R${prefix}/lib/xulrunner -Wl,-R${prefix}/lib/xulrunner -Wl,-R${prefix}/lib/xulrunner -Wl,-R${prefix}/lib/xulrunner -L${prefix}/lib/xulrunner -lxpcomglue
Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
$NetBSD: patch-rc,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- browser/branding/unofficial/locales/en-US/brand.dtd.orig 2015-08-24 21:53:06.000000000 +0000
+++ browser/branding/unofficial/locales/en-US/brand.dtd
@@ -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 "Nightly">
-<!ENTITY brandShortName "Nightly">
-<!ENTITY brandFullName "Nightly">
+<!ENTITY brandShorterName "Browser">
+<!ENTITY brandShortName "Browser">
+<!ENTITY brandFullName "Browser">
<!ENTITY vendorShortName "Mozilla">
<!ENTITY trademarkInfo.part1 " ">
$NetBSD: patch-storage_SQLiteMutex.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- storage/SQLiteMutex.h.orig 2015-08-24 21:53:07.000000000 +0000
+++ storage/SQLiteMutex.h
@@ -107,15 +107,19 @@ public:
void assertCurrentThreadOwns()
{
NS_ASSERTION(mMutex, "No mutex associated with this wrapper!");
+#if 0
NS_ASSERTION(sqlite3_mutex_held(mMutex),
"Mutex is not held, but we expect it to be!");
+#endif
}
void assertNotCurrentThreadOwns()
{
NS_ASSERTION(mMutex, "No mutex associated with this wrapper!");
+#if 0
NS_ASSERTION(sqlite3_mutex_notheld(mMutex),
"Mutex is held, but we expect it to not be!");
+#endif
}
#endif // ifndef DEBUG
$NetBSD: patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- toolkit/components/protobuf/src/google/protobuf/stubs/atomicops.h.orig 2015-09-29 21:45:03.000000000 +0000
+++ toolkit/components/protobuf/src/google/protobuf/stubs/atomicops.h
@@ -76,9 +76,15 @@ typedef intptr_t Atomic64;
#endif
#endif
+#if defined(__NetBSD__) && defined(__arm__)
+// NetBSD/arm uses long for intptr_t, which fails -fpermissive checks. So
+// explicitly use int32 here instead.
+typedef int32 AtomicWord;
+#else
// Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or
// Atomic64 routines below, depending on your architecture.
typedef intptr_t AtomicWord;
+#endif
// Atomically execute:
// result = *ptr;
$NetBSD: patch-toolkit_components_protobuf_src_google_protobuf_stubs_platform__macros.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- toolkit/components/protobuf/src/google/protobuf/stubs/platform_macros.h.orig 2015-09-11 00:23:02.000000000 +0000
+++ toolkit/components/protobuf/src/google/protobuf/stubs/platform_macros.h
@@ -67,7 +67,7 @@
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
#elif defined(sparc)
#define GOOGLE_PROTOBUF_ARCH_SPARC 1
-#ifdef SOLARIS_64BIT_ENABLED
+#if (defined(sun) && defined(SOLARIS_64BIT_ENABLED)) || __LP64__
#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
#else
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
$NetBSD: patch-toolkit_library_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
MOZ_GSTREAMER:
GSTREAMER_LIBS are linked to libxul on Darwin, while they are
dlopen(3)'ed at runtime on other platforms. The problem is that the
toolkit being cocoa isn't relevant at all. It's Darwin that needs
the special handling, not Cocoa.
--- toolkit/library/moz.build.orig 2015-05-04 00:43:33.000000000 +0000
+++ toolkit/library/moz.build
@@ -214,6 +214,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
]
OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
if CONFIG['MOZ_NATIVE_JPEG']:
@@ -225,6 +226,30 @@ if CONFIG['MOZ_NATIVE_PNG']:
if CONFIG['MOZ_NATIVE_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
+if CONFIG['MOZ_NATIVE_OGG']:
+ OS_LIBS += CONFIG['MOZ_OGG_LIBS']
+
+if CONFIG['MOZ_NATIVE_THEORA']:
+ OS_LIBS += CONFIG['MOZ_THEORA_LIBS']
+
+if CONFIG['MOZ_NATIVE_VORBIS']:
+ OS_LIBS += CONFIG['MOZ_VORBIS_LIBS']
+
+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']
+
+if CONFIG['MOZ_NATIVE_SPEEX']:
+ OS_LIBS += CONFIG['MOZ_SPEEX_LIBS']
+
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
+
if CONFIG['MOZ_NATIVE_LIBEVENT']:
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
@@ -234,8 +259,14 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
if not CONFIG['MOZ_TREE_PIXMAN']:
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
-if CONFIG['MOZ_ALSA']:
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
+if CONFIG['MOZ_NATIVE_GRAPHITE2']:
+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
+
+if CONFIG['MOZ_OSS']:
+ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
if CONFIG['HAVE_CLOCK_MONOTONIC']:
OS_LIBS += CONFIG['REALTIME_LIBS']
@@ -365,7 +396,7 @@ if CONFIG['OS_ARCH'] == 'WINNT':
if CONFIG['MOZ_ENABLE_QT']:
OS_LIBS += CONFIG['XEXT_LIBS']
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' and CONFIG['MOZ_GSTREAMER']:
+if CONFIG['OS_ARCH'] == 'Darwin' and CONFIG['MOZ_GSTREAMER']:
OS_LIBS += CONFIG['GSTREAMER_LIBS']
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
$NetBSD: patch-toolkit_xre_glxtest.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Fix libGL filename on NetBSD,
see https://bugzilla.mozilla.org/show_bug.cgi?id=1180498
--- toolkit/xre/glxtest.cpp.orig 2015-07-04 20:26:15.000000000 +0200
+++ toolkit/xre/glxtest.cpp 2015-07-04 20:26:15.000000000 +0200
@@ -124,7 +124,7 @@ void glxtest()
fatal_error("The MOZ_AVOID_OPENGL_ALTOGETHER environment variable is defined");
///// Open libGL and load needed symbols /////
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
#define LIBGL_FILENAME "libGL.so"
#else
#define LIBGL_FILENAME "libGL.so.1"
$NetBSD: patch-toolkit_xre_nsAppRunner.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
MacOS X < 10.6 had an undocumented behavior concerning execve(2)
inside a threaded process. If a process tried to call execve(2) and
had more than one active thread, the kernel returned ENOTSUP. So we
have to either fork(2) or vfork(2) before calling execve(2) to make
sure the caller is single-threaded as otherwise the application fails
to restart itself.
__mac_execve() in XNU 1228 (Darwin 9, MacOS X 10.5) had the
restriction:
http://www.opensource.apple.com/source/xnu/xnu-1228.15.4/bsd/kern/kern_exec.c
In XNU 1456 (Darwin 10, MacOS X 10.6) the multi-threaded check
disappeared:
http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/kern/kern_exec.c
--- toolkit/xre/nsAppRunner.cpp.orig 2015-01-30 04:06:22.000000000 +0000
+++ toolkit/xre/nsAppRunner.cpp
@@ -1768,6 +1768,18 @@ static nsresult LaunchChild(nsINativeApp
if (NS_FAILED(rv))
return rv;
+#if defined(XP_DARWIN)
+ pid_t pid = vfork();
+ if (pid == 0) { // child
+ if (execv(exePath.get(), gRestartArgv) == -1) {
+ _exit(1);
+ }
+ }
+ else if (pid == -1) {
+ return NS_ERROR_FAILURE;
+ }
+#else
+
#if defined(XP_UNIX)
if (execv(exePath.get(), gRestartArgv) == -1)
return NS_ERROR_FAILURE;
@@ -1781,6 +1793,7 @@ static nsresult LaunchChild(nsINativeApp
if (failed || exitCode)
return NS_ERROR_FAILURE;
#endif // XP_UNIX
+#endif // XP_DARWIN
#endif // WP_WIN
#endif // WP_MACOSX
#endif // MOZ_WIDGET_ANDROID
$NetBSD: patch-toolkit_xre_nsEmbedFunctions.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- toolkit/xre/nsEmbedFunctions.cpp.orig 2013-05-11 19:19:55.000000000 +0000
+++ toolkit/xre/nsEmbedFunctions.cpp
@@ -239,7 +239,7 @@ XRE_SetRemoteExceptionHandler(const char
{
#if defined(XP_WIN) || defined(XP_MACOSX)
return CrashReporter::SetRemoteExceptionHandler(nsDependentCString(aPipe));
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
return CrashReporter::SetRemoteExceptionHandler();
#else
# error "OOP crash reporter unsupported on this platform"
@@ -351,7 +351,7 @@ XRE_InitChildProcess(int aArgc,
// Bug 684322 will add better visibility into this condition
NS_WARNING("Could not setup crash reporting\n");
}
-# elif defined(OS_LINUX)
+# elif defined(OS_LINUX) || defined(OS_SOLARIS)
// on POSIX, |crashReporterArg| is "true" if crash reporting is
// enabled, false otherwise
if (0 != strcmp("false", crashReporterArg) &&
$NetBSD: patch-webapprt_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Don't assume cocoa toolkit just because OS_ARCH is Darwin.
--- webapprt/moz.build.orig 2014-09-24 01:05:40.000000000 +0000
+++ webapprt/moz.build
@@ -6,7 +6,7 @@
if CONFIG['OS_ARCH'] == 'WINNT':
DIRS += ['win']
-elif CONFIG['OS_ARCH'] == 'Darwin':
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
DIRS += ['mac']
elif CONFIG['MOZ_ENABLE_GTK']:
DIRS += ['gtk']
$NetBSD: patch-xpcom_base_nscore.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/base/nscore.h.orig 2014-05-29 23:31:50.000000000 +0000
+++ xpcom/base/nscore.h
@@ -114,7 +114,7 @@
* NS_HIDDEN_(int) NS_FASTCALL func2(char *foo);
*/
-#if defined(__i386__) && defined(__GNUC__)
+#if defined(__i386__) && defined(__GNUC__) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0)
#define NS_FASTCALL __attribute__ ((regparm (3), stdcall))
#define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall))
#elif defined(XP_WIN) && !defined(_WIN64)
$NetBSD: patch-xpcom_build_PoisonIOInterposer.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
Replace XP_MACOSX with XP_DARWIN as the former is not defined when the
toolkit is not cocoa.
--- xpcom/build/PoisonIOInterposer.h.orig 2015-01-28 23:04:52.000000000 +0000
+++ xpcom/build/PoisonIOInterposer.h
@@ -26,7 +26,7 @@ void MozillaUnRegisterDebugFILE(FILE* aF
MOZ_END_EXTERN_C
-#if defined(XP_WIN) || defined(XP_MACOSX)
+#if defined(XP_WIN) || defined(XP_DARWIN)
#ifdef __cplusplus
namespace mozilla {
@@ -44,7 +44,7 @@ bool IsDebugFile(intptr_t aFileID);
*/
void InitPoisonIOInterposer();
-#ifdef XP_MACOSX
+#ifdef XP_DARWIN
/**
* Check that writes are dirty before reporting I/O (Mac OS X only)
* This is necessary for late-write checks on Mac OS X, but reading the buffer
@@ -52,7 +52,7 @@ void InitPoisonIOInterposer();
* to do this for everything else that uses
*/
void OnlyReportDirtyWrites();
-#endif /* XP_MACOSX */
+#endif /* XP_DARWIN */
/**
* Clear IO poisoning, this is only safe to do on the main-thread when no other
@@ -63,19 +63,19 @@ void ClearPoisonIOInterposer();
} // namespace mozilla
#endif /* __cplusplus */
-#else /* XP_WIN || XP_MACOSX */
+#else /* XP_WIN || XP_DARWIN */
#ifdef __cplusplus
namespace mozilla {
inline bool IsDebugFile(intptr_t aFileID) { return true; }
inline void InitPoisonIOInterposer() {}
inline void ClearPoisonIOInterposer() {}
-#ifdef XP_MACOSX
+#ifdef XP_DARWIN
inline void OnlyReportDirtyWrites() {}
-#endif /* XP_MACOSX */
+#endif /* XP_DARWIN */
} // namespace mozilla
#endif /* __cplusplus */
-#endif /* XP_WIN || XP_MACOSX */
+#endif /* XP_WIN || XP_DARWIN */
#endif // mozilla_PoisonIOInterposer_h
$NetBSD: patch-xpcom_components_Module.h,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Workaround for binutils/GNU ld 2.26 from NetBSD/amd64 7.99.26
--- xpcom/components/Module.h.orig 2016-01-23 23:23:51.000000000 +0000
+++ xpcom/components/Module.h
@@ -125,7 +125,7 @@ struct Module
# define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$M"), dllexport)
# elif defined(__GNUC__)
# if defined(__ELF__)
-# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("protected")))
+# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("default")))
# elif defined(__MACH__)
# define NSMODULE_SECTION __attribute__((section("__DATA, .kPStaticModules"), visibility("default")))
# elif defined (_WIN32)
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_Makefile.in,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/Makefile.in.orig 2015-08-24 21:53:22.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/Makefile.in
@@ -42,6 +42,43 @@ ifeq ($(OS_ARCH),AIX)
CXXFLAGS := $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(CXXFLAGS))
endif
+######################################################################
+# SPARC
+######################################################################
+#
+# Linux/SPARC
+#
+ifeq ($(OS_ARCH),Linux)
+ifneq (,$(findstring sparc,$(OS_TEST)))
+ASFILES := xptcinvoke_asm_sparc_linux_GCC3.s xptcstubs_asm_sparc_solaris.s
+endif
+endif
+#
+# NetBSD/SPARC
+#
+ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc)
+ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s
+endif
+#
+# OpenBSD/SPARC
+#
+ifeq ($(OS_ARCH)$(OS_TEST),OpenBSDsparc)
+ASFILES := xptcinvoke_asm_sparc_openbsd.s xptcstubs_asm_sparc_openbsd.s
+endif
+#
+# OpenBSD/SPARC64
+#
+ifneq (,$(filter OpenBSDsparc64 FreeBSDsparc64,$(OS_ARCH)$(OS_TEST)))
+ASFILES := xptcinvoke_asm_sparc64_openbsd.s xptcstubs_asm_sparc64_openbsd.s
+endif
+#
+# NetBSD/SPARC64
+#
+ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc64)
+CPPSRCS := xptcinvoke_sparc64_netbsd.cpp xptcstubs_sparc64_openbsd.cpp
+ASFILES := xptcinvoke_asm_sparc64_openbsd.s xptcstubs_asm_sparc64_netbsd.s
+endif
+
include $(topsrcdir)/config/rules.mk
ifeq ($(OS_ARCH),Linux)
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_moz.build,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/moz.build.orig 2015-08-24 21:53:22.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/moz.build
@@ -9,7 +9,7 @@ if CONFIG['OS_ARCH'] == 'Darwin':
'xptcinvoke_darwin.cpp',
'xptcstubs_darwin.cpp',
]
- if CONFIG['OS_TEST'] == 'powerpc':
+ if CONFIG['OS_TEST'] == 'ppc':
SOURCES += [
'!xptcstubs_asm_ppc_darwin.s',
'xptcinvoke_asm_ppc_rhapsody.s',
@@ -24,7 +24,7 @@ if CONFIG['OS_ARCH'] == 'GNU':
'xptcstubs_gcc_x86_unix.cpp'
]
-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 += [
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp.orig 2014-11-13 22:50:21.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp
@@ -7,82 +7,92 @@
#include "xptcprivate.h"
-// Remember that these 'words' are 32bit DWORDS
+#include "mozilla/Compiler.h"
-static uint32_t
-invoke_count_words(uint32_t paramCount, nsXPTCVariant* s)
+#ifndef __ARM_PCS_VFP
+
+/* This function copies a 64-bits word from dw to the given pointer in
+ * a buffer delimited by start and end, possibly wrapping around the
+ * buffer boundaries, and/or properly aligning the data at 64-bits word
+ * boundaries (for EABI).
+ * start and end are both assumed to be 64-bits aligned.
+ * Returns a pointer to the second 32-bits word copied (to accomodate
+ * the invoke_copy_to_stack loop).
+ */
+static uint32_t *
+copy_double_word(uint32_t *start, uint32_t *current, uint32_t *end, uint64_t *dw)
{
- uint32_t result = 0;
- for(uint32_t i = 0; i < paramCount; i++, s++)
- {
- if(s->IsPtrData())
- {
- result++;
- continue;
- }
- switch(s->type)
- {
- case nsXPTType::T_I8 :
- case nsXPTType::T_I16 :
- case nsXPTType::T_I32 :
- result++;
- break;
- case nsXPTType::T_I64 :
- result+=2;
- break;
- case nsXPTType::T_U8 :
- case nsXPTType::T_U16 :
- case nsXPTType::T_U32 :
- result++;
- break;
- case nsXPTType::T_U64 :
- result+=2;
- break;
- case nsXPTType::T_FLOAT :
- result++;
- break;
- case nsXPTType::T_DOUBLE :
- result+=2;
- break;
- case nsXPTType::T_BOOL :
- case nsXPTType::T_CHAR :
- case nsXPTType::T_WCHAR :
- result++;
- break;
- default:
- // all the others are plain pointer types
- result++;
- break;
- }
+#ifdef __ARM_EABI__
+ /* Aligning the pointer for EABI */
+ current = (uint32_t *)(((uint32_t)current + 7) & ~7);
+ /* Wrap when reaching the end of the buffer */
+ if (current == end) current = start;
+#else
+ /* On non-EABI, 64-bits values are not aligned and when we reach the end
+ * of the buffer, we need to write half of the data at the end, and the
+ * other half at the beginning. */
+ if (current == end - 1) {
+ *current = ((uint32_t*)dw)[0];
+ *start = ((uint32_t*)dw)[1];
+ return start;
}
- return result;
+#endif
+
+ *((uint64_t*) current) = *dw;
+ return current + 1;
}
-static void
-invoke_copy_to_stack(uint32_t* d, uint32_t paramCount, nsXPTCVariant* s)
+/* See stack_space comment in NS_InvokeByIndex to see why this needs not to
+ * be static on DEBUG builds. */
+#ifndef DEBUG
+static
+#endif
+void
+invoke_copy_to_stack(uint32_t* stk, uint32_t *end,
+ uint32_t paramCount, nsXPTCVariant* s)
{
+ /* The stack buffer is 64-bits aligned. The end argument points to its end.
+ * The caller is assumed to create a stack buffer of at least four 32-bits
+ * words.
+ * We use the last three 32-bit words to store the values for r1, r2 and r3
+ * for the method call, i.e. the first words for arguments passing.
+ */
+ uint32_t *d = end - 3;
for(uint32_t i = 0; i < paramCount; i++, d++, s++)
{
+ /* Wrap when reaching the end of the stack buffer */
+ if (d == end) d = stk;
+ NS_ASSERTION(d >= stk && d < end,
+ "invoke_copy_to_stack is copying outside its given buffer");
if(s->IsPtrData())
{
*((void**)d) = s->ptr;
continue;
}
+ // According to the ARM EABI, integral types that are smaller than a word
+ // are to be sign/zero-extended to a full word and treated as 4-byte values.
+
switch(s->type)
{
- case nsXPTType::T_I8 : *((int8_t*) d) = s->val.i8; break;
- case nsXPTType::T_I16 : *((int16_t*) d) = s->val.i16; break;
+ case nsXPTType::T_I8 : *((int32_t*) d) = s->val.i8; break;
+ case nsXPTType::T_I16 : *((int32_t*) d) = s->val.i16; break;
case nsXPTType::T_I32 : *((int32_t*) d) = s->val.i32; break;
- case nsXPTType::T_I64 : *((int64_t*) d) = s->val.i64; d++; break;
- case nsXPTType::T_U8 : *((uint8_t*) d) = s->val.u8; break;
- case nsXPTType::T_U16 : *((uint16_t*)d) = s->val.u16; break;
+ case nsXPTType::T_I64 :
+ d = copy_double_word(stk, d, end, (uint64_t *)&s->val.i64);
+ break;
+ case nsXPTType::T_U8 : *((uint32_t*)d) = s->val.u8; break;
+ case nsXPTType::T_U16 : *((uint32_t*)d) = s->val.u16; break;
case nsXPTType::T_U32 : *((uint32_t*)d) = s->val.u32; break;
- case nsXPTType::T_U64 : *((uint64_t*)d) = s->val.u64; d++; break;
+ case nsXPTType::T_U64 :
+ d = copy_double_word(stk, d, end, (uint64_t *)&s->val.u64);
+ break;
case nsXPTType::T_FLOAT : *((float*) d) = s->val.f; break;
- case nsXPTType::T_DOUBLE : *((double*) d) = s->val.d; d++; break;
- case nsXPTType::T_BOOL : *((bool*) d) = s->val.b; break;
- case nsXPTType::T_CHAR : *((char*) d) = s->val.c; break;
- case nsXPTType::T_WCHAR : *((wchar_t*) d) = s->val.wc; break;
+ case nsXPTType::T_DOUBLE :
+ d = copy_double_word(stk, d, end, (uint64_t *)&s->val.d);
+ break;
+ case nsXPTType::T_BOOL : *((int32_t*) d) = s->val.b; break;
+ case nsXPTType::T_CHAR : *((int32_t*) d) = s->val.c; break;
+ case nsXPTType::T_WCHAR : *((int32_t*) d) = s->val.wc; break;
default:
// all the others are plain pointer types
*((void**)d) = s->val.p;
@@ -91,47 +101,27 @@ invoke_copy_to_stack(uint32_t* d, uint32
}
}
-extern "C"
-struct my_params_struct {
- nsISupports* that;
- uint32_t Index;
- uint32_t Count;
- nsXPTCVariant* params;
- uint32_t fn_count;
- uint32_t fn_copy;
-};
+typedef nsresult (*vtable_func)(nsISupports *, uint32_t, uint32_t, uint32_t);
-XPTC_PUBLIC_API(nsresult)
-XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
+EXPORT_XPCOM_API(nsresult)
+NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
uint32_t paramCount, nsXPTCVariant* params)
{
- uint32_t result;
- struct my_params_struct my_params;
- my_params.that = that;
- my_params.Index = methodIndex;
- my_params.Count = paramCount;
- my_params.params = params;
- my_params.fn_copy = (uint32_t) &invoke_copy_to_stack;
- my_params.fn_count = (uint32_t) &invoke_count_words;
/* This is to call a given method of class that.
* The parameters are in params, the number is in paramCount.
* The routine will issue calls to count the number of words
* required for argument passing and to copy the arguments to
* the stack.
- * Since APCS passes the first 3 params in r1-r3, we need to
- * load the first three words from the stack and correct the stack
- * pointer (sp) in the appropriate way. This means:
- *
- * 1.) more than 3 arguments: load r1-r3, correct sp and remember No.
- * of bytes left on the stack in r4
- *
- * 2.) <= 2 args: load r1-r3 (we won't be causing a stack overflow I hope),
- * restore sp as if nothing had happened and set the marker r4 to zero.
- *
- * Afterwards sp will be restored using the value in r4 (which is not a temporary register
- * and will be preserved by the function/method called according to APCS [ARM Procedure
- * Calling Standard]).
+ * ACPS passes the first 3 params in r1-r3 (with exceptions for 64-bits
+ * arguments), and the remaining goes onto the stack.
+ * We allocate a buffer on the stack for a "worst case" estimate of how much
+ * stack might be needed for EABI, i.e. twice the number of parameters.
+ * The end of this buffer will be used to store r1 to r3, so that the start
+ * of the stack is the remaining parameters.
+ * The magic here is to call the method with "that" and three 32-bits
+ * arguments corresponding to r1-r3, so that the compiler generates the
+ * proper function call. The stack will also contain the remaining arguments.
*
* !!! IMPORTANT !!!
* This routine makes assumptions about the vtable layout of the c++ compiler. It's implemented
@@ -139,43 +129,272 @@ XPTC_InvokeByIndex(nsISupports* that, ui
*
*/
- __asm__ __volatile__(
- "ldr r1, [%1, #12] \n\t" /* prepare to call invoke_count_words */
- "ldr ip, [%1, #16] \n\t" /* r0=paramCount, r1=params */
- "ldr r0, [%1, #8] \n\t"
- "mov lr, pc \n\t" /* call it... */
- "mov pc, ip \n\t"
- "mov r4, r0, lsl #2 \n\t" /* This is the amount of bytes needed. */
- "sub sp, sp, r4 \n\t" /* use stack space for the args... */
- "mov r0, sp \n\t" /* prepare a pointer an the stack */
- "ldr r1, [%1, #8] \n\t" /* =paramCount */
- "ldr r2, [%1, #12] \n\t" /* =params */
- "ldr ip, [%1, #20] \n\t" /* =invoke_copy_to_stack */
- "mov lr, pc \n\t" /* copy args to the stack like the */
- "mov pc, ip \n\t" /* compiler would. */
- "ldr r0, [%1] \n\t" /* =that */
- "ldr r1, [r0, #0] \n\t" /* get that->vtable offset */
- "ldr r2, [%1, #4] \n\t"
- "add r2, r1, r2, lsl #3\n\t" /* a vtable_entry(x)=8 + (8 bytes * x) */
- "add r2, r2, #8 \n\t" /* with this compilers */
- "ldr r3, [r2] \n\t" /* get virtual offset from vtable */
- "mov r3, r3, lsl #16 \n\t"
- "add r0, r0, r3, asr #16\n\t"
- "ldr ip, [r2, #4] \n\t" /* get method address from vtable */
- "cmp r4, #12 \n\t" /* more than 3 arguments??? */
- "ldmgtia sp!, {r1, r2, r3}\n\t" /* yes: load arguments for r1-r3 */
- "subgt r4, r4, #12 \n\t" /* and correct the stack pointer */
- "ldmleia sp, {r1, r2, r3}\n\t" /* no: load r1-r3 from stack */
- "addle sp, sp, r4 \n\t" /* and restore stack pointer */
- "movle r4, #0 \n\t" /* a mark for restoring sp */
- "mov lr, pc \n\t" /* call mathod */
- "mov pc, ip \n\t"
- "add sp, sp, r4 \n\t" /* restore stack pointer */
- "mov %0, r0 \n\t" /* the result... */
- : "=r" (result)
- : "r" (&my_params)
- : "r0", "r1", "r2", "r3", "r4", "ip", "lr"
- );
-
- return result;
+ vtable_func *vtable, func;
+ int base_size = (paramCount > 1) ? paramCount : 2;
+
+/* !!! IMPORTANT !!!
+ * On DEBUG builds, the NS_ASSERTION used in invoke_copy_to_stack needs to use
+ * the stack to pass the 5th argument to NS_DebugBreak. When invoke_copy_to_stack
+ * is inlined, this can result, depending on the compiler and flags, in the
+ * stack pointer not pointing at stack_space when the method is called at the
+ * end of this function. More generally, any function call requiring stack
+ * allocation of arguments is unsafe to be inlined in this function.
+ */
+ uint32_t *stack_space = (uint32_t *) __builtin_alloca(base_size * 8);
+
+ invoke_copy_to_stack(stack_space, &stack_space[base_size * 2],
+ paramCount, params);
+
+ vtable = *reinterpret_cast<vtable_func **>(that);
+ func = vtable[methodIndex];
+
+ return func(that, stack_space[base_size * 2 - 3],
+ stack_space[base_size * 2 - 2],
+ stack_space[base_size * 2 - 1]);
}
+
+#else /* __ARM_PCS_VFP */
+
+/* "Procedure Call Standard for the ARM Architecture" document, sections
+ * "5.5 Parameter Passing" and "6.1.2 Procedure Calling" contain all the
+ * needed information.
+ *
+ * http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
+ */
+
+#if defined(__thumb__) && !defined(__thumb2__)
+#error "Thumb1 is not supported"
+#endif
+
+#ifndef __ARMEL__
+#error "Only little endian compatibility was tested"
+#endif
+
+/*
+ * Allocation of integer function arguments initially to registers r1-r3
+ * and then to stack. Handling of 'this' argument which goes to r0 registers
+ * is handled separately and does not belong to these two inline functions.
+ *
+ * The doubleword arguments are allocated to even:odd
+ * register pairs or get aligned at 8-byte boundary on stack. The "holes"
+ * which may appear as a result of this realignment remain unused.
+ *
+ * 'ireg_args' - pointer to the current position in the buffer,
+ * corresponding to the register arguments
+ * 'stack_args' - pointer to the current position in the buffer,
+ * corresponding to the arguments on stack
+ * 'end' - pointer to the end of the registers argument
+ * buffer (it is guaranteed to be 8-bytes aligned)
+ */
+
+static inline void copy_word(uint32_t* &ireg_args,
+ uint32_t* &stack_args,
+ uint32_t* end,
+ uint32_t data)
+{
+ if (ireg_args < end) {
+ *ireg_args = data;
+ ireg_args++;
+ } else {
+ *stack_args = data;
+ stack_args++;
+ }
+}
+
+static inline void copy_dword(uint32_t* &ireg_args,
+ uint32_t* &stack_args,
+ uint32_t* end,
+ uint64_t data)
+{
+ if (ireg_args + 1 < end) {
+ if ((uint32_t)ireg_args & 4) {
+ ireg_args++;
+ }
+ *(uint64_t *)ireg_args = data;
+ ireg_args += 2;
+ } else {
+ if ((uint32_t)stack_args & 4) {
+ stack_args++;
+ }
+ *(uint64_t *)stack_args = data;
+ stack_args += 2;
+ }
+}
+
+/*
+ * Allocation of floating point arguments to VFP registers (s0-s15, d0-d7).
+ *
+ * Unlike integer registers allocation, "back-filling" needs to be
+ * supported. For example, the third floating point argument in the
+ * following function is going to be allocated to s1 register, back-filling
+ * the "hole":
+ * void f(float s0, double d1, float s1)
+ *
+ * Refer to the "Procedure Call Standard for the ARM Architecture" document
+ * for more details.
+ *
+ * 'vfp_s_args' - pointer to the current position in the buffer with
+ * the next unallocated single precision register
+ * 'vfp_d_args' - pointer to the current position in the buffer with
+ * the next unallocated double precision register,
+ * it has the same value as 'vfp_s_args' when back-filling
+ * is not used
+ * 'end' - pointer to the end of the vfp registers argument
+ * buffer (it is guaranteed to be 8-bytes aligned)
+ *
+ * Mozilla bugtracker has a test program attached which be used for
+ * experimenting with VFP registers allocation code and testing its
+ * correctness:
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=601914#c19
+ */
+
+static inline bool copy_vfp_single(float* &vfp_s_args, double* &vfp_d_args,
+ float* end, float data)
+{
+ if (vfp_s_args >= end)
+ return false;
+
+ *vfp_s_args = data;
+ vfp_s_args++;
+ if (vfp_s_args < (float *)vfp_d_args) {
+ // It was the case of back-filling, now the next free single precision
+ // register should overlap with the next free double precision register
+ vfp_s_args = (float *)vfp_d_args;
+ } else if (vfp_s_args > (float *)vfp_d_args) {
+ // also update the pointer to the next free double precision register
+ vfp_d_args++;
+ }
+ return true;
+}
+
+static inline bool copy_vfp_double(float* &vfp_s_args, double* &vfp_d_args,
+ float* end, double data)
+{
+ if (vfp_d_args >= (double *)end) {
+ // The back-filling continues only so long as no VFP CPRC has been
+ // allocated to a slot on the stack. Basically no VFP registers can
+ // be allocated after this point.
+ vfp_s_args = end;
+ return false;
+ }
+
+ if (vfp_s_args == (float *)vfp_d_args) {
+ // also update the pointer to the next free single precision register
+ vfp_s_args += 2;
+ }
+ *vfp_d_args = data;
+ vfp_d_args++;
+ return true;
+}
+
+static void
+invoke_copy_to_stack(uint32_t* stk, uint32_t *end,
+ uint32_t paramCount, nsXPTCVariant* s)
+{
+ uint32_t *ireg_args = end - 3;
+ float *vfp_s_args = (float *)end;
+ double *vfp_d_args = (double *)end;
+ float *vfp_end = vfp_s_args + 16;
+
+ for (uint32_t i = 0; i < paramCount; i++, s++) {
+ if (s->IsPtrData()) {
+ copy_word(ireg_args, stk, end, (uint32_t)s->ptr);
+ continue;
+ }
+ // According to the ARM EABI, integral types that are smaller than a word
+ // are to be sign/zero-extended to a full word and treated as 4-byte values
+ switch (s->type)
+ {
+ case nsXPTType::T_FLOAT:
+ if (!copy_vfp_single(vfp_s_args, vfp_d_args, vfp_end, s->val.f)) {
+ copy_word(end, stk, end, reinterpret_cast<uint32_t&>(s->val.f));
+ }
+ break;
+ case nsXPTType::T_DOUBLE:
+ if (!copy_vfp_double(vfp_s_args, vfp_d_args, vfp_end, s->val.d)) {
+ copy_dword(end, stk, end, reinterpret_cast<uint64_t&>(s->val.d));
+ }
+ break;
+ case nsXPTType::T_I8: copy_word(ireg_args, stk, end, s->val.i8); break;
+ case nsXPTType::T_I16: copy_word(ireg_args, stk, end, s->val.i16); break;
+ case nsXPTType::T_I32: copy_word(ireg_args, stk, end, s->val.i32); break;
+ case nsXPTType::T_I64: copy_dword(ireg_args, stk, end, s->val.i64); break;
+ case nsXPTType::T_U8: copy_word(ireg_args, stk, end, s->val.u8); break;
+ case nsXPTType::T_U16: copy_word(ireg_args, stk, end, s->val.u16); break;
+ case nsXPTType::T_U32: copy_word(ireg_args, stk, end, s->val.u32); break;
+ case nsXPTType::T_U64: copy_dword(ireg_args, stk, end, s->val.u64); break;
+ case nsXPTType::T_BOOL: copy_word(ireg_args, stk, end, s->val.b); break;
+ case nsXPTType::T_CHAR: copy_word(ireg_args, stk, end, s->val.c); break;
+ case nsXPTType::T_WCHAR: copy_word(ireg_args, stk, end, s->val.wc); break;
+ default:
+ // all the others are plain pointer types
+ copy_word(ireg_args, stk, end, reinterpret_cast<uint32_t>(s->val.p));
+ break;
+ }
+ }
+}
+
+typedef uint32_t (*vtable_func)(nsISupports *, uint32_t, uint32_t, uint32_t);
+
+EXPORT_XPCOM_API(nsresult)
+NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
+ uint32_t paramCount, nsXPTCVariant* params)
+{
+ vtable_func *vtable = *reinterpret_cast<vtable_func **>(that);
+ vtable_func func = vtable[methodIndex];
+ // 'register uint32_t result asm("r0")' could be used here, but it does not
+ // seem to be reliable in all cases: http://gcc.gnu.org/PR46164
+ nsresult result;
+ asm (
+ "mov r3, sp\n"
+ "mov %[stack_space_size], %[param_count_plus_2], lsl #3\n"
+ "tst r3, #4\n" /* check stack alignment */
+
+ "add %[stack_space_size], #(4 * 16)\n" /* space for VFP registers */
+ "mov r3, %[params]\n"
+
+ "it ne\n"
+ "addne %[stack_space_size], %[stack_space_size], #4\n"
+ "sub r0, sp, %[stack_space_size]\n" /* allocate space on stack */
+
+ "sub r2, %[param_count_plus_2], #2\n"
+ "mov sp, r0\n"
+
+ "add r1, r0, %[param_count_plus_2], lsl #3\n"
+ "blx %[invoke_copy_to_stack]\n"
+
+ "add ip, sp, %[param_count_plus_2], lsl #3\n"
+ "mov r0, %[that]\n"
+ "ldmdb ip, {r1, r2, r3}\n"
+ "vldm ip, {d0, d1, d2, d3, d4, d5, d6, d7}\n"
+ "blx %[func]\n"
+
+ "add sp, sp, %[stack_space_size]\n" /* cleanup stack */
+ "mov %[stack_space_size], r0\n" /* it's actually 'result' variable */
+ : [stack_space_size] "=&r" (result)
+ : [func] "r" (func),
+ [that] "r" (that),
+ [params] "r" (params),
+ [param_count_plus_2] "r" (paramCount + 2),
+ [invoke_copy_to_stack] "r" (invoke_copy_to_stack)
+ : "cc", "memory",
+ // Mark all the scratch registers as clobbered because they may be
+ // modified by the functions, called from this inline assembly block
+ "r0", "r1", "r2", "r3", "ip", "lr",
+ "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
+ // Also unconditionally mark d16-d31 registers as clobbered even though
+ // they actually don't exist in vfpv2 and vfpv3-d16 variants. There is
+ // no way to identify VFP variant using preprocessor at the momemnt
+ // (see http://gcc.gnu.org/PR46128 for more details), but fortunately
+ // current versions of gcc do not seem to complain about these registers
+ // even when this code is compiled with '-mfpu=vfpv3-d16' option.
+ // If gcc becomes more strict in the future and/or provides a way to
+ // identify VFP variant, the following d16-d31 registers list needs
+ // to be wrapped into some #ifdef
+ "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23",
+ "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31"
+ );
+ return result;
+}
+
+#endif
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_mips.S.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_mips.S
@@ -16,6 +16,47 @@
#include <sys/asm.h>
#endif
+#ifdef __NetBSD__
+# include <machine/regdef.h>
+# include <machine/asm.h>
+# ifndef fp
+# define fp s8
+# endif
+# ifndef PTRLOG
+# if SZREG == 4
+# define PTRLOG 2
+# else
+# define PTRLOG 3
+# endif
+# endif
+# ifndef SETUP_GP
+# if defined(__mips_o32)
+# define SETUP_GP \
+ .set push; \
+ .set noreorder; \
+ .cpload t9; \
+ .set pop
+# define SAVE_GP(x) \
+ .cprestore x
+# else
+# define SETUP_GP
+# define SAVE_GP(x)
+# endif
+# endif
+# ifndef ALSZ
+# if defined(__mips_n32) || defined(__mips_n64)
+# define ALSZ 15
+# define ALMASK ~15
+# else
+# define ALSZ 7
+# define ALMASK ~7
+# endif
+# endif
+#else
+# include <sys/regdef.h>
+# include <sys/asm.h>
+#endif
+
# NARGSAVE is the argument space in the callers frame, including extra
# 'shadowed' space for the argument registers. The minimum of 4
# argument slots is sometimes predefined in the header files.
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc_netbsd.s.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc_netbsd.s
@@ -20,15 +20,15 @@
.section ".text"
.align 2
- .globl XPTC_InvokeByIndex
- .type XPTC_InvokeByIndex,@function
+ .globl NS_InvokeByIndex_P
+ .type NS_InvokeByIndex_P,@function
#
-# XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
-# uint32_t paramCount, nsXPTCVariant* params)
+# NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
+# PRUint32 paramCount, nsXPTCVariant* params)
#
-XPTC_InvokeByIndex:
+NS_InvokeByIndex_P:
stwu sp,-32(sp) # setup standard stack frame
mflr r0 # save LR
stw r3,8(sp) # r3 <= that
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_gcc_x86_unix.cpp.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_gcc_x86_unix.cpp
@@ -9,7 +9,7 @@
#include "xptc_gcc_x86_unix.h"
extern "C" {
-static void ATTRIBUTE_USED __attribute__ ((regparm(3)))
+void ATTRIBUTE_USED __attribute__ ((regparm(3)))
invoke_copy_to_stack(uint32_t paramCount, nsXPTCVariant* s, uint32_t* d)
{
for(uint32_t i = paramCount; i >0; i--, d++, s++)
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_netbsd_m68k.cpp.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_netbsd_m68k.cpp
@@ -100,6 +100,15 @@ extern "C" {
}
}
+/*
+ * SYMBOL PREFIX must be "_" for aout symbols and "" for ELF
+ */
+#ifndef __ELF__
+#define SYMBOLPREFIX "_"
+#else
+#define SYMBOLPREFIX
+#endif
+
XPTC_PUBLIC_API(nsresult)
XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
uint32_t paramCount, nsXPTCVariant* params)
@@ -107,30 +116,30 @@ XPTC_InvokeByIndex(nsISupports* that, ui
uint32_t result;
__asm__ __volatile__(
- "movl %4, sp@-\n\t"
- "movl %3, sp@-\n\t"
- "jbsr _invoke_count_words\n\t" /* count words */
- "addql #8, sp\n\t"
- "lsll #2, d0\n\t" /* *= 4 */
- "movl sp, a2\n\t" /* save original sp */
- "subl d0, sp\n\t" /* make room for params */
- "movl sp, a0\n\t"
- "movl %4, sp@-\n\t"
- "movl %3, sp@-\n\t"
- "movl a0, sp@-\n\t"
- "jbsr _invoke_copy_to_stack\n\t" /* copy params */
- "addl #12, sp\n\t"
- "movl %1, a0\n\t"
- "movl a0@, a1\n\t"
- "movl %2, d0\n\t" /* function index */
- "movl a0, d1\n\t"
- "movw a1@(8,d0:l:8), a0\n\t"
- "addl a0, d1\n\t"
- "movl a1@(12,d0:l:8), a1\n\t"
- "movl d1, sp@-\n\t"
- "jbsr a1@\n\t"
- "movl a2, sp\n\t" /* restore original sp */
- "movl d0, %0\n\t"
+ "movl %4, %%sp@-\n\t"
+ "movl %3, %%sp@-\n\t"
+ "jbsr "SYMBOLPREFIX"invoke_count_words\n\t" /* count words */
+ "addql #8, %%sp\n\t"
+ "lsll #2, %%d0\n\t" /* *= 4 */
+ "movl %%sp, %%a2\n\t" /* save original sp */
+ "subl %%d0, %%sp\n\t" /* make room for params */
+ "movl %%sp, %%a0\n\t"
+ "movl %4, %%sp@-\n\t"
+ "movl %3, %%sp@-\n\t"
+ "movl %%a0, %%sp@-\n\t"
+ "jbsr "SYMBOLPREFIX"invoke_copy_to_stack\n\t" /* copy params */
+ "addl #12, %%sp\n\t"
+ "movl %1, %%a0\n\t"
+ "movl %%a0@, %%a1\n\t"
+ "movl %2, %%d0\n\t" /* function index */
+ "movl %%a0, %%d1\n\t"
+ "movw %%a1@(8,%%d0:l:8), %%a0\n\t"
+ "addl %%a0, %%d1\n\t"
+ "movl %%a1@(12,%%d0:l:8), %%a1\n\t"
+ "movl %%d1, %%sp@-\n\t"
+ "jbsr %%a1@\n\t"
+ "movl %%a2, %%sp\n\t" /* restore original sp */
+ "movl %%d0, %0\n\t"
: "=g" (result) /* %0 */
: "g" (that), /* %1 */
"g" (methodIndex), /* %2 */
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp
@@ -5,9 +5,9 @@
// Platform specific code to invoke XPCOM methods on native objects
-// The purpose of XPTC_InvokeByIndex() is to map a platform
+// The purpose of NS_InvokeByIndex_P() is to map a platform
// indepenpent call to the platform ABI. To do that,
-// XPTC_InvokeByIndex() has to determine the method to call via vtable
+// NS_InvokeByIndex_P() has to determine the method to call via vtable
// access. The parameters for the method are read from the
// nsXPTCVariant* and prepared for the native ABI. For the Linux/PPC
// ABI this means that the first 8 integral and floating point
@@ -72,8 +72,10 @@ invoke_copy_to_stack(uint32_t* d,
if ((uint32_t) d & 4) d++; // doubles are 8-byte aligned on stack
*((double*) d) = s->val.d;
d += 2;
+#if __GXX_ABI_VERSION < 100
if (gpr < GPR_COUNT)
gpr += 2;
+#endif
}
}
else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
@@ -82,8 +84,10 @@ invoke_copy_to_stack(uint32_t* d,
else {
*((float*) d) = s->val.f;
d += 1;
+#if __GXX_ABI_VERSION < 100
if (gpr < GPR_COUNT)
gpr += 1;
+#endif
}
}
else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64
@@ -110,6 +114,6 @@ invoke_copy_to_stack(uint32_t* d,
}
extern "C"
-XPTC_PUBLIC_API(nsresult)
-XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
+EXPORT_XPCOM_API(nsresult)
+NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
uint32_t paramCount, nsXPTCVariant* params);
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc64_netbsd.cpp.orig 2014-10-14 18:49:14.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc64_netbsd.cpp
@@ -0,0 +1,84 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ *
+ * The contents of this file are subject to the Netscape Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s):
+ */
+
+/* Platform specific code to invoke XPCOM methods on native objects */
+
+#include "xptcprivate.h"
+
+#if !defined(__sparc64__) && !defined(_LP64)
+#error "This code is for Sparc64 only"
+#endif
+
+extern "C" PRUint32
+invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
+{
+ /*
+ We need to copy the parameters for this function to locals and use them
+ from there since the parameters occupy the same stack space as the stack
+ we're trying to populate.
+ */
+ PRUint64 *l_d = d;
+ nsXPTCVariant *l_s = s;
+ PRUint64 l_paramCount = paramCount;
+ PRUint64 regCount = 0; // return the number of registers to load from the stack
+
+ for(PRUint64 i = 0; i < l_paramCount; i++, l_d++, l_s++)
+ {
+ if (regCount < 5) regCount++;
+
+ if (l_s->IsPtrData())
+ {
+ *l_d = (PRUint64)l_s->ptr;
+ continue;
+ }
+ switch (l_s->type)
+ {
+ case nsXPTType::T_I8 : *((PRInt64*)l_d) = l_s->val.i8; break;
+ case nsXPTType::T_I16 : *((PRInt64*)l_d) = l_s->val.i16; break;
+ case nsXPTType::T_I32 : *((PRInt64*)l_d) = l_s->val.i32; break;
+ case nsXPTType::T_I64 : *((PRInt64*)l_d) = l_s->val.i64; break;
+
+ case nsXPTType::T_U8 : *((PRUint64*)l_d) = l_s->val.u8; break;
+ case nsXPTType::T_U16 : *((PRUint64*)l_d) = l_s->val.u16; break;
+ case nsXPTType::T_U32 : *((PRUint64*)l_d) = l_s->val.u32; break;
+ case nsXPTType::T_U64 : *((PRUint64*)l_d) = l_s->val.u64; break;
+
+ /* in the case of floats, we want to put the bits in to the
+ 64bit space right justified... floats in the paramter array on
+ sparcv9 use odd numbered registers.. %f1, %f3, so we have to skip
+ the space that would be occupied by %f0, %f2, etc.
+ */
+ case nsXPTType::T_FLOAT : *(((float*)l_d) + 1) = l_s->val.f; break;
+ case nsXPTType::T_DOUBLE: *((double*)l_d) = l_s->val.d; break;
+ case nsXPTType::T_BOOL : *((PRInt64*)l_d) = l_s->val.b; break;
+ case nsXPTType::T_CHAR : *((PRUint64*)l_d) = l_s->val.c; break;
+ case nsXPTType::T_WCHAR : *((PRInt64*)l_d) = l_s->val.wc; break;
+
+ default:
+ // all the others are plain pointer types
+ *((void**)l_d) = l_s->val.p;
+ break;
+ }
+ }
+
+ return regCount;
+}
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcstubs_arm_netbsd.cpp.orig 2014-11-26 12:30:27.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcstubs_arm_netbsd.cpp
@@ -6,15 +6,32 @@
/* Implement shared vtbl methods. */
#include "xptcprivate.h"
+#include "xptiprivate.h"
-nsresult ATTRIBUTE_USED
+/* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */
+static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint32_t* args) asm("_PrepareAndDispatch")
+ATTRIBUTE_USED;
+
+#ifdef __ARM_EABI__
+#define DOUBLEWORD_ALIGN(p) ((uint32_t *)((((uint32_t)(p)) + 7) & 0xfffffff8))
+#else
+#define DOUBLEWORD_ALIGN(p) (p)
+#endif
+
+// Apple's iOS toolchain is lame and does not support .cfi directives.
+#ifdef __APPLE__
+#define CFI(str)
+#else
+#define CFI(str) str
+#endif
+
+static nsresult
PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint32_t* args)
{
#define PARAM_BUFFER_COUNT 16
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
nsXPTCMiniVariant* dispatchParams = nullptr;
- nsIInterfaceInfo* iface_info = nullptr;
const nsXPTMethodInfo* info;
uint8_t paramCount;
uint8_t i;
@@ -22,12 +39,7 @@ PrepareAndDispatch(nsXPTCStubBase* self,
NS_ASSERTION(self,"no self");
- self->GetInterfaceInfo(&iface_info);
- NS_ASSERTION(iface_info,"no interface info");
-
- iface_info->GetMethodInfo(uint16_t(methodIndex), &info);
- NS_ASSERTION(info,"no interface info");
-
+ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info);
paramCount = info->GetParamCount();
// setup variant array pointer
@@ -55,13 +67,16 @@ PrepareAndDispatch(nsXPTCStubBase* self,
case nsXPTType::T_I8 : dp->val.i8 = *((int8_t*) ap); break;
case nsXPTType::T_I16 : dp->val.i16 = *((int16_t*) ap); break;
case nsXPTType::T_I32 : dp->val.i32 = *((int32_t*) ap); break;
- case nsXPTType::T_I64 : dp->val.i64 = *((int64_t*) ap); ap++; break;
+ case nsXPTType::T_I64 : ap = DOUBLEWORD_ALIGN(ap);
+ dp->val.i64 = *((int64_t*) ap); ap++; break;
case nsXPTType::T_U8 : dp->val.u8 = *((uint8_t*) ap); break;
case nsXPTType::T_U16 : dp->val.u16 = *((uint16_t*)ap); break;
case nsXPTType::T_U32 : dp->val.u32 = *((uint32_t*)ap); break;
- case nsXPTType::T_U64 : dp->val.u64 = *((uint64_t*)ap); ap++; break;
+ case nsXPTType::T_U64 : ap = DOUBLEWORD_ALIGN(ap);
+ dp->val.u64 = *((uint64_t*)ap); ap++; break;
case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break;
- case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); ap++; break;
+ case nsXPTType::T_DOUBLE : ap = DOUBLEWORD_ALIGN(ap);
+ dp->val.d = *((double*) ap); ap++; break;
case nsXPTType::T_BOOL : dp->val.b = *((bool*) ap); break;
case nsXPTType::T_CHAR : dp->val.c = *((char*) ap); break;
case nsXPTType::T_WCHAR : dp->val.wc = *((wchar_t*) ap); break;
@@ -71,9 +86,7 @@ PrepareAndDispatch(nsXPTCStubBase* self,
}
}
- result = self->CallMethod((uint16_t)methodIndex, info, dispatchParams);
-
- NS_RELEASE(iface_info);
+ result = self->mOuter->CallMethod((uint16_t)methodIndex, info, dispatchParams);
if(dispatchParams != paramBuffer)
delete [] dispatchParams;
@@ -82,26 +95,114 @@ PrepareAndDispatch(nsXPTCStubBase* self,
}
/*
- * These stubs move just move the values passed in registers onto the stack,
- * so they are contiguous with values passed on the stack, and then calls
- * PrepareAndDispatch() to do the dirty work.
+ * This is our shared stub.
+ *
+ * r0 = Self.
+ *
+ * The Rules:
+ * We pass an (undefined) number of arguments into this function.
+ * The first 3 C++ arguments are in r1 - r3, the rest are built
+ * by the calling function on the stack.
+ *
+ * We are allowed to corrupt r0 - r3, ip, and lr.
+ *
+ * Other Info:
+ * We pass the stub number in using `ip'.
+ *
+ * Implementation:
+ * - We save r1 to r3 inclusive onto the stack, which will be
+ * immediately below the caller saved arguments.
+ * - setup r2 (PrepareAndDispatch's args pointer) to point at
+ * the base of all these arguments
+ * - Save LR (for the return address)
+ * - Set r1 (PrepareAndDispatch's methodindex argument) from ip
+ * - r0 is passed through (self)
+ * - Call PrepareAndDispatch
+ * - When the call returns, we return by loading the PC off the
+ * stack, and undoing the stack (one instruction)!
+ *
*/
+__asm__ ("\n"
+ ".text\n"
+ ".align 2\n"
+ "SharedStub:\n"
+ CFI(".cfi_startproc\n")
+ "stmfd sp!, {r1, r2, r3}\n"
+ CFI(".cfi_def_cfa_offset 12\n")
+ CFI(".cfi_offset r3, -4\n")
+ CFI(".cfi_offset r2, -8\n")
+ CFI(".cfi_offset r1, -12\n")
+ "mov r2, sp\n"
+ "str lr, [sp, #-4]!\n"
+ CFI(".cfi_def_cfa_offset 16\n")
+ CFI(".cfi_offset lr, -16\n")
+ "mov r1, ip\n"
+ "bl _PrepareAndDispatch\n"
+ "ldr pc, [sp], #16\n"
+ CFI(".cfi_endproc\n"));
+
+/*
+ * Create sets of stubs to call the SharedStub.
+ * We don't touch the stack here, nor any registers, other than IP.
+ * IP is defined to be corruptable by a called function, so we are
+ * safe to use it.
+ *
+ * This will work with or without optimisation.
+ */
+
+/*
+ * Note : As G++3 ABI contains the length of the functionname in the
+ * mangled name, it is difficult to get a generic assembler mechanism like
+ * in the G++ 2.95 case.
+ * Create names would be like :
+ * _ZN14nsXPTCStubBase5Stub9Ev
+ * _ZN14nsXPTCStubBase6Stub13Ev
+ * _ZN14nsXPTCStubBase7Stub144Ev
+ * Use the assembler directives to get the names right...
+ */
+
+#define STUB_ENTRY(n) \
+ __asm__( \
+ ".section \".text\"\n" \
+" .align 2\n" \
+" .iflt ("#n" - 10)\n" \
+" .globl _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \
+" .type _ZN14nsXPTCStubBase5Stub"#n"Ev,#function\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev:\n" \
+" .else\n" \
+" .iflt ("#n" - 100)\n" \
+" .globl _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \
+" .type _ZN14nsXPTCStubBase6Stub"#n"Ev,#function\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev:\n" \
+" .else\n" \
+" .iflt ("#n" - 1000)\n" \
+" .globl _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \
+" .type _ZN14nsXPTCStubBase7Stub"#n"Ev,#function\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev:\n" \
+" .else\n" \
+" .err \"stub number "#n"> 1000 not yet supported\"\n" \
+" .endif\n" \
+" .endif\n" \
+" .endif\n" \
+" mov ip, #"#n"\n" \
+" b SharedStub\n\t");
+
+#if 0
+/*
+ * This part is left in as comment : this is how the method definition
+ * should look like.
+ */
+
+#define STUB_ENTRY(n) \
+nsresult nsXPTCStubBase::Stub##n () \
+{ \
+ __asm__ ( \
+" mov ip, #"#n"\n" \
+" b SharedStub\n\t"); \
+ return 0; /* avoid warnings */ \
+}
+#endif
-#define STUB_ENTRY(n) \
-__asm__( \
- ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
-"_Stub"#n"__14nsXPTCStubBase:\n\t" \
- "stmfd sp!, {r1, r2, r3} \n\t" \
- "mov ip, sp \n\t" \
- "stmfd sp!, {fp, ip, lr, pc} \n\t" \
- "sub fp, ip, #4 \n\t" \
- "mov r1, #"#n" \n\t" /* = methodIndex */ \
- "add r2, sp, #16 \n\t" \
- "bl _PrepareAndDispatch__FP14nsXPTCStubBaseUiPUi \n\t" \
- "ldmea fp, {fp, sp, lr} \n\t" \
- "add sp, sp, #12 \n\t" \
- "mov pc, lr \n\t" \
-);
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcstubs_asm_mips.S.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcstubs_asm_mips.S
@@ -14,6 +14,47 @@
#include <sys/asm.h>
#endif
+#ifdef __NetBSD__
+# include <machine/regdef.h>
+# include <machine/asm.h>
+# ifndef fp
+# define fp s8
+# endif
+# ifndef PTRLOG
+# if SZREG == 4
+# define PTRLOG 2
+# else
+# define PTRLOG 3
+# endif
+# endif
+# ifndef SETUP_GP
+# if defined(__mips_o32)
+# define SETUP_GP \
+ .set push; \
+ .set noreorder; \
+ .cpload t9; \
+ .set pop
+# define SAVE_GP(x) \
+ .cprestore x
+# else
+# define SETUP_GP
+# define SAVE_GP(x)
+# endif
+# endif
+# ifndef ALSZ
+# if defined(__mips_n32) || defined(__mips_n64)
+# define ALSZ 15
+# define ALMASK ~15
+# else
+# define ALSZ 7
+# define ALMASK ~7
+# endif
+# endif
+#else
+# include <sys/regdef.h>
+# include <sys/asm.h>
+#endif
+
# NARGSAVE is the argument space in the callers frame, including extra
# 'shadowed' space for the argument registers. The minimum of 4
# argument slots is sometimes predefined in the header files.
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcstubs_asm_sparc64_netbsd.s.orig 2014-10-14 18:49:14.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcstubs_asm_sparc64_netbsd.s
@@ -0,0 +1,66 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ *
+ * The contents of this file are subject to the Netscape Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1999 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s):
+ */
+
+ .global SharedStub
+
+/*
+ in the frame for the function that called SharedStub are the
+ rest of the parameters we need
+
+*/
+
+SharedStub:
+! we don't create a new frame yet, but work within the frame of the calling
+! function to give ourselves the other parameters we want
+
+ mov %o0, %o1 ! shuffle the index up to 2nd place
+ mov %i0, %o0 ! the original 'this'
+ add %fp, 0x7ff + 136, %o2 ! previous stack top adjusted to the first argument slot (beyond 'this')
+
+! save off the original incoming parameters that arrived in
+! registers, the ABI guarantees the space for us to do this
+ stx %i1, [%fp + 0x7ff + 136]
+ stx %i2, [%fp + 0x7ff + 144]
+ stx %i3, [%fp + 0x7ff + 152]
+ stx %i4, [%fp + 0x7ff + 160]
+ stx %i5, [%fp + 0x7ff + 168]
+! now we can build our own stack frame
+ save %sp,-(128 + 64),%sp ! room for the register window and
+ ! struct pointer, rounded up to 0 % 64
+! our function now appears to have been called
+! as SharedStub(nsISupports* that, PRUint32 index, PRUint32* args)
+! so we can just copy these through
+
+ mov %i0, %o0
+ mov %i1, %o1
+ mov %i2, %o2
+ call PrepareAndDispatch
+ nop
+ mov %o0,%i0 ! propagate return value
+ b .LL1
+ nop
+.LL1:
+ ret
+ restore
+
+ .size SharedStub, .-SharedStub
+ .type SharedStub, #function
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcstubs_gcc_x86_unix.cpp.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcstubs_gcc_x86_unix.cpp
@@ -10,7 +10,7 @@
#include "xptc_gcc_x86_unix.h"
extern "C" {
-static nsresult ATTRIBUTE_USED
+nsresult ATTRIBUTE_USED
__attribute__ ((regparm (3)))
PrepareAndDispatch(uint32_t methodIndex, nsXPTCStubBase* self, uint32_t* args)
{
$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $
--- xpcom/reflect/xptcall/md/unix/xptcstubs_netbsd_m68k.cpp.orig 2014-10-11 09:06:50.000000000 +0000
+++ xpcom/reflect/xptcall/md/unix/xptcstubs_netbsd_m68k.cpp
@@ -91,17 +91,27 @@ extern "C" {
}
}
+/*
+ * Beware: use % instead of %% for register identifiers in a preprocessor macro
+ * SYMBOL PREFIX must be "_" for aout and "" for ELF
+ */
+#ifndef __ELF__
+#define SYMBOLPREFIX "_"
+#else
+#define SYMBOLPREFIX
+#endif
+
#define STUB_ENTRY(n) \
__asm__( \
- ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
-"_Stub"#n"__14nsXPTCStubBase:\n\t" \
- "link a6,#0 \n\t" \
- "lea a6@(12), a0 \n\t" /* pointer to args */ \
- "movl a0, sp@- \n\t" \
- "movl #"#n", sp@- \n\t" /* method index */ \
- "movl a6@(8), sp@- \n\t" /* this */ \
- "jbsr _PrepareAndDispatch \n\t" \
- "unlk a6 \n\t" \
+ ".global "SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase\n\t" \
+SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase:\n\t" \
+ "link %a6,#0 \n\t" \
+ "lea %a6@(12), %a0 \n\t" /* pointer to args */ \
+ "movl %a0, %sp@- \n\t" \
+ "movl #"#n", %sp@- \n\t" /* method index */ \
+ "movl %a6@(8), %sp@- \n\t" /* this */ \
+ "jbsr "SYMBOLPREFIX"PrepareAndDispatch\n\t" \
+ "unlk %a6 \n\t" \
"rts \n\t" \
);
$NetBSD: patch-xulrunner_installer_Makefile.in,v 1.1 2016/04/27 16:36:50 ryoon Exp $
* Install pkg-config pc files to package specific directory.
--- xulrunner/installer/Makefile.in.orig 2013-07-30 00:59:18.000000000 +0000
+++ xulrunner/installer/Makefile.in
@@ -96,7 +96,7 @@ endif
install:: $(pkg_config_files)
@echo pkg_config_file: $(pkg_config_files)
- $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(libdir)/pkgconfig
+ $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)${PREFIX}/lib/${MOZILLA_PKG_NAME}/pkgconfig
GARBAGE += $(pkg_config_files)