head 1.4; access; symbols pkgsrc-2015Q2:1.3.0.2 pkgsrc-2015Q2-base:1.3 pkgsrc-2015Q1:1.2.0.2 pkgsrc-2015Q1-base:1.2; locks; strict; comment @// @; 1.4 date 2015.07.03.10.25.40; author ryoon; state dead; branches; next 1.3; commitid yNqCmaHKVtcygPry; 1.3 date 2015.05.12.22.48.54; author ryoon; state Exp; branches; next 1.2; commitid NJZg0HQjg2n73dly; 1.2 date 2015.02.28.04.30.55; author ryoon; state Exp; branches; next 1.1; commitid Y4EEeVfm51r1kJby; 1.1 date 2015.01.30.07.32.24; author pho; state Exp; branches; next ; commitid yHqPF30VdLz6g18y; desc @@ 1.4 log @Update to 39.0 Changelog: New Share Hello URLs with social networks New Project Silk: Smoother animation and scrolling (Mac OS X) New Support for 'switch' role in ARIA 1.1 (web accessibility) New SafeBrowsing malware detection lookups enabled for downloads (Mac OS X and Linux) New Support for new Unicode 8.0 skin tone emoji Changed Removed support for insecure SSLv3 for network communications Changed Disable use of RC4 except for temporarily whitelisted hosts Changed The malware detection service for downloads now covers common Mac file types (Bug 1138721) Changed of displaying dashed lines is improved (Mac OS X) (Bug 1123019) HTML5 List-style-type now accepts a string value HTML5 Enable the Fetch API for network requests from dedicated, shared and service workers HTML5 Cascading of CSS transitions and animations now matches the current spec HTML5 Implement allowing anticipation of a future connection without revealing any information HTML5 Added support for CSS Scroll Snap Points Developer Drag and drop enabled for nodes in Inspector markup view Developer Webconsole input history persists even after closing the toolbox Developer Cubic bezier tooltip now shows a gallery of timing-function presets for use with CSS animations Developer localhost is now available offline for WebSocket connections Fixed Improve performance for IPv6 fallback to IPv4 Fixed Fix incomplete downloads being marked as complete by detecting broken HTTP1.1 transfers Fixed The Security state indicator on a page now correctly ignores loads caused by previous pages Fixed Fixed an issue where a Hello conversation window would sometimes fail to open Fixed A regression that could lead to Flash not displaying has been fixed Fixed Update to NSS 3.19.2 Fixed Various security fixes Fixed in Firefox 39 2015-71 NSS incorrectly permits skipping of ServerKeyExchange 2015-70 NSS accepts export-length DHE keys with regular DHE cipher suites 2015-69 Privilege escalation in PDF.js 2015-68 OS X crash reports may contain entered key press information 2015-67 Key pinning is ignored when overridable errors are encountered 2015-66 Vulnerabilities found through code inspection 2015-65 Use-after-free in workers while using XMLHttpRequest 2015-64 ECDSA signature validation fails to handle some signatures correctly 2015-63 Use-after-free in Content Policy due to microtask execution error 2015-62 Out-of-bound read while computing an oscillator rendering range in Web Audio 2015-61 Type confusion in Indexed Database Manager 2015-60 Local files or privileged URLs in pages can be opened into new tabs 2015-59 Miscellaneous memory safety hazards (rv:39.0 / rv:31.8 / rv:38.1) @ text @$NetBSD: patch-js_src_asmjs_AsmJSSignalHandlers.cpp,v 1.3 2015/05/12 22:48:54 ryoon Exp $ Increase portability for non-x86 Darwin by not hardwiring x86_THREAD_STATE. --- js/src/asmjs/AsmJSSignalHandlers.cpp.orig 2015-05-04 00:43:23.000000000 +0000 +++ js/src/asmjs/AsmJSSignalHandlers.cpp @@@@ -637,10 +637,11 @@@@ HandleMachException(JSRuntime* rt, const mach_port_t rtThread = request.body.thread.name; // Read out the JSRuntime thread's register state. - x86_thread_state_t state; - unsigned int count = x86_THREAD_STATE_COUNT; + moz_platform_thread_state_t state; + thread_state_flavor_t flavor = MOZ_PLATFORM_THREAD_STATE_FLAVOR; + mach_msg_type_number_t count = MOZ_PLATFORM_THREAD_STATE_COUNT; kern_return_t kret; - kret = thread_get_state(rtThread, x86_THREAD_STATE, (thread_state_t)&state, &count); + kret = thread_get_state(rtThread, flavor, (thread_state_t)&state, &count); if (kret != KERN_SUCCESS) return false; @ 1.3 log @Update to 38.0 Changelog: New New tab-based preferences New Ruby annotation support New Base for the next ESR release. Changed autocomplete=off is no longer supported for username/password fields Changed URL parser avoids doing percent encoding when setting the Fragment part of the URL, and percent decoding when getting the Fragment in line with the URL spec Changed RegExp.prototype.source now returns "(?:)" instead of the empty string for empty regular expressions Changed Improved page load times via speculative connection warmup HTML5 WebSocket now available in Web Workers HTML5 BroadcastChannel API implemented HTML5 Implemented srcset attribute and element for responsive images HTML5 Implemented DOM3 Events KeyboardEvent.code HTML5 Mac OS X: Implemented a subset of the Media Source Extensions (MSE) API to allow native HTML5 playback on YouTube HTML5 Implemented Encrypted Media Extensions (EME) API to support encrypted HTML5 video/audio playback (Windows Vista or later only) HTML5 Automatically download Adobe Primetime Content Decryption Module (CDM) for DRM playback through EME (Windows Vista or later only) Developer Optimized-out variables are now visible in Debugger UI Developer XMLHttpRequest logs in the web console are now visually labelled and can be filtered separately from regular network requests Developer WebRTC now has multistream and renegotiation support Developer copy command added to console Fixed Various security fixes Fixed in Firefox 38 2015-58 Mozilla Windows updater can be run outside of application directory 2015-57 Privilege escalation through IPC channel messages 2015-56 Untrusted site hosting trusted page can intercept webchannel responses 2015-55 Buffer overflow and out-of-bounds read while parsing MP4 video metadata 2015-54 Buffer overflow when parsing compressed XML 2015-53 Use-after-free due to Media Decoder Thread creation during shutdown 2015-52 Sensitive URL encoded information written to Android logcat 2015-51 Use-after-free during text processing with vertical text enabled 2015-50 Out-of-bounds read and write in asm.js validation 2015-49 Referrer policy ignored when links opened by middle-click and context menu 2015-48 Buffer overflow with SVG content and CSS 2015-47 Buffer overflow parsing H.264 video with Linux Gstreamer 2015-46 Miscellaneous memory safety hazards (rv:38.0 / rv:31.7) @ text @d1 1 a1 1 $NetBSD: patch-js_src_asmjs_AsmJSSignalHandlers.cpp,v 1.2 2015/02/28 04:30:55 ryoon Exp $ @ 1.2 log @Update to 36.0 Changelog: New Pinned tiles on the new tab page can be synced New Support for the full HTTP/2 protocol. HTTP/2 enables a faster, more scalable, and more responsive web. New Locale added: Uzbek (uz) Changed -remote option removed Changed No longer accept insecure RC4 ciphers whenever possible Changed Phasing out Certificates with 1024-bit RSA Keys Changed Shut down hangs will now show the crash reporter before exiting the program Changed Add-on Compatibility HTML5 Support for the ECMAScript 6 Symbol data type added HTML5 unicode-range CSS descriptor implemented HTML5 CSSOM-View scroll behavior implemented allowing smooth scrolling of content without custom libraries HTML5 object-fit and object-position implemented. Defines how and where the content of a replaced element is displayed HTML5 isolation CSS property implemented. Create a new stacking context to isolate groups of boxes to control which blend together HTML5 CSS3 will-change property implemented. Hints the browser of elements that will be modified. The browser will perform some performance optimization for these HTML5 Changed JavaScript 'const' semantics to conform better to the ES6 specification. The const declaration is now block-scoped and requires an initializer. It also can not be redeclared anymore. HTML5 Improved ES6 generators for better performance Developer Eval sources now appear in the Debugger Debug JavaScript code that is evaluated dynamically, either as a string passed to eval() or as a string passed to the Function constructor Developer DOM Promises inspection Developer Inspector: More paste options in markup view Fixed CSS gradients work on premultiplied colors Fixed Fix some unexpected logout from Facebook or Google after restart Fixed Various security fixes Fixed in Firefox 36 2015-27 Caja Compiler JavaScript sandbox bypass 2015-26 UI Tour whitelisted sites in background tab can spoof foreground tabs 2015-25 Local files or privileged URLs in pages can be opened into new tabs 2015-24 Reading of local files through manipulation of form autocomplete 2015-23 Use-after-free in Developer Console date with OpenType Sanitiser 2015-22 Crash using DrawTarget in Cairo graphics library 2015-21 Buffer underflow during MP3 playback 2015-20 Buffer overflow during CSS restyling 2015-19 Out-of-bounds read and write while rendering SVG content 2015-18 Double-free when using non-default memory allocators with a zero-length XHR 2015-17 Buffer overflow in libstagefright during MP4 video playback 2015-16 Use-after-free in IndexedDB 2015-15 TLS TURN and STUN connections silently fail to simple TCP connections 2015-14 Malicious WebGL content crash when writing strings 2015-13 Appended period to hostnames can bypass HPKP and HSTS protections 2015-12 Invoking Mozilla updater will load locally stored DLL files 2015-11 Miscellaneous memory safety hazards (rv:36.0 / rv:31.5) @ text @d1 1 a1 1 $NetBSD: patch-js_src_asmjs_AsmJSSignalHandlers.cpp,v 1.1 2015/01/30 07:32:24 pho Exp $ d6 1 a6 1 --- js/src/asmjs/AsmJSSignalHandlers.cpp.orig 2015-02-17 21:40:38.000000000 +0000 d8 1 a8 41 @@@@ -504,8 +504,38 @@@@ AsmJSFaultHandler(LPEXCEPTION_POINTERS e #elif defined(XP_MACOSX) # include +# if defined(ARM_THREAD_STATE) +typedef arm_thread_state_t moz_platform_thread_state_t; +static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = ARM_THREAD_STATE; +static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = ARM_THREAD_STATE_COUNT; + +# elif defined(PPC_THREAD_STATE) +typedef ppc_thread_state_t moz_platform_thread_state_t; +static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = PPC_THREAD_STATE; +static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = PPC_THREAD_STATE_COUNT; + +# elif defined(PPC_THREAD_STATE64) +typedef ppc_thread_state64_t moz_platform_thread_state_t; +static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = PPC_THREAD_STATE64; +static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = PPC_THREAD_STATE64_COUNT; + +# elif defined(x86_THREAD_STATE) +typedef x86_thread_state_t moz_platform_thread_state_t; +static const thread_state_flavor_t MOZ_PLATFORM_THREAD_STATE_FLAVOR = x86_THREAD_STATE; +static const mach_msg_type_number_t MOZ_PLATFORM_THREAD_STATE_COUNT = x86_THREAD_STATE_COUNT; + +# else +# error Type unknown for platform-specific thread_state_t +# endif + +# if defined(__DARWIN_UNIX03) +# define REG_FIELD(NAME) __ ## NAME +# else +# define REG_FIELD(NAME) NAME +# endif + static uint8_t ** -ContextToPC(x86_thread_state_t &state) +ContextToPC(moz_platform_thread_state_t &state) { # if defined(JS_CPU_X64) static_assert(sizeof(state.uts.ts64.__rip) == sizeof(void*), @@@@ -617,10 +647,11 @@@@ HandleMachException(JSRuntime *rt, const @ 1.1 log @Fix many issues on Darwin PLIST: * lib/firefox/libmozglue.so is built and installed as a shared library on some platforms including Darwin. mozilla-common.mk: * Sandboxing support is only available when the toolkit is cairo-cocoa. * It tries to use MacOS X 10.6 SDK by default, which is not always possible. patches/patch-build_gyp.mozbuild: * 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. * MacOS X SDK version should be able to configure with ./configure --enable-macos-target=VER patches/patch-extensions_spellcheck_hunspell_src_mozHunspell.cpp: * NS_NewNativeLocalFile() can fail and leave hunDir null, so we must check if it succeeded. This is not Darwin specific though. * "%%LOCALBASE%%" in the hunspell path is currently not substituted, which looks very erroneous to me. But since I don't know why ryoon@@ changed it from "@@PREFIX@@" to "%%LOCALBASE%%" I leave it as it is. patches/patch-ipc_glue_moz.build: * Don't assume cocoa toolkit just because OS_ARCH is Darwin. patches/patch-js_src_asmjs_AsmJSSignalHandlers.cpp: * Increase portability for non-x86 Darwin by not hardwiring x86_THREAD_STATE. patches/patch-js_xpconnect_src_xpcprivate.h: * The declaration has to be C++11 'extern template', otherwise non-weak symbol collision will occur between libmozjs and libxul. We can't easily test if the feature is supported by compiler due to GCC bug #1773: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773 patches/patch-memory_mozalloc_VolatileBufferOSX.cpp: * Try to fallback to valloc(3) if posix_memalign(3) is not avialble. It has been added since MacOS 10.6. patches/patch-toolkit_library_moz.build: * 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. patches/patch-toolkit_xre_nsAppRunner.cpp: * 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. patches/patch-xpcom_base_nsStackWalk.cpp, patches/patch-xpcom_build_PoisonIOInterposer.h: * Replace XP_MACOSX with XP_DARWIN as the former is not defined when the toolkit is not cocoa. patches/patch-xpcom_glue_standalone_nsXPCOMGlue.cpp: * Fix inconsistent use of XP_DARWIN and XP_MACOSX: LEADING_UNDERSCORE should be empty when we are going to load XPCOM using dlopen(3), not NSAddImage(). @ text @d1 1 a1 1 $NetBSD$ d6 1 a6 1 --- js/src/asmjs/AsmJSSignalHandlers.cpp.orig 2015-01-29 00:54:07.000000000 +0000 d8 1 a8 1 @@@@ -524,17 +524,62 @@@@ AsmJSExceptionHandler(LPEXCEPTION_POINTE d46 3 a48 34 -# if defined(JS_CODEGEN_X64) - JS_STATIC_ASSERT(sizeof(state.uts.ts64.__rip) == sizeof(void*)); - return reinterpret_cast(&state.uts.ts64.__rip); -# elif defined(JS_CODEGEN_NONE) - MOZ_CRASH(); +#if defined(ARM_THREAD_STATE) + JS_STATIC_ASSERT(sizeof(state.REG_FIELD(pc)) == sizeof(void*)); + return reinterpret_cast(&state.REG_FIELD(pc)); + +#elif defined(PPC_THREAD_STATE) || defined(PPC_THREAD_STATE64) + JS_STATIC_ASSERT(sizeof(state.REG_FIELD(srr0)) == sizeof(void*)); + return reinterpret_cast(&state.REG_FIELD(srr0)); + +#elif defined(x86_THREAD_STATE) + switch (state.tsh.flavor) { + case x86_THREAD_STATE32: + JS_STATIC_ASSERT(sizeof(state.uts.ts32.REG_FIELD(eip)) == sizeof(void*)); + return reinterpret_cast(&state.uts.ts32.REG_FIELD(eip)); + + case x86_THREAD_STATE64: + JS_STATIC_ASSERT(sizeof(state.uts.ts64.REG_FIELD(rip)) == sizeof(void*)); + return reinterpret_cast(&state.uts.ts64.REG_FIELD(rip)); + + default: + MOZ_CRASH("Unknown thread state flavor"); + } # else - JS_STATIC_ASSERT(sizeof(state.uts.ts32.__eip) == sizeof(void*)); - return reinterpret_cast(&state.uts.ts32.__eip); +# error Instruction address register unknown for this platform # endif } @@@@ -637,10 +682,11 @@@@ HandleMachException(JSRuntime *rt, const a62 9 @@@@ -682,7 +728,7 @@@@ HandleMachException(JSRuntime *rt, const module.unprotectCode(rt); // Update the thread state with the new pc. - kret = thread_set_state(rtThread, x86_THREAD_STATE, (thread_state_t)&state, x86_THREAD_STATE_COUNT); + kret = thread_set_state(rtThread, flavor, (thread_state_t)&state, count); return kret == KERN_SUCCESS; } @