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

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: add DCHECKs for thread 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 #include "content/renderer/context_menu_params_builder.h" 91 #include "content/renderer/context_menu_params_builder.h"
92 #include "content/renderer/devtools/devtools_agent.h" 92 #include "content/renderer/devtools/devtools_agent.h"
93 #include "content/renderer/dom_automation_controller.h" 93 #include "content/renderer/dom_automation_controller.h"
94 #include "content/renderer/effective_connection_type_helper.h" 94 #include "content/renderer/effective_connection_type_helper.h"
95 #include "content/renderer/external_popup_menu.h" 95 #include "content/renderer/external_popup_menu.h"
96 #include "content/renderer/gpu/gpu_benchmarking_extension.h" 96 #include "content/renderer/gpu/gpu_benchmarking_extension.h"
97 #include "content/renderer/history_controller.h" 97 #include "content/renderer/history_controller.h"
98 #include "content/renderer/history_serialization.h" 98 #include "content/renderer/history_serialization.h"
99 #include "content/renderer/image_downloader/image_downloader_impl.h" 99 #include "content/renderer/image_downloader/image_downloader_impl.h"
100 #include "content/renderer/ime_event_guard.h" 100 #include "content/renderer/ime_event_guard.h"
101 #include "content/renderer/input/input_handler_manager.h"
101 #include "content/renderer/internal_document_state_data.h" 102 #include "content/renderer/internal_document_state_data.h"
102 #include "content/renderer/manifest/manifest_manager.h" 103 #include "content/renderer/manifest/manifest_manager.h"
103 #include "content/renderer/media/audio_device_factory.h" 104 #include "content/renderer/media/audio_device_factory.h"
104 #include "content/renderer/media/media_permission_dispatcher.h" 105 #include "content/renderer/media/media_permission_dispatcher.h"
105 #include "content/renderer/media/media_stream_dispatcher.h" 106 #include "content/renderer/media/media_stream_dispatcher.h"
106 #include "content/renderer/media/media_stream_renderer_factory_impl.h" 107 #include "content/renderer/media/media_stream_renderer_factory_impl.h"
107 #include "content/renderer/media/midi_dispatcher.h" 108 #include "content/renderer/media/midi_dispatcher.h"
108 #include "content/renderer/media/render_media_log.h" 109 #include "content/renderer/media/render_media_log.h"
109 #include "content/renderer/media/renderer_webmediaplayer_delegate.h" 110 #include "content/renderer/media/renderer_webmediaplayer_delegate.h"
110 #include "content/renderer/media/user_media_client_impl.h" 111 #include "content/renderer/media/user_media_client_impl.h"
(...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); 1138 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone());
1138 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); 1139 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct());
1139 1140
1140 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_); 1141 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_);
1141 1142
1142 #if defined(VIDEO_HOLE) 1143 #if defined(VIDEO_HOLE)
1143 if (contains_media_player_) 1144 if (contains_media_player_)
1144 render_view_->UnregisterVideoHoleFrame(this); 1145 render_view_->UnregisterVideoHoleFrame(this);
1145 #endif 1146 #endif
1146 1147
1148 // Unregister from InputHandlerManager. render_thread may be NULL in tests.
1149 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1150 InputHandlerManager* input_handler_manager =
1151 render_thread ? render_thread->input_handler_manager() : nullptr;
1152 if (input_handler_manager)
1153 input_handler_manager->UnregisterRoutingID(GetRoutingID());
1154
1147 if (is_main_frame_) { 1155 if (is_main_frame_) {
1148 // Ensure the RenderView doesn't point to this object, once it is destroyed. 1156 // Ensure the RenderView doesn't point to this object, once it is destroyed.
1149 // TODO(nasko): Add a check that the |main_render_frame_| of |render_view_| 1157 // TODO(nasko): Add a check that the |main_render_frame_| of |render_view_|
1150 // is |this|, once the object is no longer leaked. 1158 // is |this|, once the object is no longer leaked.
1151 // See https://crbug.com/464764. 1159 // See https://crbug.com/464764.
1152 render_view_->main_render_frame_ = nullptr; 1160 render_view_->main_render_frame_ = nullptr;
1153 } 1161 }
1154 1162
1155 render_view_->UnregisterRenderFrame(this); 1163 render_view_->UnregisterRenderFrame(this);
1156 g_routing_id_frame_map.Get().erase(routing_id_); 1164 g_routing_id_frame_map.Get().erase(routing_id_);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 // DevToolsAgent is a RenderFrameObserver, and will destruct itself 1205 // DevToolsAgent is a RenderFrameObserver, and will destruct itself
1198 // when |this| is deleted. 1206 // when |this| is deleted.
1199 devtools_agent_ = new DevToolsAgent(this); 1207 devtools_agent_ = new DevToolsAgent(this);
1200 } 1208 }
1201 1209
1202 RegisterMojoServices(); 1210 RegisterMojoServices();
1203 1211
1204 // We delay calling this until we have the WebFrame so that any observer or 1212 // We delay calling this until we have the WebFrame so that any observer or
1205 // embedder can call GetWebFrame on any RenderFrame. 1213 // embedder can call GetWebFrame on any RenderFrame.
1206 GetContentClient()->renderer()->RenderFrameCreated(this); 1214 GetContentClient()->renderer()->RenderFrameCreated(this);
1215
1216 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1217 // render_thread may be NULL in tests.
1218 InputHandlerManager* input_handler_manager =
1219 render_thread ? render_thread->input_handler_manager() : nullptr;
1220 if (input_handler_manager) {
1221 DCHECK(render_view_->HasAddedInputHandler());
1222 input_handler_manager->RegisterRoutingID(GetRoutingID());
1223 }
1207 } 1224 }
1208 1225
1209 void RenderFrameImpl::InitializeBlameContext(RenderFrameImpl* parent_frame) { 1226 void RenderFrameImpl::InitializeBlameContext(RenderFrameImpl* parent_frame) {
1210 DCHECK(!blame_context_); 1227 DCHECK(!blame_context_);
1211 blame_context_ = new FrameBlameContext(this, parent_frame); 1228 blame_context_ = new FrameBlameContext(this, parent_frame);
1212 blame_context_->Initialize(); 1229 blame_context_->Initialize();
1213 } 1230 }
1214 1231
1215 RenderWidget* RenderFrameImpl::GetRenderWidget() { 1232 RenderWidget* RenderFrameImpl::GetRenderWidget() {
1216 RenderFrameImpl* local_root = 1233 RenderFrameImpl* local_root =
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
1474 OnAdjustSelectionByCharacterOffset) 1491 OnAdjustSelectionByCharacterOffset)
1475 IPC_MESSAGE_HANDLER(InputMsg_Unselect, OnUnselect) 1492 IPC_MESSAGE_HANDLER(InputMsg_Unselect, OnUnselect)
1476 IPC_MESSAGE_HANDLER(InputMsg_MoveRangeSelectionExtent, 1493 IPC_MESSAGE_HANDLER(InputMsg_MoveRangeSelectionExtent,
1477 OnMoveRangeSelectionExtent) 1494 OnMoveRangeSelectionExtent)
1478 IPC_MESSAGE_HANDLER(InputMsg_Replace, OnReplace) 1495 IPC_MESSAGE_HANDLER(InputMsg_Replace, OnReplace)
1479 IPC_MESSAGE_HANDLER(InputMsg_ReplaceMisspelling, OnReplaceMisspelling) 1496 IPC_MESSAGE_HANDLER(InputMsg_ReplaceMisspelling, OnReplaceMisspelling)
1480 IPC_MESSAGE_HANDLER(InputMsg_ExtendSelectionAndDelete, 1497 IPC_MESSAGE_HANDLER(InputMsg_ExtendSelectionAndDelete,
1481 OnExtendSelectionAndDelete) 1498 OnExtendSelectionAndDelete)
1482 IPC_MESSAGE_HANDLER(InputMsg_SetCompositionFromExistingText, 1499 IPC_MESSAGE_HANDLER(InputMsg_SetCompositionFromExistingText,
1483 OnSetCompositionFromExistingText) 1500 OnSetCompositionFromExistingText)
1501 IPC_MESSAGE_HANDLER(InputMsg_SetEditableSelectionOffsets,
1502 OnSetEditableSelectionOffsets)
1484 IPC_MESSAGE_HANDLER(InputMsg_ExecuteNoValueEditCommand, 1503 IPC_MESSAGE_HANDLER(InputMsg_ExecuteNoValueEditCommand,
1485 OnExecuteNoValueEditCommand) 1504 OnExecuteNoValueEditCommand)
1486 IPC_MESSAGE_HANDLER(FrameMsg_CSSInsertRequest, OnCSSInsertRequest) 1505 IPC_MESSAGE_HANDLER(FrameMsg_CSSInsertRequest, OnCSSInsertRequest)
1487 IPC_MESSAGE_HANDLER(FrameMsg_AddMessageToConsole, OnAddMessageToConsole) 1506 IPC_MESSAGE_HANDLER(FrameMsg_AddMessageToConsole, OnAddMessageToConsole)
1488 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequest, 1507 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequest,
1489 OnJavaScriptExecuteRequest) 1508 OnJavaScriptExecuteRequest)
1490 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestForTests, 1509 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestForTests,
1491 OnJavaScriptExecuteRequestForTests) 1510 OnJavaScriptExecuteRequestForTests)
1492 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestInIsolatedWorld, 1511 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestInIsolatedWorld,
1493 OnJavaScriptExecuteRequestInIsolatedWorld) 1512 OnJavaScriptExecuteRequestInIsolatedWorld)
1494 IPC_MESSAGE_HANDLER(FrameMsg_VisualStateRequest, 1513 IPC_MESSAGE_HANDLER(FrameMsg_VisualStateRequest,
1495 OnVisualStateRequest) 1514 OnVisualStateRequest)
1496 IPC_MESSAGE_HANDLER(FrameMsg_SetEditableSelectionOffsets,
1497 OnSetEditableSelectionOffsets)
1498 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload) 1515 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload)
1499 IPC_MESSAGE_HANDLER(FrameMsg_ReloadLoFiImages, OnReloadLoFiImages) 1516 IPC_MESSAGE_HANDLER(FrameMsg_ReloadLoFiImages, OnReloadLoFiImages)
1500 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest, 1517 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest,
1501 OnTextSurroundingSelectionRequest) 1518 OnTextSurroundingSelectionRequest)
1502 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode, 1519 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode,
1503 OnSetAccessibilityMode) 1520 OnSetAccessibilityMode)
1504 IPC_MESSAGE_HANDLER(AccessibilityMsg_SnapshotTree, 1521 IPC_MESSAGE_HANDLER(AccessibilityMsg_SnapshotTree,
1505 OnSnapshotAccessibilityTree) 1522 OnSnapshotAccessibilityTree)
1506 IPC_MESSAGE_HANDLER(FrameMsg_UpdateOpener, OnUpdateOpener) 1523 IPC_MESSAGE_HANDLER(FrameMsg_UpdateOpener, OnUpdateOpener)
1507 IPC_MESSAGE_HANDLER(FrameMsg_CommitNavigation, OnCommitNavigation) 1524 IPC_MESSAGE_HANDLER(FrameMsg_CommitNavigation, OnCommitNavigation)
(...skipping 4710 matching lines...) Expand 10 before | Expand all | Expand 10 after
6218 // event target. Potentially a Pepper plugin will receive the event. 6235 // event target. Potentially a Pepper plugin will receive the event.
6219 // In order to tell whether a plugin gets the last mouse event and which it 6236 // In order to tell whether a plugin gets the last mouse event and which it
6220 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6237 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6221 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6238 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6222 // |pepper_last_mouse_event_target_|. 6239 // |pepper_last_mouse_event_target_|.
6223 pepper_last_mouse_event_target_ = nullptr; 6240 pepper_last_mouse_event_target_ = nullptr;
6224 #endif 6241 #endif
6225 } 6242 }
6226 6243
6227 } // namespace content 6244 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/mus/compositor_mus_connection_unittest.cc ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698