Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
authorNicholas Nethercote <nnethercote@mozilla.com>
Thu, 27 Aug 2015 20:44:53 -0700
changeset 292691 c646a88160d7b65f755f4dcfa5dec8626a77bcd5
parent 292690 dd95d49f2df33730a3bbadb4301f7bfeca50b80c
child 292692 9411723e0e18806be18eea2719099b0412c9ac15
push id5245
push userraliiev@mozilla.com
push dateThu, 29 Oct 2015 11:30:51 +0000
treeherdermozilla-beta@dac831dc1bd0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs1198334
milestone43.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
Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium. The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in code we control and which should be removable with a little effort.
accessible/atk/moz.build
accessible/base/moz.build
accessible/generic/moz.build
accessible/html/moz.build
accessible/ipc/moz.build
accessible/mac/moz.build
accessible/other/moz.build
accessible/windows/ia2/moz.build
accessible/windows/msaa/moz.build
accessible/windows/sdn/moz.build
accessible/windows/uia/moz.build
accessible/xpcom/moz.build
accessible/xul/moz.build
b2g/app/moz.build
b2g/config/mozconfigs/linux32_gecko/debug
b2g/config/mozconfigs/linux32_gecko/nightly
b2g/config/mozconfigs/linux64_gecko/debug
b2g/config/mozconfigs/linux64_gecko/nightly
b2g/config/mozconfigs/macosx64_gecko/debug
b2g/config/mozconfigs/macosx64_gecko/nightly
b2g/dev/config/mozconfigs/macosx64/mulet
b2g/gaia/moz.build
browser/app/moz.build
browser/components/about/moz.build
browser/components/build/moz.build
browser/components/dirprovider/moz.build
browser/components/feeds/moz.build
browser/components/migration/moz.build
browser/components/shell/moz.build
browser/config/mozconfigs/linux32/common-opt
browser/config/mozconfigs/linux32/debug
browser/config/mozconfigs/linux64/common-opt
browser/config/mozconfigs/linux64/debug
browser/config/mozconfigs/macosx-universal/common-opt
browser/config/mozconfigs/macosx64/debug
browser/config/mozconfigs/macosx64/debug-static-analysis
browser/config/mozconfigs/macosx64/nightly
browser/config/mozconfigs/win32/common-opt
browser/config/mozconfigs/win32/debug
browser/config/mozconfigs/win64/common-opt
browser/config/mozconfigs/win64/debug
build/stlport/moz.build
caps/moz.build
chrome/moz.build
config/config.mk
config/external/nss/moz.build
db/sqlite3/src/moz.build
docshell/base/moz.build
docshell/base/timeline/moz.build
docshell/build/moz.build
docshell/shistory/moz.build
dom/activities/moz.build
dom/alarm/moz.build
dom/animation/moz.build
dom/apps/moz.build
dom/archivereader/moz.build
dom/asmjscache/moz.build
dom/audiochannel/moz.build
dom/base/moz.build
dom/battery/moz.build
dom/bindings/moz.build
dom/bluetooth/moz.build
dom/broadcastchannel/moz.build
dom/browser-element/moz.build
dom/cache/moz.build
dom/camera/moz.build
dom/canvas/compiledtest/moz.build
dom/canvas/moz.build
dom/cellbroadcast/moz.build
dom/crypto/moz.build
dom/datastore/moz.build
dom/devicestorage/moz.build
dom/encoding/moz.build
dom/events/moz.build
dom/fetch/moz.build
dom/filehandle/moz.build
dom/filesystem/moz.build
dom/fmradio/ipc/moz.build
dom/fmradio/moz.build
dom/gamepad/moz.build
dom/geolocation/moz.build
dom/html/moz.build
dom/icc/moz.build
dom/indexedDB/moz.build
dom/inputport/moz.build
dom/ipc/moz.build
dom/json/moz.build
dom/jsurl/moz.build
dom/mathml/moz.build
dom/media/android/moz.build
dom/media/apple/moz.build
dom/media/bridge/moz.build
dom/media/compiledtest/moz.build
dom/media/directshow/moz.build
dom/media/eme/moz.build
dom/media/encoder/fmp4_muxer/moz.build
dom/media/encoder/moz.build
dom/media/fmp4/moz.build
dom/media/gmp-plugin-openh264/moz.build
dom/media/gmp-plugin/moz.build
dom/media/gmp/moz.build
dom/media/gmp/rlz/moz.build
dom/media/gstreamer/moz.build
dom/media/gtest/moz.build
dom/media/imagecapture/moz.build
dom/media/mediasink/moz.build
dom/media/mediasource/gtest/moz.build
dom/media/mediasource/moz.build
dom/media/moz.build
dom/media/ogg/moz.build
dom/media/omx/moz.build
dom/media/platforms/agnostic/eme/moz.build
dom/media/platforms/agnostic/gmp/moz.build
dom/media/platforms/ffmpeg/libav53/moz.build
dom/media/platforms/ffmpeg/libav54/moz.build
dom/media/platforms/ffmpeg/libav55/moz.build
dom/media/platforms/gonk/moz.build
dom/media/platforms/moz.build
dom/media/platforms/wmf/moz.build
dom/media/raw/moz.build
dom/media/systemservices/moz.build
dom/media/wave/moz.build
dom/media/webaudio/blink/moz.build
dom/media/webaudio/compiledtest/moz.build
dom/media/webaudio/moz.build
dom/media/webm/moz.build
dom/media/webrtc/moz.build
dom/media/webspeech/recognition/moz.build
dom/media/webspeech/synth/moz.build
dom/media/webspeech/synth/pico/moz.build
dom/messagechannel/moz.build
dom/mobileconnection/moz.build
dom/mobilemessage/moz.build
dom/network/moz.build
dom/nfc/moz.build
dom/notification/moz.build
dom/offline/moz.build
dom/permission/moz.build
dom/plugins/base/android/moz.build
dom/plugins/base/moz.build
dom/plugins/ipc/hangui/moz.build
dom/plugins/ipc/interpose/moz.build
dom/plugins/ipc/moz.build
dom/plugins/test/testplugin/moz.build
dom/power/moz.build
dom/presentation/moz.build
dom/presentation/provider/moz.build
dom/promise/moz.build
dom/push/moz.build
dom/quota/moz.build
dom/requestsync/moz.build
dom/secureelement/moz.build
dom/security/moz.build
dom/smil/moz.build
dom/speakermanager/moz.build
dom/storage/moz.build
dom/svg/moz.build
dom/system/android/moz.build
dom/system/gonk/moz.build
dom/system/mac/moz.build
dom/system/moz.build
dom/system/qt/moz.build
dom/system/windows/moz.build
dom/telephony/moz.build
dom/time/moz.build
dom/tv/moz.build
dom/voicemail/moz.build
dom/vr/moz.build
dom/wifi/moz.build
dom/workers/moz.build
dom/workers/test/gtest/moz.build
dom/xbl/moz.build
dom/xml/moz.build
dom/xslt/base/moz.build
dom/xslt/xml/moz.build
dom/xslt/xpath/moz.build
dom/xslt/xslt/moz.build
dom/xul/moz.build
dom/xul/templates/moz.build
editor/composer/moz.build
editor/libeditor/moz.build
editor/txmgr/moz.build
editor/txmgr/tests/moz.build
editor/txtsvc/moz.build
embedding/browser/build/moz.build
embedding/browser/moz.build
embedding/components/appstartup/moz.build
embedding/components/build/moz.build
embedding/components/commandhandler/moz.build
embedding/components/find/moz.build
embedding/components/printingui/ipc/moz.build
embedding/components/printingui/mac/moz.build
embedding/components/printingui/unixshared/moz.build
embedding/components/printingui/win/moz.build
embedding/components/webbrowserpersist/moz.build
embedding/components/windowwatcher/moz.build
extensions/auth/moz.build
extensions/cookie/moz.build
extensions/gio/moz.build
extensions/permissions/moz.build
extensions/pref/autoconfig/src/moz.build
extensions/spellcheck/hunspell/src/moz.build
extensions/spellcheck/src/moz.build
extensions/universalchardet/src/base/moz.build
extensions/universalchardet/src/xpcom/moz.build
gfx/2d/moz.build
gfx/angle/moz.build
gfx/angle/src/libGLESv2/moz.build
gfx/cairo/cairo/src/moz.build
gfx/cairo/libpixman/src/moz.build
gfx/gl/moz.build
gfx/graphite2/src/moz.build
gfx/harfbuzz/src/moz.build
gfx/ipc/moz.build
gfx/layers/moz.build
gfx/ots/src/moz.build
gfx/qcms/moz.build
gfx/skia/generate_mozbuild.py
gfx/skia/moz.build
gfx/src/moz.build
gfx/tests/gtest/moz.build
gfx/thebes/moz.build
gfx/vr/moz.build
gfx/ycbcr/moz.build
hal/moz.build
image/build/moz.build
image/decoders/icon/android/moz.build
image/decoders/icon/gtk/moz.build
image/decoders/icon/mac/moz.build
image/decoders/icon/moz.build
image/decoders/icon/win/moz.build
image/decoders/moz.build
image/encoders/bmp/moz.build
image/encoders/ico/moz.build
image/encoders/jpeg/moz.build
image/encoders/png/moz.build
image/moz.build
image/test/gtest/moz.build
intl/chardet/moz.build
intl/hyphenation/moz.build
intl/locale/mac/moz.build
intl/locale/moz.build
intl/lwbrk/moz.build
intl/strres/moz.build
intl/unicharutil/moz.build
intl/unicharutil/tests/moz.build
intl/unicharutil/util/internal/moz.build
intl/unicharutil/util/moz.build
ipc/app/moz.build
ipc/app/pie/moz.build
ipc/chromium/moz.build
ipc/dbus/moz.build
ipc/glue/moz.build
ipc/hal/moz.build
ipc/ipdl/moz.build
ipc/keystore/moz.build
ipc/netd/moz.build
ipc/nfc/moz.build
ipc/ril/moz.build
ipc/testshell/moz.build
ipc/unixfd/moz.build
ipc/unixsocket/moz.build
js/ductwork/debugger/moz.build
js/ipc/moz.build
js/src/editline/moz.build
js/src/gdb/moz.build
js/src/jsapi-tests/moz.build
js/src/moz.build
js/src/shell/moz.build
js/xpconnect/loader/moz.build
js/xpconnect/shell/moz.build
js/xpconnect/src/moz.build
js/xpconnect/tests/components/native/moz.build
js/xpconnect/wrappers/moz.build
layout/base/gtest/moz.build
layout/base/moz.build
layout/build/moz.build
layout/forms/moz.build
layout/generic/moz.build
layout/inspector/moz.build
layout/ipc/moz.build
layout/mathml/moz.build
layout/printing/moz.build
layout/style/moz.build
layout/svg/moz.build
layout/tables/moz.build
layout/tools/layout-debug/src/moz.build
layout/xul/grid/moz.build
layout/xul/moz.build
layout/xul/tree/moz.build
media/gmp-clearkey/0.1/gtest/moz.build
media/gmp-clearkey/0.1/moz.build
media/libav/moz.build
media/libcubeb/src/moz.build
media/libcubeb/tests/moz.build
media/libjpeg/moz.build
media/libopus/moz.build
media/libsoundtouch/src/moz.build
media/libspeex_resampler/src/moz.build
media/libstagefright/gtest/moz.build
media/libstagefright/moz.build
media/libtheora/moz.build
media/libvorbis/moz.build
media/libvpx/moz.build
media/mtransport/build/moz.build
media/mtransport/test/moz.build
media/mtransport/third_party/moz.build
media/omx-plugin/lib/gb/libstagefright/moz.build
media/omx-plugin/lib/gb235/libstagefright/moz.build
media/omx-plugin/lib/hc/libstagefright/moz.build
media/omx-plugin/lib/ics/libstagefright/moz.build
media/pocketsphinx/moz.build
media/sphinxbase/moz.build
media/webrtc/moz.build
media/webrtc/signaling/test/common.build
memory/build/moz.build
memory/jemalloc/moz.build
memory/mozalloc/moz.build
memory/mozalloc/staticruntime/moz.build
memory/mozjemalloc/moz.build
memory/replace/dmd/moz.build
memory/replace/dmd/test/moz.build
memory/replace/logalloc/moz.build
memory/replace/logalloc/replay/moz.build
memory/volatile/moz.build
memory/volatile/tests/moz.build
mfbt/moz.build
mfbt/staticruntime/moz.build
mfbt/tests/moz.build
mobile/android/config/mozconfigs/android-api-11/debug
mobile/android/config/mozconfigs/android-api-9-10-constrained/debug
mobile/android/config/mozconfigs/android-x86/debug
mobile/android/config/mozconfigs/common
modules/libjar/moz.build
modules/libjar/zipwriter/moz.build
modules/libmar/sign/moz.build
modules/libmar/src/moz.build
modules/libmar/tool/moz.build
modules/libpref/moz.build
mozglue/android/moz.build
mozglue/build/moz.build
mozglue/linker/moz.build
mozglue/misc/moz.build
netwerk/base/moz.build
netwerk/build/moz.build
netwerk/cache/moz.build
netwerk/cache2/moz.build
netwerk/cookie/moz.build
netwerk/dns/mdns/libmdns/moz.build
netwerk/dns/moz.build
netwerk/ipc/moz.build
netwerk/mime/moz.build
netwerk/protocol/about/moz.build
netwerk/protocol/app/moz.build
netwerk/protocol/data/moz.build
netwerk/protocol/device/moz.build
netwerk/protocol/file/moz.build
netwerk/protocol/ftp/moz.build
netwerk/protocol/http/moz.build
netwerk/protocol/res/moz.build
netwerk/protocol/rtsp/moz.build
netwerk/protocol/viewsource/moz.build
netwerk/protocol/websocket/moz.build
netwerk/protocol/wyciwyg/moz.build
netwerk/sctp/datachannel/moz.build
netwerk/sctp/src/moz.build
netwerk/socket/moz.build
netwerk/srtp/src/moz.build
netwerk/standalone/moz.build
netwerk/streamconv/converters/moz.build
netwerk/streamconv/moz.build
netwerk/streamconv/test/moz.build
netwerk/system/android/moz.build
netwerk/system/linux/moz.build
netwerk/system/mac/moz.build
netwerk/system/qt/moz.build
netwerk/system/win32/moz.build
netwerk/test/moz.build
netwerk/wifi/moz.build
other-licenses/android/moz.build
other-licenses/skia-npapi/moz.build
other-licenses/snappy/moz.build
parser/html/moz.build
parser/htmlparser/moz.build
parser/xml/moz.build
python/mozbuild/mozbuild/frontend/context.py
python/mozbuild/mozbuild/frontend/emitter.py
python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build
python/mozbuild/mozbuild/test/backend/test_recursivemake.py
python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build
python/mozbuild/mozbuild/test/frontend/test_emitter.py
rdf/base/moz.build
rdf/build/moz.build
rdf/datasource/moz.build
rdf/tests/rdfcat/moz.build
rdf/tests/rdfpoll/moz.build
rdf/tests/triplescat/moz.build
rdf/util/internal/moz.build
rdf/util/moz.build
security/apps/moz.build
security/certverifier/moz.build
security/manager/pki/moz.build
security/manager/ssl/moz.build
security/manager/ssl/tests/gtest/moz.build
security/manager/ssl/tests/unit/pkcs11testmodule/moz.build
security/manager/ssl/tests/unit/tlsserver/cmd/moz.build
security/manager/ssl/tests/unit/tlsserver/lib/moz.build
security/pkix/test/lib/moz.build
security/pkix/warnings.mozbuild
security/sandbox/linux/common/moz.build
security/sandbox/linux/glue/moz.build
security/sandbox/linux/gtest/moz.build
security/sandbox/linux/moz.build
security/sandbox/mac/moz.build
security/sandbox/moz.build
security/sandbox/staticruntime/moz.build
security/sandbox/win/src/sandboxbroker/moz.build
services/crypto/component/moz.build
startupcache/moz.build
storage/build/moz.build
storage/moz.build
storage/test/moz.build
testing/mochitest/ssltunnel/moz.build
testing/tools/screenshot/moz.build
toolkit/components/alerts/moz.build
toolkit/components/autocomplete/moz.build
toolkit/components/build/moz.build
toolkit/components/commandlines/moz.build
toolkit/components/ctypes/moz.build
toolkit/components/ctypes/tests/moz.build
toolkit/components/diskspacewatcher/moz.build
toolkit/components/downloads/moz.build
toolkit/components/filepicker/moz.build
toolkit/components/filewatcher/moz.build
toolkit/components/finalizationwitness/moz.build
toolkit/components/find/moz.build
toolkit/components/jsdownloads/src/moz.build
toolkit/components/maintenanceservice/moz.build
toolkit/components/mediasniffer/moz.build
toolkit/components/osfile/moz.build
toolkit/components/parentalcontrols/moz.build
toolkit/components/perf/moz.build
toolkit/components/perfmonitoring/moz.build
toolkit/components/places/moz.build
toolkit/components/places/tests/cpp/moz.build
toolkit/components/protobuf/moz.build
toolkit/components/reflect/moz.build
toolkit/components/remote/moz.build
toolkit/components/satchel/moz.build
toolkit/components/startup/moz.build
toolkit/components/statusfilter/moz.build
toolkit/components/telemetry/moz.build
toolkit/components/terminator/moz.build
toolkit/components/typeaheadfind/moz.build
toolkit/components/url-classifier/moz.build
toolkit/components/workerlz4/moz.build
toolkit/crashreporter/breakpad-logging/moz.build
toolkit/crashreporter/client/moz.build
toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/moz.build
toolkit/crashreporter/google-breakpad/src/client/linux/handler/moz.build
toolkit/crashreporter/google-breakpad/src/client/mac/handler/moz.build
toolkit/crashreporter/google-breakpad/src/common/mac/moz.build
toolkit/crashreporter/google-breakpad/src/common/moz.build
toolkit/crashreporter/google-breakpad/src/processor/moz.build
toolkit/crashreporter/moz.build
toolkit/devtools/security/moz.build
toolkit/devtools/server/moz.build
toolkit/devtools/server/tests/gtest/moz.build
toolkit/identity/moz.build
toolkit/library/StaticXULComponentsEnd/moz.build
toolkit/library/moz.build
toolkit/mozapps/extensions/moz.build
toolkit/mozapps/update/common-standalone/moz.build
toolkit/mozapps/update/common/moz.build
toolkit/mozapps/update/moz.build
toolkit/mozapps/update/tests/moz.build
toolkit/mozapps/update/updater/moz.build
toolkit/mozapps/update/updater/updater-xpcshell/moz.build
toolkit/profile/moz.build
toolkit/system/androidproxy/moz.build
toolkit/system/dbus/moz.build
toolkit/system/gnome/moz.build
toolkit/system/osxproxy/moz.build
toolkit/system/unixproxy/moz.build
toolkit/system/windowsproxy/moz.build
toolkit/xre/moz.build
toolkit/xre/test/win/moz.build
tools/power/moz.build
tools/profiler/moz.build
tools/profiler/tests/gtest/moz.build
uriloader/base/moz.build
uriloader/exthandler/moz.build
uriloader/exthandler/tests/moz.build
uriloader/prefetch/moz.build
view/moz.build
webapprt/gtk/moz.build
webapprt/mac/moz.build
webapprt/win/moz.build
widget/android/bindings/moz.build
widget/android/jni/moz.build
widget/android/moz.build
widget/cocoa/moz.build
widget/gonk/libdisplay/moz.build
widget/gonk/moz.build
widget/gonk/nativewindow/moz.build
widget/gtk/moz.build
widget/moz.build
widget/tests/moz.build
widget/windows/moz.build
xpcom/base/moz.build
xpcom/build/moz.build
xpcom/components/moz.build
xpcom/ds/moz.build
xpcom/glue/moz.build
xpcom/glue/standalone/moz.build
xpcom/glue/standalone/staticruntime/moz.build
xpcom/glue/staticruntime/moz.build
xpcom/glue/tests/gtest/moz.build
xpcom/io/moz.build
xpcom/reflect/xptcall/md/unix/moz.build
xpcom/reflect/xptcall/md/win32/moz.build
xpcom/reflect/xptcall/moz.build
xpcom/reflect/xptinfo/moz.build
xpcom/string/moz.build
xpcom/tests/component/moz.build
xpcom/tests/component_no_aslr/moz.build
xpcom/tests/gtest/moz.build
xpcom/tests/moz.build
xpcom/threads/moz.build
xpcom/typelib/xpt/moz.build
xpcom/typelib/xpt/tests/moz.build
xpfe/appshell/moz.build
xpfe/components/build/moz.build
xpfe/components/directory/moz.build
xpfe/components/windowds/moz.build
xulrunner/app/moz.build
xulrunner/examples/simple/components/src/moz.build
xulrunner/stub/moz.build
xulrunner/tools/redit/moz.build
--- a/accessible/atk/moz.build
+++ b/accessible/atk/moz.build
@@ -50,10 +50,8 @@ if CONFIG['MOZ_ENABLE_GTK']:
 if CONFIG['MOZ_ENABLE_DBUS']:
     CXXFLAGS += CONFIG['MOZ_DBUS_CFLAGS']
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 if CONFIG['CLANG_CXX']:
     # Suppress clang warning about unused function from gobject's RTTI macros.
     CXXFLAGS += ['-Wno-unused-function']
-
-FAIL_ON_WARNINGS = True
--- a/accessible/base/moz.build
+++ b/accessible/base/moz.build
@@ -92,10 +92,8 @@ else:
     ]
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['MOZ_ENABLE_GTK']:
     CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
 
 include('/ipc/chromium/chromium-config.mozbuild')
-
-FAIL_ON_WARNINGS = True
--- a/accessible/generic/moz.build
+++ b/accessible/generic/moz.build
@@ -52,10 +52,8 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
 else:
     LOCAL_INCLUDES += [
         '/accessible/other',
     ]
 
 FINAL_LIBRARY = 'xul'
 
 include('/ipc/chromium/chromium-config.mozbuild')
-
-FAIL_ON_WARNINGS = True
--- a/accessible/html/moz.build
+++ b/accessible/html/moz.build
@@ -38,10 +38,8 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
         '/accessible/mac',
     ]
 else:
     LOCAL_INCLUDES += [
         '/accessible/other',
     ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/accessible/ipc/moz.build
+++ b/accessible/ipc/moz.build
@@ -42,10 +42,8 @@ if CONFIG['ACCESSIBILITY']:
     else:
         LOCAL_INCLUDES += [
             '/accessible/other',
         ]
 
     FINAL_LIBRARY = 'xul'
 
 include('/ipc/chromium/chromium-config.mozbuild')
-
-FAIL_ON_WARNINGS = True
--- a/accessible/mac/moz.build
+++ b/accessible/mac/moz.build
@@ -36,10 +36,8 @@ LOCAL_INCLUDES += [
     '/layout/xul',
     '/widget',
     '/widget/cocoa',
 ]
 
 FINAL_LIBRARY = 'xul'
 
 include('/ipc/chromium/chromium-config.mozbuild')
-
-FAIL_ON_WARNINGS = True
--- a/accessible/other/moz.build
+++ b/accessible/other/moz.build
@@ -17,10 +17,8 @@ SOURCES += [
 LOCAL_INCLUDES += [
     '/accessible/base',
     '/accessible/generic',
     '/accessible/html',
     '/accessible/xul',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/accessible/windows/ia2/moz.build
+++ b/accessible/windows/ia2/moz.build
@@ -45,11 +45,9 @@ LOCAL_INCLUDES += [
     '/accessible/xul',
 ]
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
--- a/accessible/windows/msaa/moz.build
+++ b/accessible/windows/msaa/moz.build
@@ -59,10 +59,8 @@ LOCAL_INCLUDES += [
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
-
-FAIL_ON_WARNINGS = True
--- a/accessible/windows/sdn/moz.build
+++ b/accessible/windows/sdn/moz.build
@@ -18,10 +18,8 @@ LOCAL_INCLUDES += [
     '/accessible/xpcom',
     '/accessible/xul',
 ]
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
-
-FAIL_ON_WARNINGS = True
--- a/accessible/windows/uia/moz.build
+++ b/accessible/windows/uia/moz.build
@@ -13,10 +13,8 @@ LOCAL_INCLUDES += [
     '/accessible/generic',
     '/accessible/html',
     '/accessible/windows/msaa',
     '/accessible/xpcom',
     '/accessible/xul',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/accessible/xpcom/moz.build
+++ b/accessible/xpcom/moz.build
@@ -43,10 +43,10 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
     ]
 else:
     LOCAL_INCLUDES += [
         '/accessible/other',
     ]
 
 FINAL_LIBRARY = 'xul'
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/accessible/xul/moz.build
+++ b/accessible/xul/moz.build
@@ -43,10 +43,8 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
         '/accessible/mac',
     ]
 else:
     LOCAL_INCLUDES += [
         '/accessible/other',
     ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/b2g/app/moz.build
+++ b/b2g/app/moz.build
@@ -73,17 +73,15 @@ DISABLE_STL_WRAPPING = True
 if CONFIG['OS_ARCH'] == 'WINNT':
     OS_LIBS += [
         'version',
     ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 JS_PREFERENCE_FILES += [
     'b2g.js',
 ]
 
 DIST_FILES += [
   'ua-update.json.in',
 ]
--- a/b2g/config/mozconfigs/linux32_gecko/debug
+++ b/b2g/config/mozconfigs/linux32_gecko/debug
@@ -14,17 +14,17 @@ ac_add_options --enable-debug
 # by 2 MBs.
 STRIP_FLAGS="--strip-debug"
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Use sccache
 no_sccache=
 
 #B2G options
 ac_add_options --enable-application=b2g
 ENABLE_MARIONETTE=1
--- a/b2g/config/mozconfigs/linux32_gecko/nightly
+++ b/b2g/config/mozconfigs/linux32_gecko/nightly
@@ -14,17 +14,17 @@ ac_add_options --enable-signmar
 # by 2 MBs.
 STRIP_FLAGS="--strip-debug"
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Use sccache
 no_sccache=
 
 #B2G options
 ac_add_options --enable-application=b2g
 export CXXFLAGS=-DMOZ_ENABLE_JS_DUMP
--- a/b2g/config/mozconfigs/linux64_gecko/debug
+++ b/b2g/config/mozconfigs/linux64_gecko/debug
@@ -14,17 +14,17 @@ ac_add_options --enable-debug
 # by 2 MBs.
 STRIP_FLAGS="--strip-debug"
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Use sccache
 no_sccache=
 
 #B2G options
 ac_add_options --enable-application=b2g
 ENABLE_MARIONETTE=1
--- a/b2g/config/mozconfigs/linux64_gecko/nightly
+++ b/b2g/config/mozconfigs/linux64_gecko/nightly
@@ -14,17 +14,17 @@ ac_add_options --enable-signmar
 # by 2 MBs.
 STRIP_FLAGS="--strip-debug"
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Use sccache
 no_sccache=
 
 #B2G options
 ac_add_options --enable-application=b2g
 export CXXFLAGS=-DMOZ_ENABLE_JS_DUMP
--- a/b2g/config/mozconfigs/macosx64_gecko/debug
+++ b/b2g/config/mozconfigs/macosx64_gecko/debug
@@ -13,17 +13,17 @@ ac_add_options --enable-signmar
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
 #ac_add_options --with-macbundlename-prefix=Firefox
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # B2G Stuff
 ac_add_options --enable-application=b2g
 ac_add_options --enable-debug-symbols
 ac_add_options --enable-debug
 ENABLE_MARIONETTE=1
 
--- a/b2g/config/mozconfigs/macosx64_gecko/nightly
+++ b/b2g/config/mozconfigs/macosx64_gecko/nightly
@@ -14,17 +14,17 @@ ac_add_options --enable-signmar
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
 #ac_add_options --with-macbundlename-prefix=Firefox
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # B2G Stuff
 ac_add_options --enable-application=b2g
 ac_add_options --enable-debug-symbols
 export CXXFLAGS=-DMOZ_ENABLE_JS_DUMP
 
 GAIADIR=$topsrcdir/gaia
--- a/b2g/dev/config/mozconfigs/macosx64/mulet
+++ b/b2g/dev/config/mozconfigs/macosx64/mulet
@@ -12,17 +12,17 @@ ac_add_options --enable-profiling
 ac_add_options --enable-instruments
 ac_add_options --enable-dtrace
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 ac_add_options --with-macbundlename-prefix=Firefox
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 # Include Firefox OS fonts.
 MOZTTDIR=$topsrcdir/moz-tt
 
--- a/b2g/gaia/moz.build
+++ b/b2g/gaia/moz.build
@@ -15,10 +15,8 @@ if not CONFIG['MOZ_B2GDROID']:
         DEFINES['B2G_NAME'] = 'L"%s-bin%s"' % (PROGRAM, CONFIG['BIN_SUFFIX'])
         DEFINES['GAIA_PATH'] = 'L"gaia\\\\profile"'
     else:
         SOURCES += [
             'run-b2g.c',
         ]
         DEFINES['B2G_NAME'] = '"%s-bin%s"' % (PROGRAM, CONFIG['BIN_SUFFIX'])
         DEFINES['GAIA_PATH'] = '"gaia/profile"'
-
-FAIL_ON_WARNINGS = True
--- a/browser/app/moz.build
+++ b/browser/app/moz.build
@@ -81,10 +81,8 @@ if CONFIG['MOZ_LINKER']:
 
 if CONFIG['HAVE_CLOCK_MONOTONIC']:
     OS_LIBS += CONFIG['REALTIME_LIBS']
 
 JAR_MANIFESTS += ['jar.mn']
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
-
-FAIL_ON_WARNINGS = True
--- a/browser/components/about/moz.build
+++ b/browser/components/about/moz.build
@@ -12,10 +12,8 @@ SOURCES += [
     'AboutRedirector.cpp',
 ]
 
 FINAL_LIBRARY = 'browsercomps'
 
 LOCAL_INCLUDES += [
     '../build',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/browser/components/build/moz.build
+++ b/browser/components/build/moz.build
@@ -29,10 +29,8 @@ if CONFIG['OS_ARCH'] == 'WINNT':
         'shlwapi',
         'version',
     ]
 
 # Mac: Need to link with CoreFoundation for Mac Migrators (PList reading code)
 # GTK2: Need to link with glib for GNOME shell service
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'gtk2', 'gtk3'):
     OS_LIBS += CONFIG['TK_LIBS']
-
-FAIL_ON_WARNINGS = True
--- a/browser/components/dirprovider/moz.build
+++ b/browser/components/dirprovider/moz.build
@@ -16,10 +16,8 @@ XPCSHELL_TESTS_MANIFESTS += [
     'tests/unit/xpcshell.ini',
 ]
 
 FINAL_LIBRARY = 'browsercomps'
 
 LOCAL_INCLUDES += [
     '../build'
 ]
-
-FAIL_ON_WARNINGS = True
--- a/browser/components/feeds/moz.build
+++ b/browser/components/feeds/moz.build
@@ -35,12 +35,10 @@ FINAL_LIBRARY = 'browsercomps'
 
 for var in ('MOZ_APP_NAME', 'MOZ_MACBUNDLE_NAME'):
     DEFINES[var] = CONFIG[var]
 
 LOCAL_INCLUDES += [
     '../build',
 ]
 
-FAIL_ON_WARNINGS = True
-
 with Files('**'):
     BUG_COMPONENT = ('Firefox', 'RSS Discovery and Preview')
--- a/browser/components/migration/moz.build
+++ b/browser/components/migration/moz.build
@@ -57,12 +57,10 @@ EXTRA_PP_JS_MODULES += [
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     EXTRA_JS_MODULES += [
         'MSMigrationUtils.jsm',
     ]
 
 FINAL_LIBRARY = 'browsercomps'
 
-FAIL_ON_WARNINGS = True
-
 with Files('**'):
     BUG_COMPONENT = ('Firefox', 'Migration')
--- a/browser/components/shell/moz.build
+++ b/browser/components/shell/moz.build
@@ -45,12 +45,10 @@ EXTRA_COMPONENTS += [
     'nsSetDefaultBrowser.manifest',
 ]
 
 for var in ('MOZ_APP_NAME', 'MOZ_APP_VERSION'):
     DEFINES[var] = '"%s"' % CONFIG[var]
 
 CXXFLAGS += CONFIG['TK_CFLAGS']
 
-FAIL_ON_WARNINGS = True
-
 with Files('**'):
     BUG_COMPONENT = ('Firefox', 'Shell Integration')
--- a/browser/config/mozconfigs/linux32/common-opt
+++ b/browser/config/mozconfigs/linux32/common-opt
@@ -8,13 +8,13 @@ ac_add_options --with-mozilla-api-keyfil
 
 . $topsrcdir/build/unix/mozconfig.linux32
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
--- a/browser/config/mozconfigs/linux32/debug
+++ b/browser/config/mozconfigs/linux32/debug
@@ -7,17 +7,17 @@ MOZ_AUTOMATION_L10N_CHECK=0
 
 . $topsrcdir/build/unix/mozconfig.linux32
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 #Use ccache
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 ac_add_options --with-branding=browser/branding/nightly
 
 . "$topsrcdir/build/mozconfig.common.override"
--- a/browser/config/mozconfigs/linux64/common-opt
+++ b/browser/config/mozconfigs/linux64/common-opt
@@ -8,13 +8,13 @@ ac_add_options --with-mozilla-api-keyfil
 
 . $topsrcdir/build/unix/mozconfig.linux
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
--- a/browser/config/mozconfigs/linux64/debug
+++ b/browser/config/mozconfigs/linux64/debug
@@ -5,17 +5,17 @@ ac_add_options --with-google-oauth-api-k
 
 MOZ_AUTOMATION_L10N_CHECK=0
 
 . $topsrcdir/build/unix/mozconfig.linux
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 ac_add_options --with-branding=browser/branding/nightly
 
 . "$topsrcdir/build/mozconfig.common.override"
--- a/browser/config/mozconfigs/macosx-universal/common-opt
+++ b/browser/config/mozconfigs/macosx-universal/common-opt
@@ -11,13 +11,13 @@ ac_add_options --with-google-api-keyfile
 ac_add_options --with-google-oauth-api-keyfile=/builds/google-oauth-api.key
 ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
--- a/browser/config/mozconfigs/macosx64/debug
+++ b/browser/config/mozconfigs/macosx64/debug
@@ -7,17 +7,17 @@ ac_add_options --with-google-oauth-api-k
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
 ac_add_options --with-macbundlename-prefix=Firefox
 fi
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 ac_add_options --with-branding=browser/branding/nightly
 
 . "$topsrcdir/build/macosx/mozconfig.rust"
--- a/browser/config/mozconfigs/macosx64/debug-static-analysis
+++ b/browser/config/mozconfigs/macosx64/debug-static-analysis
@@ -2,15 +2,15 @@ MOZ_AUTOMATION_BUILD_SYMBOLS=0
 MOZ_AUTOMATION_PACKAGE_TESTS=0
 MOZ_AUTOMATION_L10N_CHECK=0
 
 . $topsrcdir/build/macosx/mozconfig.common
 
 ac_add_options --enable-debug
 ac_add_options --enable-dmd
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 ac_add_options --enable-clang-plugin
 
 . "$topsrcdir/build/mozconfig.common.override"
 . "$topsrcdir/build/mozconfig.cache"
--- a/browser/config/mozconfigs/macosx64/nightly
+++ b/browser/config/mozconfigs/macosx64/nightly
@@ -5,17 +5,17 @@ ac_add_options --with-google-oauth-api-k
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
 ac_add_options --with-macbundlename-prefix=Firefox
 fi
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 ac_add_options --with-branding=browser/branding/nightly
 
 . "$topsrcdir/build/macosx/mozconfig.rust"
--- a/browser/config/mozconfigs/win32/common-opt
+++ b/browser/config/mozconfigs/win32/common-opt
@@ -24,17 +24,17 @@ ac_add_options --with-mozilla-api-keyfil
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
 . $topsrcdir/build/win32/mozconfig.vs2013-win64
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Enable Adobe Primetime CDM on 32-bit Windows in Mozilla builds.
 # Enabled here on the assumption that downstream vendors will not be using
 # these build configs.
 ac_add_options --enable-eme=adobe
 
 # Package js shell.
--- a/browser/config/mozconfigs/win32/debug
+++ b/browser/config/mozconfigs/win32/debug
@@ -15,17 +15,17 @@ else
 fi
 ac_add_options --with-google-oauth-api-keyfile=${_google_oauth_api_keyfile}
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 . $topsrcdir/build/win32/mozconfig.vs2013-win64
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 ac_add_options --with-branding=browser/branding/nightly
 
 . "$topsrcdir/build/mozconfig.common.override"
--- a/browser/config/mozconfigs/win64/common-opt
+++ b/browser/config/mozconfigs/win64/common-opt
@@ -20,15 +20,15 @@ fi
 ac_add_options --with-google-oauth-api-keyfile=${_google_oauth_api_keyfile}
 ac_add_options --with-mozilla-api-keyfile=/c/builds/mozilla-desktop-geoloc-api.key
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
 export MOZ_TELEMETRY_REPORTING=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 . $topsrcdir/build/win64/mozconfig.vs2013
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
--- a/browser/config/mozconfigs/win64/debug
+++ b/browser/config/mozconfigs/win64/debug
@@ -15,17 +15,17 @@ if [ -f /c/builds/google-oauth-api.key ]
 else
   _google_oauth_api_keyfile=/e/builds/google-oauth-api.key
 fi
 ac_add_options --with-google-oauth-api-keyfile=${_google_oauth_api_keyfile}
 
 # Needed to enable breakpad in application.ini
 export MOZILLA_OFFICIAL=1
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 ac_add_options --with-branding=browser/branding/nightly
 
 . $topsrcdir/build/win64/mozconfig.vs2013
--- a/build/stlport/moz.build
+++ b/build/stlport/moz.build
@@ -64,8 +64,10 @@ if CONFIG['GNU_CXX']:
         '-Wno-empty-body',
         '-Wno-type-limits',
         '-Wno-unused-local-typedefs',
     ]
 
 # Force to build a static library, instead of a fake library, without
 # installing it in dist/lib.
 NO_EXPAND_LIBS = True
+
+ALLOW_COMPILER_WARNINGS = True
--- a/caps/moz.build
+++ b/caps/moz.build
@@ -46,10 +46,8 @@ UNIFIED_SOURCES += [
 LOCAL_INCLUDES += [
     '/dom/base',
     '/js/xpconnect/src',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/chrome/moz.build
+++ b/chrome/moz.build
@@ -35,10 +35,8 @@ GENERATED_INCLUDES += [
 LOCAL_INCLUDES += [
     '/netwerk/base',
     '/netwerk/protocol/res',
     '/xpcom/components'
 ]
 
 if CONFIG['MOZ_ENABLE_GTK']:
     CXXFLAGS += CONFIG['TK_CFLAGS']
-
-FAIL_ON_WARNINGS = True
--- a/config/config.mk
+++ b/config/config.mk
@@ -354,35 +354,37 @@ else
 HOST_CFLAGS	+= $(MOZ_OPTIMIZE_FLAGS)
 endif # MOZ_OPTIMIZE == 1
 endif # MOZ_OPTIMIZE
 endif # CROSS_COMPILE
 
 CFLAGS += $(MOZ_FRAMEPTR_FLAGS)
 CXXFLAGS += $(MOZ_FRAMEPTR_FLAGS)
 
-# Check for FAIL_ON_WARNINGS (Shorthand for Makefiles to request that we use
-# the 'warnings as errors' compile flags)
+# Check for ALLOW_COMPILER_WARNINGS (shorthand for Makefiles to request that we
+# *don't* use the warnings-as-errors compile flags)
 
-# NOTE: First, we clear FAIL_ON_WARNINGS[_DEBUG] if we're doing a Windows PGO
-# build, since WARNINGS_AS_ERRORS has been suspected of causing isuses in that
-# situation. (See bug 437002.)
+# Don't use warnings-as-errors in Windows PGO builds because it is suspected of
+# causing problems in that situation. (See bug 437002.)
 ifeq (WINNT_1,$(OS_ARCH)_$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE))
-FAIL_ON_WARNINGS=
+ALLOW_COMPILER_WARNINGS=1
 endif # WINNT && (MOS_PROFILE_GENERATE ^ MOZ_PROFILE_USE)
 
-# Check for normal version of flag, and add WARNINGS_AS_ERRORS if it's set to 1.
-ifdef FAIL_ON_WARNINGS
-# Never treat warnings as errors in clang-cl, because it warns about many more
+# Don't use warnings-as-errors in clang-cl because it warns about many more
 # things than MSVC does.
-ifndef CLANG_CL
+ifdef CLANG_CL
+ALLOW_COMPILER_WARNINGS=1
+endif # CLANG_CL
+
+# Use warnings-as-errors if ALLOW_COMPILER_WARNINGS is not set to 1 (which
+# includes the case where it's undefined).
+ifneq (1,$(ALLOW_COMPILER_WARNINGS))
 CXXFLAGS += $(WARNINGS_AS_ERRORS)
 CFLAGS   += $(WARNINGS_AS_ERRORS)
-endif # CLANG_CL
-endif # FAIL_ON_WARNINGS
+endif # ALLOW_COMPILER_WARNINGS
 
 ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
 #// Currently, unless USE_STATIC_LIBS is defined, the multithreaded
 #// DLL version of the RTL is used...
 #//
 #//------------------------------------------------------------------------
 ifdef USE_STATIC_LIBS
 RTL_FLAGS=-MT          # Statically linked multithreaded RTL
--- a/config/external/nss/moz.build
+++ b/config/external/nss/moz.build
@@ -40,8 +40,11 @@ else:
     Library('nss')
     USE_LIBS += [
         '/security/nss/lib/nss/nss3',
         '/security/nss/lib/smime/smime3',
         '/security/nss/lib/ssl/ssl3',
         '/security/nss/lib/util/nssutil3',
         'sqlite',
     ]
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/db/sqlite3/src/moz.build
+++ b/db/sqlite3/src/moz.build
@@ -4,16 +4,18 @@
 # 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/.
 NO_VISIBILITY_FLAGS = True
 
 EXPORTS += [
     'sqlite3.h',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 if CONFIG['MOZ_FOLD_LIBS']:
     # When folding libraries, sqlite is actually in the nss library.
     FINAL_LIBRARY = 'nss'
 else:
     # The final library is in config/external/sqlite
     FINAL_LIBRARY = 'sqlite'
 
 SOURCES += [
--- a/docshell/base/moz.build
+++ b/docshell/base/moz.build
@@ -60,18 +60,16 @@ UNIFIED_SOURCES += [
     'nsDocShellLoadInfo.cpp',
     'nsDocShellTransferableHooks.cpp',
     'nsDownloadHistory.cpp',
     'nsDSURIContentListener.cpp',
     'nsWebNavigationInfo.cpp',
     'SerializedLoadContext.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/docshell/shistory',
     '/dom/base',
     '/layout/base',
     '/layout/generic',
--- a/docshell/base/timeline/moz.build
+++ b/docshell/base/timeline/moz.build
@@ -15,15 +15,13 @@ EXPORTS.mozilla += [
 UNIFIED_SOURCES += [
     'AutoGlobalTimelineMarker.cpp',
     'AutoTimelineMarker.cpp',
     'ObservedDocShell.cpp',
     'TimelineConsumers.cpp',
     'TimelineMarker.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/docshell/base'
 ]
--- a/docshell/build/moz.build
+++ b/docshell/build/moz.build
@@ -22,10 +22,8 @@ LOCAL_INCLUDES += [
 
 if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
     LOCAL_INCLUDES += ['/uriloader/exthandler/mac']
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
-
-FAIL_ON_WARNINGS = True
--- a/docshell/shistory/moz.build
+++ b/docshell/shistory/moz.build
@@ -22,15 +22,13 @@ EXPORTS += [
 
 UNIFIED_SOURCES += [
     'nsSHEntry.cpp',
     'nsSHEntryShared.cpp',
     'nsSHistory.cpp',
     'nsSHTransaction.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/docshell/base',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/activities/moz.build
+++ b/dom/activities/moz.build
@@ -26,17 +26,15 @@ EXTRA_COMPONENTS += [
     'ActivityWrapper.js',
 ]
 
 EXTRA_JS_MODULES += [
     'ActivitiesService.jsm',
     'ActivitiesServiceFilter.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/alarm/moz.build
+++ b/dom/alarm/moz.build
@@ -23,17 +23,15 @@ EXTRA_COMPONENTS += [
     'AlarmsManager.manifest',
 ]
 
 EXTRA_JS_MODULES += [
     'AlarmDB.jsm',
     'AlarmService.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
 
 XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
--- a/dom/animation/moz.build
+++ b/dom/animation/moz.build
@@ -25,11 +25,9 @@ UNIFIED_SOURCES += [
     'Animation.cpp',
     'AnimationEffectReadOnly.cpp',
     'AnimationTimeline.cpp',
     'DocumentTimeline.cpp',
     'KeyframeEffect.cpp',
     'PendingAnimationTracker.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/apps/moz.build
+++ b/dom/apps/moz.build
@@ -49,15 +49,13 @@ EXTRA_PP_JS_MODULES += [
     'OperatorApps.jsm',
     'ScriptPreloader.jsm',
     'Webapps.jsm',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/js/xpconnect/wrappers',
 ]
--- a/dom/archivereader/moz.build
+++ b/dom/archivereader/moz.build
@@ -19,17 +19,15 @@ UNIFIED_SOURCES += [
     'ArchiveRequest.cpp',
     'ArchiveZipEvent.cpp',
     'ArchiveZipFile.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
 ]
 
 FINAL_LIBRARY = 'xul'
 
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
--- a/dom/asmjscache/moz.build
+++ b/dom/asmjscache/moz.build
@@ -11,15 +11,13 @@ EXPORTS.mozilla.dom.asmjscache += [
 SOURCES += [
     'AsmJSCache.cpp'
 ]
 
 IPDL_SOURCES += [
     'PAsmJSCacheEntry.ipdl'
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
--- a/dom/audiochannel/moz.build
+++ b/dom/audiochannel/moz.build
@@ -16,13 +16,11 @@ EXPORTS += [
     'AudioChannelService.h',
 ]
 
 UNIFIED_SOURCES += [
     'AudioChannelAgent.cpp',
     'AudioChannelService.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/base/moz.build
+++ b/dom/base/moz.build
@@ -404,18 +404,16 @@ if CONFIG['MOZ_BUILD_APP'] != 'mobile/an
         'SiteSpecificUserAgent.manifest',
     ]
 
 EXTRA_JS_MODULES += [
     'DOMRequestHelper.jsm',
     'IndexedDBHelper.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../battery',
     '../bluetooth/common',
     '../bluetooth/common/webapi',
     '../events',
     '../media',
     '../network',
     '../time',
--- a/dom/battery/moz.build
+++ b/dom/battery/moz.build
@@ -8,15 +8,13 @@ EXPORTS.mozilla.dom.battery += [
     'Constants.h',
     'Types.h',
 ]
 
 SOURCES += [
     'BatteryManager.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
--- a/dom/bindings/moz.build
+++ b/dom/bindings/moz.build
@@ -34,18 +34,16 @@ EXPORTS.mozilla.dom += [
     'PrimitiveConversions.h',
     'RootedDictionary.h',
     'StructuredClone.h',
     'ToJSValue.h',
     'TypedArray.h',
     'UnionMember.h',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/battery',
     '/dom/bluetooth/common/webapi',
     '/dom/camera',
     '/dom/canvas',
     '/dom/geolocation',
     '/dom/html',
--- a/dom/bluetooth/moz.build
+++ b/dom/bluetooth/moz.build
@@ -147,17 +147,15 @@ EXPORTS.mozilla.dom.bluetooth += [
     'common/webapi/BluetoothPbapRequestHandle.h'
 ]
 IPDL_SOURCES += [
     'ipc/BluetoothTypes.ipdlh',
     'ipc/PBluetooth.ipdl',
     'ipc/PBluetoothRequest.ipdl'
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
     '../network',
     '../system/gonk'
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
--- a/dom/broadcastchannel/moz.build
+++ b/dom/broadcastchannel/moz.build
@@ -24,9 +24,8 @@ LOCAL_INCLUDES += [
 ]
 
 MOCHITEST_MANIFESTS += ['tests/mochitest.ini']
 MOCHITEST_CHROME_MANIFESTS += ['tests/chrome.ini']
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-FAIL_ON_WARNINGS = True
--- a/dom/browser-element/moz.build
+++ b/dom/browser-element/moz.build
@@ -27,18 +27,16 @@ EXTRA_COMPONENTS += [
     'BrowserElementParent.js',
     'BrowserElementParent.manifest',
 ]
 
 EXTRA_JS_MODULES += [
     'BrowserElementPromptService.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../bluetooth',
     '/dom/html',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/cache/moz.build
+++ b/dom/cache/moz.build
@@ -82,18 +82,16 @@ IPDL_SOURCES += [
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '../workers',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 MOCHITEST_MANIFESTS += [
     'test/mochitest/mochitest.ini',
 ]
 
 MOCHITEST_CHROME_MANIFESTS += [
     'test/mochitest/chrome.ini',
--- a/dom/camera/moz.build
+++ b/dom/camera/moz.build
@@ -56,18 +56,16 @@ if CONFIG['MOZ_B2G_CAMERA']:
         'CameraTestHardware.manifest',
     ]
 else:
     UNIFIED_SOURCES += [
         'FallbackCameraControl.cpp',
         'FallbackCameraManager.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
     '/media/libyuv/include',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 # Suppress some GCC warnings being treated as errors:
--- a/dom/canvas/compiledtest/moz.build
+++ b/dom/canvas/compiledtest/moz.build
@@ -6,13 +6,11 @@
 
 GeckoCppUnitTests([
     'TestWebGLElementArrayCache',
 ])
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../',
 ]
--- a/dom/canvas/moz.build
+++ b/dom/canvas/moz.build
@@ -138,18 +138,16 @@ UNIFIED_SOURCES += [
     'WebGLVertexArrayObject.cpp',
 ]
 
 LOCAL_INCLUDES += [
     '../..', # Support `#include "mfbt/RefPtr.h"`
     '/js/xpconnect/wrappers',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../workers',
     '/dom/base',
     '/dom/html',
     '/dom/svg',
--- a/dom/cellbroadcast/moz.build
+++ b/dom/cellbroadcast/moz.build
@@ -30,11 +30,9 @@ EXPORTS.mozilla.dom.cellbroadcast += [
 ]
 
 IPDL_SOURCES += [
     'ipc/PCellBroadcast.ipdl',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/crypto/moz.build
+++ b/dom/crypto/moz.build
@@ -14,18 +14,16 @@ EXPORTS.mozilla.dom += [
 
 UNIFIED_SOURCES += [
     'CryptoBuffer.cpp',
     'CryptoKey.cpp',
     'KeyAlgorithmProxy.cpp',
     'WebCryptoTask.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/security/manager/ssl',
 ]
 
--- a/dom/datastore/moz.build
+++ b/dom/datastore/moz.build
@@ -40,9 +40,8 @@ EXTRA_JS_MODULES += [
     'DataStoreDB.jsm',
 ]
 
 MOCHITEST_MANIFESTS += ['tests/mochitest.ini']
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-FAIL_ON_WARNINGS = True
--- a/dom/devicestorage/moz.build
+++ b/dom/devicestorage/moz.build
@@ -27,18 +27,16 @@ UNIFIED_SOURCES += [
     'DeviceStorageStatics.cpp',
     'nsDeviceStorage.cpp',
 ]
 
 IPDL_SOURCES += [
     'PDeviceStorageRequest.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/ipc',
 ]
 
--- a/dom/encoding/moz.build
+++ b/dom/encoding/moz.build
@@ -13,18 +13,16 @@ EXPORTS.mozilla.dom += [
 
 UNIFIED_SOURCES += [
     'EncodingUtils.cpp',
     'FallbackEncoding.cpp',
     'TextDecoder.cpp',
     'TextEncoder.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/intl/locale',
 ]
 
 props2arrays = '/intl/locale/props2arrays.py'
 prefixes = (
     'domainsfallbacks',
--- a/dom/events/moz.build
+++ b/dom/events/moz.build
@@ -119,18 +119,16 @@ UNIFIED_SOURCES += [
 SOURCES += [
     'CustomEvent.cpp',
     'EventStateManager.cpp',
 ]
 
 if CONFIG['MOZ_WEBSPEECH']:
     UNIFIED_SOURCES += ['SpeechRecognitionError.cpp']
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/docshell/base',
     '/dom/base',
     '/dom/html',
     '/dom/settings',
--- a/dom/fetch/moz.build
+++ b/dom/fetch/moz.build
@@ -39,12 +39,11 @@ LOCAL_INCLUDES += [
     # For HttpBaseChannel.h dependencies
     '/netwerk/base',
     # For nsDataHandler.h
     '/netwerk/protocol/data',
     # For HttpBaseChannel.h
     '/netwerk/protocol/http',
 ]
 
-FAIL_ON_WARNINGS = True
 FINAL_LIBRARY = 'xul'
 
 include('/ipc/chromium/chromium-config.mozbuild')
--- a/dom/filehandle/moz.build
+++ b/dom/filehandle/moz.build
@@ -21,18 +21,16 @@ UNIFIED_SOURCES += [
     'FileRequest.cpp',
     'FileService.cpp',
     'FileStreamWrappers.cpp',
     'MemoryStreams.cpp',
     'MetadataHelper.cpp',
     'MutableFile.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '../base',
 ]
 
 FINAL_LIBRARY = 'xul'
 
--- a/dom/filesystem/moz.build
+++ b/dom/filesystem/moz.build
@@ -37,10 +37,10 @@ IPDL_SOURCES += [
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
-if not CONFIG['CLANG_CXX']:
-    FAIL_ON_WARNINGS = True
+if CONFIG['CLANG_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/dom/fmradio/ipc/moz.build
+++ b/dom/fmradio/ipc/moz.build
@@ -13,18 +13,16 @@ EXPORTS.mozilla.dom += [
 
 UNIFIED_SOURCES += [
     'FMRadioChild.cpp',
     'FMRadioParent.cpp',
     'FMRadioRequestChild.cpp',
     'FMRadioRequestParent.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
--- a/dom/fmradio/moz.build
+++ b/dom/fmradio/moz.build
@@ -22,15 +22,13 @@ if CONFIG['MOZ_B2G_FM']:
 
     FINAL_LIBRARY = 'xul'
 
 IPDL_SOURCES += [
     'ipc/PFMRadio.ipdl',
     'ipc/PFMRadioRequest.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
     '../system/gonk',
 ]
 include('/ipc/chromium/chromium-config.mozbuild')
--- a/dom/gamepad/moz.build
+++ b/dom/gamepad/moz.build
@@ -38,18 +38,16 @@ elif CONFIG['MOZ_GAMEPAD_BACKEND'] == 'l
     UNIFIED_SOURCES += [
         'linux/LinuxGamepad.cpp'
     ]
 elif CONFIG['MOZ_GAMEPAD_BACKEND'] == 'android':
     UNIFIED_SOURCES += [
         'android/AndroidGamepad.cpp'
     ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 CFLAGS += CONFIG['GLIB_CFLAGS']
--- a/dom/geolocation/moz.build
+++ b/dom/geolocation/moz.build
@@ -16,18 +16,16 @@ SOURCES += [
 
 UNIFIED_SOURCES += [
     'MLSFallback.cpp',
     'nsGeoGridFuzzer.cpp',
     'nsGeolocationSettings.cpp',
     'nsGeoPosition.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/ipc',
 ]
 
--- a/dom/html/moz.build
+++ b/dom/html/moz.build
@@ -217,18 +217,16 @@ SOURCES += [
     'PluginDocument.cpp',
 ]
 
 EXTRA_COMPONENTS += [
     'htmlMenuBuilder.js',
     'htmlMenuBuilder.manifest'
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '/caps',
     '/docshell/base',
     '/dom/base',
     '/dom/canvas',
     '/dom/media/',
--- a/dom/icc/moz.build
+++ b/dom/icc/moz.build
@@ -43,17 +43,15 @@ IPDL_SOURCES += [
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['MOZ_B2G_RIL']:
     EXTRA_COMPONENTS += [
         'gonk/IccService.js',
         'gonk/IccService.manifest',
         'gonk/StkCmdFactory.js',
         'gonk/StkCmdFactory.manifest'
     ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/dom/system/gonk',
 ]
--- a/dom/indexedDB/moz.build
+++ b/dom/indexedDB/moz.build
@@ -82,18 +82,16 @@ IPDL_SOURCES += [
     'PBackgroundIDBVersionChangeTransaction.ipdl',
     'PIndexedDBPermissionRequest.ipdl',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/db/sqlite3/src',
     '/dom/base',
     '/dom/storage',
     '/dom/workers',
     '/ipc/glue',
     '/xpcom/build',
     '/xpcom/threads',
--- a/dom/inputport/moz.build
+++ b/dom/inputport/moz.build
@@ -39,10 +39,8 @@ XPIDL_MODULE = 'dom_inputport'
 
 MOCHITEST_MANIFESTS += ['test/mochitest/mochitest.ini']
 
 XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell/xpcshell.ini']
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
\ No newline at end of file
--- a/dom/ipc/moz.build
+++ b/dom/ipc/moz.build
@@ -107,18 +107,16 @@ IPDL_SOURCES += [
     'PMemoryReportRequest.ipdl',
     'PNuwa.ipdl',
     'PPluginWidget.ipdl',
     'PProcessHangMonitor.ipdl',
     'PScreenManager.ipdl',
     'PTabContext.ipdlh',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] == 'Darwin':
     USE_LIBS += [
         'mozsandbox',
     ]
--- a/dom/json/moz.build
+++ b/dom/json/moz.build
@@ -7,18 +7,16 @@
 EXPORTS += [
     'nsJSON.h',
 ]
 
 UNIFIED_SOURCES += [
     'nsJSON.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 FINAL_LIBRARY = 'xul'
 
 XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
--- a/dom/jsurl/moz.build
+++ b/dom/jsurl/moz.build
@@ -7,18 +7,16 @@
 EXPORTS += [
     'nsJSProtocolHandler.h',
 ]
 
 UNIFIED_SOURCES += [
     'nsJSProtocolHandler.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     "/dom/base",
     "/netwerk/base",
 ]
 
 FINAL_LIBRARY = 'xul'
 
 include('/ipc/chromium/chromium-config.mozbuild')
--- a/dom/mathml/moz.build
+++ b/dom/mathml/moz.build
@@ -4,17 +4,15 @@
 # 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/.
 
 UNIFIED_SOURCES += [
     'nsMathMLElement.cpp',
     'nsMathMLElementFactory.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
--- a/dom/media/android/moz.build
+++ b/dom/media/android/moz.build
@@ -20,10 +20,8 @@ UNIFIED_SOURCES += [
 ]
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/html',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/apple/moz.build
+++ b/dom/media/apple/moz.build
@@ -9,13 +9,11 @@ EXPORTS += [
     'AppleMP3Reader.h',
 ]
 
 UNIFIED_SOURCES += [
     'AppleDecoder.cpp',
     'AppleMP3Reader.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 OS_LIBS += ['-framework AudioToolbox']
--- a/dom/media/bridge/moz.build
+++ b/dom/media/bridge/moz.build
@@ -21,10 +21,8 @@ LOCAL_INCLUDES += [
     '/media/webrtc/',
     '/media/webrtc/signaling/src/common/time_profiling',
     '/media/webrtc/signaling/src/media-conduit',
     '/media/webrtc/signaling/src/mediapipeline',
     '/media/webrtc/signaling/src/peerconnection',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/compiledtest/moz.build
+++ b/dom/media/compiledtest/moz.build
@@ -4,17 +4,15 @@
 # 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/.
 
 GeckoCppUnitTests([
     'TestAudioBuffers',
     'TestAudioMixer'
 ])
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '..',
 ]
 
 USE_LIBS += [
     'lgpllibs',
 ]
--- a/dom/media/directshow/moz.build
+++ b/dom/media/directshow/moz.build
@@ -30,14 +30,12 @@ SOURCES += [
 if not CONFIG['MOZ_WEBRTC']:
     SOURCES += [
         '/media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseFilter.cpp',
         '/media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseInputPin.cpp',
         '/media/webrtc/trunk/webrtc/modules/video_capture/windows/BasePin.cpp',
         '/media/webrtc/trunk/webrtc/modules/video_capture/windows/MediaType.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/media/webrtc/trunk/webrtc/modules/video_capture/windows',
 ]
--- a/dom/media/eme/moz.build
+++ b/dom/media/eme/moz.build
@@ -43,10 +43,8 @@ if CONFIG['OS_ARCH'] == 'WINNT':
     UNIFIED_SOURCES += [
         'GMPVideoDecoderTrialCreator.cpp',
     ]
     EXPORTS.mozilla.dom += [
         'GMPVideoDecoderTrialCreator.h',
     ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/encoder/fmp4_muxer/moz.build
+++ b/dom/media/encoder/fmp4_muxer/moz.build
@@ -13,11 +13,9 @@ UNIFIED_SOURCES += [
     'AMRBox.cpp',
     'AVCBox.cpp',
     'ISOControl.cpp',
     'ISOMediaBoxes.cpp',
     'ISOMediaWriter.cpp',
     'MP4ESDS.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/media/encoder/moz.build
+++ b/dom/media/encoder/moz.build
@@ -33,18 +33,16 @@ if CONFIG['MOZ_WEBM_ENCODER']:
     EXPORTS += ['VorbisTrackEncoder.h',
                 'VP8TrackEncoder.h',
     ]
     UNIFIED_SOURCES += ['VorbisTrackEncoder.cpp',
                         'VP8TrackEncoder.cpp',
     ]
     LOCAL_INCLUDES += ['/media/libyuv/include']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 # These includes are from Android JB, for use of MediaCodec.
 LOCAL_INCLUDES += ['/ipc/chromium/src']
 CXXFLAGS += [
     '-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
         'frameworks/native/opengl/include',
         'frameworks/native/include',
--- a/dom/media/fmp4/moz.build
+++ b/dom/media/fmp4/moz.build
@@ -16,12 +16,10 @@ UNIFIED_SOURCES += [
 ]
 
 SOURCES += [
     'MP4Demuxer.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['MOZ_GONK_MEDIACODEC']:
     DEFINES['MOZ_GONK_MEDIACODEC'] = True
--- a/dom/media/gmp-plugin-openh264/moz.build
+++ b/dom/media/gmp-plugin-openh264/moz.build
@@ -17,10 +17,8 @@ if CONFIG['OS_ARCH'] == 'WINNT':
     OS_LIBS += [
         'ole32',
     ]
 
 USE_STATIC_LIBS = True
 NO_VISIBILITY_FLAGS = True
 # Don't use STL wrappers; this isn't Gecko code
 DISABLE_STL_WRAPPING = True
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/gmp-plugin/moz.build
+++ b/dom/media/gmp-plugin/moz.build
@@ -19,10 +19,8 @@ if CONFIG['OS_ARCH'] == 'WINNT':
     OS_LIBS += [
         'ole32',
     ]
 
 USE_STATIC_LIBS = True
 NO_VISIBILITY_FLAGS = True
 # Don't use STL wrappers; this isn't Gecko code
 DISABLE_STL_WRAPPING = True
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/gmp/moz.build
+++ b/dom/media/gmp/moz.build
@@ -128,18 +128,16 @@ IPDL_SOURCES += [
 ]
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
 # comment this out to use Unsafe Shmem for more performance
 DEFINES['GMP_SAFE_SHMEM'] = True
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 # media/mtransport so we work with --disable-webrtc
 LOCAL_INCLUDES += [
     '/media/mtransport',
     '/xpcom/base',
     '/xpcom/build',
--- a/dom/media/gmp/rlz/moz.build
+++ b/dom/media/gmp/rlz/moz.build
@@ -15,10 +15,10 @@ UNIFIED_SOURCES += [
     'lib/string_utils.cc',
     'win/lib/machine_id_win.cc',
 ]
 
 LOCAL_INCLUDES += [
     '..',
 ]
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/dom/media/gstreamer/moz.build
+++ b/dom/media/gstreamer/moz.build
@@ -23,18 +23,16 @@ if CONFIG['GST_API_VERSION'] == '1.0':
         'GStreamerAllocator.cpp',
     ]
 else:
     SOURCES += [
         'GStreamerMozVideoBuffer.cpp',
         'GStreamerReader-0.10.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/html',
 ]
 
 CFLAGS += CONFIG['GSTREAMER_CFLAGS']
 CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
--- a/dom/media/gtest/moz.build
+++ b/dom/media/gtest/moz.build
@@ -57,10 +57,8 @@ LOCAL_INCLUDES += [
     '/dom/media/encoder',
     '/dom/media/fmp4',
     '/dom/media/gmp',
     '/security/certverifier',
     '/security/pkix/include',
 ]
 
 FINAL_LIBRARY = 'xul-gtest'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/imagecapture/moz.build
+++ b/dom/media/imagecapture/moz.build
@@ -9,10 +9,8 @@ EXPORTS.mozilla.dom += [
 ]
 
 UNIFIED_SOURCES += [
     'CaptureTask.cpp',
     'ImageCapture.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/mediasink/moz.build
+++ b/dom/media/mediasink/moz.build
@@ -4,10 +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/.
 
 UNIFIED_SOURCES += [
     'DecodedAudioDataSink.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/mediasource/gtest/moz.build
+++ b/dom/media/mediasource/gtest/moz.build
@@ -9,10 +9,8 @@ UNIFIED_SOURCES += [
 ]
 
 LOCAL_INCLUDES += [
     '/dom/media',
     '/dom/media/mediasource',
 ]
 
 FINAL_LIBRARY = 'xul-gtest'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/mediasource/moz.build
+++ b/dom/media/mediasource/moz.build
@@ -38,11 +38,9 @@ UNIFIED_SOURCES += [
 
 TEST_DIRS += [
     'gtest',
 ]
 
 if CONFIG['MOZ_GONK_MEDIACODEC']:
     DEFINES['MOZ_GONK_MEDIACODEC'] = True
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/media/moz.build
+++ b/dom/media/moz.build
@@ -273,18 +273,16 @@ EXTRA_COMPONENTS += [
 ]
 
 EXTRA_JS_MODULES.media += [
     'IdpSandbox.jsm',
     'PeerConnectionIdp.jsm',
     'RTCStatsReport.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/caps',
     '/dom/base',
     '/dom/camera',
     '/layout/generic',
     '/layout/xul',
     '/netwerk/base',
 ]
--- a/dom/media/ogg/moz.build
+++ b/dom/media/ogg/moz.build
@@ -15,11 +15,9 @@ EXPORTS += [
 UNIFIED_SOURCES += [
     'OggCodecState.cpp',
     'OggDecoder.cpp',
     'OggReader.cpp',
     'OggWriter.cpp',
     'OpusParser.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/media/omx/moz.build
+++ b/dom/media/omx/moz.build
@@ -109,10 +109,8 @@ CXXFLAGS += [
         'frameworks/native/opengl/include',
         'frameworks/native/include',
         'hardware/libhardware/include/',
     ]
 ]
 
 if CONFIG['ANDROID_VERSION'] > '15':
     DEFINES['MOZ_OMX_WEBM_DECODER'] = True
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/platforms/agnostic/eme/moz.build
+++ b/dom/media/platforms/agnostic/eme/moz.build
@@ -16,10 +16,8 @@ UNIFIED_SOURCES += [
     'EMEDecoderModule.cpp',
     'EMEVideoDecoder.cpp',
     'SamplesWaitingForKey.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/platforms/agnostic/gmp/moz.build
+++ b/dom/media/platforms/agnostic/gmp/moz.build
@@ -17,10 +17,8 @@ UNIFIED_SOURCES += [
     'GMPVideoDecoder.cpp',
     'MediaDataDecoderProxy.cpp',
 ]
 
 # GMPVideoEncodedFrameImpl.h needs IPC
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/platforms/ffmpeg/libav53/moz.build
+++ b/dom/media/platforms/ffmpeg/libav53/moz.build
@@ -12,14 +12,12 @@ UNIFIED_SOURCES += [
 ]
 LOCAL_INCLUDES += [
     '..',
     'include',
 ]
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['CLANG_CXX']:
   CXXFLAGS += [
     '-Wno-unknown-attributes',
   ]
--- a/dom/media/platforms/ffmpeg/libav54/moz.build
+++ b/dom/media/platforms/ffmpeg/libav54/moz.build
@@ -12,14 +12,12 @@ UNIFIED_SOURCES += [
 ]
 LOCAL_INCLUDES += [
     '..',
     'include',
 ]
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['CLANG_CXX']:
   CXXFLAGS += [
     '-Wno-unknown-attributes',
   ]
--- a/dom/media/platforms/ffmpeg/libav55/moz.build
+++ b/dom/media/platforms/ffmpeg/libav55/moz.build
@@ -13,14 +13,12 @@ UNIFIED_SOURCES += [
 LOCAL_INCLUDES += [
     '..',
     'include',
 ]
 CXXFLAGS += [ '-Wno-deprecated-declarations' ]
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['CLANG_CXX']:
   CXXFLAGS += [
     '-Wno-unknown-attributes',
   ]
--- a/dom/media/platforms/gonk/moz.build
+++ b/dom/media/platforms/gonk/moz.build
@@ -28,14 +28,12 @@ include('/ipc/chromium/chromium-config.m
 if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
   CXXFLAGS += [
     '-Wno-error=attributes',
     '-Wno-error=multichar'
   ]
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 CXXFLAGS += [
     '-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
         'frameworks/native/opengl/include',]
 ]
--- a/dom/media/platforms/moz.build
+++ b/dom/media/platforms/moz.build
@@ -77,10 +77,8 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'andr
     EXPORTS += [
         'android/AndroidDecoderModule.h',
     ]
     UNIFIED_SOURCES += [
         'android/AndroidDecoderModule.cpp',
     ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/platforms/wmf/moz.build
+++ b/dom/media/platforms/wmf/moz.build
@@ -26,11 +26,9 @@ UNIFIED_SOURCES += [
 SOURCES += [
     'WMFUtils.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
--- a/dom/media/raw/moz.build
+++ b/dom/media/raw/moz.build
@@ -10,16 +10,14 @@ EXPORTS += [
     'RawStructs.h',
 ]
 
 UNIFIED_SOURCES += [
     'RawDecoder.cpp',
     'RawReader.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/html',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/media/systemservices/moz.build
+++ b/dom/media/systemservices/moz.build
@@ -64,10 +64,8 @@ IPDL_SOURCES += [
 # /dom/base needed for nsGlobalWindow.h in MediaChild.cpp
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/wave/moz.build
+++ b/dom/media/wave/moz.build
@@ -9,11 +9,9 @@ EXPORTS += [
     'WaveReader.h',
 ]
 
 UNIFIED_SOURCES += [
     'WaveDecoder.cpp',
     'WaveReader.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/media/webaudio/blink/moz.build
+++ b/dom/media/webaudio/blink/moz.build
@@ -26,10 +26,10 @@ UNIFIED_SOURCES += [
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/media/webaudio',
 ]
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/dom/media/webaudio/compiledtest/moz.build
+++ b/dom/media/webaudio/compiledtest/moz.build
@@ -3,13 +3,11 @@
 # 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/.
 
 GeckoCppUnitTests([
     'TestAudioEventTimeline',
 ])
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '..',
 ]
--- a/dom/media/webaudio/moz.build
+++ b/dom/media/webaudio/moz.build
@@ -105,17 +105,15 @@ UNIFIED_SOURCES += [
 
 if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['BUILD_ARM_NEON']:
     SOURCES += ['AudioNodeEngineNEON.cpp']
     SOURCES['AudioNodeEngineNEON.cpp'].flags += ['-mfpu=neon']
     LOCAL_INCLUDES += [
         '/media/openmax_dl/dl/api/'
     ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '..'
 ]
 
--- a/dom/media/webm/moz.build
+++ b/dom/media/webm/moz.build
@@ -30,11 +30,9 @@ if CONFIG['MOZ_FMP4'] and CONFIG['MOZ_WM
 if CONFIG['MOZ_WEBM_ENCODER']:
     EXPORTS += ['WebMWriter.h']
     UNIFIED_SOURCES += ['EbmlComposer.cpp',
                         'WebMWriter.cpp',
     ]
 
 CXXFLAGS += CONFIG['MOZ_LIBVPX_CFLAGS']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/media/webrtc/moz.build
+++ b/dom/media/webrtc/moz.build
@@ -83,10 +83,8 @@ if CONFIG['GNU_CC'] or CONFIG['CLANG_CL'
   ]
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['_MSC_VER']:
   CXXFLAGS += [
     '-wd4275', # non dll-interface class used as base for dll-interface class
   ]
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/webspeech/recognition/moz.build
+++ b/dom/media/webspeech/recognition/moz.build
@@ -62,10 +62,8 @@ LOCAL_INCLUDES += [
 if CONFIG['MOZ_WEBSPEECH_POCKETSPHINX']:
     LOCAL_INCLUDES += [
         '/media/pocketsphinx',
     ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/media/webspeech/synth/moz.build
+++ b/dom/media/webspeech/synth/moz.build
@@ -46,16 +46,14 @@ if CONFIG['MOZ_WEBSPEECH']:
     elif CONFIG['MOZ_SYNTH_PICO']:
         DIRS = ['pico']
 
 IPDL_SOURCES += [
     'ipc/PSpeechSynthesis.ipdl',
     'ipc/PSpeechSynthesisRequest.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     'ipc',
 ]
--- a/dom/media/webspeech/synth/pico/moz.build
+++ b/dom/media/webspeech/synth/pico/moz.build
@@ -3,12 +3,11 @@
 # 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/.
 
 UNIFIED_SOURCES += [
     'nsPicoService.cpp',
     'PicoModule.cpp'
 ]
-FAIL_ON_WARNINGS = True
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/messagechannel/moz.build
+++ b/dom/messagechannel/moz.build
@@ -32,9 +32,8 @@ LOCAL_INCLUDES += [
     '../base',
     '../events',
     '../workers',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-FAIL_ON_WARNINGS = True
--- a/dom/mobileconnection/moz.build
+++ b/dom/mobileconnection/moz.build
@@ -67,15 +67,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
             'gonk/MobileConnectionService.js',
             'gonk/MobileConnectionService.manifest',
         ]
 
 LOCAL_INCLUDES += [
     '/dom/system/gonk',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 XPIDL_MODULE = 'dom_mobileconnection'
--- a/dom/mobilemessage/moz.build
+++ b/dom/mobilemessage/moz.build
@@ -68,17 +68,15 @@ UNIFIED_SOURCES += [
 
 IPDL_SOURCES += [
     'ipc/PMobileMessageCursor.ipdl',
     'ipc/PSms.ipdl',
     'ipc/PSmsRequest.ipdl',
     'ipc/SmsTypes.ipdlh',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/network/moz.build
+++ b/dom/network/moz.build
@@ -74,13 +74,11 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
     ]
 
 IPDL_SOURCES += [
     'PTCPServerSocket.ipdl',
     'PTCPSocket.ipdl',
     'PUDPSocket.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/nfc/moz.build
+++ b/dom/nfc/moz.build
@@ -43,12 +43,11 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
     ]
     EXTRA_JS_MODULES += [
         'gonk/nfc_consts.js',
     ]
     XPCSHELL_TESTS_MANIFESTS += [
         'tests/unit/xpcshell.ini'
     ]
 
-FAIL_ON_WARNINGS = True
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/notification/moz.build
+++ b/dom/notification/moz.build
@@ -22,18 +22,16 @@ EXPORTS.mozilla.dom += [
 ]
 
 UNIFIED_SOURCES += [
     'DesktopNotification.cpp',
     'Notification.cpp',
     'NotificationEvent.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/ipc',
     '/dom/workers',
 ]
--- a/dom/offline/moz.build
+++ b/dom/offline/moz.build
@@ -6,15 +6,13 @@
 
 EXPORTS += [
     'nsDOMOfflineResourceList.h',
 ]
 UNIFIED_SOURCES += [
     'nsDOMOfflineResourceList.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/permission/moz.build
+++ b/dom/permission/moz.build
@@ -41,11 +41,9 @@ if CONFIG['MOZ_B2G_BT']:
     MOCHITEST_MANIFESTS += ['tests/mochitest-bt.ini']
 
 if CONFIG['MOZ_WEBSMS_BACKEND']:
     MOCHITEST_MANIFESTS += ['tests/mochitest-websms.ini']
 
 if CONFIG['MOZ_TIME_MANAGER']:
     MOCHITEST_MANIFESTS += ['tests/mochitest-time.ini']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/plugins/base/android/moz.build
+++ b/dom/plugins/base/android/moz.build
@@ -18,18 +18,16 @@ SOURCES += [
     'ANPNativeWindow.cpp',
     'ANPOpenGL.cpp',
     'ANPSurface.cpp',
     'ANPSystem.cpp',
     'ANPVideo.cpp',
     'ANPWindow.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/plugins/base',
     '/gfx/gl',
     '/widget',
     '/widget/android',
--- a/dom/plugins/base/moz.build
+++ b/dom/plugins/base/moz.build
@@ -81,18 +81,16 @@ else:
         UNIFIED_SOURCES += [
             'nsPluginNativeWindowQt.cpp',
         ]
     else:
         UNIFIED_SOURCES += [
             'nsPluginNativeWindow.cpp',
         ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/plugins/ipc',
     '/layout/generic',
     '/layout/xul',
     '/netwerk/base',
     '/widget',
     '/widget/android',
--- a/dom/plugins/ipc/hangui/moz.build
+++ b/dom/plugins/ipc/hangui/moz.build
@@ -1,16 +1,14 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
-FAIL_ON_WARNINGS = True
-
 Program('plugin-hang-ui')
 
 UNIFIED_SOURCES += [
     'MiniShmChild.cpp',
     'PluginHangUIChild.cpp',
 ]
 include('/ipc/chromium/chromium-config.mozbuild')
 
--- a/dom/plugins/ipc/interpose/moz.build
+++ b/dom/plugins/ipc/interpose/moz.build
@@ -9,11 +9,9 @@ SharedLibrary('plugin_child_interpose')
 UNIFIED_SOURCES += [ "%s.mm" % (LIBRARY_NAME) ]
 
 UNIFIED_SOURCES += [
     'plugin_child_quirks.mm',
 ]
 
 OS_LIBS += ['-framework Carbon']
 
-FAIL_ON_WARNINGS = True
-
 DIST_INSTALL = True
--- a/dom/plugins/ipc/moz.build
+++ b/dom/plugins/ipc/moz.build
@@ -114,18 +114,16 @@ IPDL_SOURCES += [
     'PPluginInstance.ipdl',
     'PPluginModule.ipdl',
     'PPluginScriptableObject.ipdl',
     'PPluginStream.ipdl',
     'PPluginSurface.ipdl',
     'PStreamNotify.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../base',
     '/xpcom/base/',
 ]
 
--- a/dom/plugins/test/testplugin/moz.build
+++ b/dom/plugins/test/testplugin/moz.build
@@ -3,12 +3,13 @@
 # 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/.
 
 DIRS += ['secondplugin', 'javaplugin', 'thirdplugin', 'flashplugin']
 
 SharedLibrary('nptest')
 
-FAIL_ON_WARNINGS = not CONFIG['_MSC_VER']
+if CONFIG['_MSC_VER']:
+    ALLOW_COMPILER_WARNINGS = True
 
 relative_path = '.'
 include('testplugin.mozbuild')
--- a/dom/power/moz.build
+++ b/dom/power/moz.build
@@ -22,16 +22,14 @@ EXPORTS.mozilla.dom.power += [
 ]
 
 UNIFIED_SOURCES += [
     'PowerManager.cpp',
     'PowerManagerService.cpp',
     'WakeLock.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
 BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
--- a/dom/presentation/moz.build
+++ b/dom/presentation/moz.build
@@ -45,13 +45,11 @@ EXTRA_JS_MODULES += [
     'PresentationDeviceInfoManager.jsm',
 ]
 
 IPDL_SOURCES += [
     'ipc/PPresentation.ipdl',
     'ipc/PPresentationRequest.ipdl'
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/presentation/provider/moz.build
+++ b/dom/presentation/provider/moz.build
@@ -9,12 +9,10 @@ EXTRA_COMPONENTS += [
     'TCPPresentationServer.js'
 ]
 
 UNIFIED_SOURCES += [
     'MulticastDNSDeviceProvider.cpp',
     'PresentationDeviceProviderModule.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 FINAL_LIBRARY = 'xul'
--- a/dom/promise/moz.build
+++ b/dom/promise/moz.build
@@ -15,18 +15,16 @@ EXPORTS.mozilla.dom += [
 
 UNIFIED_SOURCES += [
     'AbortablePromise.cpp',
     'Promise.cpp',
     'PromiseCallback.cpp',
     'PromiseDebugging.cpp'
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
     '../ipc',
     '../workers',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
--- a/dom/push/moz.build
+++ b/dom/push/moz.build
@@ -36,15 +36,13 @@ EXPORTS.mozilla.dom += [
 
 UNIFIED_SOURCES += [
     'PushManager.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../workers',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/quota/moz.build
+++ b/dom/quota/moz.build
@@ -23,17 +23,15 @@ EXPORTS.mozilla.dom.quota += [
     'Utilities.h',
 ]
 
 UNIFIED_SOURCES += [
     'FileStreams.cpp',
     'QuotaManager.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/caps',
 ]
 
--- a/dom/requestsync/moz.build
+++ b/dom/requestsync/moz.build
@@ -23,10 +23,9 @@ EXTRA_JS_MODULES += [
 ]
 
 SOURCES += [
     'RequestSyncWifiService.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
-FAIL_ON_WARNINGS = True
 FINAL_LIBRARY = 'xul'
--- a/dom/secureelement/moz.build
+++ b/dom/secureelement/moz.build
@@ -35,12 +35,11 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
         'tests/unit/xpcshell.ini'
     ]
     if CONFIG['MOZ_B2G_RIL']:
         EXTRA_COMPONENTS += [
             'gonk/UiccConnector.js',
             'gonk/UiccConnector.manifest',
         ]
 
-FAIL_ON_WARNINGS = True
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/security/moz.build
+++ b/dom/security/moz.build
@@ -28,18 +28,16 @@ UNIFIED_SOURCES += [
     'nsCSPParser.cpp',
     'nsCSPService.cpp',
     'nsCSPUtils.cpp',
     'nsMixedContentBlocker.cpp',
     'SRICheck.cpp',
     'SRIMetadata.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/caps',
     '/netwerk/base',
 ]
 
 if CONFIG['GNU_CC']:
     CFLAGS += ['-Wshadow', '-Wformat-security']
--- a/dom/smil/moz.build
+++ b/dom/smil/moz.build
@@ -57,18 +57,16 @@ UNIFIED_SOURCES += [
     'nsSMILValue.cpp',
     'SMILBoolType.cpp',
     'SMILEnumType.cpp',
     'SMILIntegerType.cpp',
     'SMILStringType.cpp',
     'TimeEvent.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/svg',
     '/layout/base',
     '/layout/style',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/speakermanager/moz.build
+++ b/dom/speakermanager/moz.build
@@ -13,13 +13,11 @@ EXPORTS += [
 ]
 
 UNIFIED_SOURCES += [
     'SpeakerManager.cpp',
     'SpeakerManagerService.cpp',
     'SpeakerManagerServiceChild.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/storage/moz.build
+++ b/dom/storage/moz.build
@@ -17,18 +17,16 @@ UNIFIED_SOURCES += [
     'DOMStorageManager.cpp',
     'DOMStorageObserver.cpp',
 ]
 
 IPDL_SOURCES += [
     'PStorage.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
 
 if CONFIG['ENABLE_TESTS']:
--- a/dom/svg/moz.build
+++ b/dom/svg/moz.build
@@ -244,18 +244,16 @@ UNIFIED_SOURCES += [
     'SVGTransformListSMILType.cpp',
     'SVGTSpanElement.cpp',
     'SVGUseElement.cpp',
     'SVGViewBoxSMILType.cpp',
     'SVGViewElement.cpp',
     'SVGZoomEvent.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom',
     '/dom/base',
     '/dom/html',
     '/dom/smil',
--- a/dom/system/android/moz.build
+++ b/dom/system/android/moz.build
@@ -4,17 +4,15 @@
 # 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/.
 
 SOURCES += [
     'AndroidLocationProvider.cpp',
     'nsHapticFeedback.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/geolocation',
 ]
 
--- a/dom/system/gonk/moz.build
+++ b/dom/system/gonk/moz.build
@@ -108,18 +108,16 @@ if CONFIG['MOZ_B2G_RIL']:
     if not CONFIG['DISABLE_MOZ_RIL_GEOLOC']:
         EXTRA_COMPONENTS += [
             'DataCallInterfaceService.js',
             'DataCallInterfaceService.manifest',
             'RadioInterfaceLayer.js',
             'RadioInterfaceLayer.manifest',
         ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/bluetooth/common',
     '/dom/geolocation',
     '/dom/wifi',
 ]
--- a/dom/system/mac/moz.build
+++ b/dom/system/mac/moz.build
@@ -1,17 +1,15 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
 SOURCES += ['CoreLocationLocationProvider.mm']
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/geolocation',
 ]
 
--- a/dom/system/moz.build
+++ b/dom/system/moz.build
@@ -43,18 +43,16 @@ EXTRA_COMPONENTS += [
     'SystemUpdate.manifest',
     'SystemUpdateManager.js',
 ]
 
 EXTRA_JS_MODULES += [
     'SystemUpdateService.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 # We fire the nsDOMDeviceAcceleration
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/bindings',
     '/js/xpconnect/loader',
--- a/dom/system/qt/moz.build
+++ b/dom/system/qt/moz.build
@@ -16,13 +16,11 @@ if CONFIG['MOZ_ENABLE_QT5GEOPOSITION']:
         '/dom/geolocation',
     ]
 
 if CONFIG['MOZ_ENABLE_QT5FEEDBACK']:
     SOURCES += [
         'QtHapticFeedback.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/system/windows/moz.build
+++ b/dom/system/windows/moz.build
@@ -8,11 +8,9 @@ SOURCES += [
     'nsHapticFeedback.cpp',
     'WindowsLocationProvider.cpp'
 ]
 
 LOCAL_INCLUDES += [
     '/dom/geolocation'
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/dom/telephony/moz.build
+++ b/dom/telephony/moz.build
@@ -71,12 +71,11 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
             'gonk/TelephonyService.js',
             'gonk/TelephonyService.manifest',
         ]
     EXTRA_JS_MODULES += [
         'gonk/DialNumberUtils.jsm',
         'gonk/TelephonyUtils.jsm',
     ]
 
-FAIL_ON_WARNINGS = True
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/time/moz.build
+++ b/dom/time/moz.build
@@ -19,13 +19,11 @@ EXPORTS.mozilla.dom.time += [
 
 UNIFIED_SOURCES += [
     'DateCacheCleaner.cpp',
     'TimeChangeObserver.cpp',
     'TimeManager.cpp',
     'TimeService.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/tv/moz.build
+++ b/dom/tv/moz.build
@@ -40,10 +40,8 @@ XPIDL_MODULE = 'dom_tv'
 
 MOCHITEST_MANIFESTS += ['test/mochitest/mochitest.ini']
 
 XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell/xpcshell.ini']
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/voicemail/moz.build
+++ b/dom/voicemail/moz.build
@@ -39,17 +39,15 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
         'gonk/nsIGonkVoicemailService.idl',
     ]
     if not CONFIG['DISABLE_MOZ_RIL_GEOLOC']:
         EXTRA_COMPONENTS += [
             'gonk/VoicemailService.js',
             'gonk/VoicemailService.manifest',
         ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/vr/moz.build
+++ b/dom/vr/moz.build
@@ -7,16 +7,14 @@
 EXPORTS.mozilla.dom += [
     'VRDevice.h',
     ]
 
 UNIFIED_SOURCES = [
     'VRDevice.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base'
 ]
--- a/dom/wifi/moz.build
+++ b/dom/wifi/moz.build
@@ -33,10 +33,8 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
     UNIFIED_SOURCES = [
         'WifiCertService.cpp',
         'WifiHotspotUtils.cpp',
         'WifiProxyService.cpp',
         'WifiUtils.cpp',
     ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/dom/workers/moz.build
+++ b/dom/workers/moz.build
@@ -88,18 +88,16 @@ UNIFIED_SOURCES += [
     'XMLHttpRequestUpload.cpp',
 ]
 
 IPDL_SOURCES += [
     'PServiceWorkerManager.ipdl',
     'ServiceWorkerRegistrarTypes.ipdlh',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
     '../system',
     '/dom/base',
     '/xpcom/build',
     '/xpcom/threads',
 ]
 
--- a/dom/workers/test/gtest/moz.build
+++ b/dom/workers/test/gtest/moz.build
@@ -5,9 +5,12 @@
 # file, you can obtain one at http://mozilla.org/MPL/2.0/.
 
 UNIFIED_SOURCES = [
     'TestReadWrite.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul-gtest'
--- a/dom/xbl/moz.build
+++ b/dom/xbl/moz.build
@@ -31,18 +31,16 @@ UNIFIED_SOURCES += [
     'nsXBLPrototypeResources.cpp',
     'nsXBLResourceLoader.cpp',
     'nsXBLSerialize.cpp',
     'nsXBLService.cpp',
     'nsXBLWindowKeyHandler.cpp',
     'XBLChildrenElement.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/html',
     '/dom/xml',
     '/dom/xul',
     '/layout/style',
 ]
 
--- a/dom/xml/moz.build
+++ b/dom/xml/moz.build
@@ -29,18 +29,16 @@ UNIFIED_SOURCES += [
     'ProcessingInstruction.cpp',
     'XMLDocument.cpp',
     'XMLStylesheetProcessingInstruction.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/caps',
     '/dom/base',
     '/dom/html',
     '/dom/xul',
     '/layout/style',
--- a/dom/xslt/base/moz.build
+++ b/dom/xslt/base/moz.build
@@ -8,18 +8,16 @@ UNIFIED_SOURCES += [
     'txDouble.cpp',
     'txExpandedName.cpp',
     'txExpandedNameMap.cpp',
     'txList.cpp',
     'txNamespaceMap.cpp',
     'txURIUtils.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '..',
     '../xml',
     '../xpath',
     '../xslt',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/xslt/xml/moz.build
+++ b/dom/xslt/xml/moz.build
@@ -7,18 +7,16 @@
 UNIFIED_SOURCES += [
     'txXMLParser.cpp',
     'txXMLUtils.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
     '../xpath',
     '../xslt',
     '/dom/base',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/xslt/xpath/moz.build
+++ b/dom/xslt/xpath/moz.build
@@ -45,17 +45,15 @@ UNIFIED_SOURCES += [
     'txVariableRefExpr.cpp',
     'txXPathOptimizer.cpp',
     'txXPCOMExtensionFunction.cpp',
     'XPathEvaluator.cpp',
     'XPathExpression.cpp',
     'XPathResult.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '../base',
     '../xml',
     '../xslt',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/dom/xslt/xslt/moz.build
+++ b/dom/xslt/xslt/moz.build
@@ -41,18 +41,16 @@ UNIFIED_SOURCES += [
     'txXSLTProcessor.cpp',
 ]
 
 EXTRA_COMPONENTS += [
     'txEXSLTRegExFunctions.js',
     'txEXSLTRegExFunctions.manifest',
 ]
 
-FAIL_ON_WARNINGS = True
-
 # For nsAutoJSString
 LOCAL_INCLUDES += ["/dom/base"]
 
 LOCAL_INCLUDES += [
     '../base',
     '../xml',
     '../xpath',
     '/dom/base',
--- a/dom/xul/moz.build
+++ b/dom/xul/moz.build
@@ -35,18 +35,16 @@ XPIDL_SOURCES += [
 ]
 
 XPIDL_MODULE = 'xul'
 
 UNIFIED_SOURCES += [
     'nsXULControllers.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/docshell/base',
     '/dom/base',
     '/dom/html',
     '/dom/xbl',
     '/dom/xml',
     '/dom/xul/templates',
     '/layout/base',
--- a/dom/xul/templates/moz.build
+++ b/dom/xul/templates/moz.build
@@ -48,10 +48,8 @@ UNIFIED_SOURCES += [
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/xul',
     '/layout/xul/tree/',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/editor/composer/moz.build
+++ b/editor/composer/moz.build
@@ -20,18 +20,16 @@ UNIFIED_SOURCES += [
     'nsComposerController.cpp',
     'nsComposerDocumentCommands.cpp',
     'nsComposerRegistration.cpp',
     'nsComposeTxtSrvFilter.cpp',
     'nsEditingSession.cpp',
     'nsEditorSpellCheck.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 RESOURCE_FILES += [
     'res/EditorOverride.css',
     'res/grabber.gif',
     'res/table-add-column-after-active.gif',
     'res/table-add-column-after-hover.gif',
     'res/table-add-column-after.gif',
     'res/table-add-column-before-active.gif',
--- a/editor/libeditor/moz.build
+++ b/editor/libeditor/moz.build
@@ -53,18 +53,16 @@ UNIFIED_SOURCES += [
     'nsWSRunObject.cpp',
     'PlaceholderTxn.cpp',
     'SetDocTitleTxn.cpp',
     'SplitNodeTxn.cpp',
     'TextEditorTest.cpp',
     'TypeInState.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/dom/base',
     '/editor/txmgr',
     '/extensions/spellcheck/src',
     '/layout/generic',
     '/layout/style',
     '/layout/tables',
     '/layout/xul',
--- a/editor/txmgr/moz.build
+++ b/editor/txmgr/moz.build
@@ -22,11 +22,9 @@ EXPORTS += [
 UNIFIED_SOURCES += [
     'nsTransactionItem.cpp',
     'nsTransactionList.cpp',
     'nsTransactionManager.cpp',
     'nsTransactionManagerFactory.cpp',
     'nsTransactionStack.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/editor/txmgr/tests/moz.build
+++ b/editor/txmgr/tests/moz.build
@@ -2,10 +2,8 @@
 # vim: set filetype=python:
 # 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/.
 
 GeckoCppUnitTests([
     'TestTXMgr',
 ])
-
-FAIL_ON_WARNINGS = True
--- a/editor/txtsvc/moz.build
+++ b/editor/txtsvc/moz.build
@@ -18,11 +18,9 @@ EXPORTS += [
     'nsTextServicesCID.h',
 ]
 
 UNIFIED_SOURCES += [
     'nsFilteredContentIterator.cpp',
     'nsTextServicesDocument.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/browser/build/moz.build
+++ b/embedding/browser/build/moz.build
@@ -3,15 +3,13 @@
 # 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/.
 
 SOURCES += [
     'nsWebBrowserModule.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '..',
 ]
 
--- a/embedding/browser/moz.build
+++ b/embedding/browser/moz.build
@@ -41,15 +41,13 @@ UNIFIED_SOURCES += [
     'nsCommandHandler.cpp',
     'nsContextMenuInfo.cpp',
     'nsDocShellTreeOwner.cpp',
     'nsEmbedStream.cpp',
     'nsWebBrowser.cpp',
     'nsWebBrowserContentPolicy.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/svg',
 ]
--- a/embedding/components/appstartup/moz.build
+++ b/embedding/components/appstartup/moz.build
@@ -7,11 +7,9 @@
 EXPORTS += [
     'nsIAppStartupNotifier.h',
 ]
 
 SOURCES += [
     'nsAppStartupNotifier.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/components/build/moz.build
+++ b/embedding/components/build/moz.build
@@ -3,18 +3,16 @@
 # 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/.
 
 SOURCES += [
     'nsEmbeddingModule.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../appstartup',
     '../commandhandler',
     '../find',
     '../printingui/ipc',
     '../webbrowserpersist',
     '../windowwatcher',
--- a/embedding/components/commandhandler/moz.build
+++ b/embedding/components/commandhandler/moz.build
@@ -18,11 +18,9 @@ XPIDL_MODULE = 'commandhandler'
 UNIFIED_SOURCES += [
     'nsBaseCommandController.cpp',
     'nsCommandGroup.cpp',
     'nsCommandManager.cpp',
     'nsCommandParams.cpp',
     'nsControllerCommandTable.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/components/find/moz.build
+++ b/embedding/components/find/moz.build
@@ -11,11 +11,9 @@ XPIDL_SOURCES += [
 
 XPIDL_MODULE = 'find'
 
 UNIFIED_SOURCES += [
     'nsFind.cpp',
     'nsWebBrowserFind.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/components/printingui/ipc/moz.build
+++ b/embedding/components/printingui/ipc/moz.build
@@ -27,11 +27,9 @@ IPDL_SOURCES += [
     'PPrinting.ipdl',
     'PPrintingTypes.ipdlh',
     'PPrintProgressDialog.ipdl',
     'PPrintSettingsDialog.ipdl',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/components/printingui/mac/moz.build
+++ b/embedding/components/printingui/mac/moz.build
@@ -8,11 +8,9 @@ UNIFIED_SOURCES += [
     'nsPrintProgress.cpp',
     'nsPrintProgressParams.cpp',
 ]
 
 SOURCES += [
     'nsPrintingPromptServiceX.mm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/components/printingui/unixshared/moz.build
+++ b/embedding/components/printingui/unixshared/moz.build
@@ -5,11 +5,9 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 UNIFIED_SOURCES += [
     'nsPrintingPromptService.cpp',
     'nsPrintProgress.cpp',
     'nsPrintProgressParams.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/components/printingui/win/moz.build
+++ b/embedding/components/printingui/win/moz.build
@@ -10,11 +10,9 @@ UNIFIED_SOURCES += [
     'nsPrintProgress.cpp',
     'nsPrintProgressParams.cpp',
 ]
 
 EXPORTS += [
     'nsPrintDialogUtil.h',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/embedding/components/webbrowserpersist/moz.build
+++ b/embedding/components/webbrowserpersist/moz.build
@@ -32,17 +32,15 @@ SOURCES += [
 ]
 
 EXPORTS.mozilla += [
     'WebBrowserPersistDocumentChild.h',
     'WebBrowserPersistDocumentParent.h',
     'WebBrowserPersistLocalDocument.h',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/html',
 ]
--- a/embedding/components/windowwatcher/moz.build
+++ b/embedding/components/windowwatcher/moz.build
@@ -29,15 +29,13 @@ EXPORTS += [
     'nsWindowWatcher.h',
 ]
 
 if CONFIG['MOZ_XUL']:
     UNIFIED_SOURCES += [
         'nsDialogParamBlock.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 # For nsJSUtils
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
--- a/extensions/auth/moz.build
+++ b/extensions/auth/moz.build
@@ -20,10 +20,8 @@ if CONFIG['OS_ARCH'] == 'WINNT':
     ]
     DEFINES['USE_SSPI'] = True
 else:
     UNIFIED_SOURCES += [
         'nsAuthSambaNTLM.cpp',
     ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/extensions/cookie/moz.build
+++ b/extensions/cookie/moz.build
@@ -20,10 +20,8 @@ UNIFIED_SOURCES += [
     'nsPermission.cpp',
     'nsPermissionManager.cpp',
     'nsPopupWindowManager.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/extensions/gio/moz.build
+++ b/extensions/gio/moz.build
@@ -3,13 +3,11 @@
 # 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/.
 
 SOURCES += [
     'nsGIOProtocolHandler.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 CXXFLAGS += CONFIG['MOZ_GIO_CFLAGS']
--- a/extensions/permissions/moz.build
+++ b/extensions/permissions/moz.build
@@ -5,10 +5,8 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 UNIFIED_SOURCES += [
     'nsContentBlocker.cpp',
     'nsModuleFactory.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/extensions/pref/autoconfig/src/moz.build
+++ b/extensions/pref/autoconfig/src/moz.build
@@ -7,10 +7,8 @@
 UNIFIED_SOURCES += [
     'nsAutoConfig.cpp',
     'nsConfigFactory.cpp',
     'nsJSConfigTriggers.cpp',
     'nsReadConfig.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/extensions/spellcheck/hunspell/src/moz.build
+++ b/extensions/spellcheck/hunspell/src/moz.build
@@ -34,19 +34,20 @@ else:
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/editor/libeditor',
     '/extensions/spellcheck/src',
 ]
 
-# Suppress warnings in third-party code.
-if CONFIG['CLANG_CXX']:
-    CXXFLAGS += ['-Wno-unused-private-field']
+# XXX: This directory is a mix of Mozilla code and third-party code. We should
+# put the Mozilla code in a separate directory and disallow compiler warnings
+# there (bug 1200065). Until then, allow warnings for all of the code.
+ALLOW_COMPILER_WARNINGS = True
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 IPDL_SOURCES = [
     'PRemoteSpellcheckEngine.ipdl',
 ]
 
 EXPORTS.mozilla += [
--- a/extensions/spellcheck/src/moz.build
+++ b/extensions/spellcheck/src/moz.build
@@ -21,10 +21,8 @@ FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../hunspell/src',
     '/dom/base',
     '/editor/libeditor',
 ]
 EXPORTS.mozilla += [
      'mozSpellChecker.h',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/extensions/universalchardet/src/base/moz.build
+++ b/extensions/universalchardet/src/base/moz.build
@@ -15,10 +15,8 @@ UNIFIED_SOURCES += [
     'nsMBCSGroupProber.cpp',
     'nsMBCSSM.cpp',
     'nsSJISProber.cpp',
     'nsUniversalDetector.cpp',
     'nsUTF8Prober.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/extensions/universalchardet/src/xpcom/moz.build
+++ b/extensions/universalchardet/src/xpcom/moz.build
@@ -9,10 +9,8 @@ UNIFIED_SOURCES += [
     'nsUniversalCharDetModule.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../base',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/gfx/2d/moz.build
+++ b/gfx/2d/moz.build
@@ -151,18 +151,16 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
         'MacIOSurface.cpp',
         'QuartzSupport.mm',
     ]
 
 if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['BUILD_ARM_NEON']:
     SOURCES += ['BlurNEON.cpp']
     SOURCES['BlurNEON.cpp'].flags += ['-mfpu=neon']
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 for var in ('USE_CAIRO', 'MOZ2D_HAS_MOZ_CAIRO'):
     DEFINES[var] = True
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk2', 'gtk3', 'gonk', 'qt'):
--- a/gfx/angle/moz.build
+++ b/gfx/angle/moz.build
@@ -129,9 +129,11 @@ LOCAL_INCLUDES += [ 'include', 'src' ]
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
 # This tells ANGLE to build the translator with declspec(dllexport) on Windows
 # which we need to get these symbols exported from gkmedias
 DEFINES['COMPONENT_BUILD'] = True
 DEFINES['ANGLE_TRANSLATOR_IMPLEMENTATION'] = True
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
--- a/gfx/angle/src/libGLESv2/moz.build
+++ b/gfx/angle/src/libGLESv2/moz.build
@@ -206,17 +206,17 @@ if CONFIG['MOZ_HAS_WINSDK_WITH_D3D']:
 DEFINES['ANGLE_COMPILE_OPTIMIZATION_LEVEL'] = 'D3DCOMPILE_OPTIMIZATION_LEVEL1'
 DEFINES['ANGLE_NO_EXCEPTIONS'] = True
 
 # We need these defined to nothing so that we don't get bogus dllimport declspecs
 DEFINES['GL_APICALL'] = ""
 DEFINES['GL_GLEXT_PROTOTYPES'] = ""
 DEFINES['EGLAPI'] = ""
 
-
+ALLOW_COMPILER_WARNINGS = True
 
 LOCAL_INCLUDES += [ '../../include', '../../src' ]
 
 if CONFIG['MOZ_HAS_WINSDK_WITH_D3D']:
   OS_LIBS += [ 'd3d9', 'dxguid' ]
 else:
   EXTRA_DSO_LDOPTS += [
     '\'%s/lib/%s/d3d9.lib\'' % (CONFIG['MOZ_DIRECTX_SDK_PATH'], CONFIG['MOZ_D3D_CPU_SUFFIX']),
--- a/gfx/cairo/cairo/src/moz.build
+++ b/gfx/cairo/cairo/src/moz.build
@@ -180,16 +180,18 @@ UNIFIED_SOURCES += [
     'cairo-traps.c',
     'cairo-unicode.c',
     'cairo-user-font.c',
     'cairo-version.c',
     'cairo-wideint.c',
     'cairo.c',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 DEFINES['PACKAGE_VERSION'] = '"moz"'
 DEFINES['PACKAGE_BUGREPORT'] = '"http://bugzilla.mozilla.org/"'
 
 for var in ('CAIRO_HAS_PTHREAD', '_GNU_SOURCE'):
     DEFINES[var] = True
 
--- a/gfx/cairo/libpixman/src/moz.build
+++ b/gfx/cairo/libpixman/src/moz.build
@@ -53,16 +53,18 @@ SOURCES += [
     'pixman-region32.c',
     'pixman-solid-fill.c',
     'pixman-trap.c',
     'pixman-utils.c',
     'pixman-x86.c',
     'pixman.c',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 LOCAL_INCLUDES += [
     '../../cairo/src',
 ]
 
 if CONFIG['MOZ_USE_PTHREADS']:
     DEFINES['HAVE_PTHREAD_SETSPECIFIC'] = True
 
--- a/gfx/gl/moz.build
+++ b/gfx/gl/moz.build
@@ -139,18 +139,16 @@ UNIFIED_SOURCES += [
     'SharedSurface.cpp',
     'SharedSurfaceEGL.cpp',
     'SharedSurfaceGL.cpp',
     'SurfaceTypes.cpp',
     'TextureGarbageBin.cpp',
     'TextureImageEGL.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['MOZ_D3DCOMPILER_VISTA_DLL']:
     DEFINES['MOZ_D3DCOMPILER_VISTA_DLL'] = CONFIG['MOZ_D3DCOMPILER_VISTA_DLL']
 if CONFIG['MOZ_D3DCOMPILER_XP_DLL']:
     DEFINES['MOZ_D3DCOMPILER_XP_DLL'] = CONFIG['MOZ_D3DCOMPILER_XP_DLL']
--- a/gfx/graphite2/src/moz.build
+++ b/gfx/graphite2/src/moz.build
@@ -62,16 +62,18 @@ UNIFIED_SOURCES += [
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
     DEFINES['GRAPHITE2_EXPORTING'] = True
 else:
     # tell graphite2 not to export symbols, we'll be linking it directly with
     # thebes
     DEFINES['GRAPHITE2_STATIC'] = True
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 DEFINES['PACKAGE_VERSION'] = '"moz"'
 DEFINES['PACKAGE_BUGREPORT'] = '"http://bugzilla.mozilla.org/"'
 
 # disable features we don't need in the graphite2 code, to reduce code size
 for var in ('GRAPHITE2_NFILEFACE', 'GRAPHITE2_NTRACING', 'GRAPHITE2_NSEGCACHE'):
     DEFINES[var] = True
--- a/gfx/harfbuzz/src/moz.build
+++ b/gfx/harfbuzz/src/moz.build
@@ -54,15 +54,17 @@ UNIFIED_SOURCES += [
     'hb-ot-tag.cc',
     'hb-set.cc',
     'hb-shape.cc',
     'hb-shaper.cc',
     'hb-unicode.cc',
     'hb-warning.cc',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 DEFINES['PACKAGE_VERSION'] = '"moz"'
 DEFINES['PACKAGE_BUGREPORT'] = '"http://bugzilla.mozilla.org/"'
 DEFINES['HAVE_OT'] = 1
 DEFINES['HB_NO_MT'] = True
 DEFINES['HB_NO_UNICODE_FUNCS'] = True
--- a/gfx/ipc/moz.build
+++ b/gfx/ipc/moz.build
@@ -31,10 +31,8 @@ IPDL_SOURCES = [
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
 CXXFLAGS += CONFIG['TK_CFLAGS']
-
-FAIL_ON_WARNINGS = True
--- a/gfx/layers/moz.build
+++ b/gfx/layers/moz.build
@@ -376,18 +376,16 @@ IPDL_SOURCES = [
     'ipc/PImageBridge.ipdl',
     'ipc/PImageContainer.ipdl',
     'ipc/PLayer.ipdl',
     'ipc/PLayerTransaction.ipdl',
     'ipc/PSharedBufferManager.ipdl',
     'ipc/PTexture.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '/docshell/base',  # for nsDocShell.h
     '/layout/base',    # for TouchManager.h
     '/layout/generic', # for nsTextFrame.h
 ]
 
--- a/gfx/ots/src/moz.build
+++ b/gfx/ots/src/moz.build
@@ -45,16 +45,18 @@ UNIFIED_SOURCES += [
     'vhea.cc',
     'vmtx.cc',
     'woff2.cc',
 ]
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 DEFINES['PACKAGE_VERSION'] = '"moz"'
 DEFINES['PACKAGE_BUGREPORT'] = '"http://bugzilla.mozilla.org/"'
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     DEFINES['OTS_DLL'] = True
     DEFINES['OTS_DLL_EXPORTS'] = True
--- a/gfx/qcms/moz.build
+++ b/gfx/qcms/moz.build
@@ -12,16 +12,19 @@ EXPORTS += [
 SOURCES += [
     'chain.c',
     'iccread.c',
     'matrix.c',
     'transform.c',
     'transform_util.c',
 ]
 
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['GNU_CC']:
     CFLAGS += ['-Wno-missing-field-initializers']
 
 use_sse1 = False
 use_sse2 = False
 use_altivec = False
--- a/gfx/skia/generate_mozbuild.py
+++ b/gfx/skia/generate_mozbuild.py
@@ -44,16 +44,18 @@ if CONFIG['INTEL_ARCHITECTURE'] and CONF
         SOURCES += [
             'skia/src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
         ]
     else:
         SOURCES += [
             'skia/src/opts/SkBlitRow_opts_SSE4_asm.S',
         ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 LOCAL_INCLUDES += [
     'skia/include/config',
     'skia/include/core',
     'skia/include/effects',
     'skia/include/gpu',
     'skia/include/images',
     'skia/include/pathops',
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
@@ -578,16 +578,18 @@ if CONFIG['INTEL_ARCHITECTURE'] and CONF
         SOURCES += [
             'skia/src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
         ]
     else:
         SOURCES += [
             'skia/src/opts/SkBlitRow_opts_SSE4_asm.S',
         ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 LOCAL_INCLUDES += [
     'skia/include/config',
     'skia/include/core',
     'skia/include/effects',
     'skia/include/gpu',
     'skia/include/images',
     'skia/include/pathops',
--- a/gfx/src/moz.build
+++ b/gfx/src/moz.build
@@ -70,18 +70,16 @@ UNIFIED_SOURCES += [
     'nsTransform2D.cpp',
 ]
 
 # nsDeviceContext.cpp cannot be built in unified mode because it pulls in OS X system headers.
 SOURCES += [
     'nsDeviceContext.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '/dom/ipc',  # for ContentChild.h
 ]
 
 FINAL_LIBRARY = 'xul'
 
--- a/gfx/tests/gtest/moz.build
+++ b/gfx/tests/gtest/moz.build
@@ -45,10 +45,8 @@ LOCAL_INCLUDES += [
     '/gfx/2d/unittest',
     '/gfx/layers',
     '/gfx/qcms',
 ]
 
 FINAL_LIBRARY = 'xul-gtest'
 
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
-
-FAIL_ON_WARNINGS = True
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
@@ -255,17 +255,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
 # available if we're building with the Intl API enabled:
 if CONFIG['ENABLE_INTL_API']:
     CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
     CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
     USE_LIBS += [
         'icu',
     ]
 
-FAIL_ON_WARNINGS = not CONFIG['_MSC_VER']
+if CONFIG['_MSC_VER']:
+    ALLOW_COMPILER_WARNINGS = True
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 GENERATED_FILES = [
     'DeprecatedPremultiplyTables.h',
 ]
--- a/gfx/vr/moz.build
+++ b/gfx/vr/moz.build
@@ -32,14 +32,15 @@ SOURCES += [
 #CXXFLAGS += ["-Ic:/proj/ovr/OculusSDK-0.6.0-beta/LibOVR/Include"]
 #CFLAGS += ["-Ic:/proj/ovr/OculusSDK-0.6.0-beta/LibOVR/Include"]
 
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
 CXXFLAGS += CONFIG['TK_CFLAGS']
 CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
 CFLAGS += CONFIG['TK_CFLAGS']
 
-FAIL_ON_WARNINGS = not CONFIG['_MSC_VER']
+if CONFIG['_MSC_VER']:
+    ALLOW_COMPILER_WARNINGS = True
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
--- a/gfx/ycbcr/moz.build
+++ b/gfx/ycbcr/moz.build
@@ -59,10 +59,8 @@ if CONFIG['CPU_ARCH'] == 'arm' and CONFI
     SOURCES += [
         'yuv_row_arm.s',
     ]
     SOURCES += [
         'yuv_convert_arm.cpp',
     ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/hal/moz.build
+++ b/hal/moz.build
@@ -149,18 +149,16 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
         'cocoa/CocoaSensor.mm',
         'cocoa/smslib.mm',
     ]
 
 IPDL_SOURCES = [
     'sandbox/PHal.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['MOZ_GAMEPAD']:
     LOCAL_INCLUDES += [
         '/dom/base',
     ]
--- a/image/build/moz.build
+++ b/image/build/moz.build
@@ -7,18 +7,16 @@
 EXPORTS += [
     'nsImageModule.h',
 ]
 
 SOURCES += [
     'nsImageModule.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/image',
     '/image/encoders/bmp',
     '/image/encoders/ico',
     '/image/encoders/jpeg',
     '/image/encoders/png',
 ]
--- a/image/decoders/icon/android/moz.build
+++ b/image/decoders/icon/android/moz.build
@@ -3,13 +3,11 @@
 # 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/.
 
 SOURCES += [
     'nsIconChannel.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/image/decoders/icon/gtk/moz.build
+++ b/image/decoders/icon/gtk/moz.build
@@ -3,16 +3,14 @@
 # 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/.
 
 SOURCES += [
     'nsIconChannel.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['MOZ_ENABLE_GNOMEUI']:
     CXXFLAGS += CONFIG['MOZ_GNOMEUI_CFLAGS']
 else:
     CXXFLAGS += CONFIG['TK_CFLAGS']
--- a/image/decoders/icon/mac/moz.build
+++ b/image/decoders/icon/mac/moz.build
@@ -3,11 +3,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/.
 
 SOURCES += [
     'nsIconChannelCocoa.mm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/image/decoders/icon/moz.build
+++ b/image/decoders/icon/moz.build
@@ -5,18 +5,16 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 UNIFIED_SOURCES += [
     'nsIconModule.cpp',
     'nsIconProtocolHandler.cpp',
     'nsIconURI.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 platform = None
 
 if CONFIG['MOZ_WIDGET_GTK']:
     platform = 'gtk'
--- a/image/decoders/icon/win/moz.build
+++ b/image/decoders/icon/win/moz.build
@@ -3,11 +3,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/.
 
 SOURCES += [
     'nsIconChannel.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/image/decoders/moz.build
+++ b/image/decoders/moz.build
@@ -27,16 +27,14 @@ UNIFIED_SOURCES += [
     'nsBMPDecoder.cpp',
     'nsGIFDecoder2.cpp',
     'nsICODecoder.cpp',
     'nsIconDecoder.cpp',
     'nsJPEGDecoder.cpp',
     'nsPNGDecoder.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 # Decoders need RasterImage.h
 LOCAL_INCLUDES += [
     '/image',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/image/encoders/bmp/moz.build
+++ b/image/encoders/bmp/moz.build
@@ -3,15 +3,13 @@
 # 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/.
 
 SOURCES += [
     'nsBMPEncoder.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/image',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/image/encoders/ico/moz.build
+++ b/image/encoders/ico/moz.build
@@ -3,18 +3,16 @@
 # 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/.
 
 SOURCES += [
     'nsICOEncoder.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 # Decoders need RasterImage.h
 LOCAL_INCLUDES += [
     '/image',
     '/image/encoders/bmp',
     '/image/encoders/png',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/image/encoders/jpeg/moz.build
+++ b/image/encoders/jpeg/moz.build
@@ -3,11 +3,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/.
 
 SOURCES += [
     'nsJPEGEncoder.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/image/encoders/png/moz.build
+++ b/image/encoders/png/moz.build
@@ -3,15 +3,13 @@
 # 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/.
 
 SOURCES += [
     'nsPNGEncoder.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '/image',
 ]
 
 FINAL_LIBRARY = 'xul'
--- a/image/moz.build
+++ b/image/moz.build
@@ -80,18 +80,16 @@ if CONFIG['MOZ_ENABLE_SKIA']:
 SOURCES += [
     'imgLoader.cpp',
     'imgRequest.cpp',
     'imgRequestProxy.cpp',
     'ProgressTracker.cpp',
     'RasterImage.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     # Because SVGDocumentWrapper.cpp includes "mozilla/dom/SVGSVGElement.h"
     '/dom/base',
     '/dom/svg',
--- a/image/test/gtest/moz.build
+++ b/image/test/gtest/moz.build
@@ -1,18 +1,16 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
 Library('imagetest')
 
-FAIL_ON_WARNINGS = True
-
 UNIFIED_SOURCES = [
     'Common.cpp',
     'TestCopyOnWrite.cpp',
     'TestDecoders.cpp',
     'TestDecodeToSurface.cpp',
     'TestMetadata.cpp',
 ]
 
--- a/intl/chardet/moz.build
+++ b/intl/chardet/moz.build
@@ -12,10 +12,8 @@ EXPORTS += [
 ]
 
 UNIFIED_SOURCES += [
     'nsChardetModule.cpp',
     'nsCyrillicDetector.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/intl/hyphenation/moz.build
+++ b/intl/hyphenation/moz.build
@@ -24,10 +24,10 @@ FINAL_LIBRARY = 'xul'
 
 # Suppress warnings in third-party code.
 if CONFIG['GNU_CC']:
     CFLAGS += [
         '-Wno-sign-compare',
         '-Wno-type-limits',
     ]
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/intl/locale/mac/moz.build
+++ b/intl/locale/mac/moz.build
@@ -10,10 +10,8 @@ UNIFIED_SOURCES += [
     'nsMacCharset.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
 CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
 LOCAL_INCLUDES += [
     '..',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/intl/locale/moz.build
+++ b/intl/locale/moz.build
@@ -63,10 +63,8 @@ GENERATED_FILES += [
     'langGroups.properties.h',
 ]
 langgroups = GENERATED_FILES['langGroups.properties.h']
 langgroups.script = 'props2arrays.py'
 langgroups.inputs = ['langGroups.properties']
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
     CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-
-FAIL_ON_WARNINGS = True
--- a/intl/lwbrk/moz.build
+++ b/intl/lwbrk/moz.build
@@ -43,10 +43,8 @@ else:
     SOURCES += [
         'rulebrk.c',
     ]
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['MOZ_WIDGET_GTK']:
     CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']
-
-FAIL_ON_WARNINGS = True
--- a/intl/strres/moz.build
+++ b/intl/strres/moz.build
@@ -14,10 +14,8 @@ XPIDL_SOURCES += [
 XPIDL_MODULE = 'intl'
 
 UNIFIED_SOURCES += [
     'nsStringBundle.cpp',
     'nsStringBundleTextOverride.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/intl/unicharutil/moz.build
+++ b/intl/unicharutil/moz.build
@@ -26,10 +26,8 @@ UNIFIED_SOURCES += [
     'nsCaseConversionImp2.cpp',
     'nsCategoryImp.cpp',
     'nsEntityConverter.cpp',
     'nsSaveAsCharset.cpp',
     'nsUnicodeNormalizer.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/intl/unicharutil/tests/moz.build
+++ b/intl/unicharutil/tests/moz.build
@@ -3,9 +3,12 @@
 # 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/.
 
 SOURCES += [
     'NormalizationTest.cpp',
 ]
 
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul-gtest'
--- a/intl/unicharutil/util/internal/moz.build
+++ b/intl/unicharutil/util/internal/moz.build
@@ -16,11 +16,9 @@ FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '..',
 ]
 
 if CONFIG['ENABLE_INTL_API']:
     CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
 
-FAIL_ON_WARNINGS = True
-
 DIST_INSTALL = True
--- a/intl/unicharutil/util/moz.build
+++ b/intl/unicharutil/util/moz.build
@@ -37,12 +37,12 @@ if CONFIG['_MSC_VER']:
     DEFINES['_USE_ANSI_CPP'] = True
     # Don't include directives about which CRT to use
     CFLAGS += ['-Zl']
     CXXFLAGS += ['-Zl']
 
 if CONFIG['ENABLE_INTL_API']:
     CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
 
 DIST_INSTALL = True
--- a/ipc/app/moz.build
+++ b/ipc/app/moz.build
@@ -96,16 +96,16 @@ LDFLAGS += [CONFIG['MOZ_ALLOW_HEAP_EXECU
 # The default heap size is 1MB on Win32.
 # The heap will grow if need be.
 #
 # Set it to 256k.  See bug 127069.
 if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
     LDFLAGS += ['/HEAP:0x40000']
 
 # Windows builds have dll linkage warnings due to msvcrt static linkage
-if CONFIG['OS_ARCH'] != 'WINNT':
-    FAIL_ON_WARNINGS = True
+if CONFIG['OS_ARCH'] == 'WINNT':
+    ALLOW_COMPILER_WARNINGS = True
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
     OS_LIBS += [
         'binder',
         'utils',
     ]
--- a/ipc/app/pie/moz.build
+++ b/ipc/app/pie/moz.build
@@ -23,10 +23,8 @@ if CONFIG['MOZ_SANDBOX']:
 
     # gcc lto likes to put the top level asm in syscall.cc in a different partition
     # from the function using it which breaks the build.  Work around that by
     # forcing there to be only one partition.
     if '-flto' in CONFIG['OS_CXXFLAGS'] and not CONFIG['CLANG_CXX']:
 	LDFLAGS += ['--param lto-partitions=1']
 
 LDFLAGS += ['-pie']
-
-FAIL_ON_WARNINGS = True
--- a/ipc/chromium/moz.build
+++ b/ipc/chromium/moz.build
@@ -249,9 +249,12 @@ if os_bsd:
 ost = CONFIG['OS_TEST']
 if '86' not in ost and 'arm' not in ost and 'mips' not in ost:
     SOURCES += [
         'src/base/atomicops_internals_mutex.cc',
     ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul'
--- a/ipc/dbus/moz.build
+++ b/ipc/dbus/moz.build
@@ -13,15 +13,13 @@ SOURCES += [
     'DBusUtils.cpp',
     'RawDBusConnection.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['MOZ_ENABLE_DBUS']:
     CFLAGS += CONFIG['MOZ_DBUS_CFLAGS']
     CFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS']
     CXXFLAGS += CONFIG['MOZ_DBUS_CFLAGS']
     CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS']
--- a/ipc/glue/moz.build
+++ b/ipc/glue/moz.build
@@ -173,10 +173,8 @@ LOCAL_INCLUDES += [
 ]
 
 if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
     LOCAL_INCLUDES += [
         '/security/sandbox/chromium',
         '/security/sandbox/chromium-shim',
         '/security/sandbox/win/src/sandboxbroker',
     ]
-
-FAIL_ON_WARNINGS = True
--- a/ipc/hal/moz.build
+++ b/ipc/hal/moz.build
@@ -19,10 +19,8 @@ UNIFIED_SOURCES += [
     'DaemonSocketConsumer.cpp',
     'DaemonSocketPDU.cpp',
     'DaemonSocketPDUHelpers.cpp'
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/ipc/ipdl/moz.build
+++ b/ipc/ipdl/moz.build
@@ -2,17 +2,15 @@
 # vim: set filetype=python:
 # 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 CONFIG['MOZ_IPDL_TESTS']:
     DIRS += ['test']
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 # We #include some things in the dom/plugins/ directory that rely on
 # toolkit libraries.
 CXXFLAGS += CONFIG['TK_CFLAGS']
--- a/ipc/keystore/moz.build
+++ b/ipc/keystore/moz.build
@@ -8,13 +8,11 @@ EXPORTS.mozilla.ipc += [
   'KeyStore.h'
 ]
 
 SOURCES += [
   'KeyStore.cpp',
   'KeyStoreConnector.cpp'
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/ipc/netd/moz.build
+++ b/ipc/netd/moz.build
@@ -10,10 +10,8 @@ EXPORTS.mozilla.ipc += [
 
 SOURCES += [
     'Netd.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/ipc/nfc/moz.build
+++ b/ipc/nfc/moz.build
@@ -9,10 +9,8 @@ if CONFIG['MOZ_NFC']:
     ]
     SOURCES += [
         'NfcConnector.cpp',
     ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/ipc/ril/moz.build
+++ b/ipc/ril/moz.build
@@ -15,10 +15,8 @@ SOURCES += [
     'RilConnector.cpp',
     'RilSocket.cpp',
     'RilSocketConsumer.cpp'
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/ipc/testshell/moz.build
+++ b/ipc/testshell/moz.build
@@ -18,18 +18,16 @@ SOURCES += [
     'XPCShellEnvironment.cpp',
 ]
 
 IPDL_SOURCES = [
     'PTestShell.ipdl',
     'PTestShellCommand.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 # For xpcshell error messages and nsAutoJSString
 LOCAL_INCLUDES += [
     '/dom/base',
     '/js/xpconnect/src',
--- a/ipc/unixfd/moz.build
+++ b/ipc/unixfd/moz.build
@@ -11,13 +11,11 @@ EXPORTS.mozilla.ipc += [
 ]
 
 SOURCES += [
     'UnixFdWatcher.cpp',
     'UnixFileWatcher.cpp',
     'UnixSocketWatcher.cpp'
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/ipc/unixsocket/moz.build
+++ b/ipc/unixsocket/moz.build
@@ -21,13 +21,11 @@ SOURCES += [
     'ListenSocket.cpp',
     'ListenSocketConsumer.cpp',
     'SocketBase.cpp',
     'StreamSocket.cpp',
     'StreamSocketConsumer.cpp',
     'UnixSocketConnector.cpp'
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/js/ductwork/debugger/moz.build
+++ b/js/ductwork/debugger/moz.build
@@ -16,10 +16,8 @@ SOURCES += [
     'JSDebugger.cpp',
 ]
 
 EXTRA_JS_MODULES += [
     'jsdebugger.jsm',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/js/ipc/moz.build
+++ b/js/ipc/moz.build
@@ -13,18 +13,16 @@ UNIFIED_SOURCES += [
     'WrapperOwner.cpp',
 ]
 
 IPDL_SOURCES += [
     'JavaScriptTypes.ipdlh',
     'PJavaScript.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 DEFINES['BIN_SUFFIX'] = '"%s"' % CONFIG['BIN_SUFFIX']
 
 EXPORTS.mozilla.jsipc = [
     'CpowHolder.h',
--- a/js/src/editline/moz.build
+++ b/js/src/editline/moz.build
@@ -11,10 +11,8 @@ UNIFIED_SOURCES += [
     'sysunix.c',
 ]
 
 FORCE_STATIC_LIB = True
 
 for var in ('ANSI_ARROWS', 'HAVE_TCGETATTR', 'HIDE', 'USE_DIRENT', 'SYS_UNIX',
             'HAVE_STDLIB', 'UNIQUE_HISTORY'):
     DEFINES[var] = True
-
-FAIL_ON_WARNINGS = True
--- a/js/src/gdb/moz.build
+++ b/js/src/gdb/moz.build
@@ -26,10 +26,8 @@ DEFINES['EXPORT_JS_API'] = True
 LOCAL_INCLUDES += ['..']
 GENERATED_INCLUDES += ['..']
 
 USE_LIBS += [
     'static:js',
 ]
 
 OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
-
-FAIL_ON_WARNINGS = True
--- a/js/src/jsapi-tests/moz.build
+++ b/js/src/jsapi-tests/moz.build
@@ -106,10 +106,10 @@ LOCAL_INCLUDES += ['..']
 GENERATED_INCLUDES += ['..']
 
 USE_LIBS += [
     'static:js',
 ]
 
 OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/js/src/moz.build
+++ b/js/src/moz.build
@@ -616,14 +616,14 @@ if CONFIG['OS_ARCH'] == 'SunOS':
         'dl',
         'nsl',
         'socket',
     ]
 
 CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
 CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
 
 NO_EXPAND_LIBS = True
 
 DIST_INSTALL = True
--- a/js/src/shell/moz.build
+++ b/js/src/shell/moz.build
@@ -25,10 +25,10 @@ if CONFIG['_MSC_VER']:
     NO_PGO = True
 
 LOCAL_INCLUDES += ['..']
 GENERATED_INCLUDES += ['..']
 
 OS_LIBS += CONFIG['EDITLINE_LIBS']
 OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/js/xpconnect/loader/moz.build
+++ b/js/xpconnect/loader/moz.build
@@ -11,18 +11,16 @@ SOURCES += [
     'mozJSSubScriptLoader.cpp',
 ]
 
 EXTRA_JS_MODULES += [
     'ISO8601DateUtils.jsm',
     'XPCOMUtils.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../src',
     '../wrappers',
     '/dom/base',
 ]
 
--- a/js/xpconnect/shell/moz.build
+++ b/js/xpconnect/shell/moz.build
@@ -30,10 +30,8 @@ if CONFIG['_MSC_VER']:
     WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     RCINCLUDE = 'xpcshell.rc'
 
 CFLAGS += CONFIG['TK_CFLAGS']
 CXXFLAGS += CONFIG['TK_CFLAGS']
 OS_LIBS += CONFIG['TK_LIBS']
-
-FAIL_ON_WARNINGS = True
--- a/js/xpconnect/src/moz.build
+++ b/js/xpconnect/src/moz.build
@@ -46,18 +46,16 @@ UNIFIED_SOURCES += [
     'XPCWrapper.cpp',
 ]
 
 # XPCComponents.cpp cannot be built in unified mode because it uses plarena.h.
 SOURCES += [
     'XPCComponents.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../loader',
     '../wrappers',
     '/caps',
--- a/js/xpconnect/tests/components/native/moz.build
+++ b/js/xpconnect/tests/components/native/moz.build
@@ -15,10 +15,8 @@ UNIFIED_SOURCES += [
 
 XPCOMBinaryComponent('xpctest')
 
 DEFINES['LIBRARY_FILENAME'] = '%s%s%s' % (
     CONFIG['DLL_PREFIX'],
     LIBRARY_NAME,
     CONFIG['DLL_SUFFIX']
 )
-
-FAIL_ON_WARNINGS = True
--- a/js/xpconnect/wrappers/moz.build
+++ b/js/xpconnect/wrappers/moz.build
@@ -23,18 +23,16 @@ SOURCES += [
 ]
 
 # warning C4661 for FilteringWrapper
 if CONFIG['_MSC_VER']:
     CXXFLAGS += [
         '-wd4661', # no suitable definition provided for explicit template instantiation request
     ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../../../dom/base',
     '../src',
 ]
--- a/layout/base/gtest/moz.build
+++ b/layout/base/gtest/moz.build
@@ -18,10 +18,8 @@ LOCAL_INCLUDES += [
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
 # Workaround bug 1142396. Suppress the warning from gmock library for clang.
 if CONFIG['CLANG_CXX']:
     CXXFLAGS += ['-Wno-null-dereference']
 
 FINAL_LIBRARY = 'xul-gtest'
-
-FAIL_ON_WARNINGS = True
--- a/layout/base/moz.build
+++ b/layout/base/moz.build
@@ -156,18 +156,16 @@ UNIFIED_SOURCES += [
 SOURCES += [
     'nsPresArena.cpp',
     'nsRefreshDriver.cpp',
 ]
 
 if CONFIG['ENABLE_TESTS']:
     DIRS += ['gtest']
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '../forms',
     '../generic',
     '../mathml',
     '../printing',
     '../style',
--- a/layout/build/moz.build
+++ b/layout/build/moz.build
@@ -16,18 +16,16 @@ UNIFIED_SOURCES += [
     'nsLayoutStatics.cpp',
 ]
 
 if CONFIG['MOZ_NFC']:
     LOCAL_INCLUDES += [
         '/dom/nfc'
     ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 LOCAL_INCLUDES += [
     '../base',
     '../forms',
     '../generic',
     '../inspector',
     '../mathml',
--- a/layout/forms/moz.build
+++ b/layout/forms/moz.build
@@ -35,18 +35,16 @@ UNIFIED_SOURCES += [
     'nsMeterFrame.cpp',
     'nsNumberControlFrame.cpp',
     'nsProgressFrame.cpp',
     'nsRangeFrame.cpp',
     'nsSelectsAreaFrame.cpp',
     'nsTextControlFrame.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../../editor/libeditor',
     '../../editor/txmgr',
     '../base',
     '../generic',
     '../style',
--- a/layout/generic/moz.build
+++ b/layout/generic/moz.build
@@ -170,18 +170,16 @@ UNIFIED_SOURCES += [
 
 # nsLineLayout.cpp needs to be built separately because it uses plarena.h.
 # nsPluginFrame.cpp needs to be built separately because of name clashes in the OS X headers.
 SOURCES += [
     'nsLineLayout.cpp',
     'nsPluginFrame.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../../dom/plugins/base',
     '../base',
     '../forms',
--- a/layout/inspector/moz.build
+++ b/layout/inspector/moz.build
@@ -39,16 +39,14 @@ UNIFIED_SOURCES += [
 if CONFIG['MOZ_XUL']:
     UNIFIED_SOURCES += [
         'inDOMView.cpp',
     ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../style',
     '/dom/base',
     '/dom/xbl',
 ]
--- a/layout/ipc/moz.build
+++ b/layout/ipc/moz.build
@@ -24,18 +24,16 @@ SOURCES += [
     'VsyncParent.cpp',
 ]
 
 IPDL_SOURCES = [
     'PRenderFrame.ipdl',
     'PVsync.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/layout/base',
     '/layout/generic',
--- a/layout/mathml/moz.build
+++ b/layout/mathml/moz.build
@@ -33,18 +33,16 @@ UNIFIED_SOURCES += [
     'nsMathMLTokenFrame.cpp',
 ]
 
 EXPORTS += [
     'nsIMathMLFrame.h',
     'nsMathMLOperators.h'
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../base',
     '../generic',
     '../style',
     '../tables',
     '../xul',
     '/dom/base',
--- a/layout/printing/moz.build
+++ b/layout/printing/moz.build
@@ -15,16 +15,14 @@ XPIDL_MODULE = 'layout_printing'
 UNIFIED_SOURCES += [
     'nsPagePrintTimer.cpp',
     'nsPrintData.cpp',
     'nsPrintEngine.cpp',
     'nsPrintObject.cpp',
     'nsPrintPreviewListener.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../base',
     '/dom/base',
 ]
 
--- a/layout/style/moz.build
+++ b/layout/style/moz.build
@@ -178,18 +178,16 @@ SOURCES += [
     'nsCSSRuleProcessor.cpp',
 ]
 
 EXTRA_COMPONENTS += [
     'CSSUnprefixingService.js',
     'CSSUnprefixingService.manifest',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../base',
     '../generic',
     '../svg',
--- a/layout/svg/moz.build
+++ b/layout/svg/moz.build
@@ -50,18 +50,16 @@ UNIFIED_SOURCES += [
     'SVGTextFrame.cpp',
     'SVGViewFrame.cpp',
 ]
 
 if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['BUILD_ARM_NEON']:
     SOURCES += ['nsSVGMaskFrameNEON.cpp']
     SOURCES['nsSVGMaskFrameNEON.cpp'].flags += ['-mfpu=neon']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../../widget',
     '../base',
     '../generic',
     '../style',
     '../xul',
     '/dom/base',
--- a/layout/tables/moz.build
+++ b/layout/tables/moz.build
@@ -23,18 +23,16 @@ UNIFIED_SOURCES += [
     'nsTableFrame.cpp',
     'nsTableOuterFrame.cpp',
     'nsTablePainter.cpp',
     'nsTableRowFrame.cpp',
     'nsTableRowGroupFrame.cpp',
     'SpanningCellSorter.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../../intl/unicharutil/util',
     '../base',
     '../generic',
     '../style',
     '../xul',
--- a/layout/tools/layout-debug/src/moz.build
+++ b/layout/tools/layout-debug/src/moz.build
@@ -17,11 +17,9 @@ EXPORTS += [
 
 UNIFIED_SOURCES += [
     'nsDebugFactory.cpp',
     'nsLayoutDebugCLH.cpp',
     'nsLayoutDebuggingTools.cpp',
     'nsRegressionTester.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/layout/xul/grid/moz.build
+++ b/layout/xul/grid/moz.build
@@ -26,18 +26,16 @@ UNIFIED_SOURCES += [
     'nsGridRow.cpp',
     'nsGridRowGroupFrame.cpp',
     'nsGridRowGroupLayout.cpp',
     'nsGridRowLayout.cpp',
     'nsGridRowLeafFrame.cpp',
     'nsGridRowLeafLayout.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '..',
     '../../forms',
     '../../generic',
     '../../style',
 ]
 
--- a/layout/xul/moz.build
+++ b/layout/xul/moz.build
@@ -90,17 +90,15 @@ if CONFIG['MOZ_XUL']:
         'nsXULPopupManager.cpp',
         'PopupBoxObject.cpp',
         'ScrollBoxObject.cpp',
     ]
 
 if CONFIG['MOZ_XUL']:
     DIRS += ['tree', 'grid']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '../base',
     '../generic',
     '../style',
     '/dom/base',
 ]
--- a/layout/xul/tree/moz.build
+++ b/layout/xul/tree/moz.build
@@ -34,18 +34,16 @@ UNIFIED_SOURCES += [
     'nsTreeContentView.cpp',
     'nsTreeImageListener.cpp',
     'nsTreeSelection.cpp',
     'nsTreeStyleCache.cpp',
     'nsTreeUtils.cpp',
     'TreeBoxObject.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '..',
     '../../base',
     '../../forms',
     '../../generic',
     '../../style',
     '/dom/base',
--- a/media/gmp-clearkey/0.1/gtest/moz.build
+++ b/media/gmp-clearkey/0.1/gtest/moz.build
@@ -5,13 +5,11 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 UNIFIED_SOURCES += [
     'TestClearKeyUtils.cpp',
 ]
 
 FINAL_LIBRARY = 'xul-gtest'
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES += [
     '..',
 ]
--- a/media/gmp-clearkey/0.1/moz.build
+++ b/media/gmp-clearkey/0.1/moz.build
@@ -66,10 +66,8 @@ if CONFIG['GNU_CXX']:
         '-include stdio.h',         # for sprintf() prototype
         '-include unistd.h',        # for getpid() prototype
     ]
 elif CONFIG['_MSC_VER']:
     CFLAGS += [
         '-FI stdio.h',              # for sprintf() prototype
         '-wd4090',                  # '=' : different 'const' qualifiers
     ]
-
-FAIL_ON_WARNINGS = True
--- a/media/libav/moz.build
+++ b/media/libav/moz.build
@@ -58,9 +58,11 @@ if CONFIG['_MSC_VER']:
 # OS X requires a special header to make sure symbols are exported publicly in
 # the lgpl shared library, since it does not yet use system headers. This is
 # also used on linux for the time being, to avoid having to patch libav code.
 #
 # TODO: Remove header and patch libav once OS X supports system headers
 if CONFIG['OS_ARCH'] != 'WINNT':
     SOURCES['libavcodec/avfft.c'].flags += ['-include', 'avfft_perms.h']
 
+ALLOW_COMPILER_WARNINGS = True
+
 include("libavcommon.mozbuild")
--- a/media/libcubeb/src/moz.build
+++ b/media/libcubeb/src/moz.build
@@ -69,12 +69,10 @@ FINAL_LIBRARY = 'gkmedias'
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
     CFLAGS += [
         '-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
             'frameworks/wilhelm/include',
             'system/media/wilhelm/include',
         ]
     ]
 
-FAIL_ON_WARNINGS = True
-
 CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']
 CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS']
--- a/media/libcubeb/tests/moz.build
+++ b/media/libcubeb/tests/moz.build
@@ -14,18 +14,16 @@ if CONFIG['OS_TARGET'] != 'Android':
     'test_latency',
     'test_sanity'
   ])
 
 LOCAL_INCLUDES += [
     '../include'
 ]
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['OS_ARCH'] == 'WINNT':
     # On windows, the WASAPI backend needs the resampler we have in
     # /media/libspeex_resampler, so we can't get away with just linking cubeb's
     # .o
     USE_LIBS += [
         'cubeb',
         'speex',
     ]
--- a/media/libjpeg/moz.build
+++ b/media/libjpeg/moz.build
@@ -144,10 +144,12 @@ else: # No SIMD support?
     ]
 
 ASFLAGS += CONFIG['LIBJPEG_TURBO_ASFLAGS']
 ASFLAGS += ['-I%s/media/libjpeg/simd/' % TOPSRCDIR]
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
--- a/media/libopus/moz.build
+++ b/media/libopus/moz.build
@@ -9,16 +9,18 @@ with Files('*'):
 
 EXPORTS.opus += [
     'include/opus.h',
     'include/opus_defines.h',
     'include/opus_multistream.h',
     'include/opus_types.h',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 DEFINES['OPUS_BUILD'] = True
 DEFINES['OPUS_VERSION'] = '"v1.1-mozilla"'
 DEFINES['USE_ALLOCA'] = True
 
 # We only need to export symbols if we're built into libgkmedias
 # instead of libxul.
--- a/media/libsoundtouch/src/moz.build
+++ b/media/libsoundtouch/src/moz.build
@@ -37,12 +37,14 @@ if CONFIG['INTEL_ARCHITECTURE']:
 if CONFIG['OS_ARCH'] != 'WINNT':
     # GCC/Clang require permissions to be explicitly set for the soundtouch
     # header.
     CXXFLAGS += ['-include', 'soundtouch_perms.h']
 else:
     # Windows need alloca renamed to _alloca
     DEFINES['alloca'] = '_alloca'
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'lgpllibs'
 
 # Use abort() instead of exception in SoundTouch.
 DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1
--- a/media/libspeex_resampler/src/moz.build
+++ b/media/libspeex_resampler/src/moz.build
@@ -10,16 +10,18 @@ EXPORTS.speex += [
     'speex_resampler.h',
 ]
 
 SOURCES += [
     'resample.c',
     'simd_detect.cpp',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 # We don't compile the full speex codec, only the resampler.
 DEFINES['OUTSIDE_SPEEX'] = True
 
 # Visibility is handled through VISIBILITY_FLAGS and
 # layout/media/symbols.def.in.
 DEFINES['EXPORT'] = ''
--- a/media/libstagefright/gtest/moz.build
+++ b/media/libstagefright/gtest/moz.build
@@ -12,10 +12,8 @@ SOURCES += [
 
 if CONFIG['MOZ_RUST']:
     UNIFIED_SOURCES += ['TestMP4Rust.cpp',]
     TEST_HARNESS_FILES.gtest += [
         '../../../dom/media/test/street.mp4',
     ]
 
 FINAL_LIBRARY = 'xul-gtest'
-
-FAIL_ON_WARNINGS = True
--- a/media/libstagefright/moz.build
+++ b/media/libstagefright/moz.build
@@ -125,16 +125,18 @@ LOCAL_INCLUDES += [
     'stubs/include/media/stagefright/foundation',
     'system/core/include',
 ]
 
 TEST_DIRS += [
     'gtest',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul'
 
 # Suppress warnings in third-party code.
 if CONFIG['_MSC_VER']:
     CFLAGS += [
         '-wd4013', # 'function' undefined; assuming extern returning int
         '-wd4101', # unreferenced local variable
     ]
--- a/media/libtheora/moz.build
+++ b/media/libtheora/moz.build
@@ -8,16 +8,18 @@ with Files('*'):
     BUG_COMPONENT = ('Core', 'Video/Audio')
 
 EXPORTS.theora += [
     'include/theora/codec.h',
     'include/theora/theoradec.h',
     'include/theora/theoraenc.h',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
 # The encoder is currently not included.
 DEFINES['THEORA_DISABLE_ENCODE'] = True
 
--- a/media/libvorbis/moz.build
+++ b/media/libvorbis/moz.build
@@ -46,13 +46,15 @@ if CONFIG['OS_ARCH'] == 'AIX':
     DEFINES['alloca'] = '__alloca'
 
 if CONFIG['OS_ARCH'] == 'SunOS':
     DEFINES['HAVE_ALLOCA_H'] = True
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 # Suppress warnings in third-party code.
 if CONFIG['GNU_CC']:
     CFLAGS += ['-Wno-uninitialized']
--- a/media/libvpx/moz.build
+++ b/media/libvpx/moz.build
@@ -50,16 +50,18 @@ if CONFIG['VPX_ARM_ASM']:
 if 'vp8/encoder/arm/armv5te/boolhuff_armv5te.asm' not in arm_asm_files:
     SOURCES += [
         'vp8/encoder/boolhuff.c',
     ]
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
 
 DEFINES['HAVE_CONFIG_H'] = 'vpx_config.h'
 
 if CONFIG['OS_TARGET'] == 'Android':
     # Older versions of the Android NDK don't pre-define anything to indicate
     # the OS they're on, so do it for them.
     DEFINES['__linux__'] = True
--- a/media/mtransport/build/moz.build
+++ b/media/mtransport/build/moz.build
@@ -26,14 +26,12 @@ EXPORTS.mtransport += [
 
 include('../common.build')
 
 # These files cannot be built in unified mode because of the redefinition of
 # getLogModule, UNIMPLEMENTED, nr_socket_long_term_violation_time,
 # nr_socket_short_term_violation_time.
 SOURCES += mtransport_cppsrcs
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True
 
 FINAL_LIBRARY = 'xul'
--- a/media/mtransport/test/moz.build
+++ b/media/mtransport/test/moz.build
@@ -21,18 +21,16 @@ if CONFIG['OS_TARGET'] != 'WINNT' and CO
         'turn_unittest',
     ])
 
     if CONFIG['MOZ_SCTP']:
         CppUnitTests([
             'sctp_unittest',
         ])
 
-FAIL_ON_WARNINGS = True
-
 for var in ('MOZILLA_INTERNAL_API', 'MOZILLA_XPCOMRT_API', 'MOZILLA_EXTERNAL_LINKAGE', 'HAVE_STRDUP', 'NR_SOCKET_IS_VOID_PTR', 'SCTP_DEBUG', 'INET'):
     DEFINES[var] = True
 
 if CONFIG['OS_TARGET'] == 'Android':
     DEFINES['LINUX'] = True
     DEFINES['ANDROID'] = True
     LOCAL_INCLUDES += [
         '/media/mtransport/third_party/nrappkit/src/port/android/include',
--- a/media/mtransport/third_party/moz.build
+++ b/media/mtransport/third_party/moz.build
@@ -58,15 +58,17 @@ nrappkit_non_unified_sources = [
     'nrappkit/src/util/libekr/r_replace.c',
     'nrappkit/src/util/libekr/r_time.c',
     'nrappkit/src/util/p_buf.c',
     'nrappkit/src/util/util.c',
 ]
 
 GYP_DIRS['nICEr'].input = 'nICEr/nicer.gyp'
 GYP_DIRS['nICEr'].variables = gyp_vars
+GYP_DIRS['nICEr'].sandbox_vars['ALLOW_COMPILER_WARNINGS'] = True
 GYP_DIRS['nICEr'].sandbox_vars['FINAL_LIBRARY'] = 'webrtc'
 GYP_DIRS['nICEr'].non_unified_sources += nICEr_non_unified_sources
 
 GYP_DIRS['nrappkit'].input = 'nrappkit/nrappkit.gyp'
 GYP_DIRS['nrappkit'].variables = gyp_vars
+GYP_DIRS['nrappkit'].sandbox_vars['ALLOW_COMPILER_WARNINGS'] = True
 GYP_DIRS['nrappkit'].sandbox_vars['FINAL_LIBRARY'] = 'webrtc'
 GYP_DIRS['nrappkit'].non_unified_sources += nrappkit_non_unified_sources
--- a/media/omx-plugin/lib/gb/libstagefright/moz.build
+++ b/media/omx-plugin/lib/gb/libstagefright/moz.build
@@ -19,8 +19,11 @@ LOCAL_INCLUDES += [
 
 USE_LIBS += [
     '/media/omx-plugin/lib/gb/libutils/utils',
 ]
 
 # Don't use STL wrappers; this isn't Gecko code
 DISABLE_STL_WRAPPING = True
 NO_VISIBILITY_FLAGS = True
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/media/omx-plugin/lib/gb235/libstagefright/moz.build
+++ b/media/omx-plugin/lib/gb235/libstagefright/moz.build
@@ -19,8 +19,11 @@ LOCAL_INCLUDES += [
 
 USE_LIBS += [
     '/media/omx-plugin/lib/gb/libutils/utils',
 ]
 
 # Don't use STL wrappers; this isn't Gecko code
 DISABLE_STL_WRAPPING = True
 NO_VISIBILITY_FLAGS = True
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/media/omx-plugin/lib/hc/libstagefright/moz.build
+++ b/media/omx-plugin/lib/hc/libstagefright/moz.build
@@ -19,8 +19,11 @@ LOCAL_INCLUDES += [
 
 USE_LIBS += [
     '/media/omx-plugin/lib/gb/libutils/utils',
 ]
 
 # Don't use STL wrappers; this isn't Gecko code
 DISABLE_STL_WRAPPING = True
 NO_VISIBILITY_FLAGS = True
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/media/omx-plugin/lib/ics/libstagefright/moz.build
+++ b/media/omx-plugin/lib/ics/libstagefright/moz.build
@@ -19,8 +19,11 @@ LOCAL_INCLUDES += [
 
 USE_LIBS += [
     '/media/omx-plugin/lib/ics/libutils/utils',
 ]
 
 # Don't use STL wrappers; this isn't Gecko code
 DISABLE_STL_WRAPPING = True
 NO_VISIBILITY_FLAGS = True
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/media/pocketsphinx/moz.build
+++ b/media/pocketsphinx/moz.build
@@ -54,9 +54,11 @@ if CONFIG['GNU_CC']:
         '-Wno-sign-compare',
     ]
     if CONFIG['CLANG_CXX']:
         CFLAGS += ['-Wno-incompatible-pointer-types-discards-qualifiers']
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True,
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
--- a/media/sphinxbase/moz.build
+++ b/media/sphinxbase/moz.build
@@ -74,9 +74,11 @@ if CONFIG['GNU_CC']:
 
 # Add define required of third party code.
 if CONFIG['GNU_CC']:
     DEFINES['HAVE_CONFIG_H'] = True
 
 if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
     NO_VISIBILITY_FLAGS = True,
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'gkmedias'
--- a/media/webrtc/moz.build
+++ b/media/webrtc/moz.build
@@ -35,29 +35,29 @@ webrtc_non_unified_sources = [
     'trunk/webrtc/modules/video_capture/windows/help_functions_ds.cc',           # Because of initguid.h
     'trunk/webrtc/modules/video_capture/windows/sink_filter_ds.cc',              # Because of the MEDIASUBTYPE_HDYC variable and initguid.h
 ]
 
 GYP_DIRS += ['trunk']
 
 GYP_DIRS['trunk'].input = 'trunk/peerconnection.gyp'
 GYP_DIRS['trunk'].variables = gyp_vars
+GYP_DIRS['trunk'].sandbox_vars['ALLOW_COMPILER_WARNINGS'] = True
 GYP_DIRS['trunk'].sandbox_vars['FINAL_LIBRARY'] = 'webrtc'
 GYP_DIRS['trunk'].non_unified_sources += webrtc_non_unified_sources
 
 if CONFIG['MOZ_WEBRTC_SIGNALING']:
     GYP_DIRS += ['signaling']
     GYP_DIRS['signaling'].input = 'signaling/signaling.gyp'
     GYP_DIRS['signaling'].variables = gyp_vars.copy()
     GYP_DIRS['signaling'].variables.update(
         build_for_test=0,
         build_for_standalone=0
     )
     GYP_DIRS['signaling'].sandbox_vars['FINAL_LIBRARY'] = 'xul'
-    GYP_DIRS['signaling'].sandbox_vars['FAIL_ON_WARNINGS'] = True
     # Excluded for various symbol conflicts
     signaling_non_unified_sources = [
         'signaling/src/common/browser_logging/CSFLog.cpp',
         'signaling/src/jsep/JsepSessionImpl.cpp',
         'signaling/src/media-conduit/AudioConduit.cpp',
         'signaling/src/media-conduit/CodecStatistics.cpp',
         'signaling/src/media-conduit/MediaCodecVideoCodec.cpp',
         'signaling/src/media-conduit/VideoConduit.cpp',
@@ -84,31 +84,30 @@ if CONFIG['MOZ_WEBRTC_SIGNALING']:
     ]
 
     GYP_DIRS['signaling'].non_unified_sources += signaling_non_unified_sources
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'gonk':
     GYP_DIRS += ['trunk/testing']
     GYP_DIRS['trunk/testing'].input = 'trunk/testing/gtest.gyp'
     GYP_DIRS['trunk/testing'].variables = gyp_vars
+    GYP_DIRS['trunk/testing'].sandbox_vars['ALLOW_COMPILER_WARNINGS'] = True
     GYP_DIRS['trunk/testing'].non_unified_sources += webrtc_non_unified_sources
 
     if CONFIG['MOZ_WEBRTC_SIGNALING']:
         GYP_DIRS += ['signalingtest']
         GYP_DIRS['signalingtest'].input = 'signaling/signaling.gyp'
         GYP_DIRS['signalingtest'].variables = gyp_vars.copy()
         GYP_DIRS['signalingtest'].variables.update(
             build_for_test=1,
             moz_webrtc_mediacodec=0,
             build_for_standalone=0
         )
         GYP_DIRS['signalingtest'].non_unified_sources += signaling_non_unified_sources
-        GYP_DIRS['signalingtest'].sandbox_vars['FAIL_ON_WARNINGS'] = True
 
         GYP_DIRS += ['signalingstandalone']
         GYP_DIRS['signalingstandalone'].input = 'signaling/signaling.gyp'
         GYP_DIRS['signalingstandalone'].variables = gyp_vars.copy()
         GYP_DIRS['signalingstandalone'].variables.update(
             build_for_test=0,
             build_for_standalone=1
         )
         GYP_DIRS['signalingstandalone'].non_unified_sources += signaling_non_unified_sources
-        GYP_DIRS['signalingstandalone'].sandbox_vars['FAIL_ON_WARNINGS'] = True
--- a/media/webrtc/signaling/test/common.build
+++ b/media/webrtc/signaling/test/common.build
@@ -135,10 +135,8 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
     OS_LIBS += CONFIG['MOZ_PANGO_LIBS']
 
 if CONFIG['OS_TARGET'] in ('Linux', 'DragonFly', 'FreeBSD', 'NetBSD',
         'OpenBSD'):
     OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
 
 if CONFIG['OS_TARGET'] == 'Darwin':
     OS_LIBS += CONFIG['TK_LIBS']
-
-FAIL_ON_WARNINGS = True
--- a/memory/build/moz.build
+++ b/memory/build/moz.build
@@ -60,10 +60,8 @@ if CONFIG['MOZ_MEMORY'] and (CONFIG['OS_
     FINAL_LIBRARY = 'mozglue'
 
 if CONFIG['MOZ_REPLACE_MALLOC'] and CONFIG['OS_TARGET'] == 'Darwin':
     # The zone allocator for OSX needs some jemalloc internal functions
     LOCAL_INCLUDES += ['/memory/jemalloc/src/include']
 
 if CONFIG['GNU_CC']:
     CFLAGS += ['-Wshadow']
-
-FAIL_ON_WARNINGS = True
--- a/memory/jemalloc/moz.build
+++ b/memory/jemalloc/moz.build
@@ -66,8 +66,10 @@ if CONFIG['MOZ_NUWA_PROCESS'] and CONFIG
 
 if CONFIG['GNU_CC']:
     CFLAGS += ['-std=gnu99']
 
 DEFINES['abort'] = 'moz_abort'
 
 GENERATED_INCLUDES += ['src/include']
 LOCAL_INCLUDES += ['src/include']
+
+ALLOW_COMPILER_WARNINGS = True
--- a/memory/mozalloc/moz.build
+++ b/memory/mozalloc/moz.build
@@ -35,18 +35,18 @@ FINAL_LIBRARY = 'mozglue'
 
 # The strndup declaration in string.h is in an ifdef __USE_GNU section
 DEFINES['_GNU_SOURCE'] = True
 
 GENERATED_INCLUDES += ['/xpcom']
 
 DISABLE_STL_WRAPPING = True
 
-if CONFIG['CLANG_CXX'] or CONFIG['_MSC_VER']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['CLANG_CXX'] and not CONFIG['_MSC_VER']:
+    ALLOW_COMPILER_WARNINGS = True
 
 DEFINES['IMPL_MFBT'] = True
 
 if CONFIG['_MSC_VER']:
     DIRS += ['staticruntime']
 
 LOCAL_INCLUDES += ['/memory/build']
 
--- a/memory/mozalloc/staticruntime/moz.build
+++ b/memory/mozalloc/staticruntime/moz.build
@@ -18,15 +18,13 @@ UNIFIED_SOURCES += [
     '../mozalloc_abort.cpp',
     '../mozalloc_oom.cpp',
 ]
 
 GENERATED_INCLUDES += ['/xpcom']
 
 DISABLE_STL_WRAPPING = True
 
-FAIL_ON_WARNINGS = True
-
 DEFINES['IMPL_MFBT'] = True
 
 USE_STATIC_LIBS = True
 
 Library('mozalloc_staticruntime')
--- a/memory/mozjemalloc/moz.build
+++ b/memory/mozjemalloc/moz.build
@@ -37,10 +37,13 @@ if CONFIG['OS_TARGET'] == 'Linux':
 
 if CONFIG['MOZ_NUWA_PROCESS']:
     DEFINES['pthread_mutex_lock'] = '__real_pthread_mutex_lock';
 
 LOCAL_INCLUDES += [
     '/memory/build',
 ]
 
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
+
 if CONFIG['GNU_CC']:
     CFLAGS += ['-Wshadow']
--- a/memory/replace/dmd/moz.build
+++ b/memory/replace/dmd/moz.build
@@ -1,16 +1,14 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
-FAIL_ON_WARNINGS = True
-
 EXPORTS += [
     'DMD.h',
 ]
 
 SOURCES += [
     '../../../mfbt/HashFunctions.cpp',
     '../../../mfbt/JSONWriter.cpp',
     '../../../mozglue/misc/StackWalk.cpp',
--- a/memory/replace/dmd/test/moz.build
+++ b/memory/replace/dmd/test/moz.build
@@ -1,16 +1,14 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
-FAIL_ON_WARNINGS = True
-
 GeckoSimplePrograms([
     'SmokeDMD',
 ], linkage=None)
 
 # See the comment at the top of SmokeDMD.cpp:RunTests().
 if CONFIG['OS_ARCH'] == 'WINNT':
     CXXFLAGS += ['-Og-']
 else:
--- a/memory/replace/logalloc/moz.build
+++ b/memory/replace/logalloc/moz.build
@@ -33,8 +33,11 @@ include('/ipc/chromium/chromium-config.m
 if CONFIG['OS_TARGET'] == 'Android':
     USE_LIBS += [
         'mozglue',
     ]
 
 DIRS += [
     'replay',
 ]
+
+# XXX: We should fix these warnings
+ALLOW_COMPILER_WARNINGS = True
--- a/memory/replace/logalloc/replay/moz.build
+++ b/memory/replace/logalloc/replay/moz.build
@@ -16,8 +16,11 @@ LOCAL_INCLUDES += [
 ]
 
 # Link replace-malloc and the default allocator.
 USE_LIBS += [
     'memory',
 ]
 
 DISABLE_STL_WRAPPING = True
+
+# XXX: We should fix these warnings
+ALLOW_COMPILER_WARNINGS = True
--- a/memory/volatile/moz.build
+++ b/memory/volatile/moz.build
@@ -24,10 +24,8 @@ elif CONFIG['OS_TARGET'] == 'WINNT':
 else:
     UNIFIED_SOURCES += [
         'VolatileBufferFallback.cpp',
     ]
 
 FINAL_LIBRARY = 'xul'
 
 TEST_DIRS += ['tests']
-
-FAIL_ON_WARNINGS = True
--- a/memory/volatile/tests/moz.build
+++ b/memory/volatile/tests/moz.build
@@ -4,10 +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/.
 
 UNIFIED_SOURCES = [
     'TestVolatileBuffer.cpp',
 ]
 
 FINAL_LIBRARY = 'xul-gtest'
-
-FAIL_ON_WARNINGS = True
--- a/mfbt/moz.build
+++ b/mfbt/moz.build
@@ -107,12 +107,17 @@ include('objs.mozbuild')
 UNIFIED_SOURCES += mfbt_src_cppsrcs
 
 DEFINES['IMPL_MFBT'] = True
 
 SOURCES += mfbt_nonunified_src_cppsrcs
 
 DISABLE_STL_WRAPPING = True
 
-# Suppress warnings in third-party code.
+# Suppress warnings in third-party LZ4 code.
+# TODO: Remove these suppressions after bug 993267 is fixed.
+
 if CONFIG['GNU_CXX']:
-    # TODO: Remove this LZ4 warning suppression after bug 993267 is fixed.
     SOURCES['/mfbt/Compression.cpp'].flags += ['-Wno-unused-function']
+
+if CONFIG['_MSC_VER']:
+    # Error 4804 is "'>' : unsafe use of type 'bool' in operation"
+    SOURCES['/mfbt/Compression.cpp'].flags += ['-wd4804']
--- a/mfbt/staticruntime/moz.build
+++ b/mfbt/staticruntime/moz.build
@@ -13,12 +13,17 @@ UNIFIED_SOURCES += mfbt_src_cppsrcs
 DEFINES['IMPL_MFBT'] = True
 
 SOURCES += mfbt_nonunified_src_cppsrcs
 
 USE_STATIC_LIBS = True
 
 DISABLE_STL_WRAPPING = True
 
-# Suppress warnings in third-party code.
+# Suppress warnings in third-party LZ4 code.
+# TODO: Remove these suppressions after bug 993267 is fixed.
+
 if CONFIG['GNU_CXX']:
-    # TODO: Remove this LZ4 warning suppression after bug 993267 is fixed.
     SOURCES['/mfbt/Compression.cpp'].flags += ['-Wno-unused-function']
+
+if CONFIG['_MSC_VER']:
+    # Error 4804 is "'>' : unsafe use of type 'bool' in operation"
+    SOURCES['/mfbt/Compression.cpp'].flags += ['-wd4804']
--- a/mfbt/tests/moz.build
+++ b/mfbt/tests/moz.build
@@ -51,13 +51,11 @@ DEFINES['IMPL_MFBT'] = True
 DISABLE_STL_WRAPPING = True
 
 if CONFIG['_MSC_VER']:
   CXXFLAGS += [
     '-wd4275', # non dll-interface class used as base for dll-interface class
     '-wd4530', # C++ exception handler used, but unwind semantics are not enabled
   ]
 
-FAIL_ON_WARNINGS = True
-
 USE_LIBS += [
     'mfbt',
 ]
--- a/mobile/android/config/mozconfigs/android-api-11/debug
+++ b/mobile/android/config/mozconfigs/android-api-11/debug
@@ -7,12 +7,12 @@ ac_add_options --enable-debug
 ac_add_options --with-android-min-sdk=11
 ac_add_options --target=arm-linux-androideabi
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
 
 ac_add_options --with-branding=mobile/android/branding/nightly
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/android-api-9-10-constrained/debug
+++ b/mobile/android/config/mozconfigs/android-api-9-10-constrained/debug
@@ -11,12 +11,12 @@ export MOZ_DISABLE_GECKOVIEW=1
 
 ac_add_options --target=arm-linux-androideabi
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
 
 ac_add_options --with-branding=mobile/android/branding/nightly
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/android-x86/debug
+++ b/mobile/android/config/mozconfigs/android-x86/debug
@@ -6,12 +6,12 @@ ac_add_options --enable-debug
 # Android
 ac_add_options --target=i386-linux-android
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
 
 ac_add_options --with-branding=mobile/android/branding/nightly
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/common
+++ b/mobile/android/config/mozconfigs/common
@@ -44,17 +44,17 @@ else
   ac_add_options --with-android-sdk="/tools/android-sdk-r$ANDROID_SDK_VERSION/platforms/android-$ANDROID_SDK_VERSION"
 fi
 
 ac_add_options --with-android-gnu-compiler-version=4.9
 ac_add_options --with-android-version=9
 ac_add_options --with-system-zlib
 ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
 
-# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
+# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
 ac_add_options --enable-warnings-as-errors
 
 ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-fennec-geoloc-api.key
 ac_add_options --with-adjust-sdk-keyfile=/builds/adjust-sdk.token
 export SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE=/builds/crash-stats-api.token
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
--- a/modules/libjar/moz.build
+++ b/modules/libjar/moz.build
@@ -39,13 +39,11 @@ UNIFIED_SOURCES += [
 SOURCES += [
     'nsJAR.cpp',
     'nsJARChannel.cpp',
     'nsJARFactory.cpp',
     'nsJARInputStream.cpp',
     'nsZipArchive.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/modules/libjar/zipwriter/moz.build
+++ b/modules/libjar/zipwriter/moz.build
@@ -17,10 +17,8 @@ UNIFIED_SOURCES += [
     'nsZipDataStream.cpp',
     'nsZipHeader.cpp',
     'nsZipWriter.cpp',
     'StreamFunctions.cpp',
     'ZipWriterModule.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/modules/libmar/sign/moz.build
+++ b/modules/libmar/sign/moz.build
@@ -17,8 +17,11 @@ LOCAL_INCLUDES += [
     '../src',
     '../verify',
 ]
 
 DEFINES['MAR_NSS'] = True
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     USE_STATIC_LIBS = True
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/modules/libmar/src/moz.build
+++ b/modules/libmar/src/moz.build
@@ -23,8 +23,11 @@ UNIFIED_SOURCES += [
     'mar_extract.c',
     'mar_read.c',
 ]
 
 FORCE_STATIC_LIB = True
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     USE_STATIC_LIBS = True
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/modules/libmar/tool/moz.build
+++ b/modules/libmar/tool/moz.build
@@ -51,8 +51,11 @@ elif CONFIG['OS_ARCH'] == 'Darwin':
     OS_LIBS += [
       '-framework Security',
     ]
 
 if CONFIG['HOST_OS_ARCH'] == 'WINNT':
     HOST_OS_LIBS += [
         'ws2_32',
     ]
+
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
--- a/modules/libpref/moz.build
+++ b/modules/libpref/moz.build
@@ -37,10 +37,8 @@ SOURCES += [
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 DEFINES['OS_ARCH'] = CONFIG['OS_ARCH']
 DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT']
-
-FAIL_ON_WARNINGS = True
--- a/mozglue/android/moz.build
+++ b/mozglue/android/moz.build
@@ -12,18 +12,16 @@ SOURCES += [
     'APKOpen.cpp',
     'NativeCrypto.cpp',
     'nsGeckoUtils.cpp',
     'NSSBridge.cpp',
     'pbkdf2_sha256.c',
     'SQLiteBridge.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'mozglue'
 
 for var in ('ANDROID_PACKAGE_NAME',
             'ANDROID_CPU_ARCH'):
     DEFINES[var] = '"%s"' % CONFIG[var]
 
 if CONFIG['MOZ_FOLD_LIBS']:
     DEFINES['MOZ_FOLD_LIBS'] = True
--- a/mozglue/build/moz.build
+++ b/mozglue/build/moz.build
@@ -85,18 +85,18 @@ if not CONFIG['JS_STANDALONE']:
 USE_LIBS += [
     'mfbt',
 ]
 
 DEFINES['IMPL_MFBT'] = True
 
 LDFLAGS += CONFIG['MOZ_GLUE_WRAP_LDFLAGS']
 
-if not CONFIG['_MSC_VER']:
-    FAIL_ON_WARNINGS = True
+if CONFIG['_MSC_VER']:
+    ALLOW_COMPILER_WARNINGS = True
 
 if CONFIG['OS_TARGET'] == 'Darwin':
     # On OSX 10.10.3, a dead lock happens in some cases involving dynamic
     # symbol resolution for symbols that jemalloc itself uses. While it
     # might be possible to find a way to avoid all such symbol resolutions,
     # it's currently not possible because at the very least there's a call
     # to pthread_self from tsd_init_check_recursion, which is necessary
     # because somehow clang doesn't want to accept the __thread keyword
--- a/mozglue/linker/moz.build
+++ b/mozglue/linker/moz.build
@@ -28,10 +28,8 @@ DEFINES['IMPL_MFBT'] = True
 
 DISABLE_STL_WRAPPING = True
 
 TEST_DIRS += ['tests']
 
 HOST_OS_LIBS += [
     'z',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/mozglue/misc/moz.build
+++ b/mozglue/misc/moz.build
@@ -38,10 +38,8 @@ elif CONFIG['COMPILE_ENVIRONMENT']:
 # the conditions for GeckoStackWalk to work correctly.
 # We exclude this file from other build configurations so that if somebody adds a
 # new usage of NS_StackWalk it will cause a link error, which is better than having
 # GeckoStackWalk silently return garbage at runtime.
 if CONFIG['MOZ_STACKWALKING']:
     SOURCES += [
         'StackWalk.cpp',
     ]
-
-FAIL_ON_WARNINGS = True
--- a/netwerk/base/moz.build
+++ b/netwerk/base/moz.build
@@ -274,18 +274,16 @@ EXTRA_COMPONENTS += [
     'PACGenerator.js',
     'PACGenerator.manifest'
 ]
 
 EXTRA_JS_MODULES += [
     'NetUtil.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/netwerk/protocol/http'
 ]
--- a/netwerk/build/moz.build
+++ b/netwerk/build/moz.build
@@ -7,18 +7,16 @@
 EXPORTS += [
     'nsNetCID.h',
 ]
 
 SOURCES += [
     'nsNetModule.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
     '/netwerk/cache',
     '/netwerk/dns',
--- a/netwerk/cache/moz.build
+++ b/netwerk/cache/moz.build
@@ -36,15 +36,13 @@ UNIFIED_SOURCES += [
     'nsDiskCacheDevice.cpp',
     'nsDiskCacheDeviceSQL.cpp',
     'nsDiskCacheEntry.cpp',
     'nsDiskCacheMap.cpp',
     'nsDiskCacheStreams.cpp',
     'nsMemoryCacheDevice.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
--- a/netwerk/cache2/moz.build
+++ b/netwerk/cache2/moz.build
@@ -47,11 +47,9 @@ SOURCES += [
     'AppCacheStorage.cpp',
 ]
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
     '/netwerk/cache',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/netwerk/cookie/moz.build
+++ b/netwerk/cookie/moz.build
@@ -38,13 +38,11 @@ if CONFIG['NECKO_COOKIES']:
         'test/unit/xpcshell.ini',
         'test/unit_ipc/xpcshell.ini',
     ]
 
 IPDL_SOURCES = [
     'PCookieService.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/netwerk/dns/mdns/libmdns/moz.build
+++ b/netwerk/dns/mdns/libmdns/moz.build
@@ -27,12 +27,10 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'go
       '/netwerk/base',
     ]
 
 UNIFIED_SOURCES += [
     'nsDNSServiceInfo.cpp',
     'nsMulticastDNSModule.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 FINAL_LIBRARY = 'xul'
--- a/netwerk/dns/moz.build
+++ b/netwerk/dns/moz.build
@@ -47,18 +47,16 @@ UNIFIED_SOURCES += [
     'race.c',
 ]
 
 IPDL_SOURCES = [
     'PDNSRequest.ipdl',
     'PDNSRequestParams.ipdlh',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 GENERATED_FILES = [
     'etld_data.inc',
 ]
 etld_data = GENERATED_FILES['etld_data.inc']
--- a/netwerk/ipc/moz.build
+++ b/netwerk/ipc/moz.build
@@ -34,18 +34,16 @@ IPDL_SOURCES = [
     'PChannelDiverter.ipdl',
     'PDataChannel.ipdl',
     'PNecko.ipdl',
     'PRemoteOpenFile.ipdl',
     'PRtspChannel.ipdl',
     'PRtspController.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/caps',
     '/modules/libjar',
     '/netwerk/base',
--- a/netwerk/mime/moz.build
+++ b/netwerk/mime/moz.build
@@ -15,11 +15,9 @@ XPIDL_MODULE = 'mimetype'
 EXPORTS += [
     'nsMimeTypes.h',
 ]
 
 SOURCES += [
     'nsMIMEHeaderParamImpl.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/netwerk/protocol/about/moz.build
+++ b/netwerk/protocol/about/moz.build
@@ -17,18 +17,16 @@ EXPORTS += [
 UNIFIED_SOURCES += [
     'nsAboutBlank.cpp',
     'nsAboutBloat.cpp',
     'nsAboutCache.cpp',
     'nsAboutCacheEntry.cpp',
     'nsAboutProtocolHandler.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
     '/netwerk/cache2',
 ]
--- a/netwerk/protocol/app/moz.build
+++ b/netwerk/protocol/app/moz.build
@@ -6,17 +6,15 @@
 
 SOURCES += [
     'AppProtocolHandler.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/caps',
     '/modules/libjar',
     '/netwerk/base',
 ]
 
--- a/netwerk/protocol/data/moz.build
+++ b/netwerk/protocol/data/moz.build
@@ -12,15 +12,13 @@ UNIFIED_SOURCES += [
     'DataChannelChild.cpp',
     'DataChannelParent.cpp',
     'nsDataChannel.cpp',
     'nsDataHandler.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
 
--- a/netwerk/protocol/device/moz.build
+++ b/netwerk/protocol/device/moz.build
@@ -16,17 +16,15 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'andr
 UNIFIED_SOURCES += [
     'nsDeviceChannel.cpp',
     'nsDeviceProtocolHandler.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base/',
 ]
--- a/netwerk/protocol/file/moz.build
+++ b/netwerk/protocol/file/moz.build
@@ -15,15 +15,13 @@ XPIDL_SOURCES += [
 
 XPIDL_MODULE = 'necko_file'
 
 UNIFIED_SOURCES += [
     'nsFileChannel.cpp',
     'nsFileProtocolHandler.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
--- a/netwerk/protocol/ftp/moz.build
+++ b/netwerk/protocol/ftp/moz.build
@@ -27,17 +27,15 @@ UNIFIED_SOURCES += [
     'nsFtpControlConnection.cpp',
     'nsFtpProtocolHandler.cpp',
 ]
 
 IPDL_SOURCES += [
     'PFTPChannel.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
--- a/netwerk/protocol/http/moz.build
+++ b/netwerk/protocol/http/moz.build
@@ -96,18 +96,16 @@ IPDL_SOURCES += [
     'PHttpChannel.ipdl',
 ]
 
 EXTRA_JS_MODULES += [
     'UserAgentOverrides.jsm',
     'UserAgentUpdates.jsm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/netwerk/base',
 ]
--- a/netwerk/protocol/res/moz.build
+++ b/netwerk/protocol/res/moz.build
@@ -12,17 +12,15 @@ XPIDL_SOURCES += [
 XPIDL_MODULE = 'necko_res'
 
 UNIFIED_SOURCES += [
     'ExtensionProtocolHandler.cpp',
     'nsResProtocolHandler.cpp',
     'SubstitutingProtocolHandler.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
--- a/netwerk/protocol/rtsp/moz.build
+++ b/netwerk/protocol/rtsp/moz.build
@@ -37,18 +37,16 @@ SOURCES += [
     'rtsp/ARTPConnection.cpp',
     'rtsp/ARTPSource.cpp',
     'rtsp/ARTPWriter.cpp',
     'rtsp/ARTSPConnection.cpp',
     'rtsp/ASessionDescription.cpp',
     'rtsp/RTSPSource.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 # Suppress some GCC warnings being treated as errors:
 #  - about attributes on forward declarations for types that are already
 #    defined, which complains about an important MOZ_EXPORT for android::AString
 if CONFIG['GNU_CC']:
   CXXFLAGS += ['-Wno-error=attributes']
 
--- a/netwerk/protocol/viewsource/moz.build
+++ b/netwerk/protocol/viewsource/moz.build
@@ -13,15 +13,13 @@ XPIDL_MODULE = 'necko_viewsource'
 UNIFIED_SOURCES += [
     'nsViewSourceChannel.cpp',
     'nsViewSourceHandler.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
 
--- a/netwerk/protocol/websocket/moz.build
+++ b/netwerk/protocol/websocket/moz.build
@@ -24,18 +24,16 @@ UNIFIED_SOURCES += [
     'WebSocketChannelChild.cpp',
     'WebSocketChannelParent.cpp',
 ]
 
 IPDL_SOURCES += [
     'PWebSocket.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/netwerk/base',
 ]
--- a/netwerk/protocol/wyciwyg/moz.build
+++ b/netwerk/protocol/wyciwyg/moz.build
@@ -22,17 +22,15 @@ UNIFIED_SOURCES += [
     'WyciwygChannelChild.cpp',
     'WyciwygChannelParent.cpp',
 ]
 
 IPDL_SOURCES += [
     'PWyciwygChannel.ipdl',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
--- a/netwerk/sctp/datachannel/moz.build
+++ b/netwerk/sctp/datachannel/moz.build
@@ -9,18 +9,16 @@ EXPORTS.mozilla.net += [
     'DataChannelListener.h',
     'DataChannelProtocol.h'
 ]
 
 SOURCES += [
     'DataChannel.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/media/mtransport',
     '/netwerk/sctp/src',
 ]
--- a/netwerk/sctp/src/moz.build
+++ b/netwerk/sctp/src/moz.build
@@ -38,16 +38,19 @@ if CONFIG['OS_TARGET'] == 'Android':
     SOURCES += [
         'ifaddrs_android.cpp',
     ]
 
 Library('nksctp_s')
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
+# XXX: We should fix these warnings.
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/dom/base',
     '/netwerk/base',
 ]
 
 for var in ('SCTP_SIMPLE_ALLOCATOR',
--- a/netwerk/socket/moz.build
+++ b/netwerk/socket/moz.build
@@ -19,11 +19,9 @@ UNIFIED_SOURCES += [
     'nsSOCKSIOLayer.cpp',
     'nsSOCKSSocketProvider.cpp',
     'nsUDPSocketProvider.cpp',
 ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/netwerk/srtp/src/moz.build
+++ b/netwerk/srtp/src/moz.build
@@ -63,10 +63,8 @@ if  CONFIG['CPU_ARCH'] in ('x86', 'x86_6
     DEFINES['HAVE_X86'] = True
 
 if CONFIG['OS_TARGET'] == 'WINNT':
     DEFINES['HAVE_WINSOCK2_H'] = True
     DEFINES['inline'] = '__inline'
 
 if CONFIG['GNU_CC']:
     CFLAGS += ['-std=gnu99']
-
-FAIL_ON_WARNINGS = True
--- a/netwerk/standalone/moz.build
+++ b/netwerk/standalone/moz.build
@@ -33,18 +33,16 @@ netwerk_dns_src = [
     'race.c',
 ]
 src_list += [
     '/netwerk/dns/%s' % s for s in netwerk_dns_src
 ]
 
 SOURCES += sorted(src_list)
 
-FAIL_ON_WARNINGS = True
-
 LOCAL_INCLUDES = [
     '../base',
     '../build',
     '../dns',
 ]
 
 DEFINES['MOZILLA_INTERNAL_API'] = True
 DEFINES['MOZILLA_XPCOMRT_API'] = True
--- a/netwerk/streamconv/converters/moz.build
+++ b/netwerk/streamconv/converters/moz.build
@@ -21,15 +21,13 @@ if 'ftp' in CONFIG['NECKO_PROTOCOLS']:
         'ParseFTPList.cpp',
     ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'cocoa':
     UNIFIED_SOURCES += [
         'nsBinHexDecoder.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
--- a/netwerk/streamconv/moz.build
+++ b/netwerk/streamconv/moz.build
@@ -17,11 +17,9 @@ XPIDL_SOURCES += [
 ]
 
 SOURCES += [
     'nsStreamConverterService.cpp',
 ]
 
 XPIDL_MODULE = 'necko_strconv'
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/netwerk/streamconv/test/moz.build
+++ b/netwerk/streamconv/test/moz.build
@@ -6,16 +6,14 @@
 
 GeckoProgram('TestStreamConv', linkage='dependent')
 
 UNIFIED_SOURCES += [
     'Converters.cpp',
     'TestStreamConv.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 if CONFIG['OS_ARCH'] == 'WINNT':
     DEFINES['NGPREFS'] = True
     if CONFIG['GNU_CXX']:
         LDFLAGS += ['-mconsole']
     else:
         LDFLAGS += ['-SUBSYSTEM:CONSOLE']
--- a/netwerk/system/android/moz.build
+++ b/netwerk/system/android/moz.build
@@ -3,15 +3,13 @@
 # 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/.
 
 SOURCES += [
     'nsAndroidNetworkLinkService.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
 
--- a/netwerk/system/linux/moz.build
+++ b/netwerk/system/linux/moz.build
@@ -4,11 +4,9 @@
 # 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 CONFIG['OS_ARCH'] == 'Linux':
     SOURCES += [
         'nsNotifyAddrListener_Linux.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/netwerk/system/mac/moz.build
+++ b/netwerk/system/mac/moz.build
@@ -3,11 +3,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/.
 
 SOURCES += [
     'nsNetworkLinkService.mm',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/netwerk/system/qt/moz.build
+++ b/netwerk/system/qt/moz.build
@@ -5,16 +5,14 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
     '!moc_nsQtNetworkManager.cpp',
     'nsQtNetworkLinkService.cpp',
     'nsQtNetworkManager.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
 
 CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
--- a/netwerk/system/win32/moz.build
+++ b/netwerk/system/win32/moz.build
@@ -4,11 +4,9 @@
 # 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 CONFIG['OS_ARCH'] == 'WINNT':
     SOURCES += [
         'nsNotifyAddrListener.cpp',
     ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/netwerk/test/moz.build
+++ b/netwerk/test/moz.build
@@ -1,18 +1,16 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
 TEST_DIRS += ['httpserver']
 
-FAIL_ON_WARNINGS = True
-
 BROWSER_CHROME_MANIFESTS += ['browser/browser.ini']
 MOCHITEST_MANIFESTS += ['mochitests/mochitest.ini']
 
 XPCSHELL_TESTS_MANIFESTS += [
     'unit/xpcshell.ini',
     'unit/xpcshell_b2g.ini',
     'unit_ipc/xpcshell.ini',
 ]
--- a/netwerk/wifi/moz.build
+++ b/netwerk/wifi/moz.build
@@ -21,17 +21,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
         'nsWifiMonitorGonk.cpp',
     ]
 else:
     UNIFIED_SOURCES += [
         'nsWifiMonitor.cpp',
     ]
 
 # osx_corewlan.mm has warnings I don't understand.
-FAIL_ON_WARNINGS = CONFIG['OS_ARCH'] != 'Darwin'
+if CONFIG['OS_ARCH'] == 'Darwin':
+    ALLOW_COMPILER_WARNINGS = True
 
 if CONFIG['OS_ARCH'] == 'Darwin':
     UNIFIED_SOURCES += [
         'nsWifiScannerMac.cpp',
     ]
     UNIFIED_SOURCES += [
         'osx_corewlan.mm',
     ]
--- a/other-licenses/android/moz.build
+++ b/other-licenses/android/moz.build
@@ -22,9 +22,11 @@ UNIFIED_SOURCES += [
 # These files can't be unified because of conflicting global variable names.
 SOURCES += [
     'ns_print.c',
     'res_debug.c',
     'res_mkquery.c',
     'res_state.c',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'mozglue'
--- a/other-licenses/skia-npapi/moz.build
+++ b/other-licenses/skia-npapi/moz.build
@@ -11,16 +11,18 @@ EXPORTS += [
 UNIFIED_SOURCES += [
     'ANPCanvas.cpp',
     'ANPPaint.cpp',
     'ANPPath.cpp',
     'ANPTypeface.cpp',
     'SkANP.cpp',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul'
 
 DEFINES['SK_BUILD_FOR_ANDROID_NDK'] = True
 
 LOCAL_INCLUDES += [
     '/dom/plugins/base',
     '/dom/plugins/base/android',
     '/gfx/gl',
--- a/other-licenses/snappy/moz.build
+++ b/other-licenses/snappy/moz.build
@@ -12,16 +12,18 @@ EXPORTS.snappy += [
 
 UNIFIED_SOURCES += [
     'src/snappy-c.cc',
     'src/snappy-sinksource.cc',
     'src/snappy-stubs-internal.cc',
     'src/snappy.cc',
 ]
 
+ALLOW_COMPILER_WARNINGS = True
+
 FINAL_LIBRARY = 'xul'
 
 # Suppress warnings in third-party code.
 if CONFIG['GNU_CXX']:
     CXXFLAGS += [
         '-Wno-sign-compare',
         '-Wno-unused-function'
     ]
--- a/parser/html/moz.build
+++ b/parser/html/moz.build
@@ -92,10 +92,8 @@ UNIFIED_SOURCES += [
 
 FINAL_LIBRARY = 'xul'
 
 # DEFINES['ENABLE_VOID_MENUITEM'] = True
 
 LOCAL_INCLUDES += [
     '/dom/base',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/parser/htmlparser/moz.build
+++ b/parser/htmlparser/moz.build
@@ -41,11 +41,9 @@ UNIFIED_SOURCES += [
     'nsParser.cpp',
     'nsParserModule.cpp',
     'nsParserMsgUtils.cpp',
     'nsParserService.cpp',
     'nsScanner.cpp',
     'nsScannerString.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'
--- a/parser/xml/moz.build
+++ b/parser/xml/moz.build
@@ -32,10 +32,8 @@ SOURCES += [
     'nsSAXLocator.cpp',
     'nsSAXXMLReader.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wshadow']
-
-FAIL_ON_WARNINGS = True
--- a/python/mozbuild/mozbuild/frontend/context.py
+++ b/python/mozbuild/mozbuild/frontend/context.py
@@ -676,16 +676,25 @@ SUBCONTEXTS = {cls.__name__: cls for cls
 # - 'export'
 # - 'libs': everything that is not built from C/C++/ObjC source and that has
 #      traditionally been in the libs tier.
 # - 'misc': like libs, but with parallel build. Eventually, everything that
 #      currently is in libs should move here.
 # A value of None means the variable has no direct effect on any tier.
 
 VARIABLES = {
+    'ALLOW_COMPILER_WARNINGS': (bool, bool,
+        """Whether to allow compiler warnings (i.e. *not* treat them as
+        errors).
+
+        This is commonplace (almost mandatory, in fact) in directories
+        containing third-party code that we regularly update from upstream and
+        thus do not control, but is otherwise discouraged.
+        """, None),
+
     # Variables controlling reading of other frontend files.
     'ANDROID_GENERATED_RESFILES': (StrictOrderingOnAppendList, list,
         """Android resource files generated as part of the build.
 
         This variable contains a list of files that are expected to be
         generated (often by preprocessing) into a 'res' directory as
         part of the build process, and subsequently merged into an APK
         file.
@@ -942,20 +951,16 @@ VARIABLES = {
         Each name in this variable corresponds to an executable built from the
         corresponding source file with the same base name.
 
         If the configuration token ``BIN_SUFFIX`` is set, its value will be
         automatically appended to each name. If a name already ends with
         ``BIN_SUFFIX``, the name will remain unchanged.
         """, None),
 
-    'FAIL_ON_WARNINGS': (bool, bool,
-        """Whether to treat warnings as errors.
-        """, None),
-
     'FORCE_SHARED_LIB': (bool, bool,
         """Whether the library in this directory is a shared library.
         """, None),
 
     'FORCE_STATIC_LIB': (bool, bool,
         """Whether the library in this directory is a static library.
         """, None),
 
--- a/python/mozbuild/mozbuild/frontend/emitter.py
+++ b/python/mozbuild/mozbuild/frontend/emitter.py
@@ -553,24 +553,24 @@ class TreeMetadataEmitter(LoggingMixin):
                                          'https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0 .',
                                          context);
 
         # Proxy some variables as-is until we have richer classes to represent
         # them. We should aim to keep this set small because it violates the
         # desired abstraction of the build definition away from makefiles.
         passthru = VariablePassthru(context)
         varlist = [
+            'ALLOW_COMPILER_WARNINGS',
             'ANDROID_APK_NAME',
             'ANDROID_APK_PACKAGE',
             'ANDROID_GENERATED_RESFILES',
             'DISABLE_STL_WRAPPING',
             'EXTRA_COMPONENTS',
             'EXTRA_DSO_LDOPTS',
             'EXTRA_PP_COMPONENTS',
-            'FAIL_ON_WARNINGS',
             'USE_STATIC_LIBS',
             'PYTHON_UNIT_TESTS',
             'RCFILE',
             'RESFILE',
             'RCINCLUDE',
             'DEFFILE',
             'WIN32_EXE_LDFLAGS',
             'LD_VERSION_SCRIPT',
--- a/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build
+++ b/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build
@@ -1,16 +1,15 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # Any copyright is dedicated to the Public Domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
 EXTRA_COMPONENTS = ['bar.js', 'dummy.manifest', 'foo.js']
 EXTRA_PP_COMPONENTS = ['bar.pp.js', 'foo.pp.js']
 
-FAIL_ON_WARNINGS = True
 NO_VISIBILITY_FLAGS = True
 
 DELAYLOAD_DLLS = ['foo.dll', 'bar.dll']
 
 RCFILE = 'foo.rc'
 RESFILE = 'bar.res'
 RCINCLUDE = 'bar.rc'
 DEFFILE = 'baz.def'
@@ -18,8 +17,10 @@ DEFFILE = 'baz.def'
 USE_STATIC_LIBS = True
 
 CFLAGS += ['-fno-exceptions', '-w']
 CXXFLAGS += ['-fcxx-exceptions', '-include foo.h']
 LDFLAGS += ['-framework Foo', '-x']
 WIN32_EXE_LDFLAGS += ['-subsystem:console']
 
 DISABLE_STL_WRAPPING = True
+
+ALLOW_COMPILER_WARNINGS = True
--- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
+++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
@@ -255,31 +255,31 @@ class TestRecursiveMakeBackend(BackendTe
     def test_variable_passthru(self):
         """Ensure variable passthru is written out correctly."""
         env = self._consume('variable_passthru', RecursiveMakeBackend)
 
         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
 
         expected = {
+            'ALLOW_COMPILER_WARNINGS': [
+                'ALLOW_COMPILER_WARNINGS := 1',
+            ],
             'DISABLE_STL_WRAPPING': [
                 'DISABLE_STL_WRAPPING := 1',
             ],
             'EXTRA_COMPONENTS': [
                 'EXTRA_COMPONENTS += bar.js',
                 'EXTRA_COMPONENTS += dummy.manifest',
                 'EXTRA_COMPONENTS += foo.js',
             ],
             'EXTRA_PP_COMPONENTS': [
                 'EXTRA_PP_COMPONENTS += bar.pp.js',
                 'EXTRA_PP_COMPONENTS += foo.pp.js',
             ],
-            'FAIL_ON_WARNINGS': [
-                'FAIL_ON_WARNINGS := 1',
-            ],
             'VISIBILITY_FLAGS': [
                 'VISIBILITY_FLAGS :=',
             ],
             'RCFILE': [
                 'RCFILE := foo.rc',
             ],
             'RESFILE': [
                 'RESFILE := bar.res',
--- a/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build
+++ b/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build
@@ -1,16 +1,15 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # Any copyright is dedicated to the Public Domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
 EXTRA_COMPONENTS = ['dummy.manifest', 'fans.js', 'tans.js']
 EXTRA_PP_COMPONENTS=['fans.pp.js', 'tans.pp.js']
 
-FAIL_ON_WARNINGS = True
 DIST_INSTALL = False
 
 NO_VISIBILITY_FLAGS = True
 
 DELAYLOAD_DLLS = ['foo.dll', 'bar.dll']
 
 RCFILE = 'foo.rc'
 RESFILE = 'bar.res'
@@ -20,8 +19,10 @@ DEFFILE = 'baz.def'
 USE_STATIC_LIBS = True
 
 CFLAGS += ['-fno-exceptions', '-w']
 CXXFLAGS += ['-fcxx-exceptions', '-include foo.h']
 LDFLAGS += ['-framework Foo', '-x']
 WIN32_EXE_LDFLAGS += ['-subsystem:console']
 
 DISABLE_STL_WRAPPING = True
+
+ALLOW_COMPILER_WARNINGS = True
--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
@@ -156,20 +156,20 @@ class TestEmitterBasic(unittest.TestCase
     def test_variable_passthru(self):
         reader = self.reader('variable-passthru')
         objs = self.read_topsrcdir(reader)
 
         self.assertEqual(len(objs), 1)
         self.assertIsInstance(objs[0], VariablePassthru)
 
         wanted = {
+            'ALLOW_COMPILER_WARNINGS': True,
             'DISABLE_STL_WRAPPING': True,
             'EXTRA_COMPONENTS': ['dummy.manifest', 'fans.js', 'tans.js'],
             'EXTRA_PP_COMPONENTS': ['fans.pp.js', 'tans.pp.js'],
-            'FAIL_ON_WARNINGS': True,
             'NO_DIST_INSTALL': True,
             'VISIBILITY_FLAGS': '',
             'RCFILE': 'foo.rc',
             'RESFILE': 'bar.res',
             'RCINCLUDE': 'bar.rc',
             'DEFFILE': 'baz.def',
             'USE_STATIC_LIBS': True,
             'MOZBUILD_CFLAGS': ['-fno-exceptions', '-w'],
--- a/rdf/base/moz.build
+++ b/rdf/base/moz.build
@@ -48,10 +48,9 @@ UNIFIED_SOURCES += [
     'nsRDFService.cpp',
     'nsRDFXMLDataSource.cpp',
     'nsRDFXMLParser.cpp',
     'nsRDFXMLSerializer.cpp',
     'rdfTriplesSerializer.cpp',
     'rdfutil.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
 FINAL_LIBRARY = 'xul'
--- a/rdf/build/moz.build
+++ b/rdf/build/moz.build
@@ -13,10 +13,8 @@ SOURCES += [
 ]
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '/rdf/base',
     '/rdf/datasource',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/rdf/datasource/moz.build
+++ b/rdf/datasource/moz.build
@@ -16,10 +16,10 @@ UNIFIED_SOURCES += [
 FINAL_LIBRARY = 'xul'
 
 # "This is a dependency on rdfutil.h: it'll go away once that becomes
 # a first-class XPCOM interface."
 LOCAL_INCLUDES += [
     '/rdf/base',
 ]
 
-if CONFIG['GNU_CXX']:
-    FAIL_ON_WARNINGS = True
+if not CONFIG['GNU_CXX']:
+    ALLOW_COMPILER_WARNINGS = True
--- a/rdf/tests/rdfcat/moz.build
+++ b/rdf/tests/rdfcat/moz.build
@@ -6,10 +6,8 @@
 
 GeckoProgram('rdfcat', linkage='dependent')
 
 SOURCES += [
     'rdfcat.cpp',
 ]
 
 CXXFLAGS += CONFIG['TK_CFLAGS']
-
-FAIL_ON_WARNINGS = True
--- a/rdf/tests/rdfpoll/moz.build
+++ b/rdf/tests/rdfpoll/moz.build
@@ -4,10 +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/.
 
 GeckoProgram('rdfpoll', linkage='dependent')
 
 SOURCES += [
     'rdfpoll.cpp',
 ]
-
-FAIL_ON_WARNINGS = True
--- a/rdf/tests/triplescat/moz.build
+++ b/rdf/tests/triplescat/moz.build
@@ -6,10 +6,8 @@
 
 GeckoProgram('triplescat', linkage='dependent')
 
 SOURCES += [
     'triplescat.cpp',
 ]
 
 CXXFLAGS += CONFIG['TK_CFLAGS']
-
-FAIL_ON_WARNINGS = True
--- a/rdf/util/internal/moz.build
+++ b/rdf/util/internal/moz.build
@@ -4,10 +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('../objs.mozbuild')
 
 SOURCES += rdf_util_src_cppsrcs
 
 FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
--- a/rdf/util/moz.build
+++ b/rdf/util/moz.build
@@ -18,11 +18,9 @@ include('objs.mozbuild')
 
 SOURCES += rdf_util_src_cppsrcs
 
 Library('rdfutil_external_s')
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = True
 
-FAIL_ON_WARNINGS = True
-
 DIST_INSTALL = True
--- a/security/apps/moz.build
+++ b/security/apps/moz.build
@@ -4,18 +4,16 @@
 # 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/.
 
 UNIFIED_SOURCES += [
     'AppSignatureVerification.cpp',
     'AppTrustDomain.cpp',
 ]
 
-FAIL_ON_WARNINGS = True
-
 FINAL_LIBRARY = 'xul'