OLD | NEW |
| (Empty) |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef ElementIntersectionObserverData_h | |
6 #define ElementIntersectionObserverData_h | |
7 | |
8 #include "platform/heap/Handle.h" | |
9 | |
10 namespace blink { | |
11 | |
12 class Element; | |
13 class IntersectionObservation; | |
14 class IntersectionObserver; | |
15 | |
16 class ElementIntersectionObserverData : public GarbageCollectedFinalized<Element
IntersectionObserverData> { | |
17 public: | |
18 DECLARE_TRACE(); | |
19 ElementIntersectionObserverData(); | |
20 ~ElementIntersectionObserverData(); | |
21 | |
22 bool hasIntersectionObserver() const; | |
23 bool hasIntersectionObservation() const; | |
24 IntersectionObservation* getObservationFor(IntersectionObserver&); | |
25 void addObservation(IntersectionObservation&); | |
26 void removeObservation(IntersectionObserver&); | |
27 void activateValidIntersectionObservers(Element&); | |
28 void deactivateAllIntersectionObservers(Element&); | |
29 | |
30 #if !ENABLE(OILPAN) | |
31 void dispose(); | |
32 #endif | |
33 | |
34 WeakPtrWillBeRawPtr<Element> createWeakPtr(Element*); | |
35 | |
36 private: | |
37 // IntersectionObservers for which the Element owning this data is root. | |
38 HeapHashSet<WeakMember<IntersectionObserver>> m_intersectionObservers; | |
39 // IntersectionObservations for which the Element owning this data is target
. | |
40 HeapHashMap<Member<IntersectionObserver>, Member<IntersectionObservation>> m
_intersectionObservations; | |
41 | |
42 #if !ENABLE(OILPAN) | |
43 OwnPtr<WeakPtrFactory<Element>> m_weakPointerFactory; | |
44 #endif | |
45 }; | |
46 | |
47 } // namespace blink | |
48 | |
49 #endif // ElementIntersectionObserverData_h | |
OLD | NEW |