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

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

Issue 2957833004: Make VisiblePosition::LastPositionInNode() to take const Node& instead of Node* (Closed)
Patch Set: 2017-06-27T15:28:02 Created 3 years, 5 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 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2009, 2010, 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2009, 2010, 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 } 626 }
627 627
628 GetDocument().UpdateStyleAndLayoutIgnorePendingStylesheets(); 628 GetDocument().UpdateStyleAndLayoutIgnorePendingStylesheets();
629 629
630 // FIXME: Tolerate differences in id, class, and style attributes. 630 // FIXME: Tolerate differences in id, class, and style attributes.
631 if (element->parentNode() && IsNonTableCellHTMLBlockElement(element) && 631 if (element->parentNode() && IsNonTableCellHTMLBlockElement(element) &&
632 AreIdenticalElements(*element, *element->parentNode()) && 632 AreIdenticalElements(*element, *element->parentNode()) &&
633 VisiblePosition::FirstPositionInNode(*element->parentNode()) 633 VisiblePosition::FirstPositionInNode(*element->parentNode())
634 .DeepEquivalent() == 634 .DeepEquivalent() ==
635 VisiblePosition::FirstPositionInNode(*element).DeepEquivalent() && 635 VisiblePosition::FirstPositionInNode(*element).DeepEquivalent() &&
636 VisiblePosition::LastPositionInNode(element->parentNode()) 636 VisiblePosition::LastPositionInNode(*element->parentNode())
637 .DeepEquivalent() == 637 .DeepEquivalent() ==
638 VisiblePosition::LastPositionInNode(element).DeepEquivalent()) { 638 VisiblePosition::LastPositionInNode(*element).DeepEquivalent()) {
639 inserted_nodes.WillRemoveNodePreservingChildren(*element); 639 inserted_nodes.WillRemoveNodePreservingChildren(*element);
640 RemoveNodePreservingChildren(element, editing_state); 640 RemoveNodePreservingChildren(element, editing_state);
641 if (editing_state->IsAborted()) 641 if (editing_state->IsAborted())
642 return; 642 return;
643 continue; 643 continue;
644 } 644 }
645 645
646 if (element->parentNode() && 646 if (element->parentNode() &&
647 HasRichlyEditableStyle(*element->parentNode()) && 647 HasRichlyEditableStyle(*element->parentNode()) &&
648 HasRichlyEditableStyle(*element)) { 648 HasRichlyEditableStyle(*element)) {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 Element* element, 728 Element* element,
729 Element* ancestor, 729 Element* ancestor,
730 EditingState* editing_state) { 730 EditingState* editing_state) {
731 if (!HasEditableStyle(*ancestor->parentNode())) 731 if (!HasEditableStyle(*ancestor->parentNode()))
732 return; 732 return;
733 733
734 GetDocument().UpdateStyleAndLayoutIgnorePendingStylesheets(); 734 GetDocument().UpdateStyleAndLayoutIgnorePendingStylesheets();
735 VisiblePosition position_at_end_of_node = 735 VisiblePosition position_at_end_of_node =
736 CreateVisiblePosition(LastPositionInOrAfterNode(element)); 736 CreateVisiblePosition(LastPositionInOrAfterNode(element));
737 VisiblePosition last_position_in_paragraph = 737 VisiblePosition last_position_in_paragraph =
738 VisiblePosition::LastPositionInNode(ancestor); 738 VisiblePosition::LastPositionInNode(*ancestor);
739 if (position_at_end_of_node.DeepEquivalent() == 739 if (position_at_end_of_node.DeepEquivalent() ==
740 last_position_in_paragraph.DeepEquivalent()) { 740 last_position_in_paragraph.DeepEquivalent()) {
741 RemoveNode(element, editing_state); 741 RemoveNode(element, editing_state);
742 if (editing_state->IsAborted()) 742 if (editing_state->IsAborted())
743 return; 743 return;
744 if (ancestor->nextSibling()) 744 if (ancestor->nextSibling())
745 InsertNodeBefore(element, ancestor->nextSibling(), editing_state); 745 InsertNodeBefore(element, ancestor->nextSibling(), editing_state);
746 else 746 else
747 AppendNode(element, ancestor->parentNode(), editing_state); 747 AppendNode(element, ancestor->parentNode(), editing_state);
748 if (editing_state->IsAborted()) 748 if (editing_state->IsAborted())
(...skipping 1261 matching lines...) Expand 10 before | Expand all | Expand 10 after
2010 visitor->Trace(start_of_inserted_content_); 2010 visitor->Trace(start_of_inserted_content_);
2011 visitor->Trace(end_of_inserted_content_); 2011 visitor->Trace(end_of_inserted_content_);
2012 visitor->Trace(insertion_style_); 2012 visitor->Trace(insertion_style_);
2013 visitor->Trace(document_fragment_); 2013 visitor->Trace(document_fragment_);
2014 visitor->Trace(start_of_inserted_range_); 2014 visitor->Trace(start_of_inserted_range_);
2015 visitor->Trace(end_of_inserted_range_); 2015 visitor->Trace(end_of_inserted_range_);
2016 CompositeEditCommand::Trace(visitor); 2016 CompositeEditCommand::Trace(visitor);
2017 } 2017 }
2018 2018
2019 } // namespace blink 2019 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698