// 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.

#include "core/layout/ng/ng_box.h"

#include "core/layout/LayoutObject.h"
#include "core/layout/ng/ng_block_layout_algorithm.h"
#include "core/layout/ng/ng_fragment.h"
#include "core/layout/LayoutBox.h"

namespace blink {

NGFragment* NGBox::layout(const NGConstraintSpace& constraintSpace) {
  NGBlockLayoutAlgorithm algorithm(style(), iterator());
  m_layoutBox->clearNeedsLayout();
  NGFragment* fragment = algorithm.layout(constraintSpace);
  m_layoutBox->setLogicalWidth(fragment->inlineSize());
  m_layoutBox->setLogicalHeight(fragment->blockSize());
  return fragment;
}

const ComputedStyle* NGBox::style() const {
  return m_layoutBox->style();
}

}  // namespace blink
