Closed Bug 1076868 Opened 10 years ago Closed 10 years ago

Fix TiledContentClient's RemoveTextureFromCompositableAsync() calls.

Categories

(Core :: Graphics: Layers, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla35

People

(Reporter: sotaro, Assigned: sotaro)

References

Details

Attachments

(1 file, 2 obsolete files)

+++ This bug was initially created as a clone of Bug #1075136 +++ TiledContentClient has a problem of how to call RemoveTextureFromCompositableAsync(). It caused problems like Bug 1075136 Comment 4 and Bug 1075136 Comment 6. It becomes valid problem when Bug 1075136 is committed. But current gecko's code should also have a potential problem to cause this.
The following log says when OpRemoveTextureAsync is arrived to parent side, PCompositableParent is already destructed. > 10-02 09:22:51.148 253 834 I Gecko : IPDL protocol error: bad ID for PLayerTransaction > 10-02 09:22:51.148 253 834 I Gecko : IPDL protocol error: Error deserializing 'compositableParent' (PCompositable) member of 'OpRemoveTextureAsync' > 10-02 09:22:51.148 253 834 I Gecko : IPDL protocol error: Error deserializing 'Edit[i]' > 10-02 09:22:51.148 253 834 I Gecko : IPDL protocol error: Error deserializing 'nsTArray'
TiledContentClient(CompositableClient) frees TiledBuffers in destructors and it requests OpRemoveTextureAsync message send. But but the actual message send, TiledContentClient(CompositableClient) destroy PCompositableChild/PCompositableParent.
Depends on: 1067455
Assignee: nobody → sotaro.ikeda.g
Update the patch based on Bug 1067455.
Attachment #8498919 - Attachment is obsolete: true
I confirmed that a problem of Bug 1075136 Comment 5 did not happen with bug 1075136 fix.
Attachment #8499166 - Flags: review?(nical.bugzilla)
Comment on attachment 8499166 [details] [diff] [review] patch - Fix RemoveTextureFromCompositableAsync() call handling Review of attachment 8499166 [details] [diff] [review]: ----------------------------------------------------------------- r=me with the nit below addressed. ::: gfx/layers/ipc/LayerTransactionParent.cpp @@ +908,5 @@ > + ImageBridgeParent::ReplyRemoveTexture( > + GetChildProcessId(), > + OpReplyRemoveTexture(true, // isMain > + op.holderId(), > + op.transactionId())); Please put this block of code (which is identical to the one in CompositableTransactionParent.cpp) into a method of CompositableTransactionParent (something like CompositableTransactionParent::HandleRemoveTextureAsync(const OpRemoveTextureAsync& aOp); that you can all from both CompostableTransactionParent and LayerTransactionParent instead of duplicating it.
Attachment #8499166 - Flags: review?(nical.bugzilla) → review+
Some codes are duplicating, but I do not find enough reason as to create a function.
Fix build failure.
Attachment #8499166 - Attachment is obsolete: true
Attachment #8500081 - Flags: review+
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: