Document that ContainerState::ComputeOpaqueRect is only needed in the chrome process
Categories
(Core :: Graphics, enhancement, P3)
Tracking
()
People
(Reporter: jwatt, Unassigned)
References
(Blocks 2 open bugs)
Details
(Whiteboard: [not-a-fission-bug])
Currently ContainerState::ComputeOpaqueRect uses nsLayoutUtils::GetCrossDocParentFrame to walk up across document boundaries. It's not clear to me that we should try to maintain the related optimizations of calculating this area with regards to the opaque areas created by oop-iframes, but filing this for consideration.
Updated•6 years ago
|
Comment 1•6 years ago
|
||
We should only be worrying about window opaque regions for the parent process (where we can communicate with the actual OS widget), and it looks like that's what happens.
Given that, I don't think this matters, but we could probably make it clearer at this callsite that the results are only relevant/used in the parent process.
Comment 2•6 years ago
|
||
Where does the opaque region get communicated to the OS widget? It sounds like we should add an appropriate comment and then close this.
Updated•6 years ago
|
Comment 3•6 years ago
|
||
ContainerState::ComputeOpaqueRect calls nsDisplayListBuilder::AddWindowOpaqueRegion, which stores the region.
That is then used in ::IsItemAreaInWindowOpaqueRegion, which explicitly only looks at the value if we're in the chrome process.
It's also used in nsLayoutUtils::PaintFrame, where we grab the opaque region and call nsIWidget::UpdateOpaqueRegion. That function is implemented as a no-op for PuppetWidget, so won't do anything except in the chrome process.
Updated•6 years ago
|
Comment 6•4 years ago
|
||
(In reply to Ryan Hunt [:rhunt] from comment #2)
Where does the opaque region get communicated to the OS widget? It sounds like we should add an appropriate comment and then close this.
If this bug is just about adding a comment and not about changing any code, then this bug doesn't need to block Fission.
Updated•2 years ago
|
Description
•