| Index: third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
 | 
| diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
 | 
| index 238c3b0dc9b0e67b3b35ff7d137341c747ca0ecb..edfb50291e69d9c74a02b49b696a32d4d8ffabc4 100644
 | 
| --- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
 | 
| +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
 | 
| @@ -314,15 +314,10 @@ NGLayoutStatus NGBlockLayoutAlgorithm::Layout(
 | 
|        ComputeBlockSizeForFragment(ConstraintSpace(), Style(), content_size_);
 | 
|    builder_->SetBlockSize(block_size);
 | 
|  
 | 
| -  // Out of flow setup.
 | 
| -  out_of_flow_layout_ = new NGOutOfFlowLayoutPart(&Style(), builder_->Size());
 | 
| -  builder_->GetAndClearOutOfFlowDescendantCandidates(
 | 
| -      &out_of_flow_candidates_, &out_of_flow_candidate_positions_);
 | 
| -  out_of_flow_candidate_positions_index_ = 0;
 | 
|    current_child_ = nullptr;
 | 
|  
 | 
| -  while (!LayoutOutOfFlowChild())
 | 
| -    continue;
 | 
| +  // Layout our absolute and fixed positioned children.
 | 
| +  NGOutOfFlowLayoutPart(Style(), builder_).Run();
 | 
|  
 | 
|    builder_->SetInlineOverflow(max_inline_size_).SetBlockOverflow(content_size_);
 | 
|  
 | 
| @@ -353,31 +348,6 @@ void NGBlockLayoutAlgorithm::FinishCurrentChildLayout(NGFragment* fragment) {
 | 
|    builder_->AddChild(fragment, fragment_offset);
 | 
|  }
 | 
|  
 | 
| -bool NGBlockLayoutAlgorithm::LayoutOutOfFlowChild() {
 | 
| -  if (out_of_flow_candidates_.isEmpty()) {
 | 
| -    out_of_flow_layout_ = nullptr;
 | 
| -    out_of_flow_candidate_positions_.clear();
 | 
| -    return true;
 | 
| -  }
 | 
| -  current_child_ = out_of_flow_candidates_.first();
 | 
| -  out_of_flow_candidates_.removeFirst();
 | 
| -  NGStaticPosition static_position = out_of_flow_candidate_positions_
 | 
| -      [out_of_flow_candidate_positions_index_++];
 | 
| -
 | 
| -  if (IsContainingBlockForAbsoluteChild(Style(), *current_child_->Style())) {
 | 
| -    NGFragment* fragment;
 | 
| -    NGLogicalOffset offset;
 | 
| -    out_of_flow_layout_->Layout(*current_child_, static_position, &fragment,
 | 
| -                                &offset);
 | 
| -    // TODO(atotic) Need to adjust size of overflow rect per spec.
 | 
| -    builder_->AddChild(fragment, offset);
 | 
| -  } else {
 | 
| -    builder_->AddOutOfFlowDescendant(current_child_, static_position);
 | 
| -  }
 | 
| -
 | 
| -  return false;
 | 
| -}
 | 
| -
 | 
|  bool NGBlockLayoutAlgorithm::ProceedToNextUnfinishedSibling(
 | 
|      NGPhysicalFragment* child_fragment) {
 | 
|    DCHECK(current_child_);
 | 
| @@ -679,8 +649,6 @@ DEFINE_TRACE(NGBlockLayoutAlgorithm) {
 | 
|    visitor->trace(space_builder_);
 | 
|    visitor->trace(space_for_current_child_);
 | 
|    visitor->trace(current_child_);
 | 
| -  visitor->trace(out_of_flow_layout_);
 | 
| -  visitor->trace(out_of_flow_candidates_);
 | 
|    visitor->trace(fragmentainer_mapper_);
 | 
|  }
 | 
|  
 | 
| 
 |