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

Side by Side Diff: third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc

Issue 2562703003: Make AlgorithmForInputNode use original constraint space (Closed)
Patch Set: Make AlgorithmForInputNode use container constraint space Created 4 years 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 #include "core/layout/ng/ng_block_layout_algorithm.h" 5 #include "core/layout/ng/ng_block_layout_algorithm.h"
6 6
7 #include "core/layout/ng/ng_break_token.h" 7 #include "core/layout/ng/ng_break_token.h"
8 #include "core/layout/ng/ng_constraint_space.h" 8 #include "core/layout/ng/ng_constraint_space.h"
9 #include "core/layout/ng/ng_constraint_space_builder.h" 9 #include "core/layout/ng/ng_constraint_space_builder.h"
10 #include "core/layout/ng/ng_fragment_base.h" 10 #include "core/layout/ng/ng_fragment_base.h"
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 return kNotFinished; 263 return kNotFinished;
264 } 264 }
265 case kStateChildLayout: { 265 case kStateChildLayout: {
266 DCHECK(current_child_); 266 DCHECK(current_child_);
267 DCHECK(child_fragment); 267 DCHECK(child_fragment);
268 268
269 // TODO(layout_ng): Seems like a giant hack to call this here. 269 // TODO(layout_ng): Seems like a giant hack to call this here.
270 current_child_->UpdateLayoutBox(toNGPhysicalFragment(child_fragment), 270 current_child_->UpdateLayoutBox(toNGPhysicalFragment(child_fragment),
271 space_for_current_child_); 271 space_for_current_child_);
272 272
273 FinishCurrentChildLayout( 273 FinishCurrentChildLayout(new NGFragment(
274 new NGFragment(space_for_current_child_->WritingMode(), 274 ConstraintSpace().WritingMode(), ConstraintSpace().Direction(),
275 current_child_->Style()->direction(), 275 toNGPhysicalFragment(child_fragment)));
276 toNGPhysicalFragment(child_fragment)));
277 current_child_ = current_child_->NextSibling(); 276 current_child_ = current_child_->NextSibling();
278 state_ = kStatePrepareForChildLayout; 277 state_ = kStatePrepareForChildLayout;
279 return kNotFinished; 278 return kNotFinished;
280 } 279 }
281 case kStateFinalize: { 280 case kStateFinalize: {
282 content_size_ += border_and_padding_.block_end; 281 content_size_ += border_and_padding_.block_end;
283 282
284 // Recompute the block-axis size now that we know our content size. 283 // Recompute the block-axis size now that we know our content size.
285 LayoutUnit block_size = ComputeBlockSizeForFragment( 284 LayoutUnit block_size = ComputeBlockSizeForFragment(
286 ConstraintSpace(), Style(), content_size_); 285 ConstraintSpace(), Style(), content_size_);
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 if (!is_fragment_margin_strut_block_start_updated_) { 436 if (!is_fragment_margin_strut_block_start_updated_) {
438 builder_->SetMarginStrutBlockStart(from); 437 builder_->SetMarginStrutBlockStart(from);
439 is_fragment_margin_strut_block_start_updated_ = true; 438 is_fragment_margin_strut_block_start_updated_ = true;
440 } 439 }
441 builder_->SetMarginStrutBlockEnd(from); 440 builder_->SetMarginStrutBlockEnd(from);
442 } 441 }
443 442
444 NGConstraintSpace* 443 NGConstraintSpace*
445 NGBlockLayoutAlgorithm::CreateConstraintSpaceForCurrentChild() const { 444 NGBlockLayoutAlgorithm::CreateConstraintSpaceForCurrentChild() const {
446 DCHECK(current_child_); 445 DCHECK(current_child_);
447 space_builder_->SetIsNewFormattingContext( 446 space_builder_
448 IsNewFormattingContextForInFlowBlockLevelChild(ConstraintSpace(), 447 ->SetIsNewFormattingContext(
449 CurrentChildStyle())); 448 IsNewFormattingContextForInFlowBlockLevelChild(ConstraintSpace(),
449 CurrentChildStyle()))
450 .SetWritingMode(
451 FromPlatformWritingMode(CurrentChildStyle().getWritingMode()))
452 .SetTextDirection(CurrentChildStyle().direction());
450 NGConstraintSpace* child_space = space_builder_->ToConstraintSpace(); 453 NGConstraintSpace* child_space = space_builder_->ToConstraintSpace();
451 454
452 // TODO(layout-ng): Set offset through the space builder. 455 // TODO(layout-ng): Set offset through the space builder.
453 child_space->SetOffset(GetChildSpaceOffset()); 456 child_space->SetOffset(GetChildSpaceOffset());
454 return child_space; 457 return child_space;
455 } 458 }
456 459
457 DEFINE_TRACE(NGBlockLayoutAlgorithm) { 460 DEFINE_TRACE(NGBlockLayoutAlgorithm) {
458 NGLayoutAlgorithm::trace(visitor); 461 NGLayoutAlgorithm::trace(visitor);
459 visitor->trace(first_child_); 462 visitor->trace(first_child_);
460 visitor->trace(constraint_space_); 463 visitor->trace(constraint_space_);
461 visitor->trace(break_token_); 464 visitor->trace(break_token_);
462 visitor->trace(builder_); 465 visitor->trace(builder_);
463 visitor->trace(space_builder_); 466 visitor->trace(space_builder_);
464 visitor->trace(space_for_current_child_); 467 visitor->trace(space_for_current_child_);
465 visitor->trace(current_child_); 468 visitor->trace(current_child_);
466 } 469 }
467 470
468 } // namespace blink 471 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698