Backed out changeset 2095b5ca1769 (bug 1566956) for causing Bug 1567002. a=backout
authorCosmin Sabou <csabou@mozilla.com>
Thu, 18 Jul 2019 12:54:25 +0300
changeset 483268 b3f5385fa0b37bca7c46269ff394aca964baec7c
parent 483267 4116a7254a4ee7033f38b7126007bd2af678a7b8
child 483277 8091a0c9fafa90ba24d47d56aee4c75f4aa03024
child 483293 15ac9b0d95b3d1cc951f78ad7ae5a4d35bf9f910
push id36310
push usercsabou@mozilla.com
push dateThu, 18 Jul 2019 09:54:58 +0000
treeherdermozilla-central@b3f5385fa0b3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbackout
bugs1566956, 1567002
milestone70.0a1
backs out2095b5ca1769cb3777cd9050ed4fccfd397f93e0
first release with
nightly linux32
b3f5385fa0b3 / 70.0a1 / 20190718095458 / files
nightly linux64
b3f5385fa0b3 / 70.0a1 / 20190718095458 / files
nightly mac
b3f5385fa0b3 / 70.0a1 / 20190718095458 / files
nightly win32
b3f5385fa0b3 / 70.0a1 / 20190718095458 / files
nightly win64
b3f5385fa0b3 / 70.0a1 / 20190718095458 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset 2095b5ca1769 (bug 1566956) for causing Bug 1567002. a=backout
dom/media/ipc/RemoteVideoDecoder.cpp
gfx/layers/ipc/PVideoBridge.ipdl
gfx/layers/ipc/VideoBridgeParent.h
--- a/dom/media/ipc/RemoteVideoDecoder.cpp
+++ b/dom/media/ipc/RemoteVideoDecoder.cpp
@@ -30,25 +30,21 @@ namespace mozilla {
 using namespace layers;  // for PlanarYCbCrData and BufferRecycleBin
 using namespace ipc;
 using namespace gfx;
 
 class KnowsCompositorVideo : public layers::KnowsCompositor {
  public:
   NS_INLINE_DECL_THREADSAFE_REFCOUNTING(KnowsCompositorVideo, override)
 
-  VideoBridgeChild* GetVideoBridge() {
+  layers::TextureForwarder* GetTextureForwarder() override {
     return mTextureFactoryIdentifier.mParentProcessType == GeckoProcessType_GPU
                ? VideoBridgeChild::GetSingletonToGPUProcess()
                : VideoBridgeChild::GetSingletonToParentProcess();
   }
-
-  layers::TextureForwarder* GetTextureForwarder() override {
-    return GetVideoBridge();
-  }
   layers::LayersIPCActor* GetLayersIPCActor() override {
     return GetTextureForwarder();
   }
 
   static already_AddRefed<KnowsCompositorVideo> TryCreateForIdentifier(
       const layers::TextureFactoryIdentifier& aIdentifier) {
     VideoBridgeChild* child =
         (aIdentifier.mParentProcessType == GeckoProcessType_GPU)
@@ -404,26 +400,15 @@ MediaResult RemoteVideoDecoderParent::Pr
       sd = sdBuffer;
       size = image->GetSize();
     }
 
     RemoteVideoDataIPDL output(
         MediaDataIPDL(data->mOffset, data->mTime, data->mTimecode,
                       data->mDuration, data->mKeyframe),
         video->mDisplay, size, sd, video->mFrameID);
-    if (mKnowsCompositor) {
-      RefPtr<RemoteVideoDecoderParent> parent = this;
-      mKnowsCompositor->GetVideoBridge()->SendFlush()->Then(
-          GetCurrentThreadSerialEventTarget(), __func__,
-          [parent, output](bool) { Unused << parent->SendOutput(output); },
-          [parent](ResponseRejectReason&& aReason) {
-            parent->Error(NS_ERROR_DOM_MEDIA_NEED_NEW_DECODER);
-          });
-
-    } else {
-      Unused << SendOutput(output);
-    }
+    Unused << SendOutput(output);
   }
 
   return NS_OK;
 }
 
 }  // namespace mozilla
--- a/gfx/layers/ipc/PVideoBridge.ipdl
+++ b/gfx/layers/ipc/PVideoBridge.ipdl
@@ -21,16 +21,13 @@ namespace layers {
  */
 sync protocol PVideoBridge
 {
   manages PTexture;
 
 parent:
   async PTexture(SurfaceDescriptor aSharedData, ReadLockDescriptor aReadLock, LayersBackend aBackend,
                  TextureFlags aTextureFlags, uint64_t aSerial);
-
-  async Flush() returns (bool result);
-
 };
 
 } // namespace
 } // namespace
 
--- a/gfx/layers/ipc/VideoBridgeParent.h
+++ b/gfx/layers/ipc/VideoBridgeParent.h
@@ -28,21 +28,16 @@ class VideoBridgeParent final : public P
   void ActorDestroy(ActorDestroyReason aWhy) override;
   PTextureParent* AllocPTextureParent(const SurfaceDescriptor& aSharedData,
                                       const ReadLockDescriptor& aReadLock,
                                       const LayersBackend& aLayersBackend,
                                       const TextureFlags& aFlags,
                                       const uint64_t& aSerial);
   bool DeallocPTextureParent(PTextureParent* actor);
 
-  mozilla::ipc::IPCResult RecvFlush(FlushResolver&& aResolver) {
-    aResolver(true);
-    return IPC_OK();
-  }
-
   // HostIPCAllocator
   base::ProcessId GetChildProcessId() override { return OtherPid(); }
   void NotifyNotUsed(PTextureParent* aTexture,
                      uint64_t aTransactionId) override;
   void SendAsyncMessage(
       const nsTArray<AsyncParentMessageData>& aMessage) override;
 
   // ISurfaceAllocator