A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ./html/HTMLTextFormControlElement.cpp:278 | range->setEnd(indexPosition.containerNode(), indexPosition.offsetInContainerNode(), ec); | OK: We want to permit Position in Range to have ShadowRoot. | |||||||||||||||||
2 | ./html/HTMLTextFormControlElement.cpp:574 | || position.containerNode() || !position.anchorNode()->shadowAncestorNode()); | OK: just checking | |||||||||||||||||
3 | ./html/HTMLTextFormControlElement.cpp:575 | Node* container = position.containerNode(); | NG: Might be dangerous if It's in nested shadow root. | |||||||||||||||||
4 | ./dom/Position.h:98 | Node* containerNode() const; // NULL for a before/after position anchored to a node with no parent | OK: just a definition | |||||||||||||||||
5 | ./dom/Position.h:133 | Node* container = containerNode(); | OK: container->rootEditableElement() is used after this line. It is safe (by reading Node::rootEdeitableElement) | |||||||||||||||||
6 | ./dom/Position.cpp:132: | Node* Position::containerNode() const | OK: just a definition | |||||||||||||||||
7 | ./dom/Position.cpp:211 | && containerNode()) { | OK: just checking | |||||||||||||||||
8 | ./dom/Position.cpp:215 | return Position(containerNode(), computeOffsetInContainerNode(), PositionIsOffsetInAnchor); | OK: permit. | |||||||||||||||||
9 | ./dom/Position.cpp:270: | // FIXME: This method is confusing (does it return anchorNode() or containerNode()?) and should be renamed or removed | OK: just a comment | |||||||||||||||||
10 | ./dom/Range.cpp:104 | return adoptRef(new Range(ownerDocument, start.containerNode(), start.computeOffsetInContainerNode(), end.containerNode(), end.computeOffsetInContainerNode())); | OK: This is what we want to permit, so it should be OK. | |||||||||||||||||
11 | ./dom/Range.cpp:282 | setStart(parentAnchored.containerNode(), parentAnchored.offsetInContainerNode(), ec); | OK: ditto | |||||||||||||||||
12 | ./dom/Range.cpp:288 | setEnd(parentAnchored.containerNode(), parentAnchored.offsetInContainerNode(), ec); | OK: ditto | |||||||||||||||||
13 | ./dom/Range.cpp:1975 | setStart(start.deepEquivalent().containerNode(), start.deepEquivalent().computeOffsetInContainerNode(), ec); | OK: ditto | |||||||||||||||||
14 | ./dom/Range.cpp:1976 | setEnd(end.deepEquivalent().containerNode(), end.deepEquivalent().computeOffsetInContainerNode(), ec); | OK: ditto | |||||||||||||||||
15 | ./page/DOMSelection.cpp:100 | return anchorPosition(visibleSelection()).containerNode(); | OK: Another bug will be fixed in http://wkb.ug/82698 | |||||||||||||||||
16 | ./page/DOMSelection.cpp:118 | return focusPosition(visibleSelection()).containerNode(); | OK: ditto | |||||||||||||||||
17 | ./page/DOMSelection.cpp:136 | return basePosition(visibleSelection()).containerNode(); | OK: ditto | |||||||||||||||||
18 | ./page/DOMSelection.cpp:154 | return extentPosition(visibleSelection()).containerNode(); | OK: ditto | |||||||||||||||||
19 | ./editing/IndentOutdentCommand.cpp:97 | else if (enclosingList(start.containerNode())) | NG: editingIgnoresContent ... We should check this | enclosingList might be NG. | ||||||||||||||||
20 | ./editing/IndentOutdentCommand.cpp:98 | nodeToSplitTo = enclosingBlock(start.containerNode()); | NG: ditto | enclosingBlock might be NG. | ||||||||||||||||
21 | ./editing/IndentOutdentCommand.cpp:106 | RefPtr<Node> outerBlock = (start.containerNode() == nodeToSplitTo) ? start.containerNode() : splitTreeToNode(start.containerNode(), nodeToSplitTo); | OK: checking | |||||||||||||||||
22 | ./editing/IndentOutdentCommand.cpp:113 | if (outerBlock == start.containerNode()) | OK: checking | |||||||||||||||||
23 | ./editing/TextIterator.cpp:2455 | textRunRange->setEnd(runEnd.containerNode(), runEnd.computeOffsetInContainerNode(), ec); | OK: permit. | |||||||||||||||||
24 | ./editing/FrameSelection.cpp:1419 | if (r->node() == m_selection.start().containerNode()) | OK: checking | |||||||||||||||||
25 | ./editing/FrameSelection.cpp:1421 | else if (r->node() == m_selection.end().containerNode()) | OK: ditto | |||||||||||||||||
26 | ./editing/FrameSelection.cpp:1987 | Node* selectStartTarget = m_selection.extent().containerNode(); | OK: ditto | |||||||||||||||||
27 | ./editing/TextCheckingHelper.cpp:170 | range->setEnd(position.containerNode(), position.computeOffsetInContainerNode(), ec); | OK: permit. | |||||||||||||||||
28 | ./editing/MoveSelectionCommand.cpp:51 | && selectionEnd.containerNode() == pos.containerNode() && selectionEnd.offsetInContainerNode() < pos.offsetInContainerNode()) { | OK: checking | |||||||||||||||||
29 | ./editing/MoveSelectionCommand.cpp:55 | if (selectionStart.anchorType() == Position::PositionIsOffsetInAnchor && selectionStart.containerNode() == pos.containerNode()) | OK: checking | |||||||||||||||||
30 | ./editing/ApplyBlockElementCommand.cpp:159 | Node* textNode = position.containerNode(); | OK: checking textNode or not. | |||||||||||||||||
31 | ./editing/ApplyBlockElementCommand.cpp:175 | || !position.containerNode() | OK: just checking | |||||||||||||||||
32 | ./editing/ApplyBlockElementCommand.cpp:176 | || !position.containerNode()->isTextNode() | ditto | |||||||||||||||||
33 | ./editing/ApplyBlockElementCommand.cpp:177 | || !position.containerNode()->renderer()) | ditto | |||||||||||||||||
34 | ./editing/ApplyBlockElementCommand.cpp:179 | return position.containerNode()->renderer()->style(); | OK: containerNode() might be ShadowRoot, but the existence of renderer() is checked just before this statement. | |||||||||||||||||
35 | ./editing/ApplyBlockElementCommand.cpp:189 | isStartAndEndOnSameNode = renderStyleOfEnclosingTextNode(end) && start.containerNode() == end.containerNode(); | OK: just checking | |||||||||||||||||
36 | ./editing/ApplyBlockElementCommand.cpp:190 | bool isStartAndEndOfLastParagraphOnSameNode = renderStyleOfEnclosingTextNode(m_endOfLastParagraph) && start.containerNode() == m_endOfLastParagraph.containerNode(); | OK: ditto | |||||||||||||||||
37 | ./editing/ApplyBlockElementCommand.cpp:216 | if (endStyle->preserveNewline() && start == end && end.offsetInContainerNode() < end.containerNode()->maxCharacterOffset()) { | OK: ditto | |||||||||||||||||
38 | ./editing/ApplyBlockElementCommand.cpp:225 | if (!endStyle->collapseWhiteSpace() && end.offsetInContainerNode() && end.offsetInContainerNode() < end.containerNode()->maxCharacterOffset()) { | NG: end.containerNode() may be a shadow root. maxCharacterOffset is not defined for ShadowRoot. | |||||||||||||||||
39 | ./editing/ApplyBlockElementCommand.cpp:258 | if (text == start.containerNode() && text->previousSibling() && text->previousSibling()->isTextNode()) { | OK: just checking | |||||||||||||||||
40 | ./editing/ApplyBlockElementCommand.cpp:262 | if (text == end.containerNode() && text->previousSibling() && text->previousSibling()->isTextNode()) { | OK: ditto | |||||||||||||||||
41 | ./editing/ApplyBlockElementCommand.cpp:266 | if (text == m_endOfLastParagraph.containerNode()) { | OK: ditto | |||||||||||||||||
42 | ./editing/InsertParagraphSeparatorCommand.cpp:166 | Node* startBlockNode = enclosingBlock(insertionPosition.parentAnchoredEquivalent().containerNode()); | NG: | enclosingList might be NG. | ||||||||||||||||
43 | ./editing/InsertParagraphSeparatorCommand.cpp:359 | if (insertionPosition.containerNode() == startBlock) | OK: checking | |||||||||||||||||
44 | ./editing/InsertParagraphSeparatorCommand.cpp:362 | Node* splitTo = insertionPosition.containerNode(); | NG: maybe adding layout test will be better. | |||||||||||||||||
45 | ./editing/visible_units.cpp:788 | if (!editableRoot->contains(visPos.deepEquivalent().containerNode())) | OK: checking | |||||||||||||||||
46 | ./editing/visible_units.cpp:884 | if (!editableRoot->contains(visPos.deepEquivalent().containerNode())) | OK: checking | |||||||||||||||||
47 | ./editing/visible_units.cpp:1352 | if (!position.containerNode() || !(startBlock = enclosingBlock(position.containerNode(), rule))) | NG: | enclosingBlock might be NG | ||||||||||||||||
48 | ./editing/visible_units.cpp:1361 | if (!position.containerNode() || !(endBlock = enclosingBlock(position.containerNode(), rule))) | NG: | enclosingBlock might be NG | ||||||||||||||||
49 | ./editing/visible_units.cpp:1368 | return !a.isNull() && enclosingBlock(a.deepEquivalent().containerNode()) == enclosingBlock(b.deepEquivalent().containerNode()); | NG: | enclosingBlock might be NG | ||||||||||||||||
50 | ./editing/EditingStyle.cpp:892 | || cssValueToRGBA(m_mutableStyle->getPropertyCSSValue(CSSPropertyBackgroundColor).get()) == rgbaBackgroundColorInEffect(position.containerNode())) | OK: rgbaBackgroiundColorInEffect is safe. | rgbaBackgroiundColorInEffect | ||||||||||||||||
51 | ./editing/EditingStyle.cpp:1163 | Node* positionNode = position.containerNode(); | OK: safe | |||||||||||||||||
52 | ./editing/AlternativeTextController.cpp:242 | correctionStartOffsetInParagraphAsRange->setEnd(startPositionOfrangeWithAlternative.containerNode(), startPositionOfrangeWithAlternative.computeOffsetInContainerNode(), ec); | OK: permit. | |||||||||||||||||
53 | ./editing/AlternativeTextController.cpp:428 | Node* node = position.containerNode(); | OK: safe | |||||||||||||||||
54 | ./editing/CompositeEditCommand.cpp:480 | if (start.containerNode() != end.containerNode() || !start.containerNode()->isTextNode() || isTabSpanTextNode(start.containerNode())) | OK: checking | |||||||||||||||||
55 | ./editing/CompositeEditCommand.cpp:527 | Node* tabSpan = tabSpanNode(pos.containerNode()); | OK: safe | |||||||||||||||||
56 | ./editing/CompositeEditCommand.cpp:529 | if (pos.offsetInContainerNode() <= caretMinOffset(pos.containerNode())) | OK: safe | caretMinOffset is OK. | ||||||||||||||||
57 | ./editing/CompositeEditCommand.cpp:532 | if (pos.offsetInContainerNode() >= caretMaxOffset(pos.containerNode())) | OK: safe | |||||||||||||||||
58 | ./editing/CompositeEditCommand.cpp:535 | splitTextNodeContainingElement(toText(pos.containerNode()), pos.offsetInContainerNode()); | NG: I'm not sure. | |||||||||||||||||
59 | ./editing/CompositeEditCommand.cpp:589 | Node* node = position.containerNode(); | OK: node is checked if it's a Text node. | |||||||||||||||||
60 | ./editing/CompositeEditCommand.cpp:607 | Node* node = position.containerNode(); | OK: ditto | |||||||||||||||||
61 | ./editing/TypingCommand.cpp:469 | if (isEmptyTableCell(visibleStart.deepEquivalent().containerNode())) | OK: node is checked. | |||||||||||||||||
62 | ./editing/TypingCommand.cpp:488 | if (granularity == CharacterGranularity && selectionToDelete.end().containerNode() == selectionToDelete.start().containerNode() | OK: just checking | |||||||||||||||||
63 | ./editing/TypingCommand.cpp:560 | if (downstreamEnd.containerNode() && downstreamEnd.containerNode()->renderer() && downstreamEnd.containerNode()->renderer()->isTable() | OK: just checking | |||||||||||||||||
64 | ./editing/TypingCommand.cpp:561 | && downstreamEnd.computeOffsetInContainerNode() <= caretMinOffset(downstreamEnd.containerNode())) { | OK: caretMinOffset(Node* node) --> checks node->renderer() --> return 0; | caretMinOffset is OK | ||||||||||||||||
65 | ./editing/TypingCommand.cpp:562 | setEndingSelection(VisibleSelection(endingSelection().end(), positionAfterNode(downstreamEnd.containerNode()), DOWNSTREAM, endingSelection().isDirectional())); | OK: permit | |||||||||||||||||
66 | ./editing/TypingCommand.cpp:579 | if (extent.containerNode() != selectionToDelete.end().containerNode()) | OK: checking | |||||||||||||||||
67 | ./editing/TypingCommand.cpp:583 | if (selectionToDelete.start().containerNode() == selectionToDelete.end().containerNode()) | OK: checking | |||||||||||||||||
68 | ./editing/TypingCommand.cpp:587 | extent = Position(extent.containerNode(), extent.computeOffsetInContainerNode() + extraCharacters, Position::PositionIsOffsetInAnchor); | OK: my patch should permet this. | |||||||||||||||||
69 | ./editing/DeleteSelectionCommand.cpp:389 | if (position.anchorType() != Position::PositionIsOffsetInAnchor || position.containerNode() != node) | OK: checking | |||||||||||||||||
70 | ./editing/DeleteSelectionCommand.cpp:589 | if (!mergeDestination.deepEquivalent().deprecatedNode() || !mergeDestination.deepEquivalent().deprecatedNode()->isDescendantOf(enclosingBlock(m_upstreamStart.containerNode())) || m_startsAtEmptyLine) { | OK: enclosingBlock(shadowRoot) will return 0 as expected. | enclosingBlock | ||||||||||||||||
71 | ./editing/DeleteSelectionCommand.cpp:737 | Node* node = m_endingPosition.containerNode(); | NG: isRemovableBlock will be true for ShadowRoot. | |||||||||||||||||
72 | ./editing/VisibleSelection.cpp:184 | if (!s.containerNode() || !e.containerNode()) | OK: checking | |||||||||||||||||
73 | ./editing/VisibleSelection.cpp:219 | searchRange->setStart(start.containerNode(), start.offsetInContainerNode(), ec); | OK: permit | |||||||||||||||||
74 | ./editing/VisibleSelection.cpp:488 | Node* baseEditableAncestor = lowestEditableAncestor(m_base.containerNode()); | OK: safe | |||||||||||||||||
75 | ./editing/VisibleSelection.cpp:523 | Node* endEditableAncestor = lowestEditableAncestor(m_end.containerNode()); | OK: safe | |||||||||||||||||
76 | ./editing/VisibleSelection.cpp:530 | while (p.isNotNull() && !(lowestEditableAncestor(p.containerNode()) == baseEditableAncestor && !isEditablePosition(p))) { | OK: safe | |||||||||||||||||
77 | ./editing/VisibleSelection.cpp:533 | p = isAtomicNode(p.containerNode()) ? positionInParentBeforeNode(p.containerNode()) : previousVisuallyDistinctCandidate(p); | OK: safe | |||||||||||||||||
78 | ./editing/VisibleSelection.cpp:553 | Node* startEditableAncestor = lowestEditableAncestor(m_start.containerNode()); | OK: safe | |||||||||||||||||
79 | ./editing/VisibleSelection.cpp:559 | while (p.isNotNull() && !(lowestEditableAncestor(p.containerNode()) == baseEditableAncestor && !isEditablePosition(p))) { | OK: safe | |||||||||||||||||
80 | ./editing/VisibleSelection.cpp:562 | p = isAtomicNode(p.containerNode()) ? positionInParentAfterNode(p.containerNode()) : nextVisuallyDistinctCandidate(p); | OK: safe | |||||||||||||||||
81 | ./editing/VisibleSelection.cpp:582 | if (baseEditableAncestor != lowestEditableAncestor(m_extent.containerNode())) | OK: safe | |||||||||||||||||
82 | ./editing/TextInsertionBaseCommand.cpp:62 | if (Node* startNode = selectionForInsertion.start().containerNode()) { | OK: safe | |||||||||||||||||
83 | ./editing/htmlediting.cpp:184 | Node* node = p.containerNode(); | OK: safe | |||||||||||||||||
84 | ./editing/htmlediting.cpp:320 | Node* enclosingBlockNode = enclosingBlock(position.containerNode()); | OK: safe | |||||||||||||||||
85 | ./editing/htmlediting.cpp:416 | Node* rootEditableElement = pos.containerNode()->rootEditableElement(); | OK: safe | |||||||||||||||||
86 | ./editing/htmlediting.cpp:431 | Node* rootEditableElement = pos.containerNode()->rootEditableElement(); | OK: safe | |||||||||||||||||
87 | ./editing/htmlediting.cpp:536 | selectedRange->setStart(start.deepEquivalent().containerNode(), start.deepEquivalent().computeOffsetInContainerNode(), ec); | OK: permit | |||||||||||||||||
88 | ./editing/htmlediting.cpp:538 | selectedRange->setEnd(end.deepEquivalent().containerNode(), end.deepEquivalent().computeOffsetInContainerNode(), ec); | OK: permit | |||||||||||||||||
89 | ./editing/htmlediting.cpp:624 | for (Node* n = p.containerNode(); n && n != stayWithin; n = n->parentNode()) { | OK: safe | |||||||||||||||||
90 | ./editing/htmlediting.cpp:908 | Node* node = pos.containerNode(); | OK: safe | |||||||||||||||||
91 | ./editing/htmlediting.cpp:978 | if (position.containerNode() == node) | OK: checking | |||||||||||||||||
92 | ./editing/htmlediting.cpp:982 | if (position.containerNode() == node) | OK: checking | |||||||||||||||||
93 | ./editing/htmlediting.cpp:986 | if (position.containerNode() == node->parentNode() && static_cast<unsigned>(position.offsetInContainerNode()) > node->nodeIndex()) | OK: checking | |||||||||||||||||
94 | ./editing/htmlediting.cpp:988 | else if (node->contains(position.containerNode()) || node->contains(position.containerNode()->shadowAncestorNode())) | NG: seems wrong? | |||||||||||||||||
95 | ./editing/InsertTextCommand.cpp:69 | if (!pos.containerNode()->isTextNode()) { | OK: checking | |||||||||||||||||
96 | ./editing/InsertTextCommand.cpp:150 | Position positionBeforeStartNode(positionInParentBeforeNode(startPosition.containerNode())); | OK: permit | |||||||||||||||||
97 | ./editing/InsertTextCommand.cpp:170 | ASSERT(startPosition.containerNode()); | OK: checking | |||||||||||||||||
98 | ./editing/InsertTextCommand.cpp:171 | ASSERT(startPosition.containerNode()->isTextNode()); | OK: checking | |||||||||||||||||
99 | ./editing/InsertTextCommand.cpp:218 | Node* node = insertPos.containerNode(); | OK: safe | |||||||||||||||||
100 | ./editing/gtk/FrameSelectionGtk.cpp:88 | RenderObject* focusedNode = m_selection.end().containerNode()->renderer(); | OK: safe |