Bug 1304632 - Part 1: Assert main thread in ImageValue destructor. r?bholley
The css::ImageValue destructor does things only safe from the main
thread. Let's assert so that we don't accidentally start releasing them
from style worker threads during restyle.
MozReview-Commit-ID: DTkFcx185L
--- a/layout/style/nsCSSValue.cpp
+++ b/layout/style/nsCSSValue.cpp
@@ -2756,16 +2756,18 @@ css::ImageValue::ImageValue(nsIURI* aURI
if (loadingDoc != aDocument) {
aDocument->StyleImageLoader()->MaybeRegisterCSSImage(this);
}
}
css::ImageValue::~ImageValue()
{
+ MOZ_ASSERT(NS_IsMainThread());
+
for (auto iter = mRequests.Iter(); !iter.Done(); iter.Next()) {
nsIDocument* doc = iter.Key();
RefPtr<imgRequestProxy>& proxy = iter.Data();
if (doc) {
doc->StyleImageLoader()->DeregisterCSSImage(this);
}