OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/observer/ResizeObserverController.h" | 5 #include "core/observer/ResizeObserverController.h" |
6 | 6 |
7 #include "core/observer/ResizeObserver.h" | 7 #include "core/observer/ResizeObserver.h" |
8 | 8 |
9 namespace blink { | 9 namespace blink { |
10 | 10 |
(...skipping 19 matching lines...) Expand all Loading... |
30 bool ResizeObserverController::skippedObservations() { | 30 bool ResizeObserverController::skippedObservations() { |
31 for (auto& observer : m_observers) { | 31 for (auto& observer : m_observers) { |
32 if (observer->skippedObservations()) | 32 if (observer->skippedObservations()) |
33 return true; | 33 return true; |
34 } | 34 } |
35 return false; | 35 return false; |
36 } | 36 } |
37 | 37 |
38 void ResizeObserverController::deliverObservations() { | 38 void ResizeObserverController::deliverObservations() { |
39 m_observersChanged = false; | 39 m_observersChanged = false; |
40 // Copy is needed because m_observers might get modified during deliverObserva
tions. | 40 // Copy is needed because m_observers might get modified during |
| 41 // deliverObservations. |
41 HeapVector<Member<ResizeObserver>> observers; | 42 HeapVector<Member<ResizeObserver>> observers; |
42 copyToVector(m_observers, observers); | 43 copyToVector(m_observers, observers); |
43 | 44 |
44 for (auto& observer : observers) { | 45 for (auto& observer : observers) { |
45 if (observer) { | 46 if (observer) { |
46 observer->deliverObservations(); | 47 observer->deliverObservations(); |
47 m_observersChanged = | 48 m_observersChanged = |
48 m_observersChanged || observer->hasElementSizeChanged(); | 49 m_observersChanged || observer->hasElementSizeChanged(); |
49 } | 50 } |
50 } | 51 } |
51 } | 52 } |
52 | 53 |
53 void ResizeObserverController::clearObservations() { | 54 void ResizeObserverController::clearObservations() { |
54 for (auto& observer : m_observers) | 55 for (auto& observer : m_observers) |
55 observer->clearObservations(); | 56 observer->clearObservations(); |
56 } | 57 } |
57 | 58 |
58 DEFINE_TRACE(ResizeObserverController) { | 59 DEFINE_TRACE(ResizeObserverController) { |
59 visitor->trace(m_observers); | 60 visitor->trace(m_observers); |
60 } | 61 } |
61 | 62 |
62 } // namespace blink | 63 } // namespace blink |
OLD | NEW |