Bug 1514441 - AsyncUrlChannelClassifier must keep a reference to the channel callback, r=dimi

This commit is contained in:
Andrea Marchesini 2018-12-16 10:22:43 +01:00
parent 9cc643f6d3
commit ce48e4ca2d

View File

@ -133,11 +133,11 @@ class WhitelistClassifierCallback final
WhitelistClassifierCallback(
nsIChannel* aChannel, nsIURI* aURI,
const nsTArray<RefPtr<nsIUrlClassifierFeatureResult>>& aBlacklistResults,
std::function<void()>&& aCallback)
std::function<void()>& aCallback)
: mChannel(aChannel),
mURI(aURI),
mBlacklistResults(aBlacklistResults),
mChannelCallback(std::move(aCallback)) {
mChannelCallback(aCallback) {
MOZ_ASSERT(mChannel);
MOZ_ASSERT(mURI);
MOZ_ASSERT(!mBlacklistResults.IsEmpty());
@ -311,7 +311,7 @@ BlacklistClassifierCallback::OnClassifyComplete(
nsCOMPtr<nsIUrlClassifierFeatureCallback> callback =
new WhitelistClassifierCallback(mChannel, mURI, aResults,
std::move(mChannelCallback));
mChannelCallback);
// xpcom parser creates array of interfaces using RefPtr<>.
nsTArray<RefPtr<nsIUrlClassifierFeature>> refPtrFeatures;