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

Side by Side Diff: Source/web/WebLocalFrameImpl.cpp

Issue 967213004: Removed FrameView's windowToContents and contentsToWindow methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 9 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
OLDNEW
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 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 bool WebLocalFrameImpl::hasMarkedText() const 1016 bool WebLocalFrameImpl::hasMarkedText() const
1017 { 1017 {
1018 return frame()->inputMethodController().hasComposition(); 1018 return frame()->inputMethodController().hasComposition();
1019 } 1019 }
1020 1020
1021 WebRange WebLocalFrameImpl::markedRange() const 1021 WebRange WebLocalFrameImpl::markedRange() const
1022 { 1022 {
1023 return frame()->inputMethodController().compositionRange(); 1023 return frame()->inputMethodController().compositionRange();
1024 } 1024 }
1025 1025
1026 bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned l ength, WebRect& rect) const 1026 bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned l ength, WebRect& rectInViewport) const
1027 { 1027 {
1028 if ((location + length < location) && (location + length)) 1028 if ((location + length < location) && (location + length))
1029 length = 0; 1029 length = 0;
1030 1030
1031 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t(); 1031 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t();
1032 ASSERT(editable); 1032 ASSERT(editable);
1033 RefPtrWillBeRawPtr<Range> range = PlainTextRange(location, location + length ).createRange(*editable); 1033 RefPtrWillBeRawPtr<Range> range = PlainTextRange(location, location + length ).createRange(*editable);
1034 if (!range) 1034 if (!range)
1035 return false; 1035 return false;
1036 IntRect intRect = frame()->editor().firstRectForRange(range.get()); 1036 IntRect intRect = frame()->editor().firstRectForRange(range.get());
1037 rect = WebRect(intRect); 1037 rectInViewport = WebRect(intRect);
1038 rect = frame()->view()->contentsToWindow(rect); 1038 rectInViewport = frame()->view()->contentsToViewport(rectInViewport);
1039 return true; 1039 return true;
1040 } 1040 }
1041 1041
1042 size_t WebLocalFrameImpl::characterIndexForPoint(const WebPoint& webPoint) const 1042 size_t WebLocalFrameImpl::characterIndexForPoint(const WebPoint& pointInViewport ) const
1043 { 1043 {
1044 if (!frame()) 1044 if (!frame())
1045 return kNotFound; 1045 return kNotFound;
1046 1046
1047 IntPoint point = frame()->view()->windowToContents(webPoint); 1047 IntPoint point = frame()->view()->viewportToContents(pointInViewport);
1048 HitTestResult result = frame()->eventHandler().hitTestResultAtPoint(point, H itTestRequest::ReadOnly | HitTestRequest::Active); 1048 HitTestResult result = frame()->eventHandler().hitTestResultAtPoint(point, H itTestRequest::ReadOnly | HitTestRequest::Active);
1049 RefPtrWillBeRawPtr<Range> range = frame()->rangeForPoint(result.roundedPoint InInnerNodeFrame()); 1049 RefPtrWillBeRawPtr<Range> range = frame()->rangeForPoint(result.roundedPoint InInnerNodeFrame());
1050 if (!range) 1050 if (!range)
1051 return kNotFound; 1051 return kNotFound;
1052 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t(); 1052 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t();
1053 ASSERT(editable); 1053 ASSERT(editable);
1054 return PlainTextRange::create(*editable, *range.get()).start(); 1054 return PlainTextRange::create(*editable, *range.get()).start();
1055 } 1055 }
1056 1056
1057 bool WebLocalFrameImpl::executeCommand(const WebString& name, const WebNode& nod e) 1057 bool WebLocalFrameImpl::executeCommand(const WebString& name, const WebNode& nod e)
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1180 } 1180 }
1181 1181
1182 bool WebLocalFrameImpl::selectWordAroundCaret() 1182 bool WebLocalFrameImpl::selectWordAroundCaret()
1183 { 1183 {
1184 FrameSelection& selection = frame()->selection(); 1184 FrameSelection& selection = frame()->selection();
1185 if (selection.isNone() || selection.isRange()) 1185 if (selection.isNone() || selection.isRange())
1186 return false; 1186 return false;
1187 return frame()->selection().selectWordAroundPosition(selection.selection().v isibleStart()); 1187 return frame()->selection().selectWordAroundPosition(selection.selection().v isibleStart());
1188 } 1188 }
1189 1189
1190 void WebLocalFrameImpl::selectRange(const WebPoint& base, const WebPoint& extent ) 1190 void WebLocalFrameImpl::selectRange(const WebPoint& baseInViewport, const WebPoi nt& extentInViewport)
1191 { 1191 {
1192 moveRangeSelection(base, extent); 1192 moveRangeSelection(baseInViewport, extentInViewport);
1193 } 1193 }
1194 1194
1195 void WebLocalFrameImpl::selectRange(const WebRange& webRange) 1195 void WebLocalFrameImpl::selectRange(const WebRange& webRange)
1196 { 1196 {
1197 if (RefPtrWillBeRawPtr<Range> range = static_cast<PassRefPtrWillBeRawPtr<Ran ge>>(webRange)) 1197 if (RefPtrWillBeRawPtr<Range> range = static_cast<PassRefPtrWillBeRawPtr<Ran ge>>(webRange))
1198 frame()->selection().setSelectedRange(range.get(), VP_DEFAULT_AFFINITY, FrameSelection::NonDirectional, NotUserTriggered); 1198 frame()->selection().setSelectedRange(range.get(), VP_DEFAULT_AFFINITY, FrameSelection::NonDirectional, NotUserTriggered);
1199 } 1199 }
1200 1200
1201 void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& point, WebFrame ::TextGranularity granularity) 1201 void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& pointInViewport , WebFrame::TextGranularity granularity)
1202 { 1202 {
1203 blink::TextGranularity blinkGranularity = blink::CharacterGranularity; 1203 blink::TextGranularity blinkGranularity = blink::CharacterGranularity;
1204 if (granularity == WebFrame::WordGranularity) 1204 if (granularity == WebFrame::WordGranularity)
1205 blinkGranularity = blink::WordGranularity; 1205 blinkGranularity = blink::WordGranularity;
1206 frame()->selection().moveRangeSelectionExtent(visiblePositionForWindowPoint( point), blinkGranularity); 1206 frame()->selection().moveRangeSelectionExtent(visiblePositionForViewportPoin t(pointInViewport), blinkGranularity);
1207 } 1207 }
1208 1208
1209 void WebLocalFrameImpl::moveRangeSelection(const WebPoint& base, const WebPoint& extent, WebFrame::TextGranularity granularity) 1209 void WebLocalFrameImpl::moveRangeSelection(const WebPoint& baseInViewport, const WebPoint& extentInViewport, WebFrame::TextGranularity granularity)
1210 { 1210 {
1211 blink::TextGranularity blinkGranularity = blink::CharacterGranularity; 1211 blink::TextGranularity blinkGranularity = blink::CharacterGranularity;
1212 if (granularity == WebFrame::WordGranularity) 1212 if (granularity == WebFrame::WordGranularity)
1213 blinkGranularity = blink::WordGranularity; 1213 blinkGranularity = blink::WordGranularity;
1214 frame()->selection().moveRangeSelection(visiblePositionForWindowPoint(base), visiblePositionForWindowPoint(extent), blinkGranularity); 1214 frame()->selection().moveRangeSelection(
1215 visiblePositionForViewportPoint(baseInViewport),
1216 visiblePositionForViewportPoint(extentInViewport),
1217 blinkGranularity);
1215 } 1218 }
1216 1219
1217 void WebLocalFrameImpl::moveCaretSelection(const WebPoint& point) 1220 void WebLocalFrameImpl::moveCaretSelection(const WebPoint& pointInViewport)
1218 { 1221 {
1219 Element* editable = frame()->selection().rootEditableElement(); 1222 Element* editable = frame()->selection().rootEditableElement();
1220 if (!editable) 1223 if (!editable)
1221 return; 1224 return;
1222 1225
1223 VisiblePosition position = visiblePositionForWindowPoint(point); 1226 VisiblePosition position = visiblePositionForViewportPoint(pointInViewport);
1224 frame()->selection().moveTo(position, UserTriggered); 1227 frame()->selection().moveTo(position, UserTriggered);
1225 } 1228 }
1226 1229
1227 bool WebLocalFrameImpl::setEditableSelectionOffsets(int start, int end) 1230 bool WebLocalFrameImpl::setEditableSelectionOffsets(int start, int end)
1228 { 1231 {
1229 return frame()->inputMethodController().setEditableSelectionOffsets(PlainTex tRange(start, end)); 1232 return frame()->inputMethodController().setEditableSelectionOffsets(PlainTex tRange(start, end));
1230 } 1233 }
1231 1234
1232 bool WebLocalFrameImpl::setCompositionFromExistingText(int compositionStart, int compositionEnd, const WebVector<WebCompositionUnderline>& underlines) 1235 bool WebLocalFrameImpl::setCompositionFromExistingText(int compositionStart, int compositionEnd, const WebVector<WebCompositionUnderline>& underlines)
1233 { 1236 {
(...skipping 18 matching lines...) Expand all
1252 return; 1255 return;
1253 } 1256 }
1254 frame()->inputMethodController().extendSelectionAndDelete(before, after); 1257 frame()->inputMethodController().extendSelectionAndDelete(before, after);
1255 } 1258 }
1256 1259
1257 void WebLocalFrameImpl::setCaretVisible(bool visible) 1260 void WebLocalFrameImpl::setCaretVisible(bool visible)
1258 { 1261 {
1259 frame()->selection().setCaretVisible(visible); 1262 frame()->selection().setCaretVisible(visible);
1260 } 1263 }
1261 1264
1262 VisiblePosition WebLocalFrameImpl::visiblePositionForWindowPoint(const WebPoint& point) 1265 VisiblePosition WebLocalFrameImpl::visiblePositionForViewportPoint(const WebPoin t& pointInViewport)
1263 { 1266 {
1264 // FIXME(bokan): crbug.com/371902 - These scale/pinch transforms shouldn't
1265 // be ad hoc and explicit.
1266 PinchViewport& pinchViewport = frame()->page()->frameHost().pinchViewport();
1267 FloatPoint unscaledPoint(point);
1268 unscaledPoint.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFact or());
1269 unscaledPoint.moveBy(pinchViewport.visibleRect().location());
1270
1271 HitTestRequest request = HitTestRequest::Move | HitTestRequest::ReadOnly | H itTestRequest::Active | HitTestRequest::IgnoreClipping; 1267 HitTestRequest request = HitTestRequest::Move | HitTestRequest::ReadOnly | H itTestRequest::Active | HitTestRequest::IgnoreClipping;
1272 HitTestResult result(frame()->view()->windowToContents(roundedIntPoint(unsca ledPoint))); 1268 HitTestResult result(frame()->view()->viewportToContents(pointInViewport));
1273 frame()->document()->layoutView()->layer()->hitTest(request, result); 1269 frame()->document()->layoutView()->layer()->hitTest(request, result);
1274 1270
1275 if (Node* node = result.innerNode()) 1271 if (Node* node = result.innerNode())
1276 return frame()->selection().selection().visiblePositionRespectingEditing Boundary(result.localPoint(), node); 1272 return frame()->selection().selection().visiblePositionRespectingEditing Boundary(result.localPoint(), node);
1277 return VisiblePosition(); 1273 return VisiblePosition();
1278 } 1274 }
1279 1275
1280 WebPlugin* WebLocalFrameImpl::focusedPluginIfInputMethodSupported() 1276 WebPlugin* WebLocalFrameImpl::focusedPluginIfInputMethodSupported()
1281 { 1277 {
1282 WebPluginContainerImpl* container = WebLocalFrameImpl::pluginContainerFromNo de(frame(), WebNode(frame()->document()->focusedElement())); 1278 WebPluginContainerImpl* container = WebLocalFrameImpl::pluginContainerFromNo de(frame(), WebNode(frame()->document()->focusedElement()));
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after
2006 { 2002 {
2007 m_frameWidget = frameWidget; 2003 m_frameWidget = frameWidget;
2008 } 2004 }
2009 2005
2010 WebFrameWidgetImpl* WebLocalFrameImpl::frameWidget() const 2006 WebFrameWidgetImpl* WebLocalFrameImpl::frameWidget() const
2011 { 2007 {
2012 return m_frameWidget; 2008 return m_frameWidget;
2013 } 2009 }
2014 2010
2015 } // namespace blink 2011 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698