Bug 913503 - Update windowed plugin positions before we schedule a composite with OMTC. r=roc

This commit is contained in:
Matt Woodrow
2013-12-16 18:38:42 +13:00
parent 51a9c89bca
commit c5629ae923
16 changed files with 111 additions and 32 deletions

View File

@@ -209,7 +209,7 @@ ClientLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
mWidget->PrepareWindowEffects();
}
EndTransactionInternal(aCallback, aCallbackData, aFlags);
ForwardTransaction();
ForwardTransaction(!(aFlags & END_NO_REMOTE_COMPOSITE));
if (mRepeatTransaction) {
mRepeatTransaction = false;
@@ -239,7 +239,7 @@ ClientLayerManager::EndEmptyTransaction(EndTransactionFlags aFlags)
if (mWidget) {
mWidget->PrepareWindowEffects();
}
ForwardTransaction();
ForwardTransaction(!(aFlags & END_NO_REMOTE_COMPOSITE));
MakeSnapshotIfRequired();
return true;
}
@@ -254,6 +254,14 @@ ClientLayerManager::GetRemoteRenderer()
return mWidget->GetRemoteRenderer();
}
void
ClientLayerManager::Composite()
{
if (CompositorChild* remoteRenderer = GetRemoteRenderer()) {
remoteRenderer->SendForceComposite();
}
}
void
ClientLayerManager::MakeSnapshotIfRequired()
{
@@ -328,14 +336,14 @@ ClientLayerManager::StopFrameTimeRecording(uint32_t aStartIndex,
}
void
ClientLayerManager::ForwardTransaction()
ClientLayerManager::ForwardTransaction(bool aScheduleComposite)
{
mPhase = PHASE_FORWARD;
// forward this transaction's changeset to our LayerManagerComposite
bool sent;
AutoInfallibleTArray<EditReply, 10> replies;
if (HasShadowManager() && mForwarder->EndTransaction(&replies, &sent)) {
if (HasShadowManager() && mForwarder->EndTransaction(&replies, aScheduleComposite, &sent)) {
for (nsTArray<EditReply>::size_type i = 0; i < replies.Length(); ++i) {
const EditReply& reply = replies[i];