| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
| 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
| 8 * | 8 * |
| 9 * Redistribution and use in source and binary forms, with or without | 9 * Redistribution and use in source and binary forms, with or without |
| 10 * modification, are permitted provided that the following conditions | 10 * modification, are permitted provided that the following conditions |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 return false; | 420 return false; |
| 421 return addEventListener(event_type, listener, false); | 421 return addEventListener(event_type, listener, false); |
| 422 } | 422 } |
| 423 | 423 |
| 424 EventListener* EventTarget::GetAttributeEventListener( | 424 EventListener* EventTarget::GetAttributeEventListener( |
| 425 const AtomicString& event_type) { | 425 const AtomicString& event_type) { |
| 426 EventListenerVector* listener_vector = GetEventListeners(event_type); | 426 EventListenerVector* listener_vector = GetEventListeners(event_type); |
| 427 if (!listener_vector) | 427 if (!listener_vector) |
| 428 return nullptr; | 428 return nullptr; |
| 429 | 429 |
| 430 // The current-world accessibiliy check has a corner |
| 431 // case which depends on knowing whether we're in |
| 432 // a document parsing context or not. |
| 433 Node* this_node = ToNode(); |
| 434 Document* document = this_node ? &this_node->GetDocument() : nullptr; |
| 430 for (auto& event_listener : *listener_vector) { | 435 for (auto& event_listener : *listener_vector) { |
| 431 EventListener* listener = event_listener.Listener(); | 436 EventListener* listener = event_listener.Listener(); |
| 432 if (listener->IsAttribute() && | 437 if (listener->IsAttribute() && listener->BelongsToTheCurrentWorld(document)) |
| 433 listener->BelongsToTheCurrentWorld(GetExecutionContext())) | |
| 434 return listener; | 438 return listener; |
| 435 } | 439 } |
| 436 return nullptr; | 440 return nullptr; |
| 437 } | 441 } |
| 438 | 442 |
| 439 bool EventTarget::ClearAttributeEventListener(const AtomicString& event_type) { | 443 bool EventTarget::ClearAttributeEventListener(const AtomicString& event_type) { |
| 440 EventListener* listener = GetAttributeEventListener(event_type); | 444 EventListener* listener = GetAttributeEventListener(event_type); |
| 441 if (!listener) | 445 if (!listener) |
| 442 return false; | 446 return false; |
| 443 return removeEventListener(event_type, listener, false); | 447 return removeEventListener(event_type, listener, false); |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 // they have one less listener to invoke. | 779 // they have one less listener to invoke. |
| 776 if (d->firing_event_iterators) { | 780 if (d->firing_event_iterators) { |
| 777 for (const auto& iterator : *d->firing_event_iterators) { | 781 for (const auto& iterator : *d->firing_event_iterators) { |
| 778 iterator.iterator = 0; | 782 iterator.iterator = 0; |
| 779 iterator.end = 0; | 783 iterator.end = 0; |
| 780 } | 784 } |
| 781 } | 785 } |
| 782 } | 786 } |
| 783 | 787 |
| 784 } // namespace blink | 788 } // namespace blink |
| OLD | NEW |