BrowsingContext::~BrowsingContext() { MOZ_DIAGNOSTIC_ASSERT(!mParent || !mParent->mChildren.Contains(this)); MOZ_DIAGNOSTIC_ASSERT(!mGroup || !mGroup->Toplevels().Contains(this)); MOZ_DIAGNOSTIC_ASSERT(!sCachedBrowsingContexts || !sCachedBrowsingContexts->has(Id())); if (sBrowsingContexts) { sBrowsingContexts->remove(Id()); } }
void BrowsingContext::Attach(bool aFromIPC) { MOZ_LOG(GetLog(), LogLevel::Debug, ("%s: %s 0x%08" PRIx64 " to 0x%08" PRIx64, XRE_IsParentProcess() ? "Parent" : "Child", sCachedBrowsingContexts->has(Id()) ? "Re-connecting" : "Connecting", Id(), mParent ? mParent->Id() : 0)); sCachedBrowsingContexts->remove(Id()); auto* children = mParent ? &mParent->mChildren : &mGroup->Toplevels(); MOZ_DIAGNOSTIC_ASSERT(!children->Contains(this)); children->AppendElement(this); // Send attach to our parent if we need to. if (!aFromIPC && XRE_IsContentProcess()) { ContentChild::GetSingleton()->SendAttachBrowsingContext( GetIPCInitializer()); } }
bool BrowsingContext::IsCached() { return sCachedBrowsingContexts->has(Id()); }