Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: third_party/WebKit/Source/core/observer/ResizeObserverController.h

Issue 2188983003: ResizeObserver pt5: size change notification (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: All CR comments addressed Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #ifndef ResizeObserverController_h 5 #ifndef ResizeObserverController_h
6 #define ResizeObserverController_h 6 #define ResizeObserverController_h
7 7
8 #include "platform/heap/Handle.h" 8 #include "platform/heap/Handle.h"
9 9
10 namespace blink { 10 namespace blink {
11 11
12 class ResizeObserver; 12 class ResizeObserver;
13 13
14 // ResizeObserverController keeps track of all ResizeObservers 14 // ResizeObserverController keeps track of all ResizeObservers
15 // in a single Document. 15 // in a single Document.
16 //
17 // The observation API is used to integrate ResizeObserver
18 // and the event loop. It delivers notification in a loop.
19 // In each iteration, only notifications deeper than the
20 // shallowest notification from previous iteration are delivered.
16 class ResizeObserverController final : public GarbageCollected<ResizeObserverCon troller> { 21 class ResizeObserverController final : public GarbageCollected<ResizeObserverCon troller> {
17 public: 22 public:
23 static const size_t kDepthBottom = 4096;
24
18 ResizeObserverController(); 25 ResizeObserverController();
19 26
20 void addObserver(ResizeObserver&); 27 void addObserver(ResizeObserver&);
21 28
29 // observation API
30 // Returns depth of shallowest observed node, kDepthLimit if none.
31 size_t gatherObservations(size_t deeperThan);
32 // Returns true if gatherObservations has skipped observations
33 // because they were too shallow.
34 bool skippedObservations();
35 void deliverObservations();
36 void clearObservations();
37 void observerChanged() { m_observersChanged = true; }
38
22 DECLARE_TRACE(); 39 DECLARE_TRACE();
23 40
24 private: 41 private:
25 // Active observers 42 // Active observers
26 HeapHashSet<WeakMember<ResizeObserver>> m_observers; 43 HeapHashSet<WeakMember<ResizeObserver>> m_observers;
44 // True if any observers were changed since last notification.
45 bool m_observersChanged;
27 }; 46 };
28 47
29 } // namespace blink 48 } // namespace blink
30 49
31 #endif 50 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698