| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights |
| 7 * reserved. | 7 * reserved. |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
| 10 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 | 391 |
| 392 const HeapVector<Member<DocumentMarker>>& results = | 392 const HeapVector<Member<DocumentMarker>>& results = |
| 393 list->MarkersIntersectingRange(offset, offset); | 393 list->MarkersIntersectingRange(offset, offset); |
| 394 if (!results.IsEmpty()) | 394 if (!results.IsEmpty()) |
| 395 return results.front(); | 395 return results.front(); |
| 396 } | 396 } |
| 397 | 397 |
| 398 return nullptr; | 398 return nullptr; |
| 399 } | 399 } |
| 400 | 400 |
| 401 HeapVector<std::pair<Member<Node>, Member<DocumentMarker>>> |
| 402 DocumentMarkerController::MarkersIntersectingRange( |
| 403 const EphemeralRangeInFlatTree& range, |
| 404 DocumentMarker::MarkerTypes types) { |
| 405 HeapVector<std::pair<Member<Node>, Member<DocumentMarker>>> node_marker_pairs; |
| 406 if (!PossiblyHasMarkers(types)) |
| 407 return node_marker_pairs; |
| 408 |
| 409 Node* const range_start_container = |
| 410 range.StartPosition().ComputeContainerNode(); |
| 411 const unsigned range_start_offset = |
| 412 range.StartPosition().ComputeOffsetInContainerNode(); |
| 413 Node* const range_end_container = range.EndPosition().ComputeContainerNode(); |
| 414 const unsigned range_end_offset = |
| 415 range.EndPosition().ComputeOffsetInContainerNode(); |
| 416 |
| 417 for (Node& node : range.Nodes()) { |
| 418 MarkerLists* const markers = markers_.at(&node); |
| 419 if (!markers) |
| 420 continue; |
| 421 |
| 422 for (DocumentMarker::MarkerType type : types) { |
| 423 const DocumentMarkerList* const list = ListForType(markers, type); |
| 424 if (!list) |
| 425 continue; |
| 426 |
| 427 const unsigned start_offset = |
| 428 node == range_start_container ? range_start_offset : 0; |
| 429 const unsigned end_offset = node == range_end_container |
| 430 ? range_end_offset |
| 431 : node.MaxCharacterOffset(); |
| 432 |
| 433 const DocumentMarkerVector& markers_from_this_list = |
| 434 list->MarkersIntersectingRange(start_offset, end_offset); |
| 435 for (DocumentMarker* marker : markers_from_this_list) |
| 436 node_marker_pairs.push_back(std::make_pair(&node, marker)); |
| 437 } |
| 438 } |
| 439 |
| 440 return node_marker_pairs; |
| 441 } |
| 442 |
| 401 DocumentMarkerVector DocumentMarkerController::MarkersFor( | 443 DocumentMarkerVector DocumentMarkerController::MarkersFor( |
| 402 Node* node, | 444 Node* node, |
| 403 DocumentMarker::MarkerTypes marker_types) { | 445 DocumentMarker::MarkerTypes marker_types) { |
| 404 DocumentMarkerVector result; | 446 DocumentMarkerVector result; |
| 405 | 447 |
| 406 MarkerLists* markers = markers_.at(node); | 448 MarkerLists* markers = markers_.at(node); |
| 407 if (!markers) | 449 if (!markers) |
| 408 return result; | 450 return result; |
| 409 | 451 |
| 410 for (DocumentMarker::MarkerType type : DocumentMarker::AllMarkers()) { | 452 for (DocumentMarker::MarkerType type : DocumentMarker::AllMarkers()) { |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 752 } | 794 } |
| 753 | 795 |
| 754 } // namespace blink | 796 } // namespace blink |
| 755 | 797 |
| 756 #ifndef NDEBUG | 798 #ifndef NDEBUG |
| 757 void showDocumentMarkers(const blink::DocumentMarkerController* controller) { | 799 void showDocumentMarkers(const blink::DocumentMarkerController* controller) { |
| 758 if (controller) | 800 if (controller) |
| 759 controller->ShowMarkers(); | 801 controller->ShowMarkers(); |
| 760 } | 802 } |
| 761 #endif | 803 #endif |
| OLD | NEW |