OLD | NEW |
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/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event, | 927 void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event, |
928 const ui::LatencyInfo& latency_info, | 928 const ui::LatencyInfo& latency_info, |
929 bool is_keyboard_shortcut) { | 929 bool is_keyboard_shortcut) { |
930 base::AutoReset<bool> handling_input_event_resetter( | 930 base::AutoReset<bool> handling_input_event_resetter( |
931 &handling_input_event_, true); | 931 &handling_input_event_, true); |
932 if (!input_event) | 932 if (!input_event) |
933 return; | 933 return; |
934 base::AutoReset<WebInputEvent::Type> handling_event_type_resetter( | 934 base::AutoReset<WebInputEvent::Type> handling_event_type_resetter( |
935 &handling_event_type_, input_event->type); | 935 &handling_event_type_, input_event->type); |
936 #if defined(OS_ANDROID) | 936 #if defined(OS_ANDROID) |
937 // On Android, when the delete key or forward delete key is pressed using IME, | 937 // On Android, when a key is pressed or sent from the Keyboard using IME, |
938 // |AdapterInputConnection| generates input key events to make sure all JS | 938 // |AdapterInputConnection| generates input key events to make sure all JS |
939 // listeners that monitor KeyUp and KeyDown events receive the proper key | 939 // listeners that monitor KeyUp and KeyDown events receive the proper key |
940 // code. Since this input key event comes from IME, we need to set the | 940 // code. Since this input key event comes from IME, we need to set the |
941 // IME event guard here to make sure it does not interfere with other IME | 941 // IME event guard here to make sure it does not interfere with other IME |
942 // events. | 942 // events. |
943 scoped_ptr<ImeEventGuard> ime_event_guard_maybe; | 943 scoped_ptr<ImeEventGuard> ime_event_guard_maybe; |
944 if (WebInputEvent::isKeyboardEventType(input_event->type)) { | 944 if (WebInputEvent::isKeyboardEventType(input_event->type)) { |
945 const WebKeyboardEvent& key_event = | 945 const WebKeyboardEvent& key_event = |
946 *static_cast<const WebKeyboardEvent*>(input_event); | 946 *static_cast<const WebKeyboardEvent*>(input_event); |
947 if (key_event.nativeKeyCode == AKEYCODE_FORWARD_DEL || | 947 // Some keys are special and it's essential that no events get blocked. |
948 key_event.nativeKeyCode == AKEYCODE_DEL) { | 948 if (key_event.nativeKeyCode != AKEYCODE_TAB) |
949 ime_event_guard_maybe.reset(new ImeEventGuard(this)); | 949 ime_event_guard_maybe.reset(new ImeEventGuard(this)); |
950 } | |
951 } | 950 } |
952 #endif | 951 #endif |
953 | 952 |
954 base::AutoReset<const ui::LatencyInfo*> resetter(¤t_event_latency_info_, | 953 base::AutoReset<const ui::LatencyInfo*> resetter(¤t_event_latency_info_, |
955 &latency_info); | 954 &latency_info); |
956 | 955 |
957 base::TimeTicks start_time; | 956 base::TimeTicks start_time; |
958 if (base::TimeTicks::IsHighResNowFastAndReliable()) | 957 if (base::TimeTicks::IsHighResNowFastAndReliable()) |
959 start_time = base::TimeTicks::HighResNow(); | 958 start_time = base::TimeTicks::HighResNow(); |
960 | 959 |
(...skipping 1215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2176 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { | 2175 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { |
2177 video_hole_frames_.AddObserver(frame); | 2176 video_hole_frames_.AddObserver(frame); |
2178 } | 2177 } |
2179 | 2178 |
2180 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { | 2179 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { |
2181 video_hole_frames_.RemoveObserver(frame); | 2180 video_hole_frames_.RemoveObserver(frame); |
2182 } | 2181 } |
2183 #endif // defined(VIDEO_HOLE) | 2182 #endif // defined(VIDEO_HOLE) |
2184 | 2183 |
2185 } // namespace content | 2184 } // namespace content |
OLD | NEW |