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

Side by Side Diff: third_party/WebKit/Source/core/editing/commands/ApplyStyleCommand.cpp

Issue 1896793002: Rename (updateLayout/updateStyle).*.() to updateStyleAndLayout.*.() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2008, 2009 Apple 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 EditAction ApplyStyleCommand::editingAction() const 228 EditAction ApplyStyleCommand::editingAction() const
229 { 229 {
230 return m_editingAction; 230 return m_editingAction;
231 } 231 }
232 232
233 void ApplyStyleCommand::applyBlockStyle(EditingStyle *style, EditingState* editi ngState) 233 void ApplyStyleCommand::applyBlockStyle(EditingStyle *style, EditingState* editi ngState)
234 { 234 {
235 // update document layout once before removing styles 235 // update document layout once before removing styles
236 // so that we avoid the expense of updating before each and every call 236 // so that we avoid the expense of updating before each and every call
237 // to check a computed style 237 // to check a computed style
238 document().updateLayoutIgnorePendingStylesheets(); 238 document().updateStyleAndLayoutIgnorePendingStylesheets();
239 239
240 // get positions we want to use for applying style 240 // get positions we want to use for applying style
241 Position start = startPosition(); 241 Position start = startPosition();
242 Position end = endPosition(); 242 Position end = endPosition();
243 if (comparePositions(end, start) < 0) { 243 if (comparePositions(end, start) < 0) {
244 Position swap = start; 244 Position swap = start;
245 start = end; 245 start = end;
246 end = swap; 246 end = swap;
247 } 247 }
248 248
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 } 575 }
576 576
577 void ApplyStyleCommand::applyInlineStyle(EditingStyle* style, EditingState* edit ingState) 577 void ApplyStyleCommand::applyInlineStyle(EditingStyle* style, EditingState* edit ingState)
578 { 578 {
579 ContainerNode* startDummySpanAncestor = nullptr; 579 ContainerNode* startDummySpanAncestor = nullptr;
580 ContainerNode* endDummySpanAncestor = nullptr; 580 ContainerNode* endDummySpanAncestor = nullptr;
581 581
582 // update document layout once before removing styles 582 // update document layout once before removing styles
583 // so that we avoid the expense of updating before each and every call 583 // so that we avoid the expense of updating before each and every call
584 // to check a computed style 584 // to check a computed style
585 document().updateLayoutIgnorePendingStylesheets(); 585 document().updateStyleAndLayoutIgnorePendingStylesheets();
586 586
587 // adjust to the positions we want to use for applying style 587 // adjust to the positions we want to use for applying style
588 Position start = startPosition(); 588 Position start = startPosition();
589 Position end = endPosition(); 589 Position end = endPosition();
590 590
591 if (start.isNull() || end.isNull()) 591 if (start.isNull() || end.isNull())
592 return; 592 return;
593 593
594 if (comparePositions(end, start) < 0) { 594 if (comparePositions(end, start) < 0) {
595 Position swap = start; 595 Position swap = start;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 mergeEndWithNextIfIdentical(start, end, editingState); 689 mergeEndWithNextIfIdentical(start, end, editingState);
690 if (editingState->isAborted()) 690 if (editingState->isAborted())
691 return; 691 return;
692 start = startPosition(); 692 start = startPosition();
693 end = endPosition(); 693 end = endPosition();
694 } 694 }
695 695
696 // update document layout once before running the rest of the function 696 // update document layout once before running the rest of the function
697 // so that we avoid the expense of updating before each and every call 697 // so that we avoid the expense of updating before each and every call
698 // to check a computed style 698 // to check a computed style
699 document().updateLayoutIgnorePendingStylesheets(); 699 document().updateStyleAndLayoutIgnorePendingStylesheets();
700 700
701 EditingStyle* styleToApply = style; 701 EditingStyle* styleToApply = style;
702 if (hasTextDirection) { 702 if (hasTextDirection) {
703 // Avoid applying the unicode-bidi and direction properties beneath ance stors that already have them. 703 // Avoid applying the unicode-bidi and direction properties beneath ance stors that already have them.
704 HTMLElement* embeddingStartElement = highestEmbeddingAncestor(start.anch orNode(), enclosingBlock(start.anchorNode())); 704 HTMLElement* embeddingStartElement = highestEmbeddingAncestor(start.anch orNode(), enclosingBlock(start.anchorNode()));
705 HTMLElement* embeddingEndElement = highestEmbeddingAncestor(end.anchorNo de(), enclosingBlock(end.anchorNode())); 705 HTMLElement* embeddingEndElement = highestEmbeddingAncestor(end.anchorNo de(), enclosingBlock(end.anchorNode()));
706 706
707 if (embeddingStartElement || embeddingEndElement) { 707 if (embeddingStartElement || embeddingEndElement) {
708 Position embeddingApplyStart = embeddingStartElement ? positionInPar entAfterNode(*embeddingStartElement) : start; 708 Position embeddingApplyStart = embeddingStartElement ? positionInPar entAfterNode(*embeddingStartElement) : start;
709 Position embeddingApplyEnd = embeddingEndElement ? positionInParentB eforeNode(*embeddingEndElement) : end; 709 Position embeddingApplyEnd = embeddingEndElement ? positionInParentB eforeNode(*embeddingEndElement) : end;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 818
819 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::InlineRunToApplyStyle); 819 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::InlineRunToApplyStyle);
820 820
821 namespace blink { 821 namespace blink {
822 822
823 void ApplyStyleCommand::applyInlineStyleToNodeRange(EditingStyle* style, Node* s tartNode, Node* pastEndNode, EditingState* editingState) 823 void ApplyStyleCommand::applyInlineStyleToNodeRange(EditingStyle* style, Node* s tartNode, Node* pastEndNode, EditingState* editingState)
824 { 824 {
825 if (m_removeOnly) 825 if (m_removeOnly)
826 return; 826 return;
827 827
828 document().updateLayoutIgnorePendingStylesheets(); 828 document().updateStyleAndLayoutIgnorePendingStylesheets();
829 829
830 HeapVector<InlineRunToApplyStyle> runs; 830 HeapVector<InlineRunToApplyStyle> runs;
831 Node* node = startNode; 831 Node* node = startNode;
832 for (Node* next; node && node != pastEndNode; node = next) { 832 for (Node* next; node && node != pastEndNode; node = next) {
833 next = NodeTraversal::next(*node); 833 next = NodeTraversal::next(*node);
834 834
835 if (!node->layoutObject() || !node->hasEditableStyle()) 835 if (!node->layoutObject() || !node->hasEditableStyle())
836 continue; 836 continue;
837 837
838 if (!node->layoutObjectIsRichlyEditable() && node->isHTMLElement()) { 838 if (!node->layoutObjectIsRichlyEditable() && node->isHTMLElement()) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 removeConflictingInlineStyleFromRun(style, run.start, run.end, run.pastE ndNode, editingState); 887 removeConflictingInlineStyleFromRun(style, run.start, run.end, run.pastE ndNode, editingState);
888 if (editingState->isAborted()) 888 if (editingState->isAborted())
889 return; 889 return;
890 if (run.startAndEndAreStillInDocument()) { 890 if (run.startAndEndAreStillInDocument()) {
891 run.positionForStyleComputation = positionToComputeInlineStyleChange (run.start, run.dummyElement, editingState); 891 run.positionForStyleComputation = positionToComputeInlineStyleChange (run.start, run.dummyElement, editingState);
892 if (editingState->isAborted()) 892 if (editingState->isAborted())
893 return; 893 return;
894 } 894 }
895 } 895 }
896 896
897 document().updateLayoutIgnorePendingStylesheets(); 897 document().updateStyleAndLayoutIgnorePendingStylesheets();
898 898
899 for (auto& run : runs) { 899 for (auto& run : runs) {
900 if (run.positionForStyleComputation.isNotNull()) 900 if (run.positionForStyleComputation.isNotNull())
901 run.change = StyleChange(style, run.positionForStyleComputation); 901 run.change = StyleChange(style, run.positionForStyleComputation);
902 } 902 }
903 903
904 for (auto& run : runs) { 904 for (auto& run : runs) {
905 if (run.dummyElement) { 905 if (run.dummyElement) {
906 removeNode(run.dummyElement, editingState); 906 removeNode(run.dummyElement, editingState);
907 if (editingState->isAborted()) 907 if (editingState->isAborted())
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1086 break; 1086 break;
1087 } 1087 }
1088 1088
1089 return result; 1089 return result;
1090 } 1090 }
1091 1091
1092 void ApplyStyleCommand::applyInlineStyleToPushDown(Node* node, EditingStyle* sty le, EditingState* editingState) 1092 void ApplyStyleCommand::applyInlineStyleToPushDown(Node* node, EditingStyle* sty le, EditingState* editingState)
1093 { 1093 {
1094 DCHECK(node); 1094 DCHECK(node);
1095 1095
1096 node->document().updateLayoutTree(); 1096 node->document().updateStyleAndLayoutTree();
1097 1097
1098 if (!style || style->isEmpty() || !node->layoutObject() || isHTMLIFrameEleme nt(*node)) 1098 if (!style || style->isEmpty() || !node->layoutObject() || isHTMLIFrameEleme nt(*node))
1099 return; 1099 return;
1100 1100
1101 EditingStyle* newInlineStyle = style; 1101 EditingStyle* newInlineStyle = style;
1102 if (node->isHTMLElement() && toHTMLElement(node)->inlineStyle()) { 1102 if (node->isHTMLElement() && toHTMLElement(node)->inlineStyle()) {
1103 newInlineStyle = style->copy(); 1103 newInlineStyle = style->copy();
1104 newInlineStyle->mergeInlineStyleOfElement(toHTMLElement(node), EditingSt yle::OverrideValues); 1104 newInlineStyle->mergeInlineStyleOfElement(toHTMLElement(node), EditingSt yle::OverrideValues);
1105 } 1105 }
1106 1106
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1279 break; 1279 break;
1280 node = next; 1280 node = next;
1281 } 1281 }
1282 1282
1283 updateStartEnd(s, e); 1283 updateStartEnd(s, e);
1284 } 1284 }
1285 1285
1286 bool ApplyStyleCommand::elementFullySelected(HTMLElement& element, const Positio n& start, const Position& end) const 1286 bool ApplyStyleCommand::elementFullySelected(HTMLElement& element, const Positio n& start, const Position& end) const
1287 { 1287 {
1288 // The tree may have changed and Position::upstream() relies on an up-to-dat e layout. 1288 // The tree may have changed and Position::upstream() relies on an up-to-dat e layout.
1289 element.document().updateLayoutIgnorePendingStylesheets(); 1289 element.document().updateStyleAndLayoutIgnorePendingStylesheets();
1290 1290
1291 return comparePositions(firstPositionInOrBeforeNode(&element), start) >= 0 1291 return comparePositions(firstPositionInOrBeforeNode(&element), start) >= 0
1292 && comparePositions(mostBackwardCaretPosition(lastPositionInOrAfterNode( &element)), end) <= 0; 1292 && comparePositions(mostBackwardCaretPosition(lastPositionInOrAfterNode( &element)), end) <= 0;
1293 } 1293 }
1294 1294
1295 void ApplyStyleCommand::splitTextAtStart(const Position& start, const Position& end) 1295 void ApplyStyleCommand::splitTextAtStart(const Position& start, const Position& end)
1296 { 1296 {
1297 DCHECK(start.computeContainerNode()->isTextNode()) << start; 1297 DCHECK(start.computeContainerNode()->isTextNode()) << start;
1298 1298
1299 Position newEnd; 1299 Position newEnd;
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
1721 DEFINE_TRACE(ApplyStyleCommand) 1721 DEFINE_TRACE(ApplyStyleCommand)
1722 { 1722 {
1723 visitor->trace(m_style); 1723 visitor->trace(m_style);
1724 visitor->trace(m_start); 1724 visitor->trace(m_start);
1725 visitor->trace(m_end); 1725 visitor->trace(m_end);
1726 visitor->trace(m_styledInlineElement); 1726 visitor->trace(m_styledInlineElement);
1727 CompositeEditCommand::trace(visitor); 1727 CompositeEditCommand::trace(visitor);
1728 } 1728 }
1729 1729
1730 } // namespace blink 1730 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698