Bug 1405110 - P2. Never attempts to upload to D3D11 surface in parent process. r?mattwoodrow draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Mon, 09 Oct 2017 11:10:18 +0200
changeset 677135 ec19448297b60fd75e904286320dc07a61e75aaa
parent 676695 068d6dd260df53885f3d81f10aef031857c0dae2
child 677295 e9a339749b740d0925fdc1407ef4e15da46f7d73
push id83708
push userbmo:jyavenard@mozilla.com
push dateTue, 10 Oct 2017 07:47:13 +0000
reviewersmattwoodrow
bugs1405110
milestone58.0a1
Bug 1405110 - P2. Never attempts to upload to D3D11 surface in parent process. r?mattwoodrow Accessing the graphic device driver from the parent process, should the drivers crash have serious consequences (the whole browser dies). MozReview-Commit-ID: EXXRBnDobQw
dom/media/MediaData.cpp
--- a/dom/media/MediaData.cpp
+++ b/dom/media/MediaData.cpp
@@ -314,17 +314,18 @@ VideoData::CreateAndCopyData(const Video
                                     aKeyframe,
                                     aTimecode,
                                     aInfo.mDisplay,
                                     0));
 
   // Currently our decoder only knows how to output to ImageFormat::PLANAR_YCBCR
   // format.
 #if XP_WIN
-  if (aAllocator && aAllocator->GetCompositorBackendType()
+  if (!XRE_IsParentProcess() &&
+      aAllocator && aAllocator->GetCompositorBackendType()
                     == layers::LayersBackend::LAYERS_D3D11) {
     RefPtr<layers::D3D11YCbCrImage> d3d11Image = new layers::D3D11YCbCrImage();
     PlanarYCbCrData data = ConstructPlanarYCbCrData(aInfo, aBuffer, aPicture);
     if (d3d11Image->SetData(layers::ImageBridgeChild::GetSingleton()
                             ? layers::ImageBridgeChild::GetSingleton().get()
                             : aAllocator,
                             aContainer, data)) {
       v->mImage = d3d11Image;