Bug 1673931 - Resolve Document/Element cycle. r=emilio

Differential Revision: https://phabricator.services.mozilla.com/D95045

Depends on D94869
This commit is contained in:
Simon Giesecke
2020-11-23 16:07:21 +00:00
parent b1c6694997
commit ec58955170
17 changed files with 961 additions and 685 deletions

View File

@@ -127,6 +127,19 @@ ScriptLoadRequest::~ScriptLoadRequest() {
DropJSObjects(this);
}
void ScriptLoadRequest::BlockOnload(Document* aDocument) {
MOZ_ASSERT(!mLoadBlockedDocument);
aDocument->BlockOnload();
mLoadBlockedDocument = aDocument;
}
void ScriptLoadRequest::MaybeUnblockOnload() {
if (mLoadBlockedDocument) {
mLoadBlockedDocument->UnblockOnload(false);
mLoadBlockedDocument = nullptr;
}
}
void ScriptLoadRequest::SetReady() {
MOZ_ASSERT(mProgress != Progress::eReady);
mProgress = Progress::eReady;