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 280765 c646a88160d7b65f755f4dcfa5dec8626a77bcd5
parent 280764 dd95d49f2df33730a3bbadb4301f7bfeca50b80c
child 280766 9411723e0e18806be18eea2719099b0412c9ac15
push id8456
push userraliiev@mozilla.com
push dateMon, 21 Sep 2015 14:31:52 +0000
treeherdermozilla-aurora@7f2f0fb041b1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs1198334
milestone43.0a1
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