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

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: Rebase 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
« no previous file with comments | « Source/web/WebLocalFrameImpl.h ('k') | Source/web/WebPluginContainerImpl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after
1048 bool WebLocalFrameImpl::hasMarkedText() const 1048 bool WebLocalFrameImpl::hasMarkedText() const
1049 { 1049 {
1050 return frame()->inputMethodController().hasComposition(); 1050 return frame()->inputMethodController().hasComposition();
1051 } 1051 }
1052 1052
1053 WebRange WebLocalFrameImpl::markedRange() const 1053 WebRange WebLocalFrameImpl::markedRange() const
1054 { 1054 {
1055 return frame()->inputMethodController().compositionRange(); 1055 return frame()->inputMethodController().compositionRange();
1056 } 1056 }
1057 1057
1058 bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned l ength, WebRect& rect) const 1058 bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned l ength, WebRect& rectInViewport) const
1059 { 1059 {
1060 if ((location + length < location) && (location + length)) 1060 if ((location + length < location) && (location + length))
1061 length = 0; 1061 length = 0;
1062 1062
1063 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t(); 1063 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t();
1064 ASSERT(editable); 1064 ASSERT(editable);
1065 RefPtrWillBeRawPtr<Range> range = PlainTextRange(location, location + length ).createRange(*editable); 1065 RefPtrWillBeRawPtr<Range> range = PlainTextRange(location, location + length ).createRange(*editable);
1066 if (!range) 1066 if (!range)
1067 return false; 1067 return false;
1068 IntRect intRect = frame()->editor().firstRectForRange(range.get()); 1068 IntRect intRect = frame()->editor().firstRectForRange(range.get());
1069 rect = WebRect(intRect); 1069 rectInViewport = WebRect(intRect);
1070 rect = frame()->view()->contentsToWindow(rect); 1070 rectInViewport = frame()->view()->contentsToViewport(rectInViewport);
1071 return true; 1071 return true;
1072 } 1072 }
1073 1073
1074 size_t WebLocalFrameImpl::characterIndexForPoint(const WebPoint& webPoint) const 1074 size_t WebLocalFrameImpl::characterIndexForPoint(const WebPoint& pointInViewport ) const
1075 { 1075 {
1076 if (!frame()) 1076 if (!frame())
1077 return kNotFound; 1077 return kNotFound;
1078 1078
1079 IntPoint point = frame()->view()->windowToContents(webPoint); 1079 IntPoint point = frame()->view()->viewportToContents(pointInViewport);
1080 HitTestResult result = frame()->eventHandler().hitTestResultAtPoint(point, H itTestRequest::ReadOnly | HitTestRequest::Active); 1080 HitTestResult result = frame()->eventHandler().hitTestResultAtPoint(point, H itTestRequest::ReadOnly | HitTestRequest::Active);
1081 RefPtrWillBeRawPtr<Range> range = frame()->rangeForPoint(result.roundedPoint InInnerNodeFrame()); 1081 RefPtrWillBeRawPtr<Range> range = frame()->rangeForPoint(result.roundedPoint InInnerNodeFrame());
1082 if (!range) 1082 if (!range)
1083 return kNotFound; 1083 return kNotFound;
1084 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t(); 1084 Element* editable = frame()->selection().rootEditableElementOrDocumentElemen t();
1085 ASSERT(editable); 1085 ASSERT(editable);
1086 return PlainTextRange::create(*editable, *range.get()).start(); 1086 return PlainTextRange::create(*editable, *range.get()).start();
1087 } 1087 }
1088 1088
1089 bool WebLocalFrameImpl::executeCommand(const WebString& name, const WebNode& nod e) 1089 bool WebLocalFrameImpl::executeCommand(const WebString& name, const WebNode& nod e)
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1212 } 1212 }
1213 1213
1214 bool WebLocalFrameImpl::selectWordAroundCaret() 1214 bool WebLocalFrameImpl::selectWordAroundCaret()
1215 { 1215 {
1216 FrameSelection& selection = frame()->selection(); 1216 FrameSelection& selection = frame()->selection();
1217 if (selection.isNone() || selection.isRange()) 1217 if (selection.isNone() || selection.isRange())
1218 return false; 1218 return false;
1219 return frame()->selection().selectWordAroundPosition(selection.selection().v isibleStart()); 1219 return frame()->selection().selectWordAroundPosition(selection.selection().v isibleStart());
1220 } 1220 }
1221 1221
1222 void WebLocalFrameImpl::selectRange(const WebPoint& base, const WebPoint& extent ) 1222 void WebLocalFrameImpl::selectRange(const WebPoint& baseInViewport, const WebPoi nt& extentInViewport)
1223 { 1223 {
1224 moveRangeSelection(base, extent); 1224 moveRangeSelection(baseInViewport, extentInViewport);
1225 } 1225 }
1226 1226
1227 void WebLocalFrameImpl::selectRange(const WebRange& webRange) 1227 void WebLocalFrameImpl::selectRange(const WebRange& webRange)
1228 { 1228 {
1229 if (RefPtrWillBeRawPtr<Range> range = static_cast<PassRefPtrWillBeRawPtr<Ran ge>>(webRange)) 1229 if (RefPtrWillBeRawPtr<Range> range = static_cast<PassRefPtrWillBeRawPtr<Ran ge>>(webRange))
1230 frame()->selection().setSelectedRange(range.get(), VP_DEFAULT_AFFINITY, FrameSelection::NonDirectional, NotUserTriggered); 1230 frame()->selection().setSelectedRange(range.get(), VP_DEFAULT_AFFINITY, FrameSelection::NonDirectional, NotUserTriggered);
1231 } 1231 }
1232 1232
1233 void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& point, WebFrame ::TextGranularity granularity) 1233 void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& pointInViewport , WebFrame::TextGranularity granularity)
1234 { 1234 {
1235 blink::TextGranularity blinkGranularity = blink::CharacterGranularity; 1235 blink::TextGranularity blinkGranularity = blink::CharacterGranularity;
1236 if (granularity == WebFrame::WordGranularity) 1236 if (granularity == WebFrame::WordGranularity)
1237 blinkGranularity = blink::WordGranularity; 1237 blinkGranularity = blink::WordGranularity;
1238 frame()->selection().moveRangeSelectionExtent(visiblePositionForWindowPoint( point), blinkGranularity); 1238 frame()->selection().moveRangeSelectionExtent(visiblePositionForViewportPoin t(pointInViewport), blinkGranularity);
1239 } 1239 }
1240 1240
1241 void WebLocalFrameImpl::moveRangeSelection(const WebPoint& base, const WebPoint& extent, WebFrame::TextGranularity granularity) 1241 void WebLocalFrameImpl::moveRangeSelection(const WebPoint& baseInViewport, const WebPoint& extentInViewport, WebFrame::TextGranularity granularity)
1242 { 1242 {
1243 blink::TextGranularity blinkGranularity = blink::CharacterGranularity; 1243 blink::TextGranularity blinkGranularity = blink::CharacterGranularity;
1244 if (granularity == WebFrame::WordGranularity) 1244 if (granularity == WebFrame::WordGranularity)
1245 blinkGranularity = blink::WordGranularity; 1245 blinkGranularity = blink::WordGranularity;
1246 frame()->selection().moveRangeSelection(visiblePositionForWindowPoint(base), visiblePositionForWindowPoint(extent), blinkGranularity); 1246 frame()->selection().moveRangeSelection(
1247 visiblePositionForViewportPoint(baseInViewport),
1248 visiblePositionForViewportPoint(extentInViewport),
1249 blinkGranularity);
1247 } 1250 }
1248 1251
1249 void WebLocalFrameImpl::moveCaretSelection(const WebPoint& point) 1252 void WebLocalFrameImpl::moveCaretSelection(const WebPoint& pointInViewport)
1250 { 1253 {
1251 Element* editable = frame()->selection().rootEditableElement(); 1254 Element* editable = frame()->selection().rootEditableElement();
1252 if (!editable) 1255 if (!editable)
1253 return; 1256 return;
1254 1257
1255 VisiblePosition position = visiblePositionForWindowPoint(point); 1258 VisiblePosition position = visiblePositionForViewportPoint(pointInViewport);
1256 frame()->selection().moveTo(position, UserTriggered); 1259 frame()->selection().moveTo(position, UserTriggered);
1257 } 1260 }
1258 1261
1259 bool WebLocalFrameImpl::setEditableSelectionOffsets(int start, int end) 1262 bool WebLocalFrameImpl::setEditableSelectionOffsets(int start, int end)
1260 { 1263 {
1261 return frame()->inputMethodController().setEditableSelectionOffsets(PlainTex tRange(start, end)); 1264 return frame()->inputMethodController().setEditableSelectionOffsets(PlainTex tRange(start, end));
1262 } 1265 }
1263 1266
1264 bool WebLocalFrameImpl::setCompositionFromExistingText(int compositionStart, int compositionEnd, const WebVector<WebCompositionUnderline>& underlines) 1267 bool WebLocalFrameImpl::setCompositionFromExistingText(int compositionStart, int compositionEnd, const WebVector<WebCompositionUnderline>& underlines)
1265 { 1268 {
(...skipping 18 matching lines...) Expand all
1284 return; 1287 return;
1285 } 1288 }
1286 frame()->inputMethodController().extendSelectionAndDelete(before, after); 1289 frame()->inputMethodController().extendSelectionAndDelete(before, after);
1287 } 1290 }
1288 1291
1289 void WebLocalFrameImpl::setCaretVisible(bool visible) 1292 void WebLocalFrameImpl::setCaretVisible(bool visible)
1290 { 1293 {
1291 frame()->selection().setCaretVisible(visible); 1294 frame()->selection().setCaretVisible(visible);
1292 } 1295 }
1293 1296
1294 VisiblePosition WebLocalFrameImpl::visiblePositionForWindowPoint(const WebPoint& point) 1297 VisiblePosition WebLocalFrameImpl::visiblePositionForViewportPoint(const WebPoin t& pointInViewport)
1295 { 1298 {
1296 // FIXME(bokan): crbug.com/371902 - These scale/pinch transforms shouldn't
1297 // be ad hoc and explicit.
1298 PinchViewport& pinchViewport = frame()->page()->frameHost().pinchViewport();
1299 FloatPoint unscaledPoint(point);
1300 unscaledPoint.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFact or());
1301 unscaledPoint.moveBy(pinchViewport.visibleRect().location());
1302
1303 HitTestRequest request = HitTestRequest::Move | HitTestRequest::ReadOnly | H itTestRequest::Active | HitTestRequest::IgnoreClipping; 1299 HitTestRequest request = HitTestRequest::Move | HitTestRequest::ReadOnly | H itTestRequest::Active | HitTestRequest::IgnoreClipping;
1304 HitTestResult result(frame()->view()->windowToContents(roundedIntPoint(unsca ledPoint))); 1300 HitTestResult result(frame()->view()->viewportToContents(pointInViewport));
1305 frame()->document()->layoutView()->layer()->hitTest(request, result); 1301 frame()->document()->layoutView()->layer()->hitTest(request, result);
1306 1302
1307 if (Node* node = result.innerNode()) 1303 if (Node* node = result.innerNode())
1308 return frame()->selection().selection().visiblePositionRespectingEditing Boundary(result.localPoint(), node); 1304 return frame()->selection().selection().visiblePositionRespectingEditing Boundary(result.localPoint(), node);
1309 return VisiblePosition(); 1305 return VisiblePosition();
1310 } 1306 }
1311 1307
1312 WebPlugin* WebLocalFrameImpl::focusedPluginIfInputMethodSupported() 1308 WebPlugin* WebLocalFrameImpl::focusedPluginIfInputMethodSupported()
1313 { 1309 {
1314 WebPluginContainerImpl* container = WebLocalFrameImpl::pluginContainerFromNo de(frame(), WebNode(frame()->document()->focusedElement())); 1310 WebPluginContainerImpl* container = WebLocalFrameImpl::pluginContainerFromNo de(frame(), WebNode(frame()->document()->focusedElement()));
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after
2050 { 2046 {
2051 m_frameWidget = frameWidget; 2047 m_frameWidget = frameWidget;
2052 } 2048 }
2053 2049
2054 WebFrameWidgetImpl* WebLocalFrameImpl::frameWidget() const 2050 WebFrameWidgetImpl* WebLocalFrameImpl::frameWidget() const
2055 { 2051 {
2056 return m_frameWidget; 2052 return m_frameWidget;
2057 } 2053 }
2058 2054
2059 } // namespace blink 2055 } // namespace blink
OLDNEW
« no previous file with comments | « Source/web/WebLocalFrameImpl.h ('k') | Source/web/WebPluginContainerImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698