OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) | 2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) |
3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) | 3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) |
4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights |
6 * reserved. | 6 * 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 22 matching lines...) Expand all Loading... |
33 | 33 |
34 class RegisteredEventListener { | 34 class RegisteredEventListener { |
35 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); | 35 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); |
36 | 36 |
37 public: | 37 public: |
38 RegisteredEventListener() | 38 RegisteredEventListener() |
39 : m_useCapture(false), | 39 : m_useCapture(false), |
40 m_passive(false), | 40 m_passive(false), |
41 m_once(false), | 41 m_once(false), |
42 m_blockedEventWarningEmitted(false), | 42 m_blockedEventWarningEmitted(false), |
43 m_passiveForcedForDocumentTarget(false) {} | 43 m_passiveForcedForDocumentTarget(false), |
| 44 m_passiveSpecified(false) {} |
44 | 45 |
45 RegisteredEventListener(EventListener* listener, | 46 RegisteredEventListener(EventListener* listener, |
46 const AddEventListenerOptionsResolved& options) | 47 const AddEventListenerOptionsResolved& options) |
47 : m_listener(listener), | 48 : m_listener(listener), |
48 m_useCapture(options.capture()), | 49 m_useCapture(options.capture()), |
49 m_passive(options.passive()), | 50 m_passive(options.passive()), |
50 m_once(options.once()), | 51 m_once(options.once()), |
51 m_blockedEventWarningEmitted(false), | 52 m_blockedEventWarningEmitted(false), |
52 m_passiveForcedForDocumentTarget( | 53 m_passiveForcedForDocumentTarget( |
53 options.passiveForcedForDocumentTarget()) {} | 54 options.passiveForcedForDocumentTarget()), |
| 55 m_passiveSpecified(options.passiveSpecified()) {} |
54 | 56 |
55 DEFINE_INLINE_TRACE() { visitor->trace(m_listener); } | 57 DEFINE_INLINE_TRACE() { visitor->trace(m_listener); } |
56 | 58 |
57 AddEventListenerOptionsResolved options() const { | 59 AddEventListenerOptionsResolved options() const { |
58 AddEventListenerOptionsResolved result; | 60 AddEventListenerOptionsResolved result; |
59 result.setCapture(m_useCapture); | 61 result.setCapture(m_useCapture); |
60 result.setPassive(m_passive); | 62 result.setPassive(m_passive); |
61 result.setPassiveForcedForDocumentTarget(m_passiveForcedForDocumentTarget); | 63 result.setPassiveForcedForDocumentTarget(m_passiveForcedForDocumentTarget); |
62 result.setOnce(m_once); | 64 result.setOnce(m_once); |
| 65 result.setPassiveSpecified(m_passiveSpecified); |
63 return result; | 66 return result; |
64 } | 67 } |
65 | 68 |
66 const EventListener* listener() const { return m_listener; } | 69 const EventListener* listener() const { return m_listener; } |
67 | 70 |
68 EventListener* listener() { return m_listener; } | 71 EventListener* listener() { return m_listener; } |
69 | 72 |
70 bool passive() const { return m_passive; } | 73 bool passive() const { return m_passive; } |
71 | 74 |
72 bool once() const { return m_once; } | 75 bool once() const { return m_once; } |
73 | 76 |
74 bool capture() const { return m_useCapture; } | 77 bool capture() const { return m_useCapture; } |
75 | 78 |
76 bool blockedEventWarningEmitted() const { | 79 bool blockedEventWarningEmitted() const { |
77 return m_blockedEventWarningEmitted; | 80 return m_blockedEventWarningEmitted; |
78 } | 81 } |
79 | 82 |
80 bool passiveForcedForDocumentTarget() const { | 83 bool passiveForcedForDocumentTarget() const { |
81 return m_passiveForcedForDocumentTarget; | 84 return m_passiveForcedForDocumentTarget; |
82 } | 85 } |
83 | 86 |
| 87 bool passiveSpecified() const { return m_passiveSpecified; } |
| 88 |
84 void setBlockedEventWarningEmitted() { m_blockedEventWarningEmitted = true; } | 89 void setBlockedEventWarningEmitted() { m_blockedEventWarningEmitted = true; } |
85 | 90 |
86 bool matches(const EventListener* listener, | 91 bool matches(const EventListener* listener, |
87 const EventListenerOptions& options) const { | 92 const EventListenerOptions& options) const { |
88 // Equality is soley based on the listener and useCapture flags. | 93 // Equality is soley based on the listener and useCapture flags. |
89 DCHECK(m_listener); | 94 DCHECK(m_listener); |
90 DCHECK(listener); | 95 DCHECK(listener); |
91 return *m_listener == *listener && | 96 return *m_listener == *listener && |
92 static_cast<bool>(m_useCapture) == options.capture(); | 97 static_cast<bool>(m_useCapture) == options.capture(); |
93 } | 98 } |
94 | 99 |
95 bool operator==(const RegisteredEventListener& other) const { | 100 bool operator==(const RegisteredEventListener& other) const { |
96 // Equality is soley based on the listener and useCapture flags. | 101 // Equality is soley based on the listener and useCapture flags. |
97 DCHECK(m_listener); | 102 DCHECK(m_listener); |
98 DCHECK(other.m_listener); | 103 DCHECK(other.m_listener); |
99 return *m_listener == *other.m_listener && | 104 return *m_listener == *other.m_listener && |
100 m_useCapture == other.m_useCapture; | 105 m_useCapture == other.m_useCapture; |
101 } | 106 } |
102 | 107 |
103 private: | 108 private: |
104 Member<EventListener> m_listener; | 109 Member<EventListener> m_listener; |
105 unsigned m_useCapture : 1; | 110 unsigned m_useCapture : 1; |
106 unsigned m_passive : 1; | 111 unsigned m_passive : 1; |
107 unsigned m_once : 1; | 112 unsigned m_once : 1; |
108 unsigned m_blockedEventWarningEmitted : 1; | 113 unsigned m_blockedEventWarningEmitted : 1; |
109 unsigned m_passiveForcedForDocumentTarget : 1; | 114 unsigned m_passiveForcedForDocumentTarget : 1; |
| 115 unsigned m_passiveSpecified : 1; |
110 }; | 116 }; |
111 | 117 |
112 } // namespace blink | 118 } // namespace blink |
113 | 119 |
114 WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS(blink::RegisteredEventListener); | 120 WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS(blink::RegisteredEventListener); |
115 | 121 |
116 #endif // RegisteredEventListener_h | 122 #endif // RegisteredEventListener_h |
OLD | NEW |