Merge mozilla-central in mozilla-inbound.
authorMounir Lamouri <mounir.lamouri@gmail.com>
Wed, 26 Sep 2012 11:58:18 +0100
changeset 114425 be28055643f51b1370c67b8856e9e8a6d6df8e89
parent 114424 6b444917f491c4d4fb5ea9a64a3f63b8860acb34 (current diff)
parent 114401 df69d95f636c7f55af3d600abfa6974af9cb32a5 (diff)
child 114426 bf4f7407c78da2d02f9f0fbb75c979dd765b40d2
push id1708
push userakeybl@mozilla.com
push dateMon, 19 Nov 2012 21:10:21 +0000
treeherdermozilla-beta@27b14fe50103 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone18.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-central in mozilla-inbound.
build/valgrind/x86_64-redhat-linux-gnu.sup
media/webrtc/Android.mk
rename from media/webrtc/Android.mk
rename to Android.mk
--- a/media/webrtc/Android.mk
+++ b/Android.mk
@@ -1,5 +1,5 @@
 # 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/.
 
-# empty file to block B2G/Gonk from trying to build anything inside media/webrtc
+# empty file to block B2G/Gonk from trying to build anything inside mozilla-central
--- a/browser/locales/en-US/chrome/browser/browser.dtd
+++ b/browser/locales/en-US/chrome/browser/browser.dtd
@@ -239,19 +239,16 @@ These should match what Safari and other
 
 <!ENTITY devToolbarCloseButton.tooltiptext "Close Developer Toolbar">
 <!ENTITY devToolbarMenu.label              "Developer Toolbar">
 <!ENTITY devToolbarMenu.accesskey          "v">
 <!ENTITY devToolbar.keycode                "VK_F2">
 <!ENTITY devToolbar.keytext                "F2">
 <!ENTITY devToolbarOtherToolsButton.label  "More Tools">
 
-<!ENTITY webConsoleButton.label "Web Console">
-<!ENTITY inspectorButton.label "Inspector">
-
 <!ENTITY inspectorHTMLCopyInner.label       "Copy Inner HTML">
 <!ENTITY inspectorHTMLCopyInner.accesskey   "I">
 
 <!ENTITY inspectorHTMLCopyOuter.label       "Copy Outer HTML">
 <!ENTITY inspectorHTMLCopyOuter.accesskey   "O">
 
 <!ENTITY inspectorHTMLDelete.label          "Delete Node">
 <!ENTITY inspectorHTMLDelete.accesskey      "D">
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -145,16 +145,17 @@ endif
 libs:: $(_LEAKTEST_FILES)
 	$(INSTALL) $^ $(_LEAKTEST_DIR)
 
 ifdef MOZ_VALGRIND
 _VALGRIND_DIR = $(DEPTH)/_valgrind
 GARBAGE_DIRS += $(_VALGRIND_DIR)
 
 _VALGRIND_FILES = \
+		$(topsrcdir)/build/valgrind/cross-architecture.sup \
 		$(topsrcdir)/build/valgrind/i386-redhat-linux-gnu.sup \
 		$(topsrcdir)/build/valgrind/x86_64-redhat-linux-gnu.sup \
 		$(NULL)
 
 libs:: $(_VALGRIND_FILES)
 	$(INSTALL) $^ $(_VALGRIND_DIR)
 endif
 
--- a/build/valgrind/cross-architecture.sup
+++ b/build/valgrind/cross-architecture.sup
@@ -1,46 +1,63 @@
-{
-   Bug 793532
-   Memcheck:Leak
-   fun:malloc
-   fun:_ZN8JSObject25allocateSlowArrayElementsEP9JSContext
-   ...
-}
-{
-   Bug 793533
-   Memcheck:Leak
-   fun:malloc
-   fun:moz_xmalloc
-   fun:_Z22xpc_CreateGlobalObjectP9JSContextP7JSClassP12nsIPrincipalP11nsISupportsbPP8JSObjectPP13JSCompartment
-   ...
-}
+####################
+#  Intended leaks  #
+####################
+
 {
    PR_SetEnv requires its argument to be leaked, but does not appear on stacks. (See bug 793534 and see bug 793549.)
    Memcheck:Leak
    ...
    fun:_ZL9SaveToEnvPKc
    ...
 }
 {
    PR_SetEnv requires its argument to be leaked, but does not appear on stacks. (See bug 793534 and see bug 793549.)
    Memcheck:Leak
    ...
    fun:_ZL13SaveWordToEnvPKcRK19nsACString_internal
    ...
 }
 {
-   Bug 793535
+   See bug 793535
    Memcheck:Leak
    fun:calloc
    fun:_dlerror_run
    fun:dlsym
-   fun:PR_SetCurrentThreadName
+   ...
+}
+{
+   See bug 793611
+   Memcheck:Leak
+   fun:memalign
+   fun:tls_get_addr_tail
+   fun:__tls_get_addr
    ...
 }
+
+#################
+#  Other leaks  #
+#################
+
+{
+   Bug 793532
+   Memcheck:Leak
+   fun:malloc
+   fun:_ZN8JSObject25allocateSlowArrayElementsEP9JSContext
+   ...
+}
+# Suppressing the suppression(s) to get Valgrind stacks with line numbers
+#{
+#   Bug 793533
+#   Memcheck:Leak
+#   fun:malloc
+#   fun:moz_xmalloc
+#   fun:_Z22xpc_CreateGlobalObjectP9JSContextP7JSClassP12nsIPrincipalP11nsISupportsbPP8JSObjectPP13JSCompartment
+#   ...
+#}
 {
    Bug 793536 (all 64-bit systems)
    Memcheck:Leak
    fun:malloc
    fun:moz_xmalloc
    fun:_ZNSt11_Deque_baseIN11MessageLoop11PendingTaskESaIS1_EE17_M_initialize_mapEm
    ...
 }
@@ -57,95 +74,77 @@
    Memcheck:Leak
    fun:malloc
    fun:moz_xmalloc
    fun:NS_Alloc_P
    fun:_Z12ToNewCStringRK19nsACString_internal
    fun:_ZN13CrashReporter14SetupExtraDataEP7nsIFileRK19nsACString_internal
    ...
 }
-{
-   Bug 793601
-   Memcheck:Leak
-   fun:malloc
-   fun:_ZN2js15ArgumentsObject6createEP9JSContextPNS_10StackFrameE
-   ...
-}
-{
-   Bug 793602
-   Memcheck:Leak
-   fun:malloc
-   fun:moz_xmalloc
-   fun:_Z22NS_NewComputedDOMStylePN7mozilla3dom7ElementERK18nsAString_internalP12nsIPresShell
-   fun:_ZN14nsGlobalWindow16GetComputedStyleEP13nsIDOMElementRK18nsAString_internalPP25nsIDOMCSSStyleDeclaration
-   ...
-}
-{
-   Bug 793603
-   Memcheck:Leak
-   fun:malloc
-   fun:moz_xmalloc
-   fun:_ZN18nsDeflateConverter15OnDataAvailableEP10nsIRequestP11nsISupportsP14nsIInputStreammj
-   ...
-}
-{
-   Bug 793605
-   Memcheck:Leak
-   fun:malloc
-   fun:moz_xmalloc
-   fun:_Z30nsStringInputStreamConstructorP11nsISupportsRK4nsIDPPv
-   ...
-}
-{
-   Bug 793606
-   Memcheck:Leak
-   fun:malloc
-   fun:moz_xmalloc
-   fun:_ZL27nsXMLHttpRequestConstructorP11nsISupportsRK4nsIDPPv
-   ...
-}
-{
-   Bug 793607
-   Memcheck:Leak
-   fun:malloc
-   fun:moz_xmalloc
-   fun:_ZN11nsZipWriter14AddEntryStreamERK19nsACString_internalliP14nsIInputStreambj
-   ...
-}
+#{
+#   Bug 793601
+#   Memcheck:Leak
+#   fun:malloc
+#   fun:_ZN2js15ArgumentsObject6createEP9JSContextPNS_10StackFrameE
+#   ...
+#}
+#{
+#   Bug 793602
+#   Memcheck:Leak
+#   fun:malloc
+#   fun:moz_xmalloc
+#   fun:_Z22NS_NewComputedDOMStylePN7mozilla3dom7ElementERK18nsAString_internalP12nsIPresShell
+#   fun:_ZN14nsGlobalWindow16GetComputedStyleEP13nsIDOMElementRK18nsAString_internalPP25nsIDOMCSSStyleDeclaration
+#   ...
+#}
+#{
+#   Bug 793603
+#   Memcheck:Leak
+#   fun:malloc
+#   fun:moz_xmalloc
+#   fun:_ZN18nsDeflateConverter15OnDataAvailableEP10nsIRequestP11nsISupportsP14nsIInputStreammj
+#   ...
+#}
+#{
+#   Bug 793605
+#   Memcheck:Leak
+#   fun:malloc
+#   fun:moz_xmalloc
+#   fun:_Z30nsStringInputStreamConstructorP11nsISupportsRK4nsIDPPv
+#   ...
+#}
+#{
+#   Bug 793606
+#   Memcheck:Leak
+#   fun:malloc
+#   fun:moz_xmalloc
+#   fun:_ZL27nsXMLHttpRequestConstructorP11nsISupportsRK4nsIDPPv
+#   ...
+#}
+#{
+#   Bug 793607
+#   Memcheck:Leak
+#   fun:malloc
+#   fun:moz_xmalloc
+#   fun:_ZN11nsZipWriter14AddEntryStreamERK19nsACString_internalliP14nsIInputStreambj
+#   ...
+#}
 {
    Bug 793608
    Memcheck:Leak
-   fun:malloc
-   fun:__libc_res_nsend
-   fun:__libc_res_nquery
-   fun:__libc_res_nquerydomain
-   fun:__libc_res_nsearch
-   obj:*
+   ...
    fun:gaih_inet
    fun:getaddrinfo
    fun:PR_GetAddrInfoByName
    fun:_ZN14nsHostResolver10ThreadFuncEPv
    fun:_pt_root
    fun:start_thread
    fun:clone
 }
 {
-   Bug 793611
-   Memcheck:Leak
-   fun:memalign
-   fun:tls_get_addr_tail
-   fun:__tls_get_addr
-   fun:_ZN8nsThread16ProcessNextEventEbPb
-   fun:_Z21NS_ProcessNextEvent_PP9nsIThreadb
-   fun:_ZN8nsThread10ThreadFuncEPv
-   fun:_pt_root
-   fun:start_thread
-   fun:clone
-}
-{
    Bug 793615
    Memcheck:Leak
    fun:malloc
    fun:sqlite3MemMalloc
    ...
 }
 {
    Bug 793616
@@ -155,8 +154,86 @@
    fun:__check_pf
    fun:getaddrinfo
    fun:PR_GetAddrInfoByName
    fun:_ZN14nsHostResolver10ThreadFuncEPv
    fun:_pt_root
    fun:start_thread
    fun:clone
 }
+{
+   Bug 794350
+   Memcheck:Leak
+   fun:malloc
+   fun:moz_xmalloc
+   fun:_ZN11MessageLoopC1ENS_4TypeE
+   fun:_ZN4base6Thread10ThreadMainEv
+   fun:_ZL10ThreadFuncPv
+   fun:start_thread
+   fun:clone
+}
+{
+   Bug 794354
+   Memcheck:Leak
+   ...
+   fun:_ZN7mozilla12safebrowsing10Classifier12ApplyUpdatesEP8nsTArrayIPNS0_11TableUpdateE24nsTArrayDefaultAllocatorE
+   fun:_ZN30nsUrlClassifierDBServiceWorker11ApplyUpdateEv
+   fun:_ZN30nsUrlClassifierDBServiceWorker12FinishUpdateEv
+   ...
+}
+{
+   Bug 794358
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:PK11_InitPin
+   fun:_ZN11nsPK11Token12InitPasswordEPKt
+   ...
+}
+{
+   Bug 794364
+   Memcheck:Leak
+   fun:malloc
+   fun:_ZN9PICLinker4initEP9JSContext
+   fun:_ZN2js4mjit2ic12GetElementIC13attachGetPropERNS_7VMFrameEN2JS6HandleIP8JSObjectEENS6_INS5_5ValueEEENS6_IPNS_12PropertyNameEEENS5_13MutableHandleISA_EE
+   fun:_ZN2js4mjit2ic12GetElementIC6updateERNS_7VMFrameEN2JS6HandleIP8JSObjectEENS6_INS5_5ValueEEENS6_IlEENS5_13MutableHandleISA_EE
+   fun:_ZN2js4mjit2ic10GetElementERNS_7VMFrameEPNS1_12GetElementICE
+   ...
+}
+{
+   Bug 794365
+   Memcheck:Leak
+   fun:malloc
+   fun:_ZN14JSInlineString8uninlineEP9JSContext
+   ...
+}
+{
+   Bug 794369
+   Memcheck:Leak
+   fun:malloc
+   fun:moz_xmalloc
+   fun:_ZN20mozJSComponentLoader10LoadModuleERN7mozilla12FileLocationE
+   ...
+}
+{
+   Bug 794370
+   Memcheck:Leak
+   fun:malloc
+   fun:moz_xmalloc
+   fun:_ZN22nsComponentManagerImpl15RegisterFactoryERK4nsIDPKcS4_P10nsIFactory
+   ...
+}
+{
+   Bug 794372
+   Memcheck:Leak
+   fun:malloc
+   fun:moz_xmalloc
+   fun:_ZN22nsComponentManagerImpl16RegisterCIDEntryEPKN7mozilla6Module8CIDEntryEPNS_11KnownModuleE
+   ...
+}
+{
+   Bug 794374
+   Memcheck:Leak
+   fun:malloc
+   fun:moz_xmalloc
+   fun:_ZN22nsComponentManagerImpl17ManifestComponentERNS_25ManifestProcessingContextEiPKPc
+   ...
+}
--- a/build/valgrind/i386-redhat-linux-gnu.sup
+++ b/build/valgrind/i386-redhat-linux-gnu.sup
@@ -1,8 +1,11 @@
+####################################
+#  Leaks in third party libraries  #
+####################################
 {
    Bug 793537
    Memcheck:Leak
    ...
    obj:/usr/lib/libpango-1.0.so.0.2800.1
    ...
 }
 {
--- a/build/valgrind/x86_64-redhat-linux-gnu.sup
+++ b/build/valgrind/x86_64-redhat-linux-gnu.sup
@@ -1,8 +1,11 @@
+####################################
+#  Leaks in third party libraries  #
+####################################
 {
    Bug 793537
    Memcheck:Leak
    ...
    obj:/usr/lib64/libpango-1.0.so.0.2800.1
    ...
 }
 {
@@ -10,23 +13,43 @@
    Memcheck:Leak
    ...
    obj:/usr/lib64/libgnomevfs-2.so.0.2400.2
    ...
 }
 {
    Bug 793598
    Memcheck:Leak
-   fun:realloc
    ...
    obj:/lib64/libdbus-1.so.3.4.0
    ...
 }
 {
    Bug 793600
    Memcheck:Leak
    fun:realloc
    obj:/usr/lib64/libfontconfig.so.1.4.4
    obj:/usr/lib64/libfontconfig.so.1.4.4
    fun:FcDefaultSubstitute
    fun:_ZN17gfxPangoFontGroup11MakeFontSetEP14_PangoLanguagedP9nsAutoRefI10_FcPatternE
    ...
 }
+{
+   Bug 794366
+   Memcheck:Leak
+   ...
+   obj:/usr/lib64/libgtk-x11-2.0.so.0.1800.9
+   ...
+}
+{
+   Bug 794368
+   Memcheck:Leak
+   ...
+   obj:/usr/lib64/libXrandr.so.2.2.0
+   ...
+}
+{
+   Bug 794373
+   Memcheck:Leak
+   ...
+   obj:/lib64/libgobject-2.0.so.0.2200.5
+   ...
+}
old mode 120000
new mode 100644
--- a/toolkit/xre/nsWindowsDllBlocklist.cpp
+++ b/toolkit/xre/nsWindowsDllBlocklist.cpp
@@ -49,16 +49,21 @@ struct DllBlockInfo {
   // dll.  Otherwise, we'll block all versions less than or equal to
   // the given version, as queried by GetFileVersionInfo and
   // VS_FIXEDFILEINFO's dwFileVersionMS and dwFileVersionLS fields.
   //
   // Note that the version is usually 4 components, which is A.B.C.D
   // encoded as 0x AAAA BBBB CCCC DDDD ULL (spaces added for clarity),
   // but it's not required to be of that format.
   unsigned long long maxVersion;
+
+  enum {
+    FLAGS_DEFAULT = 0,
+    BLOCK_WIN8PLUS_ONLY = 1
+  } flags;
 };
 
 static DllBlockInfo sWindowsDllBlocklist[] = {
   // EXAMPLE:
   // { "uxtheme.dll", ALL_VERSIONS },
   // { "uxtheme.dll", 0x0000123400000000ULL },
   // The DLL name must be in lowercase!
   
@@ -103,16 +108,18 @@ static DllBlockInfo sWindowsDllBlocklist
 
   // Topcrash with Roboform in Firefox 8 (bug 699134)
   {"rf-firefox.dll", MAKE_VERSION(7,6,1,0)},
   {"roboform.dll", MAKE_VERSION(7,6,1,0)},
 
   // Topcrash with Babylon Toolbar on FF16+ (bug 721264)
   {"babyfox.dll", ALL_VERSIONS},
 
+  {"sprotector.dll", ALL_VERSIONS, DllBlockInfo::BLOCK_WIN8PLUS_ONLY },
+
   // leave these two in always for tests
   { "mozdllblockingtest.dll", ALL_VERSIONS },
   { "mozdllblockingtest_versioned.dll", 0x0000000400000000ULL },
 
   { NULL, 0 }
 };
 
 #ifndef STATUS_DLL_NOT_FOUND
@@ -270,16 +277,26 @@ wchar_t* getFullPath (PWCHAR filePath, w
     return nullptr;
   }
 
   // now actually grab it
   SearchPathW(sanitizedFilePath, fname, L".dll", pathlen+1, full_fname, NULL);
   return full_fname;
 }
 
+static bool
+IsWin8OrLater()
+{
+  OSVERSIONINFOW osInfo;
+  osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);
+  GetVersionExW(&osInfo);
+  return (osInfo.dwMajorVersion > 6) ||
+    (osInfo.dwMajorVersion >= 6 && osInfo.dwMinorVersion >= 2);
+}
+
 static NTSTATUS NTAPI
 patched_LdrLoadDll (PWCHAR filePath, PULONG flags, PUNICODE_STRING moduleFileName, PHANDLE handle)
 {
   // We have UCS2 (UTF16?), we want ASCII, but we also just want the filename portion
 #define DLLNAME_MAX 128
   char dllName[DLLNAME_MAX+1];
   wchar_t *dll_part;
   DllBlockInfo *info;
@@ -357,16 +374,21 @@ patched_LdrLoadDll (PWCHAR filePath, PUL
 
   if (info->name) {
     bool load_ok = false;
 
 #ifdef DEBUG_very_verbose
     printf_stderr("LdrLoadDll: info->name: '%s'\n", info->name);
 #endif
 
+    if ((info->flags == DllBlockInfo::BLOCK_WIN8PLUS_ONLY) &&
+        !IsWin8OrLater()) {
+      goto continue_loading;
+    }
+
     if (info->maxVersion != ALL_VERSIONS) {
       ReentrancySentinel sentinel(dllName);
       if (sentinel.BailOut()) {
         goto continue_loading;
       }
 
       full_fname = getFullPath(filePath, fname);
       if (!full_fname) {