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

Side by Side Diff: Source/WebCore/editing/htmlediting.cpp

Issue 13954003: Remove mail blockquote special case handling. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006, 2007 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 947 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 if (!node) 958 if (!node)
959 return false; 959 return false;
960 960
961 RenderObject* renderer = node->renderer(); 961 RenderObject* renderer = node->renderer();
962 if (!renderer) 962 if (!renderer)
963 return false; 963 return false;
964 964
965 return renderer->style()->visibility() == VISIBLE; 965 return renderer->style()->visibility() == VISIBLE;
966 } 966 }
967 967
968 unsigned numEnclosingMailBlockquotes(const Position& p)
969 {
970 unsigned num = 0;
971 for (Node* n = p.deprecatedNode(); n; n = n->parentNode())
972 if (isMailBlockquote(n))
973 num++;
974
975 return num;
976 }
977
978 void updatePositionForNodeRemoval(Position& position, Node* node) 968 void updatePositionForNodeRemoval(Position& position, Node* node)
979 { 969 {
980 if (position.isNull()) 970 if (position.isNull())
981 return; 971 return;
982 switch (position.anchorType()) { 972 switch (position.anchorType()) {
983 case Position::PositionIsBeforeChildren: 973 case Position::PositionIsBeforeChildren:
984 if (position.containerNode() == node) 974 if (position.containerNode() == node)
985 position = positionInParentBeforeNode(node); 975 position = positionInParentBeforeNode(node);
986 break; 976 break;
987 case Position::PositionIsAfterChildren: 977 case Position::PositionIsAfterChildren:
(...skipping 10 matching lines...) Expand all
998 if (node->containsIncludingShadowDOM(position.anchorNode())) 988 if (node->containsIncludingShadowDOM(position.anchorNode()))
999 position = positionInParentAfterNode(node); 989 position = positionInParentAfterNode(node);
1000 break; 990 break;
1001 case Position::PositionIsBeforeAnchor: 991 case Position::PositionIsBeforeAnchor:
1002 if (node->containsIncludingShadowDOM(position.anchorNode())) 992 if (node->containsIncludingShadowDOM(position.anchorNode()))
1003 position = positionInParentBeforeNode(node); 993 position = positionInParentBeforeNode(node);
1004 break; 994 break;
1005 } 995 }
1006 } 996 }
1007 997
1008 bool isMailBlockquote(const Node *node)
1009 {
1010 if (!node || !node->hasTagName(blockquoteTag))
1011 return false;
1012
1013 return static_cast<const Element *>(node)->getAttribute("type") == "cite";
1014 }
1015
1016 int caretMinOffset(const Node* n) 998 int caretMinOffset(const Node* n)
1017 { 999 {
1018 RenderObject* r = n->renderer(); 1000 RenderObject* r = n->renderer();
1019 ASSERT(!n->isCharacterDataNode() || !r || r->isText()); // FIXME: This was a runtime check that seemingly couldn't fail; changed it to an assertion for now. 1001 ASSERT(!n->isCharacterDataNode() || !r || r->isText()); // FIXME: This was a runtime check that seemingly couldn't fail; changed it to an assertion for now.
1020 return r ? r->caretMinOffset() : 0; 1002 return r ? r->caretMinOffset() : 0;
1021 } 1003 }
1022 1004
1023 // If a node can contain candidates for VisiblePositions, return the offset of t he last candidate, otherwise 1005 // If a node can contain candidates for VisiblePositions, return the offset of t he last candidate, otherwise
1024 // return the number of children for container nodes and the length for unrender ed text nodes. 1006 // return the number of children for container nodes and the length for unrender ed text nodes.
1025 int caretMaxOffset(const Node* n) 1007 int caretMaxOffset(const Node* n)
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1201 // if the selection starts just before a paragraph break, skip over it 1183 // if the selection starts just before a paragraph break, skip over it
1202 if (isEndOfParagraph(visiblePosition)) 1184 if (isEndOfParagraph(visiblePosition))
1203 return visiblePosition.next().deepEquivalent().downstream(); 1185 return visiblePosition.next().deepEquivalent().downstream();
1204 1186
1205 // otherwise, make sure to be at the start of the first selected node, 1187 // otherwise, make sure to be at the start of the first selected node,
1206 // instead of possibly at the end of the last node before the selection 1188 // instead of possibly at the end of the last node before the selection
1207 return visiblePosition.deepEquivalent().downstream(); 1189 return visiblePosition.deepEquivalent().downstream();
1208 } 1190 }
1209 1191
1210 } // namespace WebCore 1192 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698