Re: [chromium-dev] how event routed to Widget ?

44 views
Skip to first unread message

Scott Violet

unread,
Jul 24, 2018, 11:49:57 AM7/24/18
to yus...@gmail.com, chromium-dev
Is this a release or debug build?

On Windows the flow of native events is something like: HWNDMessageHandler -> DesktopNativeWidgetAura -> Widget -> Views .

  -Scott

On Tue, Jul 24, 2018 at 7:00 AM Shang Yu <yus...@gmail.com> wrote:
Hi dear all,
I'm learning ui event processing , can't find how events are routed to widget , take the following stack trace as an example,
In my understanding , widget never register it in aura window hierarchy . how views_examples_exe!views::Widget::OnMouseEvent get called ?  many thanks !!!

00 00007ff7`401bab58 : 00000000`00000008 00000000`00000008 00000000`00000000 00000093`e054e1f8 : views_examples_exe!views::examples::BoxLayoutExample::ButtonPressed [c:\chromium\master\src\ui\views\examples\box_layout_example.cc @ 343] 
01 00007ff7`40033ff0 : 00000093`e054e120 00007ff7`400d323f 1fffffff`ffffffff 00007ff7`3ff8b787 : views_examples_exe!views::Button::OnMouseReleased+0x80 [c:\chromium\master\src\ui\views\controls\button\button.cc @ 239] 
02 00007ff7`401b5beb : 00000093`e054e140 00007ff7`4002b8a2 00000093`e054e340 00007ff7`40049540 : views_examples_exe!views::InkDropHostView::OnMouseEvent+0xaa [c:\chromium\master\src\ui\views\animation\ink_drop_host_view.cc @ 280] 
03 00007ff7`401b7faf : 0000be3e`8a15f7fd 000001f9`9a5d2a58 00000000`00000000 00000093`e054e1f8 : views_examples_exe!ui::ScopedTargetHandler::OnEvent+0x45 [c:\chromium\master\src\ui\events\scoped_target_handler.cc @ 34] 
04 00007ff7`401b7d3f : 000001f9`9a5bf950 00000000`00000000 000001f9`9a5d2a30 00000093`e054e340 : views_examples_exe!ui::EventDispatcher::DispatchEvent+0x3b [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 192] 
05 00007ff7`401b7c0f : 000001f9`9a5bf950 000001f9`9a5bf950 00000000`00000000 00007ff7`4001cc1b : views_examples_exe!ui::EventDispatcher::ProcessEvent+0xb9 [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 140] 
06 00007ff7`401b7bab : 00000000`00000000 00007ff7`4001cc1b 00000093`e054e450 00000093`e054ee30 : views_examples_exe!ui::EventDispatcherDelegate::DispatchEventToTarget+0x57 [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 87] 
07 00007ff7`401e53e5 : 00000000`00000000 00000000`00000000 00000000`00000000 00007ffa`8b803070 : views_examples_exe!ui::EventDispatcherDelegate::DispatchEvent+0x117 [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 58] 
08 00007ff7`400502fe : 00000182`000003b1 0000be3e`8a15f2fd 000001f9`9a5c0740 000001f9`9a5c0748 : views_examples_exe!views::internal::RootView::OnMouseReleased+0x7d [c:\chromium\master\src\ui\views\widget\root_view.cc @ 447] 
09 00007ff7`401b7faf : 0000be3e`8a15f38d 000001f9`9a5c0c60 00000000`00000000 00000093`e054e668 : views_examples_exe!views::Widget::OnMouseEvent+0x1de [c:\chromium\master\src\ui\views\widget\widget.cc @ 1220] 
0a 00007ff7`401b7d3f : 00000000`00000001 00000000`00000000 000001f9`98d80000 00007ffa`8e2d2b55 : views_examples_exe!ui::EventDispatcher::DispatchEvent+0x3b [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 192] 
0b 00007ff7`401b7c0f : 00000093`00000004 00007ff7`400d323f 000001f9`42340000 00007ffa`8e2d2b55 : views_examples_exe!ui::EventDispatcher::ProcessEvent+0xb9 [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 140] 
0c 00007ff7`401b7bab : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : views_examples_exe!ui::EventDispatcherDelegate::DispatchEventToTarget+0x57 [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 87] 
0d 00007ff7`403a5831 : 00000093`e054edf0 00000093`e054e918 00000000`00000000 00007ff7`3ff816c6 : views_examples_exe!ui::EventDispatcherDelegate::DispatchEvent+0x117 [c:\chromium\master\src\ui\events\event_dispatcher.cc @ 58] 
0e 00007ff7`401e3cca : 00000093`e054e8f0 00007ff7`3ff80ca8 00000000`00000000 00000000`00000000 : views_examples_exe!ui::EventProcessor::OnEventFromSource+0x161 [c:\chromium\master\src\ui\events\event_processor.cc @ 57] 
0f 00007ff7`401e3a9f : 00000000`00000004 00000012`8be786db 0000be3e`8a15fddd 00000093`e054eb70 : views_examples_exe!ui::EventSource::DeliverEventToSink+0x6a [c:\chromium\master\src\ui\events\event_source.cc @ 107] 
10 00007ff7`401e3860 : 00000093`e054eebc 00000012`8be786e2 0000be3e`8a15fc3d 000001f9`9a5c2e50 : views_examples_exe!ui::EventSource::SendEventToSinkFromRewriter+0x235 [c:\chromium\master\src\ui\events\event_source.cc @ 86] 
11 00007ff7`401f03ac : 00000093`e054edd8 00007ff7`400e974e 00000000`00000000 00007ff7`40417697 : views_examples_exe!ui::EventSource::SendEventToSink+0x10 [c:\chromium\master\src\ui\events\event_source.cc @ 44] 
12 00007ff7`403bd5ba : 00000000`40000062 00000000`00000000 000001f9`98d80000 00007ffa`8e2ce57b : views_examples_exe!views::DesktopWindowTreeHostWin::HandleGestureEvent+0x2c [c:\chromium\master\src\ui\views\widget\desktop_aura\desktop_window_tree_host_win.cc @ 877] 
13 00007ff7`403bc403 : 00000093`e054ef90 00000093`e054f010 00000000`00000000 00000000`00000000 : views_examples_exe!views::HWNDMessageHandler::HandleMouseEventInternal+0x306 [c:\chromium\master\src\ui\views\win\hwnd_message_handler.cc @ 2821] 
14 00007ff7`403bc222 : 00000000`00000202 00000000`000f077a 00000000`00001be8 000001f9`98d8b07c : views_examples_exe!views::HWNDMessageHandler::_ProcessWindowMessage+0xaf [c:\chromium\master\src\ui\views\win\hwnd_message_handler.h @ 319] 
15 00007ff7`40329a02 : 00000000`00000000 00000000`00000001 0000e519`dc1924e5 00000093`e054f110 : views_examples_exe!views::HWNDMessageHandler::OnWndProc+0xac [c:\chromium\master\src\ui\views\win\hwnd_message_handler.cc @ 934] 
16 00007ffa`8b796cc1 : 00000000`80006010 00007ffa`8b7984c0 00007ffa`8b7b04b0 00000000`00000009 : views_examples_exe!base::win::WrappedWindowProc<&gfx::WindowImpl::WndProc>+0xf [c:\chromium\master\src\base\win\wrapped_window_proc.h @ 79] 
17 00007ffa`8b796693 : 0000be3e`8a15e60d 00007ff7`403299f3 00000000`000f077a 00007ff7`00000202 : USER32!UserCallWinProcCheckWow+0x2c1
18 00007ff7`3fff392c : 00000093`e054f410 00000093`00000000 00000093`e054f350 00000000`00070000 : USER32!DispatchMessageWorker+0x1c3
19 00007ff7`3fff35f7 : 00000000`00000000 00000000`00000000 000001f9`98d8b200 00000000`e0540000 : views_examples_exe!base::MessagePumpForUI::ProcessMessageHelper+0xbc [c:\chromium\master\src\base\message_loop\message_pump_win.cc @ 366] 
1a 00007ff7`3fff3178 : 00000000`00000000 00007ff7`4000a9f4 00000093`e054f548 0000be3e`8a15e47d : views_examples_exe!base::MessagePumpForUI::DoRunLoop+0x87 [c:\chromium\master\src\base\message_loop\message_pump_win.cc @ 169] 
1b 00007ff7`3fffe051 : 000001f9`9a585710 00000093`e054f548 000001f9`9a585710 000001f9`98d8c340 : views_examples_exe!base::MessagePumpWin::Run+0x68 [c:\chromium\master\src\base\message_loop\message_pump_win.cc @ 58] 
1c 00007ff7`3fd9120e : 000001f9`98d81f50 00000000`0000007f 000001f9`98d81f50 00000000`00000000 : views_examples_exe!base::RunLoop::Run+0x31 [c:\chromium\master\src\base\run_loop.cc @ 108] 
1d 00007ff7`40838d0c : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : views_examples_exe!main+0x20e [c:\chromium\master\src\ui\views\examples\examples_main.cc @ 121] 
1e 00007ffa`8c273034 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : views_examples_exe!__scrt_common_main_seh+0x10c [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 283] 
1f 00007ffa`8e331431 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : KERNEL32!BaseThreadInitThunk+0x14
20 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/a789f9b2-c784-4c82-a8f8-247d77428c61%40chromium.org.

Shang Yu

unread,
Jul 28, 2018, 8:45:23 AM7/28/18
to Scott Violet, chromium-dev
thanks! I've found the route:
aura::window -> aura::WindowDelegate(views::DesktopNativeWidgetAura)
-> views::internal::NativeWidgetDelegate -> views::Widget ->
views::RootView
>> <https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/a789f9b2-c784-4c82-a8f8-247d77428c61%40chromium.org?utm_medium=email&utm_source=footer>
>> .
>>
>
Reply all
Reply to author
Forward
0 new messages