[tbb-commits] [tor-browser] 16/311: Bug 1749745 - Initialize AndroidCompositorWidget with initial size. r=aosmond, agi a=RyanVM, dsmith
gitolite role
git at cupani.torproject.org
Tue Apr 26 15:26:56 UTC 2022
This is an automated email from the git hooks/post-receive script.
pierov pushed a commit to branch geckoview-99.0.1-11.0-1
in repository tor-browser.
commit d2f7af809f5f9e9724de682537870511c8e7fa98
Author: Jamie Nicol <jnicol at mozilla.com>
AuthorDate: Wed Jan 12 16:43:51 2022 +0000
Bug 1749745 - Initialize AndroidCompositorWidget with initial size. r=aosmond,agi a=RyanVM,dsmith
Since bug 1747116 landed, if the compositor is reinitialized whilst
the Android Surface is invalid, we avoid crashing when querying the
window size and instead keep the compositor in a paused state.
However, in this case we will believe the widget size is 0x0 until the
compositor is eventually resumed. If webrender receives a display list
during this time, it will set an empty view rect. This means when the
compositor is subsequently resumed webrender believes it has nothing
to render, and we get stuck in a state where nothing is ever rendered
to the screen.
This patch initializes the AndroidCompositorWidget with an initial
size, which avoids the problem.
Differential Revision: https://phabricator.services.mozilla.com/D135711
---
widget/android/AndroidCompositorWidget.cpp | 2 +-
widget/android/PlatformWidgetTypes.ipdlh | 1 +
widget/android/nsWindow.cpp | 3 ++-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/widget/android/AndroidCompositorWidget.cpp b/widget/android/AndroidCompositorWidget.cpp
index 217063637f0d9..24d315a4e345c 100644
--- a/widget/android/AndroidCompositorWidget.cpp
+++ b/widget/android/AndroidCompositorWidget.cpp
@@ -20,7 +20,7 @@ AndroidCompositorWidget::AndroidCompositorWidget(
mWidgetId(aInitData.widgetId()),
mNativeWindow(nullptr),
mFormat(WINDOW_FORMAT_RGBA_8888),
- mClientSize(0, 0) {}
+ mClientSize(aInitData.clientSize()) {}
AndroidCompositorWidget::~AndroidCompositorWidget() {
if (mNativeWindow) {
diff --git a/widget/android/PlatformWidgetTypes.ipdlh b/widget/android/PlatformWidgetTypes.ipdlh
index c28d14ce3b21c..cc48651479a04 100644
--- a/widget/android/PlatformWidgetTypes.ipdlh
+++ b/widget/android/PlatformWidgetTypes.ipdlh
@@ -14,6 +14,7 @@ namespace widget {
struct AndroidCompositorWidgetInitData
{
int32_t widgetId;
+ LayoutDeviceIntSize clientSize;
};
union CompositorWidgetInitData
diff --git a/widget/android/nsWindow.cpp b/widget/android/nsWindow.cpp
index 42b30a62e9cf3..98733ff76a6f4 100644
--- a/widget/android/nsWindow.cpp
+++ b/widget/android/nsWindow.cpp
@@ -2585,7 +2585,8 @@ void nsWindow::SetCompositorWidgetDelegate(CompositorWidgetDelegate* delegate) {
void nsWindow::GetCompositorWidgetInitData(
mozilla::widget::CompositorWidgetInitData* aInitData) {
- *aInitData = mozilla::widget::AndroidCompositorWidgetInitData(mWidgetId);
+ *aInitData = mozilla::widget::AndroidCompositorWidgetInitData(
+ mWidgetId, GetClientSize());
}
bool nsWindow::WidgetPaintsBackground() {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tbb-commits
mailing list