Specifically on Windows nsIWidget::SetTransparencyMode can result in sync painting.
So we give nsContainerFrame::SyncWindowProperties a sync or async option and use the view manager post pending update infrastructure to flush SyncWindowProperties calls async.
In Fennec, if the root window gets resized, background tabs get a delayed
resize event queued up. When those background tabs get painted next, the delayed
resize is flushed. However, the code that flushes the delayed resize does not
check to see if the viewport is already overridden. This is in contrast to all
the other code paths that propagate outerwindow size change to the innerwindow,
and is incorrect because it effectively clobbers any meta-viewport tag with the
outerwindow dimensions. This patch corrects this code path to also check if the
viewport is overridden.