зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1656266 - Make the window client size atomic to avoid a read/write race. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D90582
This commit is contained in:
Родитель
66762b6cd1
Коммит
b0d53f9f52
|
@ -76,7 +76,15 @@ class GtkCompositorWidget : public CompositorWidget,
|
||||||
nsWindow* mWidget;
|
nsWindow* mWidget;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LayoutDeviceIntSize mClientSize;
|
// Webrender can try to poll this while we're handling a window resize event.
|
||||||
|
// This read/write race is largely benign because it's fine if webrender and
|
||||||
|
// the window desync for a frame (leading to the page displaying
|
||||||
|
// larger/smaller than the window for a split second) -- nobody expects
|
||||||
|
// perfect rendering while resizing a window. This atomic doesn't change the
|
||||||
|
// fact that the window and content can display at different sizes, but it
|
||||||
|
// does make it Not Undefined Behaviour, and also ensures webrender only
|
||||||
|
// ever uses the old or new size, and not some weird synthesis of the two.
|
||||||
|
Atomic<LayoutDeviceIntSize> mClientSize;
|
||||||
|
|
||||||
WindowSurfaceProvider mProvider;
|
WindowSurfaceProvider mProvider;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче