Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel

Depends on D75386

Differential Revision: https://phabricator.services.mozilla.com/D75387
This commit is contained in:
Kartikaya Gupta
2020-05-15 00:10:36 +00:00
parent b8f9aa4d43
commit a745c4e3c8
8 changed files with 28 additions and 24 deletions

View File

@@ -244,23 +244,25 @@ bool WebRenderLayerManager::EndEmptyTransaction(EndTransactionFlags aFlags) {
GetCompositorBridgeChild()->EndCanvasTransaction();
AutoTArray<TransactionData, 1> transactionData;
Maybe<TransactionData> transactionData;
if (mStateManager.mAsyncResourceUpdates || !mPendingScrollUpdates.IsEmpty() ||
WrBridge()->HasWebRenderParentCommands()) {
auto datum = transactionData.AppendElement();
datum->mPaintSequenceNumber = mPaintSequenceNumber;
transactionData.emplace();
transactionData->mPaintSequenceNumber = mPaintSequenceNumber;
if (mStateManager.mAsyncResourceUpdates) {
mStateManager.mAsyncResourceUpdates->Flush(
datum->mResourceUpdates, datum->mSmallShmems, datum->mLargeShmems);
transactionData->mResourceUpdates, transactionData->mSmallShmems,
transactionData->mLargeShmems);
}
datum->mScrollUpdates = std::move(mPendingScrollUpdates);
for (auto it = datum->mScrollUpdates.Iter(); !it.Done(); it.Next()) {
transactionData->mScrollUpdates = std::move(mPendingScrollUpdates);
for (auto it = transactionData->mScrollUpdates.Iter(); !it.Done();
it.Next()) {
nsLayoutUtils::NotifyPaintSkipTransaction(/*scroll id=*/it.Key());
}
}
Maybe<wr::IpcResourceUpdateQueue> nothing;
WrBridge()->EndEmptyTransaction(mFocusTarget, transactionData,
WrBridge()->EndEmptyTransaction(mFocusTarget, std::move(transactionData),
mLatestTransactionId,
mTransactionIdAllocator->GetVsyncId(),
mTransactionIdAllocator->GetVsyncStart(),