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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2632493005: Disable Android virtual keyboard when in VR shell (Closed)
Patch Set: Created 3 years, 11 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_android.h" 5 #include "content/browser/renderer_host/render_widget_host_view_android.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 436
437 RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid( 437 RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid(
438 RenderWidgetHostImpl* widget_host, 438 RenderWidgetHostImpl* widget_host,
439 ContentViewCoreImpl* content_view_core) 439 ContentViewCoreImpl* content_view_core)
440 : host_(widget_host), 440 : host_(widget_host),
441 begin_frame_source_(nullptr), 441 begin_frame_source_(nullptr),
442 outstanding_begin_frame_requests_(0), 442 outstanding_begin_frame_requests_(0),
443 is_showing_(!widget_host->is_hidden()), 443 is_showing_(!widget_host->is_hidden()),
444 is_window_visible_(true), 444 is_window_visible_(true),
445 is_window_activity_started_(true), 445 is_window_activity_started_(true),
446 is_showing_overscroll_glow_(true), 446 is_in_vr_(false),
447 content_view_core_(nullptr), 447 content_view_core_(nullptr),
448 ime_adapter_android_(this), 448 ime_adapter_android_(this),
449 cached_background_color_(SK_ColorWHITE), 449 cached_background_color_(SK_ColorWHITE),
450 last_compositor_frame_sink_id_(kUndefinedCompositorFrameSinkId), 450 last_compositor_frame_sink_id_(kUndefinedCompositorFrameSinkId),
451 gesture_provider_(ui::GetGestureProviderConfig( 451 gesture_provider_(ui::GetGestureProviderConfig(
452 ui::GestureProviderConfigType::CURRENT_PLATFORM), 452 ui::GestureProviderConfigType::CURRENT_PLATFORM),
453 this), 453 this),
454 stylus_text_selector_(this), 454 stylus_text_selector_(this),
455 using_browser_compositor_(CompositorImpl::IsInitialized()), 455 using_browser_compositor_(CompositorImpl::IsInitialized()),
456 synchronous_compositor_client_(nullptr), 456 synchronous_compositor_client_(nullptr),
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 RenderWidgetHostViewBase* updated_view, 769 RenderWidgetHostViewBase* updated_view,
770 bool did_change_state) { 770 bool did_change_state) {
771 DCHECK_EQ(text_input_manager_, text_input_manager); 771 DCHECK_EQ(text_input_manager_, text_input_manager);
772 // If there are no active widgets, the TextInputState.type should be reported 772 // If there are no active widgets, the TextInputState.type should be reported
773 // as none. 773 // as none.
774 const TextInputState& state = 774 const TextInputState& state =
775 GetTextInputManager()->GetActiveWidget() 775 GetTextInputManager()->GetActiveWidget()
776 ? *GetTextInputManager()->GetTextInputState() 776 ? *GetTextInputManager()->GetTextInputState()
777 : TextInputState(); 777 : TextInputState();
778 778
779 if (!content_view_core_) 779 if (!content_view_core_ || is_in_vr_)
EhsanK 2017/01/13 21:55:24 I was wondering if the intention of the CL was to
asimjour 2017/01/16 19:28:41 This is a temporary solution. For now I want to st
EhsanK 2017/01/16 20:23:11 sgtm. The benefit of doing (2) is not sending unus
780 return; 780 return;
781 781
782 content_view_core_->UpdateImeAdapter( 782 content_view_core_->UpdateImeAdapter(
EhsanK 2017/01/13 21:55:24 Regarding the second point above: Here I think the
asimjour 2017/01/16 19:28:41 The UpdateImeAdapter is doing more, but other chan
EhsanK 2017/01/16 20:23:11 Acknowledged.
783 GetNativeImeAdapter(), static_cast<int>(state.type), state.flags, 783 GetNativeImeAdapter(), static_cast<int>(state.type), state.flags,
784 state.mode, state.value, state.selection_start, state.selection_end, 784 state.mode, state.value, state.selection_start, state.selection_end,
785 state.composition_start, state.composition_end, state.show_ime_if_needed, 785 state.composition_start, state.composition_end, state.show_ime_if_needed,
786 state.is_non_ime_change); 786 state.is_non_ime_change);
787 } 787 }
788 788
789 void RenderWidgetHostViewAndroid::UpdateBackgroundColor(SkColor color) { 789 void RenderWidgetHostViewAndroid::UpdateBackgroundColor(SkColor color) {
790 if (cached_background_color_ == color) 790 if (cached_background_color_ == color)
791 return; 791 return;
792 792
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 delete this; 943 delete this;
944 } 944 }
945 945
946 void RenderWidgetHostViewAndroid::SetTooltipText( 946 void RenderWidgetHostViewAndroid::SetTooltipText(
947 const base::string16& tooltip_text) { 947 const base::string16& tooltip_text) {
948 // Tooltips don't makes sense on Android. 948 // Tooltips don't makes sense on Android.
949 } 949 }
950 950
951 void RenderWidgetHostViewAndroid::SelectionChanged(const base::string16& text, 951 void RenderWidgetHostViewAndroid::SelectionChanged(const base::string16& text,
952 size_t offset, 952 size_t offset,
953 const gfx::Range& range) { 953 const gfx::Range& range) {
EhsanK 2017/01/13 21:55:23 Similar to the OnUpdateTextInputStateCalled() abov
954 RenderWidgetHostViewBase::SelectionChanged(text, offset, range); 954 RenderWidgetHostViewBase::SelectionChanged(text, offset, range);
955 955
956 if (!content_view_core_) 956 if (!content_view_core_ || is_in_vr_)
957 return; 957 return;
958 if (range.is_empty()) { 958 if (range.is_empty()) {
959 content_view_core_->OnSelectionChanged(""); 959 content_view_core_->OnSelectionChanged("");
960 return; 960 return;
961 } 961 }
962 962
963 DCHECK(!text.empty()); 963 DCHECK(!text.empty());
964 size_t pos = range.GetMin() - offset; 964 size_t pos = range.GetMin() - offset;
965 size_t n = range.length(); 965 size_t n = range.length();
966 966
967 DCHECK(pos + n <= text.length()) << "The text can not fully cover range."; 967 DCHECK(pos + n <= text.length()) << "The text can not fully cover range.";
968 if (pos >= text.length()) { 968 if (pos >= text.length()) {
969 NOTREACHED() << "The text can not cover range."; 969 NOTREACHED() << "The text can not cover range.";
970 return; 970 return;
971 } 971 }
972 972
973 std::string utf8_selection = base::UTF16ToUTF8(text.substr(pos, n)); 973 std::string utf8_selection = base::UTF16ToUTF8(text.substr(pos, n));
974 974
975 content_view_core_->OnSelectionChanged(utf8_selection); 975 content_view_core_->OnSelectionChanged(utf8_selection);
EhsanK 2017/01/13 21:55:23 I am not familiar with Java side, but, looking at
asimjour 2017/01/16 19:28:40 the CL description is updated.
EhsanK 2017/01/16 20:23:11 Acknowledged.
976 } 976 }
977 977
978 void RenderWidgetHostViewAndroid::SetBackgroundColor(SkColor color) { 978 void RenderWidgetHostViewAndroid::SetBackgroundColor(SkColor color) {
979 RenderWidgetHostViewBase::SetBackgroundColor(color); 979 RenderWidgetHostViewBase::SetBackgroundColor(color);
980 host_->SetBackgroundOpaque(GetBackgroundOpaque()); 980 host_->SetBackgroundOpaque(GetBackgroundOpaque());
981 UpdateBackgroundColor(color); 981 UpdateBackgroundColor(color);
982 } 982 }
983 983
984 void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( 984 void RenderWidgetHostViewAndroid::CopyFromCompositingSurface(
985 const gfx::Rect& src_subrect, 985 const gfx::Rect& src_subrect,
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 // switches to Surfaces and the Browser's commit isn't in the critical path. 1532 // switches to Surfaces and the Browser's commit isn't in the critical path.
1533 args.deadline = sync_compositor_ ? base::TimeTicks() 1533 args.deadline = sync_compositor_ ? base::TimeTicks()
1534 : args.frame_time + (args.interval * 0.6); 1534 : args.frame_time + (args.interval * 0.6);
1535 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); 1535 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args));
1536 if (sync_compositor_) 1536 if (sync_compositor_)
1537 sync_compositor_->DidSendBeginFrame(view_.GetWindowAndroid()); 1537 sync_compositor_->DidSendBeginFrame(view_.GetWindowAndroid());
1538 } 1538 }
1539 1539
1540 bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { 1540 bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) {
1541 bool needs_animate = false; 1541 bool needs_animate = false;
1542 if (overscroll_controller_ && is_showing_overscroll_glow_) { 1542 if (overscroll_controller_ && !is_in_vr_) {
1543 needs_animate |= overscroll_controller_->Animate( 1543 needs_animate |= overscroll_controller_->Animate(
1544 frame_time, content_view_core_->GetViewAndroid()->GetLayer()); 1544 frame_time, content_view_core_->GetViewAndroid()->GetLayer());
1545 } 1545 }
1546 if (selection_controller_) 1546 if (selection_controller_)
1547 needs_animate |= selection_controller_->Animate(frame_time); 1547 needs_animate |= selection_controller_->Animate(frame_time);
1548 return needs_animate; 1548 return needs_animate;
1549 } 1549 }
1550 1550
1551 void RenderWidgetHostViewAndroid::RequestDisallowInterceptTouchEvent() { 1551 void RenderWidgetHostViewAndroid::RequestDisallowInterceptTouchEvent() {
1552 if (content_view_core_) 1552 if (content_view_core_)
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1747 1747
1748 void RenderWidgetHostViewAndroid::SetTextHandlesTemporarilyHidden(bool hidden) { 1748 void RenderWidgetHostViewAndroid::SetTextHandlesTemporarilyHidden(bool hidden) {
1749 if (selection_controller_) 1749 if (selection_controller_)
1750 selection_controller_->SetTemporarilyHidden(hidden); 1750 selection_controller_->SetTemporarilyHidden(hidden);
1751 } 1751 }
1752 1752
1753 SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const { 1753 SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const {
1754 return cached_background_color_; 1754 return cached_background_color_;
1755 } 1755 }
1756 1756
1757 void RenderWidgetHostViewAndroid::SetShowingOverscrollGlow(bool showing_glow) { 1757 void RenderWidgetHostViewAndroid::SetIsInVR(bool is_in_vr) {
1758 is_showing_overscroll_glow_ = showing_glow; 1758 is_in_vr_ = is_in_vr;
1759 } 1759 }
1760 1760
1761 void RenderWidgetHostViewAndroid::DidOverscroll( 1761 void RenderWidgetHostViewAndroid::DidOverscroll(
1762 const ui::DidOverscrollParams& params) { 1762 const ui::DidOverscrollParams& params) {
1763 if (sync_compositor_) 1763 if (sync_compositor_)
1764 sync_compositor_->DidOverscroll(params); 1764 sync_compositor_->DidOverscroll(params);
1765 1765
1766 if (!content_view_core_ || !is_showing_) 1766 if (!content_view_core_ || !is_showing_)
1767 return; 1767 return;
1768 1768
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
2072 if (!window_android) 2072 if (!window_android)
2073 return; 2073 return;
2074 2074
2075 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); 2075 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor();
2076 if (!compositor) 2076 if (!compositor)
2077 return; 2077 return;
2078 2078
2079 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( 2079 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>(
2080 overscroll_refresh_handler, compositor, 2080 overscroll_refresh_handler, compositor,
2081 ui::GetScaleFactorForNativeView(GetNativeView())); 2081 ui::GetScaleFactorForNativeView(GetNativeView()));
2082 is_showing_overscroll_glow_ = true;
2083 } 2082 }
2084 2083
2085 } // namespace content 2084 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698