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

Side by Side Diff: Source/core/dom/Range.cpp

Issue 14705009: Remove RangeException interface (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update expectation Created 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/dom/DOMExceptions.in ('k') | Source/core/dom/RangeException.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 * (C) 1999 Lars Knoll (knoll@kde.org) 2 * (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Gunnstein Lye (gunnstein@netcom.no) 3 * (C) 2000 Gunnstein Lye (gunnstein@netcom.no)
4 * (C) 2000 Frederik Holljen (frederik.holljen@hig.no) 4 * (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
5 * (C) 2001 Peter Kelly (pmk@post.com) 5 * (C) 2001 Peter Kelly (pmk@post.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
7 * Copyright (C) 2011 Motorola Mobility. All rights reserved. 7 * Copyright (C) 2011 Motorola Mobility. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 17 matching lines...) Expand all
28 #include <stdio.h> 28 #include <stdio.h>
29 #include "HTMLNames.h" 29 #include "HTMLNames.h"
30 #include "core/dom/ClientRect.h" 30 #include "core/dom/ClientRect.h"
31 #include "core/dom/ClientRectList.h" 31 #include "core/dom/ClientRectList.h"
32 #include "core/dom/DocumentFragment.h" 32 #include "core/dom/DocumentFragment.h"
33 #include "core/dom/ExceptionCode.h" 33 #include "core/dom/ExceptionCode.h"
34 #include "core/dom/Node.h" 34 #include "core/dom/Node.h"
35 #include "core/dom/NodeTraversal.h" 35 #include "core/dom/NodeTraversal.h"
36 #include "core/dom/NodeWithIndex.h" 36 #include "core/dom/NodeWithIndex.h"
37 #include "core/dom/ProcessingInstruction.h" 37 #include "core/dom/ProcessingInstruction.h"
38 #include "core/dom/RangeException.h"
39 #include "core/dom/Text.h" 38 #include "core/dom/Text.h"
40 #include "core/editing/TextIterator.h" 39 #include "core/editing/TextIterator.h"
41 #include "core/editing/VisiblePosition.h" 40 #include "core/editing/VisiblePosition.h"
42 #include "core/editing/VisibleUnits.h" 41 #include "core/editing/VisibleUnits.h"
43 #include "core/editing/htmlediting.h" 42 #include "core/editing/htmlediting.h"
44 #include "core/editing/markup.h" 43 #include "core/editing/markup.h"
45 #include "core/html/HTMLElement.h" 44 #include "core/html/HTMLElement.h"
46 #include "core/page/Frame.h" 45 #include "core/page/Frame.h"
47 #include "core/page/FrameView.h" 46 #include "core/page/FrameView.h"
48 #include "core/page/Page.h" 47 #include "core/page/Page.h"
(...skipping 955 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 return; 1003 return;
1005 } 1004 }
1006 } 1005 }
1007 1006
1008 // INVALID_NODE_TYPE_ERR: Raised if newNode is an Attr, Entity, Notation, Sh adowRoot or Document node. 1007 // INVALID_NODE_TYPE_ERR: Raised if newNode is an Attr, Entity, Notation, Sh adowRoot or Document node.
1009 switch (newNodeType) { 1008 switch (newNodeType) {
1010 case Node::ATTRIBUTE_NODE: 1009 case Node::ATTRIBUTE_NODE:
1011 case Node::ENTITY_NODE: 1010 case Node::ENTITY_NODE:
1012 case Node::NOTATION_NODE: 1011 case Node::NOTATION_NODE:
1013 case Node::DOCUMENT_NODE: 1012 case Node::DOCUMENT_NODE:
1014 ec = RangeException::INVALID_NODE_TYPE_ERR; 1013 ec = INVALID_NODE_TYPE_ERR;
1015 return; 1014 return;
1016 default: 1015 default:
1017 if (newNode->isShadowRoot()) { 1016 if (newNode->isShadowRoot()) {
1018 ec = RangeException::INVALID_NODE_TYPE_ERR; 1017 ec = INVALID_NODE_TYPE_ERR;
1019 return; 1018 return;
1020 } 1019 }
1021 break; 1020 break;
1022 } 1021 }
1023 1022
1024 bool collapsed = m_start == m_end; 1023 bool collapsed = m_start == m_end;
1025 RefPtr<Node> container; 1024 RefPtr<Node> container;
1026 if (startIsText) { 1025 if (startIsText) {
1027 container = m_start.container(); 1026 container = m_start.container();
1028 RefPtr<Text> newText = toText(container.get())->splitText(m_start.offset (), ec); 1027 RefPtr<Text> newText = toText(container.get())->splitText(m_start.offset (), ec);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 m_start.clear(); 1129 m_start.clear();
1131 m_end.clear(); 1130 m_end.clear();
1132 } 1131 }
1133 1132
1134 Node* Range::checkNodeWOffset(Node* n, int offset, ExceptionCode& ec) const 1133 Node* Range::checkNodeWOffset(Node* n, int offset, ExceptionCode& ec) const
1135 { 1134 {
1136 switch (n->nodeType()) { 1135 switch (n->nodeType()) {
1137 case Node::DOCUMENT_TYPE_NODE: 1136 case Node::DOCUMENT_TYPE_NODE:
1138 case Node::ENTITY_NODE: 1137 case Node::ENTITY_NODE:
1139 case Node::NOTATION_NODE: 1138 case Node::NOTATION_NODE:
1140 ec = RangeException::INVALID_NODE_TYPE_ERR; 1139 ec = INVALID_NODE_TYPE_ERR;
1141 return 0; 1140 return 0;
1142 case Node::CDATA_SECTION_NODE: 1141 case Node::CDATA_SECTION_NODE:
1143 case Node::COMMENT_NODE: 1142 case Node::COMMENT_NODE:
1144 case Node::TEXT_NODE: 1143 case Node::TEXT_NODE:
1145 if (static_cast<unsigned>(offset) > static_cast<CharacterData*>(n)-> length()) 1144 if (static_cast<unsigned>(offset) > static_cast<CharacterData*>(n)-> length())
1146 ec = INDEX_SIZE_ERR; 1145 ec = INDEX_SIZE_ERR;
1147 return 0; 1146 return 0;
1148 case Node::PROCESSING_INSTRUCTION_NODE: 1147 case Node::PROCESSING_INSTRUCTION_NODE:
1149 if (static_cast<unsigned>(offset) > static_cast<ProcessingInstructio n*>(n)->data().length()) 1148 if (static_cast<unsigned>(offset) > static_cast<ProcessingInstructio n*>(n)->data().length())
1150 ec = INDEX_SIZE_ERR; 1149 ec = INDEX_SIZE_ERR;
(...skipping 21 matching lines...) Expand all
1172 // INVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an 1171 // INVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an
1173 // Attr, Document, DocumentFragment or ShadowRoot node, or part of a SVG sha dow DOM tree, 1172 // Attr, Document, DocumentFragment or ShadowRoot node, or part of a SVG sha dow DOM tree,
1174 // or if refNode is a Document, DocumentFragment, ShadowRoot, Attr, Entity, or Notation node. 1173 // or if refNode is a Document, DocumentFragment, ShadowRoot, Attr, Entity, or Notation node.
1175 1174
1176 switch (n->nodeType()) { 1175 switch (n->nodeType()) {
1177 case Node::ATTRIBUTE_NODE: 1176 case Node::ATTRIBUTE_NODE:
1178 case Node::DOCUMENT_FRAGMENT_NODE: 1177 case Node::DOCUMENT_FRAGMENT_NODE:
1179 case Node::DOCUMENT_NODE: 1178 case Node::DOCUMENT_NODE:
1180 case Node::ENTITY_NODE: 1179 case Node::ENTITY_NODE:
1181 case Node::NOTATION_NODE: 1180 case Node::NOTATION_NODE:
1182 ec = RangeException::INVALID_NODE_TYPE_ERR; 1181 ec = INVALID_NODE_TYPE_ERR;
1183 return; 1182 return;
1184 case Node::CDATA_SECTION_NODE: 1183 case Node::CDATA_SECTION_NODE:
1185 case Node::COMMENT_NODE: 1184 case Node::COMMENT_NODE:
1186 case Node::DOCUMENT_TYPE_NODE: 1185 case Node::DOCUMENT_TYPE_NODE:
1187 case Node::ELEMENT_NODE: 1186 case Node::ELEMENT_NODE:
1188 case Node::ENTITY_REFERENCE_NODE: 1187 case Node::ENTITY_REFERENCE_NODE:
1189 case Node::PROCESSING_INSTRUCTION_NODE: 1188 case Node::PROCESSING_INSTRUCTION_NODE:
1190 case Node::TEXT_NODE: 1189 case Node::TEXT_NODE:
1191 case Node::XPATH_NAMESPACE_NODE: 1190 case Node::XPATH_NAMESPACE_NODE:
1192 break; 1191 break;
(...skipping 11 matching lines...) Expand all
1204 case Node::CDATA_SECTION_NODE: 1203 case Node::CDATA_SECTION_NODE:
1205 case Node::COMMENT_NODE: 1204 case Node::COMMENT_NODE:
1206 case Node::DOCUMENT_TYPE_NODE: 1205 case Node::DOCUMENT_TYPE_NODE:
1207 case Node::ELEMENT_NODE: 1206 case Node::ELEMENT_NODE:
1208 case Node::ENTITY_NODE: 1207 case Node::ENTITY_NODE:
1209 case Node::ENTITY_REFERENCE_NODE: 1208 case Node::ENTITY_REFERENCE_NODE:
1210 case Node::NOTATION_NODE: 1209 case Node::NOTATION_NODE:
1211 case Node::PROCESSING_INSTRUCTION_NODE: 1210 case Node::PROCESSING_INSTRUCTION_NODE:
1212 case Node::TEXT_NODE: 1211 case Node::TEXT_NODE:
1213 case Node::XPATH_NAMESPACE_NODE: 1212 case Node::XPATH_NAMESPACE_NODE:
1214 ec = RangeException::INVALID_NODE_TYPE_ERR; 1213 ec = INVALID_NODE_TYPE_ERR;
1215 return; 1214 return;
1216 } 1215 }
1217 } 1216 }
1218 1217
1219 PassRefPtr<Range> Range::cloneRange(ExceptionCode& ec) const 1218 PassRefPtr<Range> Range::cloneRange(ExceptionCode& ec) const
1220 { 1219 {
1221 if (!m_start.container()) { 1220 if (!m_start.container()) {
1222 ec = INVALID_STATE_ERR; 1221 ec = INVALID_STATE_ERR;
1223 return 0; 1222 return 0;
1224 } 1223 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 case Node::DOCUMENT_NODE: 1309 case Node::DOCUMENT_NODE:
1311 case Node::ELEMENT_NODE: 1310 case Node::ELEMENT_NODE:
1312 case Node::ENTITY_REFERENCE_NODE: 1311 case Node::ENTITY_REFERENCE_NODE:
1313 case Node::PROCESSING_INSTRUCTION_NODE: 1312 case Node::PROCESSING_INSTRUCTION_NODE:
1314 case Node::TEXT_NODE: 1313 case Node::TEXT_NODE:
1315 case Node::XPATH_NAMESPACE_NODE: 1314 case Node::XPATH_NAMESPACE_NODE:
1316 break; 1315 break;
1317 case Node::DOCUMENT_TYPE_NODE: 1316 case Node::DOCUMENT_TYPE_NODE:
1318 case Node::ENTITY_NODE: 1317 case Node::ENTITY_NODE:
1319 case Node::NOTATION_NODE: 1318 case Node::NOTATION_NODE:
1320 ec = RangeException::INVALID_NODE_TYPE_ERR; 1319 ec = INVALID_NODE_TYPE_ERR;
1321 return; 1320 return;
1322 } 1321 }
1323 } 1322 }
1324 1323
1325 switch (refNode->nodeType()) { 1324 switch (refNode->nodeType()) {
1326 case Node::CDATA_SECTION_NODE: 1325 case Node::CDATA_SECTION_NODE:
1327 case Node::COMMENT_NODE: 1326 case Node::COMMENT_NODE:
1328 case Node::DOCUMENT_TYPE_NODE: 1327 case Node::DOCUMENT_TYPE_NODE:
1329 case Node::ELEMENT_NODE: 1328 case Node::ELEMENT_NODE:
1330 case Node::ENTITY_REFERENCE_NODE: 1329 case Node::ENTITY_REFERENCE_NODE:
1331 case Node::PROCESSING_INSTRUCTION_NODE: 1330 case Node::PROCESSING_INSTRUCTION_NODE:
1332 case Node::TEXT_NODE: 1331 case Node::TEXT_NODE:
1333 case Node::XPATH_NAMESPACE_NODE: 1332 case Node::XPATH_NAMESPACE_NODE:
1334 break; 1333 break;
1335 case Node::ATTRIBUTE_NODE: 1334 case Node::ATTRIBUTE_NODE:
1336 case Node::DOCUMENT_FRAGMENT_NODE: 1335 case Node::DOCUMENT_FRAGMENT_NODE:
1337 case Node::DOCUMENT_NODE: 1336 case Node::DOCUMENT_NODE:
1338 case Node::ENTITY_NODE: 1337 case Node::ENTITY_NODE:
1339 case Node::NOTATION_NODE: 1338 case Node::NOTATION_NODE:
1340 ec = RangeException::INVALID_NODE_TYPE_ERR; 1339 ec = INVALID_NODE_TYPE_ERR;
1341 return; 1340 return;
1342 } 1341 }
1343 1342
1344 if (m_ownerDocument != refNode->document()) 1343 if (m_ownerDocument != refNode->document())
1345 setDocument(refNode->document()); 1344 setDocument(refNode->document());
1346 1345
1347 ec = 0; 1346 ec = 0;
1348 setStartBefore(refNode, ec); 1347 setStartBefore(refNode, ec);
1349 if (ec) 1348 if (ec)
1350 return; 1349 return;
(...skipping 23 matching lines...) Expand all
1374 case Node::DOCUMENT_NODE: 1373 case Node::DOCUMENT_NODE:
1375 case Node::ELEMENT_NODE: 1374 case Node::ELEMENT_NODE:
1376 case Node::ENTITY_REFERENCE_NODE: 1375 case Node::ENTITY_REFERENCE_NODE:
1377 case Node::PROCESSING_INSTRUCTION_NODE: 1376 case Node::PROCESSING_INSTRUCTION_NODE:
1378 case Node::TEXT_NODE: 1377 case Node::TEXT_NODE:
1379 case Node::XPATH_NAMESPACE_NODE: 1378 case Node::XPATH_NAMESPACE_NODE:
1380 break; 1379 break;
1381 case Node::DOCUMENT_TYPE_NODE: 1380 case Node::DOCUMENT_TYPE_NODE:
1382 case Node::ENTITY_NODE: 1381 case Node::ENTITY_NODE:
1383 case Node::NOTATION_NODE: 1382 case Node::NOTATION_NODE:
1384 ec = RangeException::INVALID_NODE_TYPE_ERR; 1383 ec = INVALID_NODE_TYPE_ERR;
1385 return; 1384 return;
1386 } 1385 }
1387 } 1386 }
1388 1387
1389 if (m_ownerDocument != refNode->document()) 1388 if (m_ownerDocument != refNode->document())
1390 setDocument(refNode->document()); 1389 setDocument(refNode->document());
1391 1390
1392 m_start.setToStartOfNode(refNode); 1391 m_start.setToStartOfNode(refNode);
1393 m_end.setToEndOfNode(refNode); 1392 m_end.setToEndOfNode(refNode);
1394 } 1393 }
(...skipping 14 matching lines...) Expand all
1409 1408
1410 // INVALID_NODE_TYPE_ERR: Raised if node is an Attr, Entity, DocumentType, N otation, 1409 // INVALID_NODE_TYPE_ERR: Raised if node is an Attr, Entity, DocumentType, N otation,
1411 // Document, or DocumentFragment node. 1410 // Document, or DocumentFragment node.
1412 switch (newParent->nodeType()) { 1411 switch (newParent->nodeType()) {
1413 case Node::ATTRIBUTE_NODE: 1412 case Node::ATTRIBUTE_NODE:
1414 case Node::DOCUMENT_FRAGMENT_NODE: 1413 case Node::DOCUMENT_FRAGMENT_NODE:
1415 case Node::DOCUMENT_NODE: 1414 case Node::DOCUMENT_NODE:
1416 case Node::DOCUMENT_TYPE_NODE: 1415 case Node::DOCUMENT_TYPE_NODE:
1417 case Node::ENTITY_NODE: 1416 case Node::ENTITY_NODE:
1418 case Node::NOTATION_NODE: 1417 case Node::NOTATION_NODE:
1419 ec = RangeException::INVALID_NODE_TYPE_ERR; 1418 ec = INVALID_NODE_TYPE_ERR;
1420 return; 1419 return;
1421 case Node::CDATA_SECTION_NODE: 1420 case Node::CDATA_SECTION_NODE:
1422 case Node::COMMENT_NODE: 1421 case Node::COMMENT_NODE:
1423 case Node::ELEMENT_NODE: 1422 case Node::ELEMENT_NODE:
1424 case Node::ENTITY_REFERENCE_NODE: 1423 case Node::ENTITY_REFERENCE_NODE:
1425 case Node::PROCESSING_INSTRUCTION_NODE: 1424 case Node::PROCESSING_INSTRUCTION_NODE:
1426 case Node::TEXT_NODE: 1425 case Node::TEXT_NODE:
1427 case Node::XPATH_NAMESPACE_NODE: 1426 case Node::XPATH_NAMESPACE_NODE:
1428 break; 1427 break;
1429 } 1428 }
(...skipping 27 matching lines...) Expand all
1457 // allowed by the type of node? 1456 // allowed by the type of node?
1458 1457
1459 // BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a non-Text node. 1458 // BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a non-Text node.
1460 Node* startNonTextContainer = m_start.container(); 1459 Node* startNonTextContainer = m_start.container();
1461 if (startNonTextContainer->nodeType() == Node::TEXT_NODE) 1460 if (startNonTextContainer->nodeType() == Node::TEXT_NODE)
1462 startNonTextContainer = startNonTextContainer->parentNode(); 1461 startNonTextContainer = startNonTextContainer->parentNode();
1463 Node* endNonTextContainer = m_end.container(); 1462 Node* endNonTextContainer = m_end.container();
1464 if (endNonTextContainer->nodeType() == Node::TEXT_NODE) 1463 if (endNonTextContainer->nodeType() == Node::TEXT_NODE)
1465 endNonTextContainer = endNonTextContainer->parentNode(); 1464 endNonTextContainer = endNonTextContainer->parentNode();
1466 if (startNonTextContainer != endNonTextContainer) { 1465 if (startNonTextContainer != endNonTextContainer) {
1467 ec = RangeException::BAD_BOUNDARYPOINTS_ERR; 1466 ec = INVALID_STATE_ERR;
1468 return; 1467 return;
1469 } 1468 }
1470 1469
1471 ec = 0; 1470 ec = 0;
1472 while (Node* n = newParent->firstChild()) { 1471 while (Node* n = newParent->firstChild()) {
1473 toContainerNode(newParent.get())->removeChild(n, ec); 1472 toContainerNode(newParent.get())->removeChild(n, ec);
1474 if (ec) 1473 if (ec)
1475 return; 1474 return;
1476 } 1475 }
1477 RefPtr<DocumentFragment> fragment = extractContents(ec); 1476 RefPtr<DocumentFragment> fragment = extractContents(ec);
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1967 1966
1968 void showTree(const WebCore::Range* range) 1967 void showTree(const WebCore::Range* range)
1969 { 1968 {
1970 if (range && range->boundaryPointsValid()) { 1969 if (range && range->boundaryPointsValid()) {
1971 range->startContainer()->showTreeAndMark(range->startContainer(), "S", r ange->endContainer(), "E"); 1970 range->startContainer()->showTreeAndMark(range->startContainer(), "S", r ange->endContainer(), "E");
1972 fprintf(stderr, "start offset: %d, end offset: %d\n", range->startOffset (), range->endOffset()); 1971 fprintf(stderr, "start offset: %d, end offset: %d\n", range->startOffset (), range->endOffset());
1973 } 1972 }
1974 } 1973 }
1975 1974
1976 #endif 1975 #endif
OLDNEW
« no previous file with comments | « Source/core/dom/DOMExceptions.in ('k') | Source/core/dom/RangeException.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698