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

Side by Side Diff: Source/WebKit/chromium/src/WebFrameImpl.cpp

Issue 6532004: DO NOT SUBMIT (Closed) Base URL: git://git.webkit.org/WebKit.git@master
Patch Set: Address feedback Created 9 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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 #include "Console.h" 78 #include "Console.h"
79 #include "DOMUtilitiesPrivate.h" 79 #include "DOMUtilitiesPrivate.h"
80 #include "DOMWindow.h" 80 #include "DOMWindow.h"
81 #include "Document.h" 81 #include "Document.h"
82 #include "DocumentFragment.h" // Only needed for ReplaceSelectionCommand.h :( 82 #include "DocumentFragment.h" // Only needed for ReplaceSelectionCommand.h :(
83 #include "DocumentLoader.h" 83 #include "DocumentLoader.h"
84 #include "DocumentMarker.h" 84 #include "DocumentMarker.h"
85 #include "DocumentMarkerController.h" 85 #include "DocumentMarkerController.h"
86 #include "Editor.h" 86 #include "Editor.h"
87 #include "EventHandler.h" 87 #include "EventHandler.h"
88 #include "FocusController.h"
88 #include "FormState.h" 89 #include "FormState.h"
89 #include "FrameLoadRequest.h" 90 #include "FrameLoadRequest.h"
90 #include "FrameLoader.h" 91 #include "FrameLoader.h"
91 #include "FrameTree.h" 92 #include "FrameTree.h"
92 #include "FrameView.h" 93 #include "FrameView.h"
93 #include "HTMLCollection.h" 94 #include "HTMLCollection.h"
94 #include "HTMLFormElement.h" 95 #include "HTMLFormElement.h"
95 #include "HTMLFrameOwnerElement.h" 96 #include "HTMLFrameOwnerElement.h"
96 #include "HTMLHeadElement.h" 97 #include "HTMLHeadElement.h"
97 #include "HTMLInputElement.h" 98 #include "HTMLInputElement.h"
98 #include "HTMLLinkElement.h" 99 #include "HTMLLinkElement.h"
99 #include "HTMLNames.h" 100 #include "HTMLNames.h"
100 #include "HistoryItem.h" 101 #include "HistoryItem.h"
102 #include "HitTestResult.h"
101 #include "InspectorController.h" 103 #include "InspectorController.h"
102 #include "Page.h" 104 #include "Page.h"
103 #include "painting/GraphicsContextBuilder.h" 105 #include "painting/GraphicsContextBuilder.h"
104 #include "Performance.h" 106 #include "Performance.h"
105 #include "PlatformBridge.h" 107 #include "PlatformBridge.h"
106 #include "PluginDocument.h" 108 #include "PluginDocument.h"
107 #include "PrintContext.h" 109 #include "PrintContext.h"
108 #include "RenderFrame.h" 110 #include "RenderFrame.h"
109 #include "RenderObject.h" 111 #include "RenderObject.h"
110 #include "RenderTreeAsText.h" 112 #include "RenderTreeAsText.h"
(...skipping 1012 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 { 1125 {
1124 if ((location + length < location) && (location + length)) 1126 if ((location + length < location) && (location + length))
1125 length = 0; 1127 length = 0;
1126 1128
1127 Element* selectionRoot = frame()->selection()->rootEditableElement(); 1129 Element* selectionRoot = frame()->selection()->rootEditableElement();
1128 Element* scope = selectionRoot ? selectionRoot : frame()->document()->docume ntElement(); 1130 Element* scope = selectionRoot ? selectionRoot : frame()->document()->docume ntElement();
1129 RefPtr<Range> range = TextIterator::rangeFromLocationAndLength(scope, locati on, length); 1131 RefPtr<Range> range = TextIterator::rangeFromLocationAndLength(scope, locati on, length);
1130 if (!range) 1132 if (!range)
1131 return false; 1133 return false;
1132 IntRect intRect = frame()->editor()->firstRectForRange(range.get()); 1134 IntRect intRect = frame()->editor()->firstRectForRange(range.get());
1133 rect = WebRect(intRect.x(), intRect.y(), intRect.width(), intRect.height()); 1135 rect = WebRect(intRect);
1136 // When inside an text control, don't adjust the range.
1137 if (!selectionRoot)
1138 rect = frame()->view()->contentsToWindow(rect);
1134 1139
1135 return true; 1140 return true;
1136 } 1141 }
1137 1142
1143 unsigned WebFrameImpl::characterIndexForPoint(const WebPoint& webPoint) const
1144 {
1145 if (!frame())
1146 return notFound;
1147
1148 IntPoint point = frame()->view()->windowToContents(webPoint);
1149 HitTestResult result = frame()->eventHandler()->hitTestResultAtPoint(point, false);
1150 RefPtr<Range> range = frame()->rangeForPoint(result.point());
1151 if (!range.get())
1152 return notFound;
1153
1154 unsigned location, length;
1155 range->getLocationAndLength(location, length);
1156 return location;
1157 }
1158
1138 bool WebFrameImpl::executeCommand(const WebString& name) 1159 bool WebFrameImpl::executeCommand(const WebString& name)
1139 { 1160 {
1140 ASSERT(frame()); 1161 ASSERT(frame());
1141 1162
1142 if (name.length() <= 2) 1163 if (name.length() <= 2)
1143 return false; 1164 return false;
1144 1165
1145 // Since we don't have NSControl, we will convert the format of command 1166 // Since we don't have NSControl, we will convert the format of command
1146 // string and call the function on Editor directly. 1167 // string and call the function on Editor directly.
1147 String command = name; 1168 String command = name;
(...skipping 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after
2287 2308
2288 String scriptResult; 2309 String scriptResult;
2289 if (!result.getString(scriptResult)) 2310 if (!result.getString(scriptResult))
2290 return; 2311 return;
2291 2312
2292 if (!m_frame->navigationScheduler()->locationChangePending()) 2313 if (!m_frame->navigationScheduler()->locationChangePending())
2293 m_frame->document()->loader()->writer()->replaceDocument(scriptResult); 2314 m_frame->document()->loader()->writer()->replaceDocument(scriptResult);
2294 } 2315 }
2295 2316
2296 } // namespace WebKit 2317 } // namespace WebKit
OLDNEW
« no previous file with comments | « Source/WebKit/chromium/src/WebFrameImpl.h ('k') | Source/WebKit/chromium/src/WebPopupMenuImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698