OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
975 frame()->inputMethodController().cancelComposition(); | 975 frame()->inputMethodController().cancelComposition(); |
976 } | 976 } |
977 | 977 |
978 bool WebLocalFrameImpl::hasMarkedText() const | 978 bool WebLocalFrameImpl::hasMarkedText() const |
979 { | 979 { |
980 return frame()->inputMethodController().hasComposition(); | 980 return frame()->inputMethodController().hasComposition(); |
981 } | 981 } |
982 | 982 |
983 WebRange WebLocalFrameImpl::markedRange() const | 983 WebRange WebLocalFrameImpl::markedRange() const |
984 { | 984 { |
985 return frame()->inputMethodController().compositionRange(); | 985 return frame()->inputMethodController().compositionEphemeralRange(); |
986 } | 986 } |
987 | 987 |
988 bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned l
ength, WebRect& rectInViewport) const | 988 bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned l
ength, WebRect& rectInViewport) const |
989 { | 989 { |
990 if ((location + length < location) && (location + length)) | 990 if ((location + length < location) && (location + length)) |
991 length = 0; | 991 length = 0; |
992 | 992 |
993 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen
t(); | 993 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen
t(); |
994 if (!editable) | 994 if (!editable) |
995 return false; | 995 return false; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 WebPluginContainerImpl* pluginContainer = pluginContainerFromFrame(frame()); | 1102 WebPluginContainerImpl* pluginContainer = pluginContainerFromFrame(frame()); |
1103 if (pluginContainer) | 1103 if (pluginContainer) |
1104 return pluginContainer->plugin()->hasSelection(); | 1104 return pluginContainer->plugin()->hasSelection(); |
1105 | 1105 |
1106 // frame()->selection()->isNone() never returns true. | 1106 // frame()->selection()->isNone() never returns true. |
1107 return frame()->selection().start() != frame()->selection().end(); | 1107 return frame()->selection().start() != frame()->selection().end(); |
1108 } | 1108 } |
1109 | 1109 |
1110 WebRange WebLocalFrameImpl::selectionRange() const | 1110 WebRange WebLocalFrameImpl::selectionRange() const |
1111 { | 1111 { |
1112 return createRange(frame()->selection().selection().toNormalizedEphemeralRan
ge()); | 1112 return frame()->selection().selection().toNormalizedEphemeralRange(); |
1113 } | 1113 } |
1114 | 1114 |
1115 WebString WebLocalFrameImpl::selectionAsText() const | 1115 WebString WebLocalFrameImpl::selectionAsText() const |
1116 { | 1116 { |
1117 WebPluginContainerImpl* pluginContainer = pluginContainerFromFrame(frame()); | 1117 WebPluginContainerImpl* pluginContainer = pluginContainerFromFrame(frame()); |
1118 if (pluginContainer) | 1118 if (pluginContainer) |
1119 return pluginContainer->plugin()->selectionAsText(); | 1119 return pluginContainer->plugin()->selectionAsText(); |
1120 | 1120 |
1121 String text = frame()->selection().selectedText(TextIteratorEmitsObjectRepla
cementCharacter); | 1121 String text = frame()->selection().selectedText(TextIteratorEmitsObjectRepla
cementCharacter); |
1122 #if OS(WIN) | 1122 #if OS(WIN) |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1158 void WebLocalFrameImpl::selectRange(const WebRange& webRange) | 1158 void WebLocalFrameImpl::selectRange(const WebRange& webRange) |
1159 { | 1159 { |
1160 TRACE_EVENT0("blink", "WebLocalFrameImpl::selectRange"); | 1160 TRACE_EVENT0("blink", "WebLocalFrameImpl::selectRange"); |
1161 | 1161 |
1162 // TODO(dglazkov): The use of updateStyleAndLayoutIgnorePendingStylesheets n
eeds to be audited. | 1162 // TODO(dglazkov): The use of updateStyleAndLayoutIgnorePendingStylesheets n
eeds to be audited. |
1163 // see http://crbug.com/590369 for more details. | 1163 // see http://crbug.com/590369 for more details. |
1164 frame()->document()->updateStyleAndLayoutIgnorePendingStylesheets(); | 1164 frame()->document()->updateStyleAndLayoutIgnorePendingStylesheets(); |
1165 | 1165 |
1166 DocumentLifecycle::DisallowTransitionScope(frame()->document()->lifecycle())
; | 1166 DocumentLifecycle::DisallowTransitionScope(frame()->document()->lifecycle())
; |
1167 | 1167 |
1168 // TODO(dglazkov): Use EphemeralRange here. | 1168 frame()->selection().setSelectedRange(webRange.createEphemeralRange(frame())
, VP_DEFAULT_AFFINITY, SelectionDirectionalMode::NonDirectional, NotUserTriggere
d); |
1169 // See http://crbug.com/636216 for more details. | |
1170 if (Range* range = webRange.createRange(frame())) | |
1171 frame()->selection().setSelectedRange(range, VP_DEFAULT_AFFINITY, Select
ionDirectionalMode::NonDirectional, NotUserTriggered); | |
1172 } | 1169 } |
1173 | 1170 |
1174 WebString WebLocalFrameImpl::rangeAsText(const WebRange& webRange) | 1171 WebString WebLocalFrameImpl::rangeAsText(const WebRange& webRange) |
1175 { | 1172 { |
1176 // TODO(dglazkov): The use of updateStyleAndLayoutIgnorePendingStylesheets n
eeds to be audited. | 1173 // TODO(dglazkov): The use of updateStyleAndLayoutIgnorePendingStylesheets n
eeds to be audited. |
1177 // see http://crbug.com/590369 for more details. | 1174 // see http://crbug.com/590369 for more details. |
1178 frame()->document()->updateStyleAndLayoutIgnorePendingStylesheets(); | 1175 frame()->document()->updateStyleAndLayoutIgnorePendingStylesheets(); |
1179 | 1176 |
1180 DocumentLifecycle::DisallowTransitionScope(frame()->document()->lifecycle())
; | 1177 DocumentLifecycle::DisallowTransitionScope(frame()->document()->lifecycle())
; |
1181 | 1178 |
1182 // TODO(dglazkov): Use EphemeralRange here. | 1179 return plainText(webRange.createEphemeralRange(frame()), TextIteratorEmitsOb
jectReplacementCharacter); |
1183 // See http://crbug.com/636216 for more details. | |
1184 if (Range* range = webRange.createRange(frame())) | |
1185 return range->text(); | |
1186 | |
1187 return WebString(); | |
1188 } | 1180 } |
1189 | 1181 |
1190 void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& point) | 1182 void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& point) |
1191 { | 1183 { |
1192 TRACE_EVENT0("blink", "WebLocalFrameImpl::moveRangeSelectionExtent"); | 1184 TRACE_EVENT0("blink", "WebLocalFrameImpl::moveRangeSelectionExtent"); |
1193 frame()->selection().moveRangeSelectionExtent(frame()->view()->viewportToCon
tents(point)); | 1185 frame()->selection().moveRangeSelectionExtent(frame()->view()->viewportToCon
tents(point)); |
1194 } | 1186 } |
1195 | 1187 |
1196 void WebLocalFrameImpl::moveRangeSelection(const WebPoint& baseInViewport, const
WebPoint& extentInViewport, WebFrame::TextGranularity granularity) | 1188 void WebLocalFrameImpl::moveRangeSelection(const WebPoint& baseInViewport, const
WebPoint& extentInViewport, WebFrame::TextGranularity granularity) |
1197 { | 1189 { |
(...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2245 feature = UseCounter::ChromeLoadTimesNpnNegotiatedProtocol; | 2237 feature = UseCounter::ChromeLoadTimesNpnNegotiatedProtocol; |
2246 } else if (metric == "wasAlternateProtocolAvailable") { | 2238 } else if (metric == "wasAlternateProtocolAvailable") { |
2247 feature = UseCounter::ChromeLoadTimesWasAlternateProtocolAvailable; | 2239 feature = UseCounter::ChromeLoadTimesWasAlternateProtocolAvailable; |
2248 } else if (metric == "connectionInfo") { | 2240 } else if (metric == "connectionInfo") { |
2249 feature = UseCounter::ChromeLoadTimesConnectionInfo; | 2241 feature = UseCounter::ChromeLoadTimesConnectionInfo; |
2250 } | 2242 } |
2251 UseCounter::count(frame(), feature); | 2243 UseCounter::count(frame(), feature); |
2252 } | 2244 } |
2253 | 2245 |
2254 } // namespace blink | 2246 } // namespace blink |
OLD | NEW |