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

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: merge 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 25 matching lines...) Expand all
36 #include "core/dom/Node.h" 36 #include "core/dom/Node.h"
37 #include <wtf/PassRefPtr.h> 37 #include <wtf/PassRefPtr.h>
38 38
39 using WebCore::eventNames; 39 using WebCore::eventNames;
40 40
41 namespace WebKit { 41 namespace WebKit {
42 42
43 class WebDOMEventPrivate : public WebCore::Event { 43 class WebDOMEventPrivate : public WebCore::Event {
44 }; 44 };
45 45
46 WebDOMEvent::WebDOMEvent(const WebDOMEvent& event)
47 : m_private(event.m_private)
48 {
49 }
50
46 void WebDOMEvent::reset() 51 void WebDOMEvent::reset()
47 { 52 {
48 assign(0); 53 assign(0);
49 } 54 }
50 55
51 void WebDOMEvent::assign(const WebDOMEvent& other) 56 void WebDOMEvent::assign(const WebDOMEvent& other)
52 { 57 {
53 WebDOMEventPrivate* p = const_cast<WebDOMEventPrivate*>(other.m_private); 58 m_private = other.m_private;
54 if (p)
55 p->ref();
56 assign(p);
57 } 59 }
58 60
59 void WebDOMEvent::assign(WebDOMEventPrivate* p) 61 void WebDOMEvent::assign(const WTF::PassRefPtr<WebDOMEventPrivate>& event)
60 { 62 {
61 // p is already ref'd for us by the caller 63 m_private = event;
62 if (m_private)
63 m_private->deref();
64 m_private = p;
65 } 64 }
66 65
67 WebDOMEvent::WebDOMEvent(const WTF::PassRefPtr<WebCore::Event>& event) 66 WebDOMEvent::WebDOMEvent(const WTF::PassRefPtr<WebCore::Event>& event)
68 : m_private(static_cast<WebDOMEventPrivate*>(event.leakRef())) 67 : m_private(event)
69 { 68 {
70 } 69 }
71 70
72 WebDOMEvent::operator WTF::PassRefPtr<WebCore::Event>() const 71 WebDOMEvent::operator WTF::PassRefPtr<WebCore::Event>() const
73 { 72 {
74 return static_cast<WebCore::Event*>(m_private); 73 return m_private.get();
75 } 74 }
76 75
77 WebString WebDOMEvent::type() const 76 WebString WebDOMEvent::type() const
78 { 77 {
79 ASSERT(m_private); 78 ASSERT(m_private.get());
80 return m_private->type(); 79 return m_private->type();
81 } 80 }
82 81
83 WebNode WebDOMEvent::target() const 82 WebNode WebDOMEvent::target() const
84 { 83 {
85 ASSERT(m_private); 84 ASSERT(m_private.get());
86 return WebNode(m_private->target()->toNode()); 85 return WebNode(m_private->target()->toNode());
87 } 86 }
88 87
89 WebNode WebDOMEvent::currentTarget() const 88 WebNode WebDOMEvent::currentTarget() const
90 { 89 {
91 ASSERT(m_private); 90 ASSERT(m_private.get());
92 return WebNode(m_private->currentTarget()->toNode()); 91 return WebNode(m_private->currentTarget()->toNode());
93 } 92 }
94 93
95 WebDOMEvent::PhaseType WebDOMEvent::eventPhase() const 94 WebDOMEvent::PhaseType WebDOMEvent::eventPhase() const
96 { 95 {
97 ASSERT(m_private); 96 ASSERT(m_private.get());
98 return static_cast<WebDOMEvent::PhaseType>(m_private->eventPhase()); 97 return static_cast<WebDOMEvent::PhaseType>(m_private->eventPhase());
99 } 98 }
100 99
101 bool WebDOMEvent::bubbles() const 100 bool WebDOMEvent::bubbles() const
102 { 101 {
103 ASSERT(m_private); 102 ASSERT(m_private.get());
104 return m_private->bubbles(); 103 return m_private->bubbles();
105 } 104 }
106 105
107 bool WebDOMEvent::cancelable() const 106 bool WebDOMEvent::cancelable() const
108 { 107 {
109 ASSERT(m_private); 108 ASSERT(m_private.get());
110 return m_private->cancelable(); 109 return m_private->cancelable();
111 } 110 }
112 111
113 bool WebDOMEvent::isUIEvent() const 112 bool WebDOMEvent::isUIEvent() const
114 { 113 {
115 ASSERT(m_private); 114 ASSERT(m_private.get());
116 return m_private->isUIEvent(); 115 return m_private->isUIEvent();
117 } 116 }
118 117
119 bool WebDOMEvent::isMouseEvent() const 118 bool WebDOMEvent::isMouseEvent() const
120 { 119 {
121 ASSERT(m_private); 120 ASSERT(m_private.get());
122 return m_private->isMouseEvent(); 121 return m_private->isMouseEvent();
123 } 122 }
124 123
125 bool WebDOMEvent::isKeyboardEvent() const 124 bool WebDOMEvent::isKeyboardEvent() const
126 { 125 {
127 ASSERT(m_private); 126 ASSERT(m_private.get());
128 return m_private->isKeyboardEvent(); 127 return m_private->isKeyboardEvent();
129 } 128 }
130 129
131 bool WebDOMEvent::isMutationEvent() const 130 bool WebDOMEvent::isMutationEvent() const
132 { 131 {
133 ASSERT(m_private); 132 ASSERT(m_private.get());
134 return m_private->hasInterface(WebCore::eventNames().interfaceForMutationEve nt); 133 return m_private->hasInterface(WebCore::eventNames().interfaceForMutationEve nt);
135 } 134 }
136 135
137 bool WebDOMEvent::isTextEvent() const 136 bool WebDOMEvent::isTextEvent() const
138 { 137 {
139 ASSERT(m_private); 138 ASSERT(m_private.get());
140 return m_private->hasInterface(eventNames().interfaceForTextEvent); 139 return m_private->hasInterface(eventNames().interfaceForTextEvent);
141 } 140 }
142 141
143 bool WebDOMEvent::isCompositionEvent() const 142 bool WebDOMEvent::isCompositionEvent() const
144 { 143 {
145 ASSERT(m_private); 144 ASSERT(m_private.get());
146 return m_private->hasInterface(eventNames().interfaceForCompositionEvent); 145 return m_private->hasInterface(eventNames().interfaceForCompositionEvent);
147 } 146 }
148 147
149 bool WebDOMEvent::isDragEvent() const 148 bool WebDOMEvent::isDragEvent() const
150 { 149 {
151 ASSERT(m_private); 150 ASSERT(m_private.get());
152 return m_private->isDragEvent(); 151 return m_private->isDragEvent();
153 } 152 }
154 153
155 bool WebDOMEvent::isClipboardEvent() const 154 bool WebDOMEvent::isClipboardEvent() const
156 { 155 {
157 ASSERT(m_private); 156 ASSERT(m_private.get());
158 return m_private->isClipboardEvent(); 157 return m_private->isClipboardEvent();
159 } 158 }
160 159
161 bool WebDOMEvent::isMessageEvent() const 160 bool WebDOMEvent::isMessageEvent() const
162 { 161 {
163 ASSERT(m_private); 162 ASSERT(m_private.get());
164 return m_private->hasInterface(eventNames().interfaceForMessageEvent); 163 return m_private->hasInterface(eventNames().interfaceForMessageEvent);
165 } 164 }
166 165
167 bool WebDOMEvent::isWheelEvent() const 166 bool WebDOMEvent::isWheelEvent() const
168 { 167 {
169 ASSERT(m_private); 168 ASSERT(m_private.get());
170 return m_private->hasInterface(eventNames().interfaceForWheelEvent); 169 return m_private->hasInterface(eventNames().interfaceForWheelEvent);
171 } 170 }
172 171
173 bool WebDOMEvent::isBeforeTextInsertedEvent() const 172 bool WebDOMEvent::isBeforeTextInsertedEvent() const
174 { 173 {
175 ASSERT(m_private); 174 ASSERT(m_private.get());
176 return m_private->isBeforeTextInsertedEvent(); 175 return m_private->isBeforeTextInsertedEvent();
177 } 176 }
178 177
179 bool WebDOMEvent::isOverflowEvent() const 178 bool WebDOMEvent::isOverflowEvent() const
180 { 179 {
181 ASSERT(m_private); 180 ASSERT(m_private.get());
182 return m_private->hasInterface(eventNames().interfaceForOverflowEvent); 181 return m_private->hasInterface(eventNames().interfaceForOverflowEvent);
183 } 182 }
184 183
185 bool WebDOMEvent::isPageTransitionEvent() const 184 bool WebDOMEvent::isPageTransitionEvent() const
186 { 185 {
187 ASSERT(m_private); 186 ASSERT(m_private.get());
188 return m_private->hasInterface(eventNames().interfaceForPageTransitionEvent) ; 187 return m_private->hasInterface(eventNames().interfaceForPageTransitionEvent) ;
189 } 188 }
190 189
191 bool WebDOMEvent::isPopStateEvent() const 190 bool WebDOMEvent::isPopStateEvent() const
192 { 191 {
193 ASSERT(m_private); 192 ASSERT(m_private.get());
194 return m_private->hasInterface(eventNames().interfaceForPopStateEvent); 193 return m_private->hasInterface(eventNames().interfaceForPopStateEvent);
195 } 194 }
196 195
197 bool WebDOMEvent::isProgressEvent() const 196 bool WebDOMEvent::isProgressEvent() const
198 { 197 {
199 ASSERT(m_private); 198 ASSERT(m_private.get());
200 return m_private->hasInterface(eventNames().interfaceForProgressEvent); 199 return m_private->hasInterface(eventNames().interfaceForProgressEvent);
201 } 200 }
202 201
203 bool WebDOMEvent::isXMLHttpRequestProgressEvent() const 202 bool WebDOMEvent::isXMLHttpRequestProgressEvent() const
204 { 203 {
205 ASSERT(m_private); 204 ASSERT(m_private.get());
206 return m_private->hasInterface(eventNames().interfaceForXMLHttpRequestProgre ssEvent); 205 return m_private->hasInterface(eventNames().interfaceForXMLHttpRequestProgre ssEvent);
207 } 206 }
208 207
209 bool WebDOMEvent::isBeforeLoadEvent() const 208 bool WebDOMEvent::isBeforeLoadEvent() const
210 { 209 {
211 ASSERT(m_private); 210 ASSERT(m_private.get());
212 return m_private->hasInterface(eventNames().interfaceForBeforeLoadEvent); 211 return m_private->hasInterface(eventNames().interfaceForBeforeLoadEvent);
213 } 212 }
214 213
215 } // namespace WebKit 214 } // namespace WebKit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698