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

Side by Side Diff: Source/core/testing/Internals.cpp

Issue 289323003: Move markerlists to Oilpan heap and remove finalizer from DocumentMarkerController (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * Copyright (C) 2013 Apple Inc. All rights reserved. 3 * Copyright (C) 2013 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after
799 799
800 unsigned Internals::activeMarkerCountForNode(Node* node, ExceptionState& excepti onState) 800 unsigned Internals::activeMarkerCountForNode(Node* node, ExceptionState& excepti onState)
801 { 801 {
802 if (!node) { 802 if (!node) {
803 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages:: argumentNullOrIncorrectType(1, "Node")); 803 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages:: argumentNullOrIncorrectType(1, "Node"));
804 return 0; 804 return 0;
805 } 805 }
806 806
807 // Only TextMatch markers can be active. 807 // Only TextMatch markers can be active.
808 DocumentMarker::MarkerType markerType = DocumentMarker::TextMatch; 808 DocumentMarker::MarkerType markerType = DocumentMarker::TextMatch;
809 Vector<DocumentMarker*> markers = node->document().markers().markersFor(node , markerType); 809 WillBeHeapVector<DocumentMarker*> markers = node->document().markers().marke rsFor(node, markerType);
810 810
811 unsigned activeMarkerCount = 0; 811 unsigned activeMarkerCount = 0;
812 for (Vector<DocumentMarker*>::iterator iter = markers.begin(); iter != marke rs.end(); ++iter) { 812 for (WillBeHeapVector<DocumentMarker*>::iterator iter = markers.begin(); ite r != markers.end(); ++iter) {
813 if ((*iter)->activeMatch()) 813 if ((*iter)->activeMatch())
814 activeMarkerCount++; 814 activeMarkerCount++;
815 } 815 }
816 816
817 return activeMarkerCount; 817 return activeMarkerCount;
818 } 818 }
819 819
820 DocumentMarker* Internals::markerAt(Node* node, const String& markerType, unsign ed index, ExceptionState& exceptionState) 820 DocumentMarker* Internals::markerAt(Node* node, const String& markerType, unsign ed index, ExceptionState& exceptionState)
821 { 821 {
822 if (!node) { 822 if (!node) {
823 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages:: argumentNullOrIncorrectType(1, "Node")); 823 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages:: argumentNullOrIncorrectType(1, "Node"));
824 return 0; 824 return 0;
825 } 825 }
826 826
827 DocumentMarker::MarkerTypes markerTypes = 0; 827 DocumentMarker::MarkerTypes markerTypes = 0;
828 if (!markerTypesFrom(markerType, markerTypes)) { 828 if (!markerTypesFrom(markerType, markerTypes)) {
829 exceptionState.throwDOMException(SyntaxError, "The marker type provided ('" + markerType + "') is invalid."); 829 exceptionState.throwDOMException(SyntaxError, "The marker type provided ('" + markerType + "') is invalid.");
830 return 0; 830 return 0;
831 } 831 }
832 832
833 Vector<DocumentMarker*> markers = node->document().markers().markersFor(node , markerTypes); 833 WillBeHeapVector<DocumentMarker*> markers = node->document().markers().marke rsFor(node, markerTypes);
834 if (markers.size() <= index) 834 if (markers.size() <= index)
835 return 0; 835 return 0;
836 return markers[index]; 836 return markers[index];
837 } 837 }
838 838
839 PassRefPtrWillBeRawPtr<Range> Internals::markerRangeForNode(Node* node, const St ring& markerType, unsigned index, ExceptionState& exceptionState) 839 PassRefPtrWillBeRawPtr<Range> Internals::markerRangeForNode(Node* node, const St ring& markerType, unsigned index, ExceptionState& exceptionState)
840 { 840 {
841 DocumentMarker* marker = markerAt(node, markerType, index, exceptionState); 841 DocumentMarker* marker = markerAt(node, markerType, index, exceptionState);
842 if (!marker) 842 if (!marker)
843 return nullptr; 843 return nullptr;
(...skipping 1508 matching lines...) Expand 10 before | Expand all | Expand 10 after
2352 String Internals::textSurroundingNode(Node* node, int x, int y, unsigned long ma xLength) 2352 String Internals::textSurroundingNode(Node* node, int x, int y, unsigned long ma xLength)
2353 { 2353 {
2354 if (!node) 2354 if (!node)
2355 return String(); 2355 return String();
2356 blink::WebPoint point(x, y); 2356 blink::WebPoint point(x, y);
2357 SurroundingText surroundingText(VisiblePosition(node->renderer()->positionFo rPoint(static_cast<IntPoint>(point))), maxLength); 2357 SurroundingText surroundingText(VisiblePosition(node->renderer()->positionFo rPoint(static_cast<IntPoint>(point))), maxLength);
2358 return surroundingText.content(); 2358 return surroundingText.content();
2359 } 2359 }
2360 2360
2361 } 2361 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698