OLD | NEW |
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 | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
7 * rights reserved. | 7 * rights reserved. |
8 * Copyright (C) 2011 Motorola Mobility. All rights reserved. | 8 * Copyright (C) 2011 Motorola Mobility. All rights reserved. |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 1343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1354 "The node provided is of type '" + newParent->nodeName() + "'."); | 1354 "The node provided is of type '" + newParent->nodeName() + "'."); |
1355 return; | 1355 return; |
1356 case Node::kCdataSectionNode: | 1356 case Node::kCdataSectionNode: |
1357 case Node::kCommentNode: | 1357 case Node::kCommentNode: |
1358 case Node::kElementNode: | 1358 case Node::kElementNode: |
1359 case Node::kProcessingInstructionNode: | 1359 case Node::kProcessingInstructionNode: |
1360 case Node::kTextNode: | 1360 case Node::kTextNode: |
1361 break; | 1361 break; |
1362 } | 1362 } |
1363 | 1363 |
1364 // Raise a HierarchyRequestError if m_start.container() doesn't accept | |
1365 // children like newParent. | |
1366 Node* parentOfNewParent = m_start.container(); | |
1367 | |
1368 // If m_start.container() is a character data node, it will be split and it | |
1369 // will be its parent that will need to accept newParent (or in the case of a | |
1370 // comment, it logically "would" be inserted into the parent, although this | |
1371 // will fail below for another reason). | |
1372 if (parentOfNewParent->isCharacterDataNode()) | |
1373 parentOfNewParent = parentOfNewParent->parentNode(); | |
1374 | |
1375 if (!parentOfNewParent) { | |
1376 exceptionState.throwDOMException(HierarchyRequestError, | |
1377 "The container node is a detached " | |
1378 "character data node; no parent node is " | |
1379 "available for insertion."); | |
1380 return; | |
1381 } | |
1382 | |
1383 EventQueueScope scope; | 1364 EventQueueScope scope; |
1384 | 1365 |
1385 // 3. Let fragment be the result of extracting context object. | 1366 // 3. Let fragment be the result of extracting context object. |
1386 DocumentFragment* fragment = extractContents(exceptionState); | 1367 DocumentFragment* fragment = extractContents(exceptionState); |
1387 if (exceptionState.hadException()) | 1368 if (exceptionState.hadException()) |
1388 return; | 1369 return; |
1389 | 1370 |
1390 // 4. If newParent has children, replace all with null within newParent. | 1371 // 4. If newParent has children, replace all with null within newParent. |
1391 while (Node* n = newParent->firstChild()) { | 1372 while (Node* n = newParent->firstChild()) { |
1392 toContainerNode(newParent)->removeChild(n, exceptionState); | 1373 toContainerNode(newParent)->removeChild(n, exceptionState); |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1820 .data() | 1801 .data() |
1821 << "start offset: " << range->startOffset() | 1802 << "start offset: " << range->startOffset() |
1822 << ", end offset: " << range->endOffset(); | 1803 << ", end offset: " << range->endOffset(); |
1823 } else { | 1804 } else { |
1824 LOG(INFO) << "Cannot show tree if range is null, or if boundary points are " | 1805 LOG(INFO) << "Cannot show tree if range is null, or if boundary points are " |
1825 "invalid."; | 1806 "invalid."; |
1826 } | 1807 } |
1827 } | 1808 } |
1828 | 1809 |
1829 #endif | 1810 #endif |
OLD | NEW |