| 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, 2005, 2006, 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2005, 2006, 2008 Apple Inc. All rights reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 const LocalDOMWindow* window = m_currentTarget ? m_currentTarget->toDOMW
indow() : 0; | 210 const LocalDOMWindow* window = m_currentTarget ? m_currentTarget->toDOMW
indow() : 0; |
| 211 if (window) | 211 if (window) |
| 212 window->printErrorMessage("Unable to preventDefault inside passive e
vent listener invocation."); | 212 window->printErrorMessage("Unable to preventDefault inside passive e
vent listener invocation."); |
| 213 return; | 213 return; |
| 214 } | 214 } |
| 215 | 215 |
| 216 if (m_cancelable) | 216 if (m_cancelable) |
| 217 m_defaultPrevented = true; | 217 m_defaultPrevented = true; |
| 218 } | 218 } |
| 219 | 219 |
| 220 void Event::setTarget(PassRefPtrWillBeRawPtr<EventTarget> target) | 220 void Event::setTarget(RawPtr<EventTarget> target) |
| 221 { | 221 { |
| 222 if (m_target == target) | 222 if (m_target == target) |
| 223 return; | 223 return; |
| 224 | 224 |
| 225 m_target = target; | 225 m_target = target; |
| 226 if (m_target) | 226 if (m_target) |
| 227 receivedTarget(); | 227 receivedTarget(); |
| 228 } | 228 } |
| 229 | 229 |
| 230 void Event::receivedTarget() | 230 void Event::receivedTarget() |
| 231 { | 231 { |
| 232 } | 232 } |
| 233 | 233 |
| 234 void Event::setUnderlyingEvent(PassRefPtrWillBeRawPtr<Event> ue) | 234 void Event::setUnderlyingEvent(RawPtr<Event> ue) |
| 235 { | 235 { |
| 236 // Prohibit creation of a cycle -- just do nothing in that case. | 236 // Prohibit creation of a cycle -- just do nothing in that case. |
| 237 for (Event* e = ue.get(); e; e = e->underlyingEvent()) | 237 for (Event* e = ue.get(); e; e = e->underlyingEvent()) |
| 238 if (e == this) | 238 if (e == this) |
| 239 return; | 239 return; |
| 240 m_underlyingEvent = ue; | 240 m_underlyingEvent = ue; |
| 241 } | 241 } |
| 242 | 242 |
| 243 void Event::initEventPath(Node& node) | 243 void Event::initEventPath(Node& node) |
| 244 { | 244 { |
| 245 if (!m_eventPath) { | 245 if (!m_eventPath) { |
| 246 m_eventPath = adoptPtrWillBeNoop(new EventPath(node, this)); | 246 m_eventPath = (new EventPath(node, this)); |
| 247 } else { | 247 } else { |
| 248 m_eventPath->initializeWith(node, this); | 248 m_eventPath->initializeWith(node, this); |
| 249 } | 249 } |
| 250 } | 250 } |
| 251 | 251 |
| 252 WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::path(ScriptState* scrip
tState) const | 252 HeapVector<Member<EventTarget>> Event::path(ScriptState* scriptState) const |
| 253 { | 253 { |
| 254 if (m_target) | 254 if (m_target) |
| 255 OriginsUsingFeatures::countOriginOrIsolatedWorldHumanReadableName(script
State, *m_target, OriginsUsingFeatures::Feature::EventPath); | 255 OriginsUsingFeatures::countOriginOrIsolatedWorldHumanReadableName(script
State, *m_target, OriginsUsingFeatures::Feature::EventPath); |
| 256 | 256 |
| 257 if (!m_currentTarget) { | 257 if (!m_currentTarget) { |
| 258 ASSERT(m_eventPhase == Event::NONE); | 258 ASSERT(m_eventPhase == Event::NONE); |
| 259 if (!m_eventPath) { | 259 if (!m_eventPath) { |
| 260 // Before dispatching the event | 260 // Before dispatching the event |
| 261 return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>(); | 261 return HeapVector<Member<EventTarget>>(); |
| 262 } | 262 } |
| 263 ASSERT(!m_eventPath->isEmpty()); | 263 ASSERT(!m_eventPath->isEmpty()); |
| 264 // After dispatching the event | 264 // After dispatching the event |
| 265 return m_eventPath->last().treeScopeEventContext().ensureEventPath(*m_ev
entPath); | 265 return m_eventPath->last().treeScopeEventContext().ensureEventPath(*m_ev
entPath); |
| 266 } | 266 } |
| 267 | 267 |
| 268 if (Node* node = m_currentTarget->toNode()) { | 268 if (Node* node = m_currentTarget->toNode()) { |
| 269 ASSERT(m_eventPath); | 269 ASSERT(m_eventPath); |
| 270 size_t eventPathSize = m_eventPath->size(); | 270 size_t eventPathSize = m_eventPath->size(); |
| 271 for (size_t i = 0; i < eventPathSize; ++i) { | 271 for (size_t i = 0; i < eventPathSize; ++i) { |
| 272 if (node == (*m_eventPath)[i].node()) { | 272 if (node == (*m_eventPath)[i].node()) { |
| 273 return (*m_eventPath)[i].treeScopeEventContext().ensureEventPath
(*m_eventPath); | 273 return (*m_eventPath)[i].treeScopeEventContext().ensureEventPath
(*m_eventPath); |
| 274 } | 274 } |
| 275 } | 275 } |
| 276 ASSERT_NOT_REACHED(); | 276 ASSERT_NOT_REACHED(); |
| 277 } | 277 } |
| 278 | 278 |
| 279 // Returns [window] for events that are directly dispatched to the window ob
ject; | 279 // Returns [window] for events that are directly dispatched to the window ob
ject; |
| 280 // e.g., window.load, pageshow, etc. | 280 // e.g., window.load, pageshow, etc. |
| 281 if (LocalDOMWindow* window = m_currentTarget->toDOMWindow()) | 281 if (LocalDOMWindow* window = m_currentTarget->toDOMWindow()) |
| 282 return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>(1, window); | 282 return HeapVector<Member<EventTarget>>(1, window); |
| 283 | 283 |
| 284 return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>(); | 284 return HeapVector<Member<EventTarget>>(); |
| 285 } | 285 } |
| 286 | 286 |
| 287 PassRefPtrWillBeRawPtr<EventDispatchMediator> Event::createMediator() | 287 RawPtr<EventDispatchMediator> Event::createMediator() |
| 288 { | 288 { |
| 289 return EventDispatchMediator::create(this); | 289 return EventDispatchMediator::create(this); |
| 290 } | 290 } |
| 291 | 291 |
| 292 EventTarget* Event::currentTarget() const | 292 EventTarget* Event::currentTarget() const |
| 293 { | 293 { |
| 294 if (!m_currentTarget) | 294 if (!m_currentTarget) |
| 295 return nullptr; | 295 return nullptr; |
| 296 Node* node = m_currentTarget->toNode(); | 296 Node* node = m_currentTarget->toNode(); |
| 297 if (node && node->isSVGElement()) { | 297 if (node && node->isSVGElement()) { |
| (...skipping 23 matching lines...) Expand all Loading... |
| 321 | 321 |
| 322 DEFINE_TRACE(Event) | 322 DEFINE_TRACE(Event) |
| 323 { | 323 { |
| 324 visitor->trace(m_currentTarget); | 324 visitor->trace(m_currentTarget); |
| 325 visitor->trace(m_target); | 325 visitor->trace(m_target); |
| 326 visitor->trace(m_underlyingEvent); | 326 visitor->trace(m_underlyingEvent); |
| 327 visitor->trace(m_eventPath); | 327 visitor->trace(m_eventPath); |
| 328 } | 328 } |
| 329 | 329 |
| 330 } // namespace blink | 330 } // namespace blink |
| OLD | NEW |