summaryrefslogtreecommitdiffstats
path: root/dom/base/UnbindContext.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:33 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:33 +0000
commit086c044dc34dfc0f74fbe41f4ecb402b2cd34884 (patch)
treea4f824bd33cb075dd5aa3eb5a0a94af221bbe83a /dom/base/UnbindContext.h
parentAdding debian version 124.0.1-1. (diff)
downloadfirefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.tar.xz
firefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/base/UnbindContext.h')
-rw-r--r--dom/base/UnbindContext.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/dom/base/UnbindContext.h b/dom/base/UnbindContext.h
new file mode 100644
index 0000000000..77505ba582
--- /dev/null
+++ b/dom/base/UnbindContext.h
@@ -0,0 +1,35 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* State that is passed down to UnbindToTree. */
+
+#ifndef mozilla_dom_UnbindContext_h__
+#define mozilla_dom_UnbindContext_h__
+
+#include "mozilla/Attributes.h"
+#include "nsINode.h"
+
+namespace mozilla::dom {
+
+struct MOZ_STACK_CLASS UnbindContext final {
+ // The root of the subtree being unbound.
+ nsINode& Root() const { return mRoot; }
+ // Whether we're the root of the subtree being unbound.
+ bool IsUnbindRoot(const nsINode* aNode) const { return &mRoot == aNode; }
+ // The parent node of the subtree we're unbinding from.
+ nsINode* GetOriginalSubtreeParent() const { return mOriginalParent; }
+
+ explicit UnbindContext(nsINode& aRoot)
+ : mRoot(aRoot), mOriginalParent(aRoot.GetParentNode()) {}
+
+ private:
+ nsINode& mRoot;
+ nsINode* const mOriginalParent;
+};
+
+} // namespace mozilla::dom
+
+#endif