fix: propagate layout call to all children of InspectableWebContentsViewViews
(#39994)
Propagate layout call to all children of InspectableWebContentsViewViews. When BrowserView bounds are set from js, those might not trigger layout immediately, sometimes propagating InvalidateLayout call to parent. View is marked as needing layout, expecting to receive it from parent on next layout call. The problem is that BrowserView's view is added as child of InspectableWebContentsViews which does not call setBounds (which would trigger layout) on all of it's children when doing it's layout, so it skips propagating Layout call to its children BrowserViews views, even though those were marked as needing layout. Call base class View::Layout which will iterate over views' children and call Layout on those that were marked as needing them. Fixes #39993.
This commit is contained in:
parent
43a646ed85
commit
94585f5889
1 changed files with 5 additions and 0 deletions
|
@ -216,6 +216,8 @@ const std::u16string InspectableWebContentsViewViews::GetTitle() {
|
|||
void InspectableWebContentsViewViews::Layout() {
|
||||
if (!devtools_web_view_->GetVisible()) {
|
||||
contents_web_view_->SetBoundsRect(GetContentsBounds());
|
||||
// Propagate layout call to all children, for example browser views.
|
||||
View::Layout();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -233,6 +235,9 @@ void InspectableWebContentsViewViews::Layout() {
|
|||
devtools_web_view_->SetBoundsRect(new_devtools_bounds);
|
||||
contents_web_view_->SetBoundsRect(new_contents_bounds);
|
||||
|
||||
// Propagate layout call to all children, for example browser views.
|
||||
View::Layout();
|
||||
|
||||
if (GetDelegate())
|
||||
GetDelegate()->DevToolsResized();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue