| Index: third_party/WebKit/Source/core/observer/ResizeObserverController.cpp
|
| diff --git a/third_party/WebKit/Source/core/observer/ResizeObserverController.cpp b/third_party/WebKit/Source/core/observer/ResizeObserverController.cpp
|
| index 47a50acbc5a993410db7a50784a906e8c82c60ab..c9761cc555b2953aaa04d2bf8b0b0bd33b47c7bf 100644
|
| --- a/third_party/WebKit/Source/core/observer/ResizeObserverController.cpp
|
| +++ b/third_party/WebKit/Source/core/observer/ResizeObserverController.cpp
|
| @@ -10,6 +10,7 @@
|
| namespace blink {
|
|
|
| ResizeObserverController::ResizeObserverController()
|
| + : m_observersChanged(false)
|
| {
|
| }
|
|
|
| @@ -18,6 +19,48 @@ void ResizeObserverController::addObserver(ResizeObserver& observer)
|
| m_observers.add(&observer);
|
| }
|
|
|
| +size_t ResizeObserverController::gatherObservations(size_t deeperThan)
|
| +{
|
| + size_t shallowest = ResizeObserverController::kDepthBottom;
|
| + if (!m_observersChanged)
|
| + return shallowest;
|
| + for (auto& observer : m_observers) {
|
| + size_t depth = observer->gatherObservations(deeperThan);
|
| + if (depth < shallowest)
|
| + shallowest = depth;
|
| + }
|
| + return shallowest;
|
| +}
|
| +
|
| +bool ResizeObserverController::skippedObservations()
|
| +{
|
| + for (auto& observer : m_observers) {
|
| + if (observer->skippedObservations())
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +void ResizeObserverController::deliverObservations()
|
| +{
|
| + m_observersChanged = false;
|
| + // Copy is needed because m_observers might get modified during deliverObservations.
|
| + HeapVector<Member<ResizeObserver>> observers;
|
| + copyToVector(m_observers, observers);
|
| +
|
| + for (auto& observer : observers) {
|
| + if (observer) {
|
| + observer->deliverObservations();
|
| + m_observersChanged = m_observersChanged || observer->hasElementSizeChanged();
|
| + }
|
| + }
|
| +}
|
| +
|
| +void ResizeObserverController::clearObservations()
|
| +{
|
| + for (auto& observer : m_observers)
|
| + observer->clearObservations();
|
| +}
|
|
|
| DEFINE_TRACE(ResizeObserverController)
|
| {
|
|
|