OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All Rights Reserved. | 2 * Copyright (C) 2013 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 11 matching lines...) Expand all Loading... |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 | 26 |
27 #include "config.h" | 27 #include "config.h" |
28 #include "core/frame/DOMWindowLifecycleNotifier.h" | 28 #include "core/frame/DOMWindowLifecycleNotifier.h" |
29 | 29 |
30 namespace WebCore { | 30 namespace WebCore { |
31 | 31 |
32 DOMWindowLifecycleNotifier::DOMWindowLifecycleNotifier(DOMWindow* context) | 32 DOMWindowLifecycleNotifier::DOMWindowLifecycleNotifier(LocalDOMWindow* context) |
33 : LifecycleNotifier<DOMWindow>(context) | 33 : LifecycleNotifier<LocalDOMWindow>(context) |
34 { | 34 { |
35 } | 35 } |
36 | 36 |
37 void DOMWindowLifecycleNotifier::addObserver(DOMWindowLifecycleNotifier::Observe
r* observer) | 37 void DOMWindowLifecycleNotifier::addObserver(DOMWindowLifecycleNotifier::Observe
r* observer) |
38 { | 38 { |
39 if (observer->observerType() == Observer::DOMWindowLifecycleObserverType) { | 39 if (observer->observerType() == Observer::DOMWindowLifecycleObserverType) { |
40 RELEASE_ASSERT(m_iterating != IteratingOverDOMWindowObservers); | 40 RELEASE_ASSERT(m_iterating != IteratingOverDOMWindowObservers); |
41 m_windowObservers.add(static_cast<DOMWindowLifecycleObserver*>(observer)
); | 41 m_windowObservers.add(static_cast<DOMWindowLifecycleObserver*>(observer)
); |
42 } | 42 } |
43 | 43 |
44 LifecycleNotifier<DOMWindow>::addObserver(observer); | 44 LifecycleNotifier<LocalDOMWindow>::addObserver(observer); |
45 } | 45 } |
46 | 46 |
47 void DOMWindowLifecycleNotifier::removeObserver(DOMWindowLifecycleNotifier::Obse
rver* observer) | 47 void DOMWindowLifecycleNotifier::removeObserver(DOMWindowLifecycleNotifier::Obse
rver* observer) |
48 { | 48 { |
49 if (observer->observerType() == Observer::DOMWindowLifecycleObserverType) { | 49 if (observer->observerType() == Observer::DOMWindowLifecycleObserverType) { |
50 RELEASE_ASSERT(m_iterating != IteratingOverDOMWindowObservers); | 50 RELEASE_ASSERT(m_iterating != IteratingOverDOMWindowObservers); |
51 m_windowObservers.remove(static_cast<DOMWindowLifecycleObserver*>(observ
er)); | 51 m_windowObservers.remove(static_cast<DOMWindowLifecycleObserver*>(observ
er)); |
52 } | 52 } |
53 | 53 |
54 LifecycleNotifier<DOMWindow>::removeObserver(observer); | 54 LifecycleNotifier<LocalDOMWindow>::removeObserver(observer); |
55 } | 55 } |
56 | 56 |
57 PassOwnPtr<DOMWindowLifecycleNotifier> DOMWindowLifecycleNotifier::create(DOMWin
dow* context) | 57 PassOwnPtr<DOMWindowLifecycleNotifier> DOMWindowLifecycleNotifier::create(LocalD
OMWindow* context) |
58 { | 58 { |
59 return adoptPtr(new DOMWindowLifecycleNotifier(context)); | 59 return adoptPtr(new DOMWindowLifecycleNotifier(context)); |
60 } | 60 } |
61 | 61 |
62 void DOMWindowLifecycleNotifier::notifyAddEventListener(DOMWindow* window, const
AtomicString& eventType) | 62 void DOMWindowLifecycleNotifier::notifyAddEventListener(LocalDOMWindow* window,
const AtomicString& eventType) |
63 { | 63 { |
64 TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDOMWind
owObservers); | 64 TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDOMWind
owObservers); |
65 for (DOMWindowObserverSet::iterator it = m_windowObservers.begin(); it != m_
windowObservers.end(); ++it) | 65 for (DOMWindowObserverSet::iterator it = m_windowObservers.begin(); it != m_
windowObservers.end(); ++it) |
66 (*it)->didAddEventListener(window, eventType); | 66 (*it)->didAddEventListener(window, eventType); |
67 } | 67 } |
68 | 68 |
69 void DOMWindowLifecycleNotifier::notifyRemoveEventListener(DOMWindow* window, co
nst AtomicString& eventType) | 69 void DOMWindowLifecycleNotifier::notifyRemoveEventListener(LocalDOMWindow* windo
w, const AtomicString& eventType) |
70 { | 70 { |
71 TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDOMWind
owObservers); | 71 TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDOMWind
owObservers); |
72 for (DOMWindowObserverSet::iterator it = m_windowObservers.begin(); it != m_
windowObservers.end(); ++it) | 72 for (DOMWindowObserverSet::iterator it = m_windowObservers.begin(); it != m_
windowObservers.end(); ++it) |
73 (*it)->didRemoveEventListener(window, eventType); | 73 (*it)->didRemoveEventListener(window, eventType); |
74 } | 74 } |
75 | 75 |
76 void DOMWindowLifecycleNotifier::notifyRemoveAllEventListeners(DOMWindow* window
) | 76 void DOMWindowLifecycleNotifier::notifyRemoveAllEventListeners(LocalDOMWindow* w
indow) |
77 { | 77 { |
78 TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDOMWind
owObservers); | 78 TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDOMWind
owObservers); |
79 for (DOMWindowObserverSet::iterator it = m_windowObservers.begin(); it != m_
windowObservers.end(); ++it) | 79 for (DOMWindowObserverSet::iterator it = m_windowObservers.begin(); it != m_
windowObservers.end(); ++it) |
80 (*it)->didRemoveAllEventListeners(window); | 80 (*it)->didRemoveAllEventListeners(window); |
81 } | 81 } |
82 | 82 |
83 } // namespace WebCore | 83 } // namespace WebCore |
OLD | NEW |