Comment 7 for bug 1381558

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

This crash is specific to the software compositing path, which is largely untested. From the trace, it looks like |bitmap| is probably NULL. I'm not entirely sure what would cause that

void CompositorThreadProxy::SendSwapSoftwareFrameOnOwnerThread(
    uint32 surface_id,
    const gfx::Size& size,
    float scale,
    unsigned id,
    const gfx::Rect& damage_rect,
    const cc::SharedBitmapId& bitmap_id) {
  scoped_ptr<cc::SharedBitmap> bitmap(
      content::HostSharedBitmapManager::current()->GetSharedBitmapFromId(
        size, bitmap_id));
  DCHECK(bitmap);

  scoped_refptr<CompositorFrameHandle> frame(
      new CompositorFrameHandle(surface_id, this, size, scale));
  frame->software_frame_data_.reset(
      new SoftwareFrameData(id, damage_rect, bitmap->pixels()));

  if (!owner().compositor) {
    DidSwapCompositorFrame(surface_id, frame);
    return;
  }

  owner().compositor->SendSwapCompositorFrameToClient(surface_id, frame);
}