mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 15:25:52 +00:00
Bug 1335335 - Manually call DidComposite() when transaction was dropped because of obsoleted command r=nical
The patch fixes a problem on windows. Before the patch, there was a case that moved tab was not re-rendered. When WebRenderBridgeParent reveived obsolted transaction, DidComposite() was not returned to a client side. It stopped nsRefreshDriver to trigger a next transaction.
This commit is contained in:
parent
23d69372f5
commit
6cec97d16c
@ -130,6 +130,8 @@ public:
|
||||
|
||||
virtual void ObserveLayerUpdate(uint64_t aLayersId, uint64_t aEpoch, bool aActive) = 0;
|
||||
|
||||
virtual void DidComposite(uint64_t aId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) {}
|
||||
|
||||
virtual void NotifyDidCompositeToPipeline(const wr::PipelineId& aPipelineId, const wr::Epoch& aEpoch, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) {}
|
||||
|
||||
// HostIPCAllocator
|
||||
@ -562,6 +564,7 @@ protected:
|
||||
*/
|
||||
bool CanComposite();
|
||||
|
||||
using CompositorBridgeParentBase::DidComposite;
|
||||
void DidComposite(TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd);
|
||||
|
||||
virtual void NotifyDidCompositeToPipeline(const wr::PipelineId& aPipelineId, const wr::Epoch& aEpoch, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) override;
|
||||
|
@ -107,9 +107,9 @@ public:
|
||||
virtual AsyncCompositionManager* GetCompositionManager(LayerTransactionParent* aParent) override;
|
||||
virtual mozilla::ipc::IPCResult RecvRemotePluginsReady() override { return IPC_FAIL_NO_REASON(this); }
|
||||
|
||||
void DidComposite(uint64_t aId,
|
||||
TimeStamp& aCompositeStart,
|
||||
TimeStamp& aCompositeEnd);
|
||||
virtual void DidComposite(uint64_t aId,
|
||||
TimeStamp& aCompositeStart,
|
||||
TimeStamp& aCompositeEnd) override;
|
||||
|
||||
virtual PTextureParent* AllocPTextureParent(const SurfaceDescriptor& aSharedData,
|
||||
const LayersBackend& aLayersBackend,
|
||||
|
@ -422,6 +422,13 @@ WebRenderBridgeParent::HandleDPEnd(const gfx::IntSize& aSize,
|
||||
|
||||
mScrollData = aScrollData;
|
||||
UpdateAPZ();
|
||||
|
||||
if (mIdNameSpace != aIdNameSpace) {
|
||||
// Pretend we composited since someone is wating for this event,
|
||||
// though DisplayList was not pushed to webrender.
|
||||
TimeStamp now = TimeStamp::Now();
|
||||
mCompositorBridge->DidComposite(wr::AsUint64(mPipelineId), now, now);
|
||||
}
|
||||
}
|
||||
|
||||
CompositorBridgeParent*
|
||||
|
Loading…
Reference in New Issue
Block a user