| 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/browser/renderer_host/render_widget_host_impl.h" | 5 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 6 | 6 |
| 7 #include <math.h> | 7 #include <math.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 #include <tuple> | 10 #include <tuple> |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 #include "content/common/content_switches_internal.h" | 57 #include "content/common/content_switches_internal.h" |
| 58 #include "content/common/cursors/webcursor.h" | 58 #include "content/common/cursors/webcursor.h" |
| 59 #include "content/common/drag_messages.h" | 59 #include "content/common/drag_messages.h" |
| 60 #include "content/common/frame_messages.h" | 60 #include "content/common/frame_messages.h" |
| 61 #include "content/common/host_shared_bitmap_manager.h" | 61 #include "content/common/host_shared_bitmap_manager.h" |
| 62 #include "content/common/input_messages.h" | 62 #include "content/common/input_messages.h" |
| 63 #include "content/common/resize_params.h" | 63 #include "content/common/resize_params.h" |
| 64 #include "content/common/text_input_state.h" | 64 #include "content/common/text_input_state.h" |
| 65 #include "content/common/view_messages.h" | 65 #include "content/common/view_messages.h" |
| 66 #include "content/public/browser/browser_context.h" | 66 #include "content/public/browser/browser_context.h" |
| 67 #include "content/public/browser/keyboard_event_processing_result.h" |
| 67 #include "content/public/browser/native_web_keyboard_event.h" | 68 #include "content/public/browser/native_web_keyboard_event.h" |
| 68 #include "content/public/browser/notification_service.h" | 69 #include "content/public/browser/notification_service.h" |
| 69 #include "content/public/browser/notification_types.h" | 70 #include "content/public/browser/notification_types.h" |
| 70 #include "content/public/browser/render_widget_host_iterator.h" | 71 #include "content/public/browser/render_widget_host_iterator.h" |
| 71 #include "content/public/browser/storage_partition.h" | 72 #include "content/public/browser/storage_partition.h" |
| 72 #include "content/public/common/content_constants.h" | 73 #include "content/public/common/content_constants.h" |
| 73 #include "content/public/common/content_switches.h" | 74 #include "content/public/common/content_switches.h" |
| 74 #include "content/public/common/result_codes.h" | 75 #include "content/public/common/result_codes.h" |
| 75 #include "content/public/common/web_preferences.h" | 76 #include "content/public/common/web_preferences.h" |
| 76 #include "gpu/GLES2/gl2extchromium.h" | 77 #include "gpu/GLES2/gl2extchromium.h" |
| (...skipping 1082 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1159 } | 1160 } |
| 1160 return; | 1161 return; |
| 1161 } | 1162 } |
| 1162 | 1163 |
| 1163 DispatchInputEventWithLatencyInfo(touch_event, &touch_with_latency.latency); | 1164 DispatchInputEventWithLatencyInfo(touch_event, &touch_with_latency.latency); |
| 1164 input_router_->SendTouchEvent(touch_with_latency); | 1165 input_router_->SendTouchEvent(touch_with_latency); |
| 1165 } | 1166 } |
| 1166 | 1167 |
| 1167 void RenderWidgetHostImpl::ForwardKeyboardEvent( | 1168 void RenderWidgetHostImpl::ForwardKeyboardEvent( |
| 1168 const NativeWebKeyboardEvent& key_event) { | 1169 const NativeWebKeyboardEvent& key_event) { |
| 1169 ForwardKeyboardEventWithCommands(key_event, nullptr); | 1170 ForwardKeyboardEventWithCommands(key_event, nullptr, nullptr); |
| 1170 } | 1171 } |
| 1171 | 1172 |
| 1172 void RenderWidgetHostImpl::ForwardKeyboardEventWithCommands( | 1173 void RenderWidgetHostImpl::ForwardKeyboardEventWithCommands( |
| 1173 const NativeWebKeyboardEvent& key_event, | 1174 const NativeWebKeyboardEvent& key_event, |
| 1174 const std::vector<EditCommand>* commands) { | 1175 const std::vector<EditCommand>* commands, |
| 1176 bool* update_event) { |
| 1175 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardKeyboardEvent"); | 1177 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardKeyboardEvent"); |
| 1176 if (owner_delegate_ && | 1178 if (owner_delegate_ && |
| 1177 !owner_delegate_->MayRenderWidgetForwardKeyboardEvent(key_event)) { | 1179 !owner_delegate_->MayRenderWidgetForwardKeyboardEvent(key_event)) { |
| 1178 return; | 1180 return; |
| 1179 } | 1181 } |
| 1180 | 1182 |
| 1181 if (ShouldDropInputEvents()) | 1183 if (ShouldDropInputEvents()) |
| 1182 return; | 1184 return; |
| 1183 | 1185 |
| 1184 if (!process_->HasConnection()) | 1186 if (!process_->HasConnection()) |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1209 DCHECK(key_event.type() == WebKeyboardEvent::RawKeyDown || | 1211 DCHECK(key_event.type() == WebKeyboardEvent::RawKeyDown || |
| 1210 key_event.type() == WebKeyboardEvent::KeyDown); | 1212 key_event.type() == WebKeyboardEvent::KeyDown); |
| 1211 suppress_events_until_keydown_ = false; | 1213 suppress_events_until_keydown_ = false; |
| 1212 } | 1214 } |
| 1213 | 1215 |
| 1214 bool is_shortcut = false; | 1216 bool is_shortcut = false; |
| 1215 | 1217 |
| 1216 // Only pre-handle the key event if it's not handled by the input method. | 1218 // Only pre-handle the key event if it's not handled by the input method. |
| 1217 if (delegate_ && !key_event.skip_in_browser) { | 1219 if (delegate_ && !key_event.skip_in_browser) { |
| 1218 // We need to set |suppress_events_until_keydown_| to true if | 1220 // We need to set |suppress_events_until_keydown_| to true if |
| 1219 // PreHandleKeyboardEvent() returns true, but |this| may already be | 1221 // PreHandleKeyboardEvent() handles the event, but |this| may already be |
| 1220 // destroyed at that time. So set |suppress_events_until_keydown_| true | 1222 // destroyed at that time. So set |suppress_events_until_keydown_| true |
| 1221 // here, then revert it afterwards when necessary. | 1223 // here, then revert it afterwards when necessary. |
| 1222 if (key_event.type() == WebKeyboardEvent::RawKeyDown) | 1224 if (key_event.type() == WebKeyboardEvent::RawKeyDown) |
| 1223 suppress_events_until_keydown_ = true; | 1225 suppress_events_until_keydown_ = true; |
| 1224 | 1226 |
| 1225 // Tab switching/closing accelerators aren't sent to the renderer to avoid | 1227 // Tab switching/closing accelerators aren't sent to the renderer to avoid |
| 1226 // a hung/malicious renderer from interfering. | 1228 // a hung/malicious renderer from interfering. |
| 1227 if (delegate_->PreHandleKeyboardEvent(key_event, &is_shortcut)) | 1229 switch (delegate_->PreHandleKeyboardEvent(key_event)) { |
| 1228 return; | 1230 case KeyboardEventProcessingResult::HANDLED: |
| 1231 return; |
| 1232 #if defined(USE_AURA) |
| 1233 case KeyboardEventProcessingResult::HANDLED_DONT_UPDATE_EVENT: |
| 1234 if (update_event) |
| 1235 *update_event = false; |
| 1236 return; |
| 1237 #endif |
| 1238 case KeyboardEventProcessingResult::NOT_HANDLED: |
| 1239 break; |
| 1240 case KeyboardEventProcessingResult::NOT_HANDLED_IS_SHORTCUT: |
| 1241 is_shortcut = true; |
| 1242 break; |
| 1243 } |
| 1229 | 1244 |
| 1230 if (key_event.type() == WebKeyboardEvent::RawKeyDown) | 1245 if (key_event.type() == WebKeyboardEvent::RawKeyDown) |
| 1231 suppress_events_until_keydown_ = false; | 1246 suppress_events_until_keydown_ = false; |
| 1232 } | 1247 } |
| 1233 | 1248 |
| 1234 if (touch_emulator_ && touch_emulator_->HandleKeyboardEvent(key_event)) | 1249 if (touch_emulator_ && touch_emulator_->HandleKeyboardEvent(key_event)) |
| 1235 return; | 1250 return; |
| 1236 ui::LatencyInfo latency_info(ui::SourceEventType::OTHER); | 1251 ui::LatencyInfo latency_info(ui::SourceEventType::OTHER); |
| 1237 NativeWebKeyboardEventWithLatencyInfo key_event_with_latency(key_event, | 1252 NativeWebKeyboardEventWithLatencyInfo key_event_with_latency(key_event, |
| 1238 latency_info); | 1253 latency_info); |
| (...skipping 1376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2615 // different from the receiver's. | 2630 // different from the receiver's. |
| 2616 file_system_file.url = | 2631 file_system_file.url = |
| 2617 GURL(storage::GetIsolatedFileSystemRootURIString( | 2632 GURL(storage::GetIsolatedFileSystemRootURIString( |
| 2618 file_system_url.origin(), filesystem_id, std::string()) | 2633 file_system_url.origin(), filesystem_id, std::string()) |
| 2619 .append(register_name)); | 2634 .append(register_name)); |
| 2620 file_system_file.filesystem_id = filesystem_id; | 2635 file_system_file.filesystem_id = filesystem_id; |
| 2621 } | 2636 } |
| 2622 } | 2637 } |
| 2623 | 2638 |
| 2624 } // namespace content | 2639 } // namespace content |
| OLD | NEW |