Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h

Issue 1904923002: Reduce a shadow root object's size by not inheriting DoublyLinkedList (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@raredatav0
Patch Set: fix typo Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
index b1d3653bde85001d20a9e38d1a433def529d2545..9060e14c2dba872558af8e8c2dfd2d0d605b6972 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
+++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
@@ -33,8 +33,6 @@
#include "core/dom/Element.h"
#include "core/dom/TreeScope.h"
#include "core/dom/shadow/SlotAssignment.h"
-#include "wtf/DoublyLinkedList.h"
-#include <iosfwd>
namespace blink {
@@ -54,10 +52,9 @@ enum class ShadowRootType {
Closed
};
-class CORE_EXPORT ShadowRoot final : public DocumentFragment, public TreeScope, public DoublyLinkedListNode<ShadowRoot> {
+class CORE_EXPORT ShadowRoot final : public DocumentFragment, public TreeScope {
DEFINE_WRAPPERTYPEINFO();
USING_GARBAGE_COLLECTED_MIXIN(ShadowRoot);
- friend class WTF::DoublyLinkedListNode<ShadowRoot>;
public:
// FIXME: Current implementation does not work well if a shadow root is dynamically created.
// So multiple shadow subtrees in several elements are prohibited.
@@ -78,10 +75,13 @@ public:
Element* host() const { return toElement(parentOrShadowHostNode()); }
ElementShadow* owner() const { return host() ? host()->shadow() : 0; }
- ShadowRoot* youngerShadowRoot() const { return prev(); }
-
+ ShadowRoot* youngerShadowRoot() const;
+ ShadowRoot* olderShadowRoot() const;
ShadowRoot* olderShadowRootForBindings() const;
+ void setYoungerShadowRoot(ShadowRoot&);
+ void setOlderShadowRoot(ShadowRoot&);
+
String mode() const { return (type() == ShadowRootType::V0 || type() == ShadowRootType::Open) ? "open" : "closed"; };
bool isOpenOrV0() const { return type() == ShadowRootType::V0 || type() == ShadowRootType::Open; }
@@ -135,11 +135,8 @@ public:
using TreeScope::setDocument;
using TreeScope::setParentTreeScope;
-public:
Element* activeElement() const;
- ShadowRoot* olderShadowRoot() const { return next(); }
-
String innerHTML() const;
void setInnerHTML(const String&, ExceptionState&);
@@ -158,8 +155,8 @@ private:
void childrenChanged(const ChildrenChange&) override;
- ShadowRootRareData* ensureShadowRootRareData();
- ShadowRootRareDataV0* ensureShadowRootRareDataV0();
+ ShadowRootRareData& ensureShadowRootRareData();
+ ShadowRootRareDataV0& ensureShadowRootRareDataV0();
void addChildShadowRoot();
void removeChildShadowRoot();
@@ -174,11 +171,8 @@ private:
void invalidateDescendantSlots();
unsigned descendantSlotCount() const;
- Member<ShadowRoot> m_prev;
- Member<ShadowRoot> m_next;
Member<ShadowRootRareData> m_shadowRootRareData;
Member<ShadowRootRareDataV0> m_shadowRootRareDataV0;
-
Member<SlotAssignment> m_slotAssignment;
unsigned m_numberOfStyles : 26;
unsigned m_type : 2;
« no previous file with comments | « third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp ('k') | third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698