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

Side by Side Diff: third_party/WebKit/Source/core/observer/ResizeObservation.cpp

Issue 2005593002: Initial ResizeObserver implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix global-interface-listing test Created 4 years, 5 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "core/observer/ResizeObservation.h"
6
7 #include "core/layout/LayoutBox.h"
8 #include "core/observer/ResizeObserver.h"
9
10 namespace blink {
11
12 ResizeObservation::ResizeObservation(Element* target, ResizeObserver* observer)
13 : m_target(target)
14 , m_observer(observer)
15 , m_broadcastSize(0, 0)
16 {
17 DCHECK(m_target);
18 m_target->ensureResizeObserverData().set(observer, this);
19 }
20
21 bool ResizeObservation::hasResized() const
22 {
23 if (!m_target)
24 return false;
25 LayoutBox* layout = m_target->layoutBox();
26 if (layout)
27 return layout->contentSize() != m_broadcastSize;
28 // else treat no layout as an empty rect.
29 return !m_broadcastSize.isEmpty();
30 }
31
32 DEFINE_TRACE(ResizeObservation)
33 {
34 visitor->trace(m_target);
35 visitor->trace(m_observer);
36 }
37
38
39 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698