Closed Bug 977891 Opened 10 years ago Closed 10 years ago

[e10s] Painting stops happening on certain web pages

Categories

(Core :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla30

People

(Reporter: billm, Assigned: mattwoodrow)

References

Details

Attachments

(2 files)

I haven't figured out the circumstances, but several people have seen this problem. On certain web sites (possibly those with plugins or with lots of images), we stop painting except when you move the mouse outside of the content area. I've seen this happen on http://typesetinthefuture.com/moon/, but Tom can't reproduce it there. It only happen in e10s, so I don't think it's purely an OMTC problem. If you switch to a different tab, painting works fine.
OK, it's definitely plugin-related. It only happens on the page I mentioned when Flash is enabled.
Attached patch plugin-paint-hack (deleted) — Splinter Review
This is the line that's causing the problem. If I comment it out, everything works fine. Matt, any advice about what to do?
Flags: needinfo?(matt.woodrow)
In case it's important, we're running Flash in windowless mode in e10s.
I think the problem might be that this code:
http://mxr.mozilla.org/mozilla-central/source/gfx/layers/client/ClientLayerManager.cpp#260
isn't doing anything because GetRemoteRenderer() is null. I tried setting it to the right CompositorChild, but that's not working for some reason.
Ah, this is my fault :(

The problem is that the receiving end of that message (CrossProcessCompositorChild::RecvForceComposite) does nothing. And it can't really do anything, since the PCompositor connection is a singleton per child process, and we don't know which LayerTree we're operating on.

The ForceComposite ipdl message should be moved to PLayerTransaction instead, since that always lets us map a ClientLayerManager to a CompositorParent (the root one, not CrossProcessCP). 'ShadowLayersUpdated' is an exmaple of this.
Flags: needinfo?(matt.woodrow)
This should no longer discriminate against e10s child processes, but I haven't actually tested it. It builds!
Attachment #8383483 - Flags: feedback?(wmccloskey)
Comment on attachment 8383483 [details] [diff] [review]
Fix ForceComposite message for e10s

Review of attachment 8383483 [details] [diff] [review]:
-----------------------------------------------------------------

Works great, thanks!
Attachment #8383483 - Flags: feedback?(wmccloskey) → feedback+
Attachment #8383483 - Flags: review?(nical.bugzilla)
Comment on attachment 8383483 [details] [diff] [review]
Fix ForceComposite message for e10s

Review of attachment 8383483 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/layers/ipc/PLayerTransaction.ipdl
@@ +84,5 @@
>  
>    // Drop any front buffers that might be retained on the compositor
>    // side.
>    async ClearCachedResources();
> +  

nit: trailing space
Attachment #8383483 - Flags: review?(nical.bugzilla) → review+
Assignee: nobody → matt.woodrow
https://hg.mozilla.org/mozilla-central/rev/f57a742a1273
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: