DescriptionFix a crash seen in Desktop Chrome Windows while displaying a bubble
It is not clear as to how this crash occurs. From the callstack, the crash occurs in the context of a bubble getting
created and before it is initialized. In the context of the bubble creation, DesktopNativeWidgetAura instantiates the IME
COM objects which instantiate a local COM server. This causes the main UI loop to be reentered and the bubble is resized in
this context. The WidgetObserver OnWidgetBoundsChanged method in the BubbleDelegateView gets invoked which crashes while
dereferencing the top level widget as it has not been initialized yet.
It is unclear as to how the WidgetObserver is set up here. From the code the BubbleDelegateView observer is setup after the
bubble is initialized, i.e in the BubbleDelegateView::CreateBubble function after the bubble is created.
Fix is to delay the initialization of the IME on Windows until we receive the first IME message or an input
language change notification
BUG=454375
TEST=None at the moment, as it is unclear as to how this crash can happen.
Committed: https://crrev.com/00a39f50c2c623987ab68a4ae253147101d21876
Cr-Commit-Position: refs/heads/master@{#322669}
Patch Set 1 #Patch Set 2 : Delay creation of the IME #
Total comments: 4
Patch Set 3 : Address comments #
Messages
Total messages: 22 (6 generated)
|