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

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

Issue 1652483002: Browser Side Text Input State Tracking for OOPIF. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 // 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 <OpenGL/gl.h> 8 #include <OpenGL/gl.h>
9 #include <QuartzCore/QuartzCore.h> 9 #include <QuartzCore/QuartzCore.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 WebCursor web_cursor = cursor; 1008 WebCursor web_cursor = cursor;
1009 [cocoa_view_ updateCursor:web_cursor.GetNativeCursor()]; 1009 [cocoa_view_ updateCursor:web_cursor.GetNativeCursor()];
1010 } 1010 }
1011 1011
1012 void RenderWidgetHostViewMac::SetIsLoading(bool is_loading) { 1012 void RenderWidgetHostViewMac::SetIsLoading(bool is_loading) {
1013 is_loading_ = is_loading; 1013 is_loading_ = is_loading;
1014 // If we ever decide to show the waiting cursor while the page is loading 1014 // If we ever decide to show the waiting cursor while the page is loading
1015 // like Chrome does on Windows, call |UpdateCursor()| here. 1015 // like Chrome does on Windows, call |UpdateCursor()| here.
1016 } 1016 }
1017 1017
1018 void RenderWidgetHostViewMac::TextInputStateChanged( 1018 void RenderWidgetHostViewMac::UpdateInputMethodIfNecessary(
1019 const ViewHostMsg_TextInputState_Params& params) { 1019 bool text_input_state_changed) {
1020 if (text_input_type_ != params.type 1020 if (!text_input_state_changed)
1021 || can_compose_inline_ != params.can_compose_inline) { 1021 return;
1022 text_input_type_ = params.type;
1023 can_compose_inline_ = params.can_compose_inline;
1024 if (HasFocus()) {
1025 SetTextInputActive(true);
1026 1022
1027 // Let AppKit cache the new input context to make IMEs happy. 1023 if (HasFocus()) {
1028 // See http://crbug.com/73039. 1024 SetTextInputActive(true);
1029 [NSApp updateWindows]; 1025
1026 // Let AppKit cache the new input context to make IMEs happy.
1027 // See http://crbug.com/73039.
1028 [NSApp updateWindows];
1030 1029
1031 #ifndef __LP64__ 1030 #ifndef __LP64__
1032 UseInputWindow(TSMGetActiveDocument(), !can_compose_inline_); 1031 UseInputWindow(TSMGetActiveDocument(), !render_widget_host_->delegate()
1032 ->GetTextInputState()
1033 .can_compose_inline);
1033 #endif 1034 #endif
1034 }
1035 } 1035 }
1036 } 1036 }
1037 1037
1038 void RenderWidgetHostViewMac::ImeCancelComposition() { 1038 void RenderWidgetHostViewMac::ImeCancelComposition() {
1039 [cocoa_view_ cancelComposition]; 1039 [cocoa_view_ cancelComposition];
1040 } 1040 }
1041 1041
1042 void RenderWidgetHostViewMac::ImeCompositionRangeChanged( 1042 void RenderWidgetHostViewMac::ImeCompositionRangeChanged(
1043 const gfx::Range& range, 1043 const gfx::Range& range,
1044 const std::vector<gfx::Rect>& character_bounds) { 1044 const std::vector<gfx::Rect>& character_bounds) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 pepper_fullscreen_window_.autorelease(); 1081 pepper_fullscreen_window_.autorelease();
1082 1082
1083 // Delete the delegated frame state, which will reach back into 1083 // Delete the delegated frame state, which will reach back into
1084 // render_widget_host_. 1084 // render_widget_host_.
1085 ShutdownBrowserCompositor(); 1085 ShutdownBrowserCompositor();
1086 1086
1087 // Make sure none of our observers send events for us to process after 1087 // Make sure none of our observers send events for us to process after
1088 // we release render_widget_host_. 1088 // we release render_widget_host_.
1089 NotifyObserversAboutShutdown(); 1089 NotifyObserversAboutShutdown();
1090 1090
1091 // The WebContentsImpl should be notified about us so that it will not hold
1092 // an invalid text input state which was due to active text on this view.
1093 NotifyHostDelegateAboutShutdown();
1094
1091 // We get this call just before |render_widget_host_| deletes 1095 // We get this call just before |render_widget_host_| deletes
1092 // itself. But we are owned by |cocoa_view_|, which may be retained 1096 // itself. But we are owned by |cocoa_view_|, which may be retained
1093 // by some other code. Examples are WebContentsViewMac's 1097 // by some other code. Examples are WebContentsViewMac's
1094 // |latent_focus_view_| and TabWindowController's 1098 // |latent_focus_view_| and TabWindowController's
1095 // |cachedContentView_|. 1099 // |cachedContentView_|.
1096 render_widget_host_ = NULL; 1100 render_widget_host_ = NULL;
1097 } 1101 }
1098 1102
1099 // Called from the renderer to tell us what the tooltip text should be. It 1103 // Called from the renderer to tell us what the tooltip text should be. It
1100 // calls us frequently so we need to cache the value to prevent doing a lot 1104 // calls us frequently so we need to cache the value to prevent doing a lot
(...skipping 2423 matching lines...) Expand 10 before | Expand all | Expand 10 after
3524 3528
3525 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding 3529 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding
3526 // regions that are not draggable. (See ControlRegionView in 3530 // regions that are not draggable. (See ControlRegionView in
3527 // native_app_window_cocoa.mm). This requires the render host view to be 3531 // native_app_window_cocoa.mm). This requires the render host view to be
3528 // draggable by default. 3532 // draggable by default.
3529 - (BOOL)mouseDownCanMoveWindow { 3533 - (BOOL)mouseDownCanMoveWindow {
3530 return YES; 3534 return YES;
3531 } 3535 }
3532 3536
3533 @end 3537 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698