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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 1877073003: Respect the order of input messages from browser to renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moved DCHECK inside if scope Created 4 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 #include "content/renderer/context_menu_params_builder.h" 89 #include "content/renderer/context_menu_params_builder.h"
90 #include "content/renderer/devtools/devtools_agent.h" 90 #include "content/renderer/devtools/devtools_agent.h"
91 #include "content/renderer/dom_automation_controller.h" 91 #include "content/renderer/dom_automation_controller.h"
92 #include "content/renderer/effective_connection_type_helper.h" 92 #include "content/renderer/effective_connection_type_helper.h"
93 #include "content/renderer/external_popup_menu.h" 93 #include "content/renderer/external_popup_menu.h"
94 #include "content/renderer/gpu/gpu_benchmarking_extension.h" 94 #include "content/renderer/gpu/gpu_benchmarking_extension.h"
95 #include "content/renderer/history_controller.h" 95 #include "content/renderer/history_controller.h"
96 #include "content/renderer/history_serialization.h" 96 #include "content/renderer/history_serialization.h"
97 #include "content/renderer/image_downloader/image_downloader_impl.h" 97 #include "content/renderer/image_downloader/image_downloader_impl.h"
98 #include "content/renderer/ime_event_guard.h" 98 #include "content/renderer/ime_event_guard.h"
99 #include "content/renderer/input/input_handler_manager.h"
99 #include "content/renderer/internal_document_state_data.h" 100 #include "content/renderer/internal_document_state_data.h"
100 #include "content/renderer/manifest/manifest_manager.h" 101 #include "content/renderer/manifest/manifest_manager.h"
101 #include "content/renderer/media/audio_device_factory.h" 102 #include "content/renderer/media/audio_device_factory.h"
102 #include "content/renderer/media/media_permission_dispatcher.h" 103 #include "content/renderer/media/media_permission_dispatcher.h"
103 #include "content/renderer/media/media_stream_dispatcher.h" 104 #include "content/renderer/media/media_stream_dispatcher.h"
104 #include "content/renderer/media/media_stream_renderer_factory_impl.h" 105 #include "content/renderer/media/media_stream_renderer_factory_impl.h"
105 #include "content/renderer/media/midi_dispatcher.h" 106 #include "content/renderer/media/midi_dispatcher.h"
106 #include "content/renderer/media/render_media_log.h" 107 #include "content/renderer/media/render_media_log.h"
107 #include "content/renderer/media/renderer_webmediaplayer_delegate.h" 108 #include "content/renderer/media/renderer_webmediaplayer_delegate.h"
108 #include "content/renderer/media/user_media_client_impl.h" 109 #include "content/renderer/media/user_media_client_impl.h"
(...skipping 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after
1117 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); 1118 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone());
1118 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); 1119 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct());
1119 1120
1120 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_); 1121 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_);
1121 1122
1122 #if defined(VIDEO_HOLE) 1123 #if defined(VIDEO_HOLE)
1123 if (contains_media_player_) 1124 if (contains_media_player_)
1124 render_view_->UnregisterVideoHoleFrame(this); 1125 render_view_->UnregisterVideoHoleFrame(this);
1125 #endif 1126 #endif
1126 1127
1128 // Unregister from InputHandlerManager. render_thread may be NULL in tests.
1129 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1130 InputHandlerManager* input_handler_manager =
1131 render_thread ? render_thread->input_handler_manager() : nullptr;
1132 if (input_handler_manager)
1133 input_handler_manager->UnregisterRoutingID(GetRoutingID());
1134
1127 if (is_main_frame_) { 1135 if (is_main_frame_) {
1128 // Ensure the RenderView doesn't point to this object, once it is destroyed. 1136 // Ensure the RenderView doesn't point to this object, once it is destroyed.
1129 // TODO(nasko): Add a check that the |main_render_frame_| of |render_view_| 1137 // TODO(nasko): Add a check that the |main_render_frame_| of |render_view_|
1130 // is |this|, once the object is no longer leaked. 1138 // is |this|, once the object is no longer leaked.
1131 // See https://crbug.com/464764. 1139 // See https://crbug.com/464764.
1132 render_view_->main_render_frame_ = nullptr; 1140 render_view_->main_render_frame_ = nullptr;
1133 } 1141 }
1134 1142
1135 render_view_->UnregisterRenderFrame(this); 1143 render_view_->UnregisterRenderFrame(this);
1136 g_routing_id_frame_map.Get().erase(routing_id_); 1144 g_routing_id_frame_map.Get().erase(routing_id_);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1177 // DevToolsAgent is a RenderFrameObserver, and will destruct itself 1185 // DevToolsAgent is a RenderFrameObserver, and will destruct itself
1178 // when |this| is deleted. 1186 // when |this| is deleted.
1179 devtools_agent_ = new DevToolsAgent(this); 1187 devtools_agent_ = new DevToolsAgent(this);
1180 } 1188 }
1181 1189
1182 RegisterMojoServices(); 1190 RegisterMojoServices();
1183 1191
1184 // We delay calling this until we have the WebFrame so that any observer or 1192 // We delay calling this until we have the WebFrame so that any observer or
1185 // embedder can call GetWebFrame on any RenderFrame. 1193 // embedder can call GetWebFrame on any RenderFrame.
1186 GetContentClient()->renderer()->RenderFrameCreated(this); 1194 GetContentClient()->renderer()->RenderFrameCreated(this);
1195
1196 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1197 // render_thread may be NULL in tests.
1198 InputHandlerManager* input_handler_manager =
1199 render_thread ? render_thread->input_handler_manager() : nullptr;
1200 if (input_handler_manager) {
1201 DCHECK(render_view_->HasAddedInputHandler());
1202 input_handler_manager->RegisterRoutingID(GetRoutingID());
1203 }
1187 } 1204 }
1188 1205
1189 void RenderFrameImpl::InitializeBlameContext(RenderFrameImpl* parent_frame) { 1206 void RenderFrameImpl::InitializeBlameContext(RenderFrameImpl* parent_frame) {
1190 DCHECK(!blame_context_); 1207 DCHECK(!blame_context_);
1191 blame_context_ = new FrameBlameContext(this, parent_frame); 1208 blame_context_ = new FrameBlameContext(this, parent_frame);
1192 blame_context_->Initialize(); 1209 blame_context_->Initialize();
1193 } 1210 }
1194 1211
1195 RenderWidget* RenderFrameImpl::GetRenderWidget() { 1212 RenderWidget* RenderFrameImpl::GetRenderWidget() {
1196 RenderFrameImpl* local_root = 1213 RenderFrameImpl* local_root =
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
1454 OnAdjustSelectionByCharacterOffset) 1471 OnAdjustSelectionByCharacterOffset)
1455 IPC_MESSAGE_HANDLER(InputMsg_Unselect, OnUnselect) 1472 IPC_MESSAGE_HANDLER(InputMsg_Unselect, OnUnselect)
1456 IPC_MESSAGE_HANDLER(InputMsg_MoveRangeSelectionExtent, 1473 IPC_MESSAGE_HANDLER(InputMsg_MoveRangeSelectionExtent,
1457 OnMoveRangeSelectionExtent) 1474 OnMoveRangeSelectionExtent)
1458 IPC_MESSAGE_HANDLER(InputMsg_Replace, OnReplace) 1475 IPC_MESSAGE_HANDLER(InputMsg_Replace, OnReplace)
1459 IPC_MESSAGE_HANDLER(InputMsg_ReplaceMisspelling, OnReplaceMisspelling) 1476 IPC_MESSAGE_HANDLER(InputMsg_ReplaceMisspelling, OnReplaceMisspelling)
1460 IPC_MESSAGE_HANDLER(InputMsg_ExtendSelectionAndDelete, 1477 IPC_MESSAGE_HANDLER(InputMsg_ExtendSelectionAndDelete,
1461 OnExtendSelectionAndDelete) 1478 OnExtendSelectionAndDelete)
1462 IPC_MESSAGE_HANDLER(InputMsg_SetCompositionFromExistingText, 1479 IPC_MESSAGE_HANDLER(InputMsg_SetCompositionFromExistingText,
1463 OnSetCompositionFromExistingText) 1480 OnSetCompositionFromExistingText)
1481 IPC_MESSAGE_HANDLER(InputMsg_SetEditableSelectionOffsets,
1482 OnSetEditableSelectionOffsets)
1464 IPC_MESSAGE_HANDLER(InputMsg_ExecuteNoValueEditCommand, 1483 IPC_MESSAGE_HANDLER(InputMsg_ExecuteNoValueEditCommand,
1465 OnExecuteNoValueEditCommand) 1484 OnExecuteNoValueEditCommand)
1466 IPC_MESSAGE_HANDLER(FrameMsg_CSSInsertRequest, OnCSSInsertRequest) 1485 IPC_MESSAGE_HANDLER(FrameMsg_CSSInsertRequest, OnCSSInsertRequest)
1467 IPC_MESSAGE_HANDLER(FrameMsg_AddMessageToConsole, OnAddMessageToConsole) 1486 IPC_MESSAGE_HANDLER(FrameMsg_AddMessageToConsole, OnAddMessageToConsole)
1468 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequest, 1487 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequest,
1469 OnJavaScriptExecuteRequest) 1488 OnJavaScriptExecuteRequest)
1470 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestForTests, 1489 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestForTests,
1471 OnJavaScriptExecuteRequestForTests) 1490 OnJavaScriptExecuteRequestForTests)
1472 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestInIsolatedWorld, 1491 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestInIsolatedWorld,
1473 OnJavaScriptExecuteRequestInIsolatedWorld) 1492 OnJavaScriptExecuteRequestInIsolatedWorld)
1474 IPC_MESSAGE_HANDLER(FrameMsg_VisualStateRequest, 1493 IPC_MESSAGE_HANDLER(FrameMsg_VisualStateRequest,
1475 OnVisualStateRequest) 1494 OnVisualStateRequest)
1476 IPC_MESSAGE_HANDLER(FrameMsg_SetEditableSelectionOffsets,
1477 OnSetEditableSelectionOffsets)
1478 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload) 1495 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload)
1479 IPC_MESSAGE_HANDLER(FrameMsg_ReloadLoFiImages, OnReloadLoFiImages) 1496 IPC_MESSAGE_HANDLER(FrameMsg_ReloadLoFiImages, OnReloadLoFiImages)
1480 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest, 1497 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest,
1481 OnTextSurroundingSelectionRequest) 1498 OnTextSurroundingSelectionRequest)
1482 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode, 1499 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode,
1483 OnSetAccessibilityMode) 1500 OnSetAccessibilityMode)
1484 IPC_MESSAGE_HANDLER(AccessibilityMsg_SnapshotTree, 1501 IPC_MESSAGE_HANDLER(AccessibilityMsg_SnapshotTree,
1485 OnSnapshotAccessibilityTree) 1502 OnSnapshotAccessibilityTree)
1486 IPC_MESSAGE_HANDLER(FrameMsg_UpdateOpener, OnUpdateOpener) 1503 IPC_MESSAGE_HANDLER(FrameMsg_UpdateOpener, OnUpdateOpener)
1487 IPC_MESSAGE_HANDLER(FrameMsg_CommitNavigation, OnCommitNavigation) 1504 IPC_MESSAGE_HANDLER(FrameMsg_CommitNavigation, OnCommitNavigation)
(...skipping 4616 matching lines...) Expand 10 before | Expand all | Expand 10 after
6104 // event target. Potentially a Pepper plugin will receive the event. 6121 // event target. Potentially a Pepper plugin will receive the event.
6105 // In order to tell whether a plugin gets the last mouse event and which it 6122 // In order to tell whether a plugin gets the last mouse event and which it
6106 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6123 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6107 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6124 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6108 // |pepper_last_mouse_event_target_|. 6125 // |pepper_last_mouse_event_target_|.
6109 pepper_last_mouse_event_target_ = nullptr; 6126 pepper_last_mouse_event_target_ = nullptr;
6110 #endif 6127 #endif
6111 } 6128 }
6112 6129
6113 } // namespace content 6130 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698