This issue can be reproduced in the latest Electron version on a Retina device. Essentially, only the top left fourth of the screen's pixels are returned on retina screens.

I presume this happens because beginFrameSubscription, even on mainWindow, does not return retina pixel data ever.

Issue arrises after: https://github.com/electron/libchromiumcontent/pull/227

Issue description: https://github.com/electron/electron/issues/5665#issuecomment-245813684

atom/browser/api/frame_subscriber.cc
const gfx::Rect& dirty_rect,
    base::TimeTicks present_time,
    scoped_refptr<media::VideoFrame>* storage,
    DeliverFrameCallback* callback) {
  const auto host = view_ ? view_->GetRenderWidgetHost() : nullptr;
  if (!view_ || !host)
    return false;
  if (dirty_rect.IsEmpty())
    return false;
  gfx::Rect rect = gfx::Rect(view_->GetVisibleViewportSize());
  if (only_dirty_)
    rect = dirty_rect;
  host->CopyFromBackingStore(
      rect,
      rect.size(),
      base::Bind(&FrameSubscriber::OnFrameDelivered,
                 weak_factory_.GetWeakPtr(), callback_, rect),
      kBGRA_8888_SkColorType);
  return false;
}
void FrameSubscriber::OnFrameDelivered(const FrameCaptureCallback& callback,