DescriptionRevert of Fix gpu command buffer use after free by GrContext (patchset #14 id:250001 of https://codereview.chromium.org/1414683003/ )
Reason for revert:
Reverting because this breaks several layout tests:
STDERR: [3888:1580:1113/081604:621866:FATAL:context_provider_command_buffer.cc(79)] Check failed: context_thread_checker_.CalledOnValidThread().
STDERR: Backtrace:
STDERR: base::debug::StackTrace::StackTrace [0x00D8DC31+33]
STDERR: logging::LogMessage::~LogMessage [0x00DE69DB+75]
STDERR: content::ContextProviderCommandBuffer::WebContext3D [0x11BB5DA7+887]
STDERR: content::ContextProviderCommandBuffer::ContextGL [0x11BB481B+267]
STDERR: content::RenderThreadImpl::SharedWorkerContextProvider [0x1202B2A0+400]
STDERR: content::RenderWidget::CreateOutputSurface [0x12089254+452]
STDERR: content::RenderWidgetCompositor::RequestNewOutputSurface [0x11E7767F+127]
https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win7__dbg_/results/layout-test-results/virtual/mediasession/media/mediasession/htmlmediaelement-set-session-crash-log.txt
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29/builds/3500
Original issue's description:
> Fix gpu command buffer use after free by GrContext
>
> ContextProviderCommandBuffer owns a WebGraphicsContext3DCommandBufferImpl and a
> GrContextForWebGraphicsContext3D via scoped_ptr. The problem was
> that the GrContext object held by GrContextForWebGraphicsContext3D
> depended on interface pointers that reference an interface that is owned
> by WebGraphicsContext3DCommandBufferImpl, so whenever the
> GrContext outlived the ContextProviderCommandBuffer, we ended up in a
> state where the interface function pointers are deallocated, but still
> referenced. Then, attempts to use the GrContext would result in using
> deallocated function pointers. Because the GrContext is a ref counted
> object, it can easily outlive the ContextProviderCommandBuffer. This led to
> a dangerous situation where we had to be careful about object destruction
> order.
>
> This CL fixes the problem for good by wrapping the ownership of the
> WebGraphicsContext3DCommandBufferImpl into a subclass of
> GrGLInterface, which is a ref counted object that can be owned jointly by
> the GrContext and the ContextProviderCommandBuffer, thus guaranteeing
> that the command buffer interface will remain valid for the lifetimes of the
> GrContext and of the ContextProviderCommandBuffer.
>
> BUG=551143
> CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
>
> Committed: https://crrev.com/d87aa1f1aee6ab0181eadaae827a5768981c1ccc
> Cr-Commit-Position: refs/heads/master@{#359493}
TBR=piman@chromium.org,danakj@chromium.org,kbr@chromium.org,rbyers@chromium.org,boliu@chromium.org,dtrainor@chromium.org,junov@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=551143
Patch Set 1 #Messages
Total messages: 11 (3 generated)
|