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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 102593002: Convert string16 to base::string16 in content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_view_mac.h" 5 #include "content/browser/renderer_host/render_widget_host_view_mac.h"
6 6
7 #import <objc/runtime.h> 7 #import <objc/runtime.h>
8 #include <QuartzCore/QuartzCore.h> 8 #include <QuartzCore/QuartzCore.h>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1001 matching lines...) Expand 10 before | Expand all | Expand 10 after
1012 // itself. But we are owned by |cocoa_view_|, which may be retained 1012 // itself. But we are owned by |cocoa_view_|, which may be retained
1013 // by some other code. Examples are WebContentsViewMac's 1013 // by some other code. Examples are WebContentsViewMac's
1014 // |latent_focus_view_| and TabWindowController's 1014 // |latent_focus_view_| and TabWindowController's
1015 // |cachedContentView_|. 1015 // |cachedContentView_|.
1016 render_widget_host_ = NULL; 1016 render_widget_host_ = NULL;
1017 } 1017 }
1018 1018
1019 // Called from the renderer to tell us what the tooltip text should be. It 1019 // Called from the renderer to tell us what the tooltip text should be. It
1020 // calls us frequently so we need to cache the value to prevent doing a lot 1020 // calls us frequently so we need to cache the value to prevent doing a lot
1021 // of repeat work. 1021 // of repeat work.
1022 void RenderWidgetHostViewMac::SetTooltipText(const string16& tooltip_text) { 1022 void RenderWidgetHostViewMac::SetTooltipText(
1023 const base::string16& tooltip_text) {
1023 if (tooltip_text != tooltip_text_ && [[cocoa_view_ window] isKeyWindow]) { 1024 if (tooltip_text != tooltip_text_ && [[cocoa_view_ window] isKeyWindow]) {
1024 tooltip_text_ = tooltip_text; 1025 tooltip_text_ = tooltip_text;
1025 1026
1026 // Clamp the tooltip length to kMaxTooltipLength. It's a DOS issue on 1027 // Clamp the tooltip length to kMaxTooltipLength. It's a DOS issue on
1027 // Windows; we're just trying to be polite. Don't persist the trimmed 1028 // Windows; we're just trying to be polite. Don't persist the trimmed
1028 // string, as then the comparison above will always fail and we'll try to 1029 // string, as then the comparison above will always fail and we'll try to
1029 // set it again every single time the mouse moves. 1030 // set it again every single time the mouse moves.
1030 string16 display_text = tooltip_text_; 1031 base::string16 display_text = tooltip_text_;
1031 if (tooltip_text_.length() > kMaxTooltipLength) 1032 if (tooltip_text_.length() > kMaxTooltipLength)
1032 display_text = tooltip_text_.substr(0, kMaxTooltipLength); 1033 display_text = tooltip_text_.substr(0, kMaxTooltipLength);
1033 1034
1034 NSString* tooltip_nsstring = base::SysUTF16ToNSString(display_text); 1035 NSString* tooltip_nsstring = base::SysUTF16ToNSString(display_text);
1035 [cocoa_view_ setToolTipAtMousePoint:tooltip_nsstring]; 1036 [cocoa_view_ setToolTipAtMousePoint:tooltip_nsstring];
1036 } 1037 }
1037 } 1038 }
1038 1039
1039 bool RenderWidgetHostViewMac::SupportsSpeech() const { 1040 bool RenderWidgetHostViewMac::SupportsSpeech() const {
1040 return [NSApp respondsToSelector:@selector(speakString:)] && 1041 return [NSApp respondsToSelector:@selector(speakString:)] &&
(...skipping 12 matching lines...) Expand all
1053 1054
1054 void RenderWidgetHostViewMac::StopSpeaking() { 1055 void RenderWidgetHostViewMac::StopSpeaking() {
1055 if ([NSApp respondsToSelector:@selector(stopSpeaking:)]) 1056 if ([NSApp respondsToSelector:@selector(stopSpeaking:)])
1056 [NSApp stopSpeaking:cocoa_view_]; 1057 [NSApp stopSpeaking:cocoa_view_];
1057 } 1058 }
1058 1059
1059 // 1060 //
1060 // RenderWidgetHostViewCocoa uses the stored selection text, 1061 // RenderWidgetHostViewCocoa uses the stored selection text,
1061 // which implements NSServicesRequests protocol. 1062 // which implements NSServicesRequests protocol.
1062 // 1063 //
1063 void RenderWidgetHostViewMac::SelectionChanged(const string16& text, 1064 void RenderWidgetHostViewMac::SelectionChanged(const base::string16& text,
1064 size_t offset, 1065 size_t offset,
1065 const gfx::Range& range) { 1066 const gfx::Range& range) {
1066 if (range.is_empty() || text.empty()) { 1067 if (range.is_empty() || text.empty()) {
1067 selected_text_.clear(); 1068 selected_text_.clear();
1068 } else { 1069 } else {
1069 size_t pos = range.GetMin() - offset; 1070 size_t pos = range.GetMin() - offset;
1070 size_t n = range.length(); 1071 size_t n = range.length();
1071 1072
1072 DCHECK(pos + n <= text.length()) << "The text can not fully cover range."; 1073 DCHECK(pos + n <= text.length()) << "The text can not fully cover range.";
1073 if (pos >= text.length()) { 1074 if (pos >= text.length()) {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 // necessary to avoid double processing. 1239 // necessary to avoid double processing.
1239 // Also check the native type, since NSFlagsChanged is considered a key event 1240 // Also check the native type, since NSFlagsChanged is considered a key event
1240 // for WebKit purposes, but isn't considered a key event by the OS. 1241 // for WebKit purposes, but isn't considered a key event by the OS.
1241 if (event.type == WebInputEvent::RawKeyDown && 1242 if (event.type == WebInputEvent::RawKeyDown &&
1242 [event.os_event type] == NSKeyDown) 1243 [event.os_event type] == NSKeyDown)
1243 return [cocoa_view_ postProcessEventForPluginIme:event.os_event]; 1244 return [cocoa_view_ postProcessEventForPluginIme:event.os_event];
1244 return false; 1245 return false;
1245 } 1246 }
1246 1247
1247 void RenderWidgetHostViewMac::PluginImeCompositionCompleted( 1248 void RenderWidgetHostViewMac::PluginImeCompositionCompleted(
1248 const string16& text, int plugin_id) { 1249 const base::string16& text, int plugin_id) {
1249 if (render_widget_host_) { 1250 if (render_widget_host_) {
1250 render_widget_host_->Send(new ViewMsg_PluginImeCompositionCompleted( 1251 render_widget_host_->Send(new ViewMsg_PluginImeCompositionCompleted(
1251 render_widget_host_->GetRoutingID(), text, plugin_id)); 1252 render_widget_host_->GetRoutingID(), text, plugin_id));
1252 } 1253 }
1253 } 1254 }
1254 1255
1255 void RenderWidgetHostViewMac::CompositorSwapBuffers( 1256 void RenderWidgetHostViewMac::CompositorSwapBuffers(
1256 uint64 surface_handle, 1257 uint64 surface_handle,
1257 const gfx::Size& size, 1258 const gfx::Size& size,
1258 float surface_scale_factor, 1259 float surface_scale_factor,
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
1738 if (mouse_locked_) 1739 if (mouse_locked_)
1739 return true; 1740 return true;
1740 1741
1741 mouse_locked_ = true; 1742 mouse_locked_ = true;
1742 1743
1743 // Lock position of mouse cursor and hide it. 1744 // Lock position of mouse cursor and hide it.
1744 CGAssociateMouseAndMouseCursorPosition(NO); 1745 CGAssociateMouseAndMouseCursorPosition(NO);
1745 [NSCursor hide]; 1746 [NSCursor hide];
1746 1747
1747 // Clear the tooltip window. 1748 // Clear the tooltip window.
1748 SetTooltipText(string16()); 1749 SetTooltipText(base::string16());
1749 1750
1750 return true; 1751 return true;
1751 } 1752 }
1752 1753
1753 void RenderWidgetHostViewMac::UnlockMouse() { 1754 void RenderWidgetHostViewMac::UnlockMouse() {
1754 if (!mouse_locked_) 1755 if (!mouse_locked_)
1755 return; 1756 return;
1756 mouse_locked_ = false; 1757 mouse_locked_ = false;
1757 1758
1758 // Unlock position of mouse cursor and unhide it. 1759 // Unlock position of mouse cursor and unhide it.
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 // Sends the updated marked text to the renderer so it can update the 2393 // Sends the updated marked text to the renderer so it can update the
2393 // composition node in WebKit. 2394 // composition node in WebKit.
2394 // When marked text is available, |selectedRange_| will be the range being 2395 // When marked text is available, |selectedRange_| will be the range being
2395 // selected inside the marked text. 2396 // selected inside the marked text.
2396 widgetHost->ImeSetComposition(markedText_, underlines_, 2397 widgetHost->ImeSetComposition(markedText_, underlines_,
2397 selectedRange_.location, 2398 selectedRange_.location,
2398 NSMaxRange(selectedRange_)); 2399 NSMaxRange(selectedRange_));
2399 } else if (oldHasMarkedText && !hasMarkedText_ && !textInserted) { 2400 } else if (oldHasMarkedText && !hasMarkedText_ && !textInserted) {
2400 if (unmarkTextCalled_) { 2401 if (unmarkTextCalled_) {
2401 widgetHost->ImeConfirmComposition( 2402 widgetHost->ImeConfirmComposition(
2402 string16(), gfx::Range::InvalidRange(), false); 2403 base::string16(), gfx::Range::InvalidRange(), false);
2403 } else { 2404 } else {
2404 widgetHost->ImeCancelComposition(); 2405 widgetHost->ImeCancelComposition();
2405 } 2406 }
2406 } 2407 }
2407 2408
2408 // If the key event was handled by the input method but it also generated some 2409 // If the key event was handled by the input method but it also generated some
2409 // edit commands, then we need to send the real key event and corresponding 2410 // edit commands, then we need to send the real key event and corresponding
2410 // edit commands here. This usually occurs when the input method wants to 2411 // edit commands here. This usually occurs when the input method wants to
2411 // finish current composition session but still wants the application to 2412 // finish current composition session but still wants the application to
2412 // handle the key event. See http://crbug.com/48161 for reference. 2413 // handle the key event. See http://crbug.com/48161 for reference.
(...skipping 1092 matching lines...) Expand 10 before | Expand all | Expand 10 after
3505 // text when it cancels an ongoing composition, i.e. I have never seen an 3506 // text when it cancels an ongoing composition, i.e. I have never seen an
3506 // input method calls this method. 3507 // input method calls this method.
3507 hasMarkedText_ = NO; 3508 hasMarkedText_ = NO;
3508 markedText_.clear(); 3509 markedText_.clear();
3509 underlines_.clear(); 3510 underlines_.clear();
3510 3511
3511 // If we are handling a key down event, then ConfirmComposition() will be 3512 // If we are handling a key down event, then ConfirmComposition() will be
3512 // called in keyEvent: method. 3513 // called in keyEvent: method.
3513 if (!handlingKeyDown_) { 3514 if (!handlingKeyDown_) {
3514 renderWidgetHostView_->render_widget_host_->ImeConfirmComposition( 3515 renderWidgetHostView_->render_widget_host_->ImeConfirmComposition(
3515 string16(), gfx::Range::InvalidRange(), false); 3516 base::string16(), gfx::Range::InvalidRange(), false);
3516 } else { 3517 } else {
3517 unmarkTextCalled_ = YES; 3518 unmarkTextCalled_ = YES;
3518 } 3519 }
3519 } 3520 }
3520 3521
3521 - (void)setMarkedText:(id)string selectedRange:(NSRange)newSelRange 3522 - (void)setMarkedText:(id)string selectedRange:(NSRange)newSelRange
3522 replacementRange:(NSRange)replacementRange { 3523 replacementRange:(NSRange)replacementRange {
3523 // An input method updates the composition string. 3524 // An input method updates the composition string.
3524 // We send the given text and range to the renderer so it can update the 3525 // We send the given text and range to the renderer so it can update the
3525 // composition node of WebKit. 3526 // composition node of WebKit.
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
3743 // Should not call [self unmarkText] here, because it'll send unnecessary 3744 // Should not call [self unmarkText] here, because it'll send unnecessary
3744 // cancel composition IPC message to the renderer. 3745 // cancel composition IPC message to the renderer.
3745 } 3746 }
3746 3747
3747 - (void)confirmComposition { 3748 - (void)confirmComposition {
3748 if (!hasMarkedText_) 3749 if (!hasMarkedText_)
3749 return; 3750 return;
3750 3751
3751 if (renderWidgetHostView_->render_widget_host_) 3752 if (renderWidgetHostView_->render_widget_host_)
3752 renderWidgetHostView_->render_widget_host_->ImeConfirmComposition( 3753 renderWidgetHostView_->render_widget_host_->ImeConfirmComposition(
3753 string16(), gfx::Range::InvalidRange(), false); 3754 base::string16(), gfx::Range::InvalidRange(), false);
3754 3755
3755 [self cancelComposition]; 3756 [self cancelComposition];
3756 } 3757 }
3757 3758
3758 - (void)setPluginImeActive:(BOOL)active { 3759 - (void)setPluginImeActive:(BOOL)active {
3759 if (active == pluginImeActive_) 3760 if (active == pluginImeActive_)
3760 return; 3761 return;
3761 3762
3762 pluginImeActive_ = active; 3763 pluginImeActive_ = active;
3763 if (!active) { 3764 if (!active) {
3764 [[ComplexTextInputPanel sharedComplexTextInputPanel] cancelComposition]; 3765 [[ComplexTextInputPanel sharedComplexTextInputPanel] cancelComposition];
3765 renderWidgetHostView_->PluginImeCompositionCompleted( 3766 renderWidgetHostView_->PluginImeCompositionCompleted(
3766 string16(), focusedPluginIdentifier_); 3767 base::string16(), focusedPluginIdentifier_);
3767 } 3768 }
3768 } 3769 }
3769 3770
3770 - (void)pluginFocusChanged:(BOOL)focused forPlugin:(int)pluginId { 3771 - (void)pluginFocusChanged:(BOOL)focused forPlugin:(int)pluginId {
3771 if (focused) 3772 if (focused)
3772 focusedPluginIdentifier_ = pluginId; 3773 focusedPluginIdentifier_ = pluginId;
3773 else if (focusedPluginIdentifier_ == pluginId) 3774 else if (focusedPluginIdentifier_ == pluginId)
3774 focusedPluginIdentifier_ = -1; 3775 focusedPluginIdentifier_ = -1;
3775 3776
3776 // Whenever plugin focus changes, plugin IME resets. 3777 // Whenever plugin focus changes, plugin IME resets.
(...skipping 14 matching lines...) Expand all
3791 base::SysNSStringToUTF16(composited_string), focusedPluginIdentifier_); 3792 base::SysNSStringToUTF16(composited_string), focusedPluginIdentifier_);
3792 pluginImeActive_ = NO; 3793 pluginImeActive_ = NO;
3793 } 3794 }
3794 return handled; 3795 return handled;
3795 } 3796 }
3796 3797
3797 - (void)checkForPluginImeCancellation { 3798 - (void)checkForPluginImeCancellation {
3798 if (pluginImeActive_ && 3799 if (pluginImeActive_ &&
3799 ![[ComplexTextInputPanel sharedComplexTextInputPanel] inComposition]) { 3800 ![[ComplexTextInputPanel sharedComplexTextInputPanel] inComposition]) {
3800 renderWidgetHostView_->PluginImeCompositionCompleted( 3801 renderWidgetHostView_->PluginImeCompositionCompleted(
3801 string16(), focusedPluginIdentifier_); 3802 base::string16(), focusedPluginIdentifier_);
3802 pluginImeActive_ = NO; 3803 pluginImeActive_ = NO;
3803 } 3804 }
3804 } 3805 }
3805 3806
3806 // Overriding a NSResponder method to support application services. 3807 // Overriding a NSResponder method to support application services.
3807 3808
3808 - (id)validRequestorForSendType:(NSString*)sendType 3809 - (id)validRequestorForSendType:(NSString*)sendType
3809 returnType:(NSString*)returnType { 3810 returnType:(NSString*)returnType {
3810 id requestor = nil; 3811 id requestor = nil;
3811 BOOL sendTypeIsString = [sendType isEqual:NSStringPboardType]; 3812 BOOL sendTypeIsString = [sendType isEqual:NSStringPboardType];
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
3931 return YES; 3932 return YES;
3932 } 3933 }
3933 3934
3934 - (BOOL)isOpaque { 3935 - (BOOL)isOpaque {
3935 if (renderWidgetHostView_->use_core_animation_) 3936 if (renderWidgetHostView_->use_core_animation_)
3936 return YES; 3937 return YES;
3937 return [super isOpaque]; 3938 return [super isOpaque];
3938 } 3939 }
3939 3940
3940 @end 3941 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698