blob: 5b5c13dd9085ab7f73538633feb68beb428327cb [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef NGFragment_h
#define NGFragment_h
#include "core/CoreExport.h"
#include "core/layout/ng/ng_fragment_base.h"
#include "core/layout/ng/ng_constraint_space.h"
#include "platform/LayoutUnit.h"
#include "platform/heap/Handle.h"
#include "wtf/Vector.h"
namespace blink {
class CORE_EXPORT NGFragment final : public NGFragmentBase {
public:
NGFragment(LayoutUnit inlineSize,
LayoutUnit blockSize,
LayoutUnit inlineOverflow,
LayoutUnit blockOverflow,
NGWritingMode writingMode,
NGDirection direction)
: NGFragmentBase(inlineSize,
blockSize,
inlineOverflow,
blockOverflow,
writingMode,
direction,
FragmentBox) {}
DEFINE_INLINE_TRACE_AFTER_DISPATCH() {
visitor->trace(m_children);
NGFragmentBase::traceAfterDispatch(visitor);
}
void swapChildren(HeapVector<Member<const NGFragmentBase>>& children) {
m_children.swap(children);
}
private:
HeapVector<Member<const NGFragmentBase>> m_children;
};
} // namespace blink
#endif // NGFragment_h