| OLD | NEW |
| 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 944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 955 } | 955 } |
| 956 | 956 |
| 957 WTF::Optional<DocumentMarker::MarkerType> type = markerTypeFrom(markerType); | 957 WTF::Optional<DocumentMarker::MarkerType> type = markerTypeFrom(markerType); |
| 958 if (!type) { | 958 if (!type) { |
| 959 exceptionState.throwDOMException( | 959 exceptionState.throwDOMException( |
| 960 SyntaxError, | 960 SyntaxError, |
| 961 "The marker type provided ('" + markerType + "') is invalid."); | 961 "The marker type provided ('" + markerType + "') is invalid."); |
| 962 return; | 962 return; |
| 963 } | 963 } |
| 964 | 964 |
| 965 // Grammar and Spelling markers are the only marker types that can be set with |
| 966 // just a range |
| 967 if (type != DocumentMarker::Grammar && type != DocumentMarker::Spelling) { |
| 968 exceptionState.throwDOMException( |
| 969 SyntaxError, |
| 970 "Marker of type '" + markerType + |
| 971 "' was provided; type must be either Grammar or Spelling."); |
| 972 return; |
| 973 } |
| 974 |
| 965 document->updateStyleAndLayoutIgnorePendingStylesheets(); | 975 document->updateStyleAndLayoutIgnorePendingStylesheets(); |
| 966 document->markers().addMarker(range->startPosition(), range->endPosition(), | 976 |
| 967 type.value()); | 977 if (type == DocumentMarker::Grammar) { |
| 978 document->markers().addGrammarMarker(range->startPosition(), |
| 979 range->endPosition()); |
| 980 } else { |
| 981 document->markers().addSpellingMarker(range->startPosition(), |
| 982 range->endPosition()); |
| 983 } |
| 968 } | 984 } |
| 969 | 985 |
| 970 unsigned Internals::markerCountForNode(Node* node, | 986 unsigned Internals::markerCountForNode(Node* node, |
| 971 const String& markerType, | 987 const String& markerType, |
| 972 ExceptionState& exceptionState) { | 988 ExceptionState& exceptionState) { |
| 973 DCHECK(node); | 989 DCHECK(node); |
| 974 WTF::Optional<DocumentMarker::MarkerTypes> markerTypes = | 990 WTF::Optional<DocumentMarker::MarkerTypes> markerTypes = |
| 975 markerTypesFrom(markerType); | 991 markerTypesFrom(markerType); |
| 976 if (!markerTypes) { | 992 if (!markerTypes) { |
| 977 exceptionState.throwDOMException( | 993 exceptionState.throwDOMException( |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 return String(); | 1061 return String(); |
| 1046 return marker->description(); | 1062 return marker->description(); |
| 1047 } | 1063 } |
| 1048 | 1064 |
| 1049 void Internals::addTextMatchMarker(const Range* range, bool isActive) { | 1065 void Internals::addTextMatchMarker(const Range* range, bool isActive) { |
| 1050 DCHECK(range); | 1066 DCHECK(range); |
| 1051 if (!range->ownerDocument().view()) | 1067 if (!range->ownerDocument().view()) |
| 1052 return; | 1068 return; |
| 1053 | 1069 |
| 1054 range->ownerDocument().updateStyleAndLayoutIgnorePendingStylesheets(); | 1070 range->ownerDocument().updateStyleAndLayoutIgnorePendingStylesheets(); |
| 1055 range->ownerDocument().markers().addTextMatchMarker(EphemeralRange(range), | 1071 range->ownerDocument().markers().addTextMatchMarker( |
| 1056 isActive); | 1072 range->startPosition(), range->endPosition(), isActive); |
| 1057 | 1073 |
| 1058 // This simulates what the production code does after | 1074 // This simulates what the production code does after |
| 1059 // DocumentMarkerController::addTextMatchMarker(). | 1075 // DocumentMarkerController::addTextMatchMarker(). |
| 1060 range->ownerDocument().view()->invalidatePaintForTickmarks(); | 1076 range->ownerDocument().view()->invalidatePaintForTickmarks(); |
| 1061 } | 1077 } |
| 1062 | 1078 |
| 1063 static bool parseColor(const String& value, | 1079 static bool parseColor(const String& value, |
| 1064 Color& color, | 1080 Color& color, |
| 1065 ExceptionState& exceptionState, | 1081 ExceptionState& exceptionState, |
| 1066 String errorMessage) { | 1082 String errorMessage) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1089 range->startPosition(), range->endPosition(), underlineColor, thick, | 1105 range->startPosition(), range->endPosition(), underlineColor, thick, |
| 1090 backgroundColor); | 1106 backgroundColor); |
| 1091 } | 1107 } |
| 1092 } | 1108 } |
| 1093 | 1109 |
| 1094 void Internals::setMarkersActive(Node* node, | 1110 void Internals::setMarkersActive(Node* node, |
| 1095 unsigned startOffset, | 1111 unsigned startOffset, |
| 1096 unsigned endOffset, | 1112 unsigned endOffset, |
| 1097 bool active) { | 1113 bool active) { |
| 1098 DCHECK(node); | 1114 DCHECK(node); |
| 1099 node->document().markers().setMarkersActive(node, startOffset, endOffset, | 1115 node->document().markers().setTextMatchMarkersActive(node, startOffset, |
| 1100 active); | 1116 endOffset, active); |
| 1101 } | 1117 } |
| 1102 | 1118 |
| 1103 void Internals::setMarkedTextMatchesAreHighlighted(Document* document, | 1119 void Internals::setMarkedTextMatchesAreHighlighted(Document* document, |
| 1104 bool highlight) { | 1120 bool highlight) { |
| 1105 if (!document || !document->frame()) | 1121 if (!document || !document->frame()) |
| 1106 return; | 1122 return; |
| 1107 | 1123 |
| 1108 document->frame()->editor().setMarkedTextMatchesAreHighlighted(highlight); | 1124 document->frame()->editor().setMarkedTextMatchesAreHighlighted(highlight); |
| 1109 } | 1125 } |
| 1110 | 1126 |
| (...skipping 2115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3226 | 3242 |
| 3227 void Internals::crash() { | 3243 void Internals::crash() { |
| 3228 CHECK(false) << "Intentional crash"; | 3244 CHECK(false) << "Intentional crash"; |
| 3229 } | 3245 } |
| 3230 | 3246 |
| 3231 void Internals::setIsLowEndDevice(bool isLowEndDevice) { | 3247 void Internals::setIsLowEndDevice(bool isLowEndDevice) { |
| 3232 MemoryCoordinator::setIsLowEndDeviceForTesting(isLowEndDevice); | 3248 MemoryCoordinator::setIsLowEndDeviceForTesting(isLowEndDevice); |
| 3233 } | 3249 } |
| 3234 | 3250 |
| 3235 } // namespace blink | 3251 } // namespace blink |
| OLD | NEW |