Commit 48a2b64f authored by kylechar's avatar kylechar Committed by Commit Bot

Check SharedContextState isn't null

Have SkiaOutputSurfaceImplOnGpu check that the SharedContextState isn't
null before using it. It will return null if MakeCurrent fails.

Bug: 1019690
Change-Id: I812f805413f57d0063a1c7c66dfdd556026db70e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1893988Reviewed-by: default avatarVasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711442}
parent 57d402d7
...@@ -591,19 +591,27 @@ std::unique_ptr<SkiaOutputSurfaceImplOnGpu> SkiaOutputSurfaceImplOnGpu::Create( ...@@ -591,19 +591,27 @@ std::unique_ptr<SkiaOutputSurfaceImplOnGpu> SkiaOutputSurfaceImplOnGpu::Create(
ContextLostCallback context_lost_callback, ContextLostCallback context_lost_callback,
GpuVSyncCallback gpu_vsync_callback) { GpuVSyncCallback gpu_vsync_callback) {
TRACE_EVENT0("viz", "SkiaOutputSurfaceImplOnGpu::Create"); TRACE_EVENT0("viz", "SkiaOutputSurfaceImplOnGpu::Create");
auto context_state = deps->GetSharedContextState();
if (!context_state)
return nullptr;
auto impl_on_gpu = std::make_unique<SkiaOutputSurfaceImplOnGpu>( auto impl_on_gpu = std::make_unique<SkiaOutputSurfaceImplOnGpu>(
util::PassKey<SkiaOutputSurfaceImplOnGpu>(), deps, renderer_settings, util::PassKey<SkiaOutputSurfaceImplOnGpu>(), deps,
sequence_id, std::move(did_swap_buffer_complete_callback), context_state->feature_info(), renderer_settings, sequence_id,
std::move(did_swap_buffer_complete_callback),
std::move(buffer_presented_callback), std::move(context_lost_callback), std::move(buffer_presented_callback), std::move(context_lost_callback),
std::move(gpu_vsync_callback)); std::move(gpu_vsync_callback));
if (!impl_on_gpu->Initialize()) if (!impl_on_gpu->Initialize())
impl_on_gpu = nullptr; return nullptr;
return impl_on_gpu; return impl_on_gpu;
} }
SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu( SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu(
util::PassKey<SkiaOutputSurfaceImplOnGpu> /* pass_key */, util::PassKey<SkiaOutputSurfaceImplOnGpu> /* pass_key */,
SkiaOutputSurfaceDependency* deps, SkiaOutputSurfaceDependency* deps,
scoped_refptr<gpu::gles2::FeatureInfo> feature_info,
const RendererSettings& renderer_settings, const RendererSettings& renderer_settings,
const gpu::SequenceId sequence_id, const gpu::SequenceId sequence_id,
DidSwapBufferCompleteCallback did_swap_buffer_complete_callback, DidSwapBufferCompleteCallback did_swap_buffer_complete_callback,
...@@ -611,7 +619,7 @@ SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu( ...@@ -611,7 +619,7 @@ SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu(
ContextLostCallback context_lost_callback, ContextLostCallback context_lost_callback,
GpuVSyncCallback gpu_vsync_callback) GpuVSyncCallback gpu_vsync_callback)
: dependency_(std::move(deps)), : dependency_(std::move(deps)),
feature_info_(dependency_->GetSharedContextState()->feature_info()), feature_info_(std::move(feature_info)),
sync_point_client_state_( sync_point_client_state_(
CreateSyncPointClientState(dependency_, sequence_id)), CreateSyncPointClientState(dependency_, sequence_id)),
shared_image_representation_factory_( shared_image_representation_factory_(
......
...@@ -95,6 +95,7 @@ class SkiaOutputSurfaceImplOnGpu : public gpu::ImageTransportSurfaceDelegate, ...@@ -95,6 +95,7 @@ class SkiaOutputSurfaceImplOnGpu : public gpu::ImageTransportSurfaceDelegate,
SkiaOutputSurfaceImplOnGpu( SkiaOutputSurfaceImplOnGpu(
util::PassKey<SkiaOutputSurfaceImplOnGpu> pass_key, util::PassKey<SkiaOutputSurfaceImplOnGpu> pass_key,
SkiaOutputSurfaceDependency* deps, SkiaOutputSurfaceDependency* deps,
scoped_refptr<gpu::gles2::FeatureInfo> feature_info,
const RendererSettings& renderer_settings, const RendererSettings& renderer_settings,
const gpu::SequenceId sequence_id, const gpu::SequenceId sequence_id,
DidSwapBufferCompleteCallback did_swap_buffer_complete_callback, DidSwapBufferCompleteCallback did_swap_buffer_complete_callback,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment