Bug 1530177 - Downgrade an assertion to a diagnostic assert since it exposes pre-existing bugs. r=dholbert
authorEmilio Cobos Álvarez <emilio@crisal.io>
Thu, 28 Feb 2019 23:37:44 +0000
changeset 520072 5bb743ffae8c391c6481936bbc5d0b26489e4430
parent 520071 23359968e785bf0a57c5f0d3d373384d12a27e60
child 520073 d75868102ceaeb949d2bbd50c3067acd97dae217
push id10862
push userffxbld-merge
push dateMon, 11 Mar 2019 13:01:11 +0000
treeherdermozilla-beta@a2e7f5c935da [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdholbert
bugs1530177, 1438939
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1530177 - Downgrade an assertion to a diagnostic assert since it exposes pre-existing bugs. r=dholbert nsIconChannel (for moz-icon:// images) is unsound, see bug 1438939. nsMenuPopupFrame::Init is also unsound on mac, looks like... I'll try to get them fixed on trunk, but it's not worth crashing release for this IMO, given it's pre-existing. The assert in PresShell::~PresShell hopefully avoids exploitable issues. Differential Revision: https://phabricator.services.mozilla.com/D20945
layout/base/PresShell.cpp
--- a/layout/base/PresShell.cpp
+++ b/layout/base/PresShell.cpp
@@ -3977,17 +3977,19 @@ static inline void AssertFrameTreeIsSane
 #ifdef DEBUG
   if (const nsIFrame* root = aShell.GetRootFrame()) {
     AssertFrameSubtreeIsSane(*root);
   }
 #endif
 }
 
 void PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush aFlush) {
-  MOZ_RELEASE_ASSERT(!mForbiddenToFlush, "This is bad!");
+  // FIXME(emilio, bug 1530177): Turn into a release assert when bug 1530188 and
+  // bug 1530190 are fixed.
+  MOZ_DIAGNOSTIC_ASSERT(!mForbiddenToFlush, "This is bad!");
 
   // Per our API contract, hold a strong ref to ourselves until we return.
   nsCOMPtr<nsIPresShell> kungFuDeathGrip = this;
 
   /**
    * VERY IMPORTANT: If you add some sort of new flushing to this
    * method, make sure to add the relevant SetNeedLayoutFlush or
    * SetNeedStyleFlush calls on the shell.