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

Side by Side Diff: Source/WebKit/chromium/src/WebDOMEvent.cpp

Issue 15271012: Clean up WebDOMEvent ownership of WebCore::Event. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Use WebPrivatePtr instead Created 7 years, 7 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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 class WebDOMEventPrivate : public WebCore::Event { 43 class WebDOMEventPrivate : public WebCore::Event {
44 }; 44 };
45 45
46 void WebDOMEvent::reset() 46 void WebDOMEvent::reset()
47 { 47 {
48 assign(0); 48 assign(0);
49 } 49 }
50 50
51 void WebDOMEvent::assign(const WebDOMEvent& other) 51 void WebDOMEvent::assign(const WebDOMEvent& other)
52 { 52 {
53 WebDOMEventPrivate* p = const_cast<WebDOMEventPrivate*>(other.m_private); 53 m_private = other.m_private;
54 if (p)
55 p->ref();
56 assign(p);
57 }
58
59 void WebDOMEvent::assign(WebDOMEventPrivate* p)
60 {
61 // p is already ref'd for us by the caller
62 if (m_private)
63 m_private->deref();
64 m_private = p;
65 } 54 }
66 55
67 WebDOMEvent::WebDOMEvent(const WTF::PassRefPtr<WebCore::Event>& event) 56 WebDOMEvent::WebDOMEvent(const WTF::PassRefPtr<WebCore::Event>& event)
68 : m_private(static_cast<WebDOMEventPrivate*>(event.leakRef())) 57 : m_private(event)
69 { 58 {
70 } 59 }
71 60
72 WebDOMEvent::operator WTF::PassRefPtr<WebCore::Event>() const 61 WebDOMEvent::operator WTF::PassRefPtr<WebCore::Event>() const
73 { 62 {
74 return static_cast<WebCore::Event*>(m_private); 63 return m_private.get();
75 } 64 }
76 65
77 WebString WebDOMEvent::type() const 66 WebString WebDOMEvent::type() const
78 { 67 {
79 ASSERT(m_private); 68 ASSERT(m_private.get());
dmichael (off chromium) 2013/05/20 22:35:49 If you think it would be better, I could add an ap
abarth-chromium 2013/05/20 22:54:50 IMHO, this is fine.
80 return m_private->type(); 69 return m_private->type();
81 } 70 }
82 71
83 WebNode WebDOMEvent::target() const 72 WebNode WebDOMEvent::target() const
84 { 73 {
85 ASSERT(m_private); 74 ASSERT(m_private.get());
86 return WebNode(m_private->target()->toNode()); 75 return WebNode(m_private->target()->toNode());
87 } 76 }
88 77
89 WebNode WebDOMEvent::currentTarget() const 78 WebNode WebDOMEvent::currentTarget() const
90 { 79 {
91 ASSERT(m_private); 80 ASSERT(m_private.get());
92 return WebNode(m_private->currentTarget()->toNode()); 81 return WebNode(m_private->currentTarget()->toNode());
93 } 82 }
94 83
95 WebDOMEvent::PhaseType WebDOMEvent::eventPhase() const 84 WebDOMEvent::PhaseType WebDOMEvent::eventPhase() const
96 { 85 {
97 ASSERT(m_private); 86 ASSERT(m_private.get());
98 return static_cast<WebDOMEvent::PhaseType>(m_private->eventPhase()); 87 return static_cast<WebDOMEvent::PhaseType>(m_private->eventPhase());
99 } 88 }
100 89
101 bool WebDOMEvent::bubbles() const 90 bool WebDOMEvent::bubbles() const
102 { 91 {
103 ASSERT(m_private); 92 ASSERT(m_private.get());
104 return m_private->bubbles(); 93 return m_private->bubbles();
105 } 94 }
106 95
107 bool WebDOMEvent::cancelable() const 96 bool WebDOMEvent::cancelable() const
108 { 97 {
109 ASSERT(m_private); 98 ASSERT(m_private.get());
110 return m_private->cancelable(); 99 return m_private->cancelable();
111 } 100 }
112 101
113 bool WebDOMEvent::isUIEvent() const 102 bool WebDOMEvent::isUIEvent() const
114 { 103 {
115 ASSERT(m_private); 104 ASSERT(m_private.get());
116 return m_private->isUIEvent(); 105 return m_private->isUIEvent();
117 } 106 }
118 107
119 bool WebDOMEvent::isMouseEvent() const 108 bool WebDOMEvent::isMouseEvent() const
120 { 109 {
121 ASSERT(m_private); 110 ASSERT(m_private.get());
122 return m_private->isMouseEvent(); 111 return m_private->isMouseEvent();
123 } 112 }
124 113
125 bool WebDOMEvent::isKeyboardEvent() const 114 bool WebDOMEvent::isKeyboardEvent() const
126 { 115 {
127 ASSERT(m_private); 116 ASSERT(m_private.get());
128 return m_private->isKeyboardEvent(); 117 return m_private->isKeyboardEvent();
129 } 118 }
130 119
131 bool WebDOMEvent::isMutationEvent() const 120 bool WebDOMEvent::isMutationEvent() const
132 { 121 {
133 ASSERT(m_private); 122 ASSERT(m_private.get());
134 return m_private->hasInterface(WebCore::eventNames().interfaceForMutationEve nt); 123 return m_private->hasInterface(WebCore::eventNames().interfaceForMutationEve nt);
135 } 124 }
136 125
137 bool WebDOMEvent::isTextEvent() const 126 bool WebDOMEvent::isTextEvent() const
138 { 127 {
139 ASSERT(m_private); 128 ASSERT(m_private.get());
140 return m_private->hasInterface(eventNames().interfaceForTextEvent); 129 return m_private->hasInterface(eventNames().interfaceForTextEvent);
141 } 130 }
142 131
143 bool WebDOMEvent::isCompositionEvent() const 132 bool WebDOMEvent::isCompositionEvent() const
144 { 133 {
145 ASSERT(m_private); 134 ASSERT(m_private.get());
146 return m_private->hasInterface(eventNames().interfaceForCompositionEvent); 135 return m_private->hasInterface(eventNames().interfaceForCompositionEvent);
147 } 136 }
148 137
149 bool WebDOMEvent::isDragEvent() const 138 bool WebDOMEvent::isDragEvent() const
150 { 139 {
151 ASSERT(m_private); 140 ASSERT(m_private.get());
152 return m_private->isDragEvent(); 141 return m_private->isDragEvent();
153 } 142 }
154 143
155 bool WebDOMEvent::isClipboardEvent() const 144 bool WebDOMEvent::isClipboardEvent() const
156 { 145 {
157 ASSERT(m_private); 146 ASSERT(m_private.get());
158 return m_private->isClipboardEvent(); 147 return m_private->isClipboardEvent();
159 } 148 }
160 149
161 bool WebDOMEvent::isMessageEvent() const 150 bool WebDOMEvent::isMessageEvent() const
162 { 151 {
163 ASSERT(m_private); 152 ASSERT(m_private.get());
164 return m_private->hasInterface(eventNames().interfaceForMessageEvent); 153 return m_private->hasInterface(eventNames().interfaceForMessageEvent);
165 } 154 }
166 155
167 bool WebDOMEvent::isWheelEvent() const 156 bool WebDOMEvent::isWheelEvent() const
168 { 157 {
169 ASSERT(m_private); 158 ASSERT(m_private.get());
170 return m_private->hasInterface(eventNames().interfaceForWheelEvent); 159 return m_private->hasInterface(eventNames().interfaceForWheelEvent);
171 } 160 }
172 161
173 bool WebDOMEvent::isBeforeTextInsertedEvent() const 162 bool WebDOMEvent::isBeforeTextInsertedEvent() const
174 { 163 {
175 ASSERT(m_private); 164 ASSERT(m_private.get());
176 return m_private->isBeforeTextInsertedEvent(); 165 return m_private->isBeforeTextInsertedEvent();
177 } 166 }
178 167
179 bool WebDOMEvent::isOverflowEvent() const 168 bool WebDOMEvent::isOverflowEvent() const
180 { 169 {
181 ASSERT(m_private); 170 ASSERT(m_private.get());
182 return m_private->hasInterface(eventNames().interfaceForOverflowEvent); 171 return m_private->hasInterface(eventNames().interfaceForOverflowEvent);
183 } 172 }
184 173
185 bool WebDOMEvent::isPageTransitionEvent() const 174 bool WebDOMEvent::isPageTransitionEvent() const
186 { 175 {
187 ASSERT(m_private); 176 ASSERT(m_private.get());
188 return m_private->hasInterface(eventNames().interfaceForPageTransitionEvent) ; 177 return m_private->hasInterface(eventNames().interfaceForPageTransitionEvent) ;
189 } 178 }
190 179
191 bool WebDOMEvent::isPopStateEvent() const 180 bool WebDOMEvent::isPopStateEvent() const
192 { 181 {
193 ASSERT(m_private); 182 ASSERT(m_private.get());
194 return m_private->hasInterface(eventNames().interfaceForPopStateEvent); 183 return m_private->hasInterface(eventNames().interfaceForPopStateEvent);
195 } 184 }
196 185
197 bool WebDOMEvent::isProgressEvent() const 186 bool WebDOMEvent::isProgressEvent() const
198 { 187 {
199 ASSERT(m_private); 188 ASSERT(m_private.get());
200 return m_private->hasInterface(eventNames().interfaceForProgressEvent); 189 return m_private->hasInterface(eventNames().interfaceForProgressEvent);
201 } 190 }
202 191
203 bool WebDOMEvent::isXMLHttpRequestProgressEvent() const 192 bool WebDOMEvent::isXMLHttpRequestProgressEvent() const
204 { 193 {
205 ASSERT(m_private); 194 ASSERT(m_private.get());
206 return m_private->hasInterface(eventNames().interfaceForXMLHttpRequestProgre ssEvent); 195 return m_private->hasInterface(eventNames().interfaceForXMLHttpRequestProgre ssEvent);
207 } 196 }
208 197
209 bool WebDOMEvent::isBeforeLoadEvent() const 198 bool WebDOMEvent::isBeforeLoadEvent() const
210 { 199 {
211 ASSERT(m_private); 200 ASSERT(m_private.get());
212 return m_private->hasInterface(eventNames().interfaceForBeforeLoadEvent); 201 return m_private->hasInterface(eventNames().interfaceForBeforeLoadEvent);
213 } 202 }
214 203
215 } // namespace WebKit 204 } // namespace WebKit
OLDNEW
« no previous file with comments | « Source/WebKit/chromium/src/WebDOMCustomEvent.cpp ('k') | Source/WebKit/chromium/src/WebDOMMessageEvent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698