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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 1321983003: Revert of Avoid sync IPCs for firstRectForCharacterRange/attributedSubstringForProposedRange. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 1dfc3d4e5abcfafa04c380f4e2022ea271d79893..66f1c31650f7799701f8aba763b515e7c340aaeb 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1225,7 +1225,6 @@
const ViewHostMsg_SelectionBounds_Params& params) {
if (params.anchor_rect == params.focus_rect)
caret_rect_ = params.anchor_rect;
- first_selection_rect_ = params.anchor_rect;
}
void RenderWidgetHostViewMac::SetShowingContextMenu(bool showing) {
@@ -1446,25 +1445,16 @@
TRACE_EVENT0("browser",
"RenderWidgetHostViewMac::GetFirstRectForCharacterRange");
- const gfx::Range requested_range(range);
// If requested range is same as caret location, we can just return it.
- if (selection_range_.is_empty() && requested_range == selection_range_) {
+ if (selection_range_.is_empty() && gfx::Range(range) == selection_range_) {
if (actual_range)
*actual_range = range;
*rect = NSRectFromCGRect(caret_rect_.ToCGRect());
return true;
}
- if (composition_range_.is_empty()) {
- if (!selection_range_.Contains(requested_range))
- return false;
- *actual_range = selection_range_.ToNSRange();
- *rect = NSRectFromCGRect(first_selection_rect_.ToCGRect());
- return true;
- }
-
const gfx::Range request_range_in_composition =
- ConvertCharacterRangeToCompositionRange(requested_range);
+ ConvertCharacterRangeToCompositionRange(gfx::Range(range));
if (request_range_in_composition == gfx::Range::InvalidRange())
return false;
@@ -2897,36 +2887,10 @@
// TODO(thakis): Pipe |actualRange| through TextInputClientMac machinery.
if (actualRange)
*actualRange = range;
-
- const gfx::Range requested_range(range);
- if (requested_range.is_reversed())
- return nil;
-
- gfx::Range expected_range;
- const base::string16* expected_text;
-
- if (!renderWidgetHostView_->composition_range().is_empty()) {
- expected_text = &markedText_;
- expected_range = renderWidgetHostView_->composition_range();
- } else {
- expected_text = &renderWidgetHostView_->selection_text();
- size_t offset = renderWidgetHostView_->selection_text_offset();
- expected_range = gfx::Range(offset, offset + expected_text->size());
- }
-
- if (!expected_range.Contains(requested_range))
- return nil;
-
- // Gets the raw bytes to avoid unnecessary string copies for generating
- // NSString.
- const base::char16* bytes =
- &(*expected_text)[requested_range.start() - expected_range.start()];
- NSUInteger bytes_len = requested_range.length() * sizeof(base::char16);
- base::scoped_nsobject<NSString> ns_string(
- [[NSString alloc] initWithBytes:bytes
- length:bytes_len
- encoding:NSUTF16StringEncoding]);
- return [[[NSAttributedString alloc] initWithString:ns_string] autorelease];
+ NSAttributedString* str =
+ TextInputClientMac::GetInstance()->GetAttributedSubstringFromRange(
+ renderWidgetHostView_->render_widget_host_, range);
+ return str;
}
- (NSInteger)conversationIdentifier {

Powered by Google App Engine
This is Rietveld 408576698