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

Side by Side Diff: third_party/WebKit/Source/core/dom/Element.h

Issue 1330633003: Intersection Observer first draft Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Lost newline in merge Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Peter Kelly (pmk@post.com) 4 * (C) 2001 Peter Kelly (pmk@post.com)
5 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * Copyright (C) 2003-2011, 2013, 2014 Apple Inc. All rights reserved. 6 * Copyright (C) 2003-2011, 2013, 2014 Apple Inc. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 class ClientRect; 49 class ClientRect;
50 class ClientRectList; 50 class ClientRectList;
51 class CustomElementDefinition; 51 class CustomElementDefinition;
52 class DOMStringMap; 52 class DOMStringMap;
53 class DOMTokenList; 53 class DOMTokenList;
54 class Dictionary; 54 class Dictionary;
55 class ElementRareData; 55 class ElementRareData;
56 class ElementShadow; 56 class ElementShadow;
57 class ExceptionState; 57 class ExceptionState;
58 class Image; 58 class Image;
59 class IntersectionObserver;
59 class IntSize; 60 class IntSize;
60 class Locale; 61 class Locale;
61 class MutableStylePropertySet; 62 class MutableStylePropertySet;
62 class PropertySetCSSStyleDeclaration; 63 class PropertySetCSSStyleDeclaration;
63 class PseudoElement; 64 class PseudoElement;
64 class ScrollState; 65 class ScrollState;
65 class ScrollStateCallback; 66 class ScrollStateCallback;
66 class ScrollToOptions; 67 class ScrollToOptions;
67 class ShadowRoot; 68 class ShadowRoot;
68 class ShadowRootInit; 69 class ShadowRootInit;
(...skipping 12 matching lines...) Expand all
81 ContainsFullScreenElement = 1 << 3, 82 ContainsFullScreenElement = 1 << 3,
82 IsInTopLayer = 1 << 4, 83 IsInTopLayer = 1 << 4,
83 HasPendingResources = 1 << 5, 84 HasPendingResources = 1 << 5,
84 85
85 NumberOfElementFlags = 6, // Required size of bitfield used to store the fla gs. 86 NumberOfElementFlags = 6, // Required size of bitfield used to store the fla gs.
86 }; 87 };
87 88
88 enum class ShadowRootType; 89 enum class ShadowRootType;
89 90
90 typedef WillBeHeapVector<RefPtrWillBeMember<Attr>> AttrNodeList; 91 typedef WillBeHeapVector<RefPtrWillBeMember<Attr>> AttrNodeList;
92 typedef WillBeHeapVector<RawPtrWillBeMember<IntersectionObserver>> IntersectionO bserverList;
91 93
92 class CORE_EXPORT Element : public ContainerNode { 94 class CORE_EXPORT Element : public ContainerNode {
93 DEFINE_WRAPPERTYPEINFO(); 95 DEFINE_WRAPPERTYPEINFO();
94 public: 96 public:
95 static PassRefPtrWillBeRawPtr<Element> create(const QualifiedName&, Document *); 97 static PassRefPtrWillBeRawPtr<Element> create(const QualifiedName&, Document *);
96 ~Element() override; 98 ~Element() override;
97 99
98 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecopy); 100 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecopy);
99 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecut); 101 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecut);
100 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforepaste); 102 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforepaste);
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 void setTabIndex(int); 517 void setTabIndex(int);
516 short tabIndex() const override; 518 short tabIndex() const override;
517 519
518 void incrementProxyCount(); 520 void incrementProxyCount();
519 void decrementProxyCount(); 521 void decrementProxyCount();
520 522
521 DECLARE_VIRTUAL_TRACE(); 523 DECLARE_VIRTUAL_TRACE();
522 524
523 SpellcheckAttributeState spellcheckAttributeState() const; 525 SpellcheckAttributeState spellcheckAttributeState() const;
524 526
527 void registerIntersectionObserver(IntersectionObserver*);
528 void unregisterIntersectionObserver(IntersectionObserver*);
529 bool hasIntersectionObserver() const override { return m_intersectionObserve rs.size() > 0; }
530 IntersectionObserverList& intersectionObservers() { return m_intersectionObs ervers; }
531
525 protected: 532 protected:
526 Element(const QualifiedName& tagName, Document*, ConstructionType); 533 Element(const QualifiedName& tagName, Document*, ConstructionType);
527 534
528 const ElementData* elementData() const { return m_elementData.get(); } 535 const ElementData* elementData() const { return m_elementData.get(); }
529 UniqueElementData& ensureUniqueElementData(); 536 UniqueElementData& ensureUniqueElementData();
530 537
531 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr opertyID, CSSValueID identifier); 538 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr opertyID, CSSValueID identifier);
532 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr opertyID, double value, CSSPrimitiveValue::UnitType); 539 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr opertyID, double value, CSSPrimitiveValue::UnitType);
533 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr opertyID, const String& value); 540 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr opertyID, const String& value);
534 541
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 668
662 AttrNodeList& ensureAttrNodeList(); 669 AttrNodeList& ensureAttrNodeList();
663 void removeAttrNodeList(); 670 void removeAttrNodeList();
664 void detachAllAttrNodesFromElement(); 671 void detachAllAttrNodesFromElement();
665 void detachAttrNodeFromElementWithValue(Attr*, const AtomicString& value); 672 void detachAttrNodeFromElementWithValue(Attr*, const AtomicString& value);
666 void detachAttrNodeAtIndex(Attr*, size_t index); 673 void detachAttrNodeAtIndex(Attr*, size_t index);
667 674
668 v8::Local<v8::Object> wrapCustomElement(v8::Isolate*, v8::Local<v8::Object> creationContext); 675 v8::Local<v8::Object> wrapCustomElement(v8::Isolate*, v8::Local<v8::Object> creationContext);
669 676
670 RefPtrWillBeMember<ElementData> m_elementData; 677 RefPtrWillBeMember<ElementData> m_elementData;
678 IntersectionObserverList m_intersectionObservers;
671 }; 679 };
672 680
673 DEFINE_NODE_TYPE_CASTS(Element, isElementNode()); 681 DEFINE_NODE_TYPE_CASTS(Element, isElementNode());
674 template <typename T> bool isElementOfType(const Node&); 682 template <typename T> bool isElementOfType(const Node&);
675 template <> inline bool isElementOfType<const Element>(const Node& node) { retur n node.isElementNode(); } 683 template <> inline bool isElementOfType<const Element>(const Node& node) { retur n node.isElementNode(); }
676 template <typename T> inline bool isElementOfType(const Element& element) { retu rn isElementOfType<T>(static_cast<const Node&>(element)); } 684 template <typename T> inline bool isElementOfType(const Element& element) { retu rn isElementOfType<T>(static_cast<const Node&>(element)); }
677 template <> inline bool isElementOfType<const Element>(const Element&) { return true; } 685 template <> inline bool isElementOfType<const Element>(const Element&) { return true; }
678 686
679 // Type casting. 687 // Type casting.
680 template<typename T> inline T& toElement(Node& node) 688 template<typename T> inline T& toElement(Node& node)
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 static PassRefPtrWillBeRawPtr<T> create(const QualifiedName&, Document&) 911 static PassRefPtrWillBeRawPtr<T> create(const QualifiedName&, Document&)
904 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \ 912 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \
905 PassRefPtrWillBeRawPtr<T> T::create(const QualifiedName& tagName, Document& document) \ 913 PassRefPtrWillBeRawPtr<T> T::create(const QualifiedName& tagName, Document& document) \
906 { \ 914 { \
907 return adoptRefWillBeNoop(new T(tagName, document)); \ 915 return adoptRefWillBeNoop(new T(tagName, document)); \
908 } 916 }
909 917
910 } // namespace 918 } // namespace
911 919
912 #endif // Element_h 920 #endif // Element_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/Document.cpp ('k') | third_party/WebKit/Source/core/dom/Element.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698