forked from mirrors/gecko-dev
In bug 1756700 we added size constraints to the size of the android nsWindow. This avoided hitting webrender's window_size_sanity_check assertion during the geckoview giantScreenshot test when initializing the webrender renderer. However, the sanity check occurs whenever the webrender document size is updated, which can occur when a new display list is sent in addition to renderer initialization. In WebrenderBridgeParent::SetDisplayList we take the window size from CompositorWidget::GetClientSize rather than nsWindow::GetClientSize. On Android, AndroidCompositorWidget calculates its size directly from the Surface/ANativeWindow to avoid having to pass through the main thread when a ResumeAndResize message is sent from the UI thread to the compositor thread. This means the nsWindow size constraints have no effect on the compositor widget size. This patch additionally clamps the max size of AndroidCompositorWidget, meaning we never send too large a size to webrender and therefore avoid the assertion. Differential Revision: https://phabricator.services.mozilla.com/D140492 |
||
|---|---|---|
| .. | ||
| bindings | ||
| jni | ||
| AndroidAlerts.cpp | ||
| AndroidAlerts.h | ||
| AndroidBridge.cpp | ||
| AndroidBridge.h | ||
| AndroidBridgeUtilities.h | ||
| AndroidCompositorWidget.cpp | ||
| AndroidCompositorWidget.h | ||
| AndroidContentController.cpp | ||
| AndroidContentController.h | ||
| AndroidUiThread.cpp | ||
| AndroidUiThread.h | ||
| AndroidView.h | ||
| AndroidVsync.cpp | ||
| AndroidVsync.h | ||
| Base64UtilsSupport.h | ||
| components.conf | ||
| CompositorWidgetChild.cpp | ||
| CompositorWidgetChild.h | ||
| CompositorWidgetParent.cpp | ||
| CompositorWidgetParent.h | ||
| EventDispatcher.cpp | ||
| EventDispatcher.h | ||
| GeckoBatteryManager.h | ||
| GeckoEditableSupport.cpp | ||
| GeckoEditableSupport.h | ||
| GeckoNetworkManager.h | ||
| GeckoProcessManager.cpp | ||
| GeckoProcessManager.h | ||
| GeckoSystemStateListener.h | ||
| GeckoTelemetryDelegate.h | ||
| GeckoViewSupport.h | ||
| GeckoVRManager.h | ||
| GfxInfo.cpp | ||
| GfxInfo.h | ||
| ImageDecoderSupport.cpp | ||
| ImageDecoderSupport.h | ||
| InProcessAndroidCompositorWidget.cpp | ||
| InProcessAndroidCompositorWidget.h | ||
| MediaKeysEventSourceFactory.cpp | ||
| moz.build | ||
| nsAppShell.cpp | ||
| nsAppShell.h | ||
| nsClipboard.cpp | ||
| nsClipboard.h | ||
| nsDeviceContextAndroid.cpp | ||
| nsDeviceContextAndroid.h | ||
| nsIAndroidBridge.idl | ||
| nsLookAndFeel.cpp | ||
| nsLookAndFeel.h | ||
| nsPrintSettingsServiceAndroid.cpp | ||
| nsPrintSettingsServiceAndroid.h | ||
| nsUserIdleServiceAndroid.cpp | ||
| nsUserIdleServiceAndroid.h | ||
| nsWidgetFactory.cpp | ||
| nsWidgetFactory.h | ||
| nsWindow.cpp | ||
| nsWindow.h | ||
| PCompositorWidget.ipdl | ||
| PlatformWidgetTypes.ipdlh | ||
| ScreenHelperAndroid.cpp | ||
| ScreenHelperAndroid.h | ||
| Telemetry.h | ||
| WebExecutorSupport.cpp | ||
| WebExecutorSupport.h | ||
| WindowEvent.h | ||