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

Side by Side Diff: Source/core/layout/TextAutosizer.cpp

Issue 1033943002: Rename LayoutStyle to papayawhip (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: ensureComputedStyle Created 5 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/layout/TextAutosizer.h ('k') | Source/core/layout/TextRunConstructor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 215
216 return (linkCount >= 3); 216 return (linkCount >= 3);
217 } 217 }
218 218
219 static bool blockHeightConstrained(const LayoutBlock* block) 219 static bool blockHeightConstrained(const LayoutBlock* block)
220 { 220 {
221 // FIXME: Propagate constrainedness down the tree, to avoid inefficiently wa lking back up from each box. 221 // FIXME: Propagate constrainedness down the tree, to avoid inefficiently wa lking back up from each box.
222 // FIXME: This code needs to take into account vertical writing modes. 222 // FIXME: This code needs to take into account vertical writing modes.
223 // FIXME: Consider additional heuristics, such as ignoring fixed heights if the content is already overflowing before autosizing kicks in. 223 // FIXME: Consider additional heuristics, such as ignoring fixed heights if the content is already overflowing before autosizing kicks in.
224 for (; block; block = block->containingBlock()) { 224 for (; block; block = block->containingBlock()) {
225 const LayoutStyle& style = block->styleRef(); 225 const ComputedStyle& style = block->styleRef();
226 if (style.overflowY() >= OSCROLL) 226 if (style.overflowY() >= OSCROLL)
227 return false; 227 return false;
228 if (style.height().isSpecified() || style.maxHeight().isSpecified() || b lock->isOutOfFlowPositioned()) { 228 if (style.height().isSpecified() || style.maxHeight().isSpecified() || b lock->isOutOfFlowPositioned()) {
229 // Some sites (e.g. wikipedia) set their html and/or body elements t o height:100%, 229 // Some sites (e.g. wikipedia) set their html and/or body elements t o height:100%,
230 // without intending to constrain the height of the content within t hem. 230 // without intending to constrain the height of the content within t hem.
231 return !block->isDocumentElement() && !block->isBody(); 231 return !block->isDocumentElement() && !block->isBody();
232 } 232 }
233 if (block->isFloating()) 233 if (block->isFloating())
234 return false; 234 return false;
235 } 235 }
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 { 562 {
563 Page * page = m_document->page(); 563 Page * page = m_document->page();
564 ASSERT(page); 564 ASSERT(page);
565 return page->frameHost().pinchViewport().size(); 565 return page->frameHost().pinchViewport().size();
566 } 566 }
567 567
568 void TextAutosizer::resetMultipliers() 568 void TextAutosizer::resetMultipliers()
569 { 569 {
570 LayoutObject* renderer = m_document->layoutView(); 570 LayoutObject* renderer = m_document->layoutView();
571 while (renderer) { 571 while (renderer) {
572 if (const LayoutStyle* style = renderer->style()) { 572 if (const ComputedStyle* style = renderer->style()) {
573 if (style->textAutosizingMultiplier() != 1) 573 if (style->textAutosizingMultiplier() != 1)
574 applyMultiplier(renderer, 1, LayoutNeeded); 574 applyMultiplier(renderer, 1, LayoutNeeded);
575 } 575 }
576 renderer = renderer->nextInPreOrder(); 576 renderer = renderer->nextInPreOrder();
577 } 577 }
578 } 578 }
579 579
580 void TextAutosizer::setAllTextNeedsLayout() 580 void TextAutosizer::setAllTextNeedsLayout()
581 { 581 {
582 LayoutObject* renderer = m_document->layoutView(); 582 LayoutObject* renderer = m_document->layoutView();
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 Node* node = renderer->generatingNode(); 681 Node* node = renderer->generatingNode();
682 if (!node || !node->isElementNode()) 682 if (!node || !node->isElementNode())
683 return 0; 683 return 0;
684 684
685 FingerprintSourceData data; 685 FingerprintSourceData data;
686 if (const LayoutObject* parent = parentElementRenderer(renderer)) 686 if (const LayoutObject* parent = parentElementRenderer(renderer))
687 data.m_parentHash = getFingerprint(parent); 687 data.m_parentHash = getFingerprint(parent);
688 688
689 data.m_qualifiedNameHash = QualifiedNameHash::hash(toElement(node)->tagQName ()); 689 data.m_qualifiedNameHash = QualifiedNameHash::hash(toElement(node)->tagQName ());
690 690
691 if (const LayoutStyle* style = renderer->style()) { 691 if (const ComputedStyle* style = renderer->style()) {
692 data.m_packedStyleProperties = style->direction(); 692 data.m_packedStyleProperties = style->direction();
693 data.m_packedStyleProperties |= (style->position() << 1); 693 data.m_packedStyleProperties |= (style->position() << 1);
694 data.m_packedStyleProperties |= (style->floating() << 4); 694 data.m_packedStyleProperties |= (style->floating() << 4);
695 data.m_packedStyleProperties |= (style->display() << 6); 695 data.m_packedStyleProperties |= (style->display() << 6);
696 data.m_packedStyleProperties |= (style->width().type() << 11); 696 data.m_packedStyleProperties |= (style->width().type() << 11);
697 // packedStyleProperties effectively using 15 bits now. 697 // packedStyleProperties effectively using 15 bits now.
698 698
699 // consider for adding: writing mode, padding. 699 // consider for adding: writing mode, padding.
700 700
701 data.m_width = style->width().getFloatValue(); 701 data.m_width = style->width().getFloatValue();
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 child = (firstOrLast == First) ? child->nextSibling() : child->previousS ibling(); 960 child = (firstOrLast == First) ? child->nextSibling() : child->previousS ibling();
961 } 961 }
962 --depth; 962 --depth;
963 963
964 return 0; 964 return 0;
965 } 965 }
966 966
967 void TextAutosizer::applyMultiplier(LayoutObject* renderer, float multiplier, Re layoutBehavior relayoutBehavior) 967 void TextAutosizer::applyMultiplier(LayoutObject* renderer, float multiplier, Re layoutBehavior relayoutBehavior)
968 { 968 {
969 ASSERT(renderer); 969 ASSERT(renderer);
970 LayoutStyle& currentStyle = renderer->mutableStyleRef(); 970 ComputedStyle& currentStyle = renderer->mutableStyleRef();
971 if (currentStyle.textAutosizingMultiplier() == multiplier) 971 if (currentStyle.textAutosizingMultiplier() == multiplier)
972 return; 972 return;
973 973
974 // We need to clone the render style to avoid breaking style sharing. 974 // We need to clone the render style to avoid breaking style sharing.
975 RefPtr<LayoutStyle> style = LayoutStyle::clone(currentStyle); 975 RefPtr<ComputedStyle> style = ComputedStyle::clone(currentStyle);
976 style->setTextAutosizingMultiplier(multiplier); 976 style->setTextAutosizingMultiplier(multiplier);
977 style->setUnique(); 977 style->setUnique();
978 978
979 switch (relayoutBehavior) { 979 switch (relayoutBehavior) {
980 case AlreadyInLayout: 980 case AlreadyInLayout:
981 // Don't free currentStyle until the end of the layout pass. This allows other parts of the system 981 // Don't free currentStyle until the end of the layout pass. This allows other parts of the system
982 // to safely hold raw LayoutStyle* pointers during layout, e.g. Breaking Context::m_currentStyle. 982 // to safely hold raw ComputedStyle* pointers during layout, e.g. Breaki ngContext::m_currentStyle.
983 m_stylesRetainedDuringLayout.append(&currentStyle); 983 m_stylesRetainedDuringLayout.append(&currentStyle);
984 984
985 renderer->setStyleInternal(style.release()); 985 renderer->setStyleInternal(style.release());
986 renderer->setNeedsLayoutAndFullPaintInvalidation(); 986 renderer->setNeedsLayoutAndFullPaintInvalidation();
987 break; 987 break;
988 988
989 case LayoutNeeded: 989 case LayoutNeeded:
990 renderer->setStyle(style.release()); 990 renderer->setStyle(style.release());
991 break; 991 break;
992 } 992 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 } 1172 }
1173 return computedSize; 1173 return computedSize;
1174 } 1174 }
1175 1175
1176 DEFINE_TRACE(TextAutosizer) 1176 DEFINE_TRACE(TextAutosizer)
1177 { 1177 {
1178 visitor->trace(m_document); 1178 visitor->trace(m_document);
1179 } 1179 }
1180 1180
1181 } // namespace blink 1181 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/layout/TextAutosizer.h ('k') | Source/core/layout/TextRunConstructor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698