I tired with the offscreen mode and here are the problems I found:
- [x] <del>The `data` of `paint` event is empty when loading simple local pages.</del>
- [x] The size of `data` is wrong, current implement uses the size of pointer (`sizeof(bitmap_pixels)`).
- [x] Crashes when opening devtools for offscreen window.
- [x] We should probably show a dummy view indicating it is offscreen instead of provide NULL.
- [x] The offscreen window is affecting the rendering of other windows. Try running `./script/test.py -g offscreen` and then refreshing the window.

/cc @gerhardberger @brenca

atom/browser/osr/osr_render_widget_host_view.cc
bool force_frame,
      const gfx::Rect& damage_rect) {
    if (force_frame && !frame_pending_)
      frame_pending_ = true;
    if (!frame_pending_)
      return;
    if (!damage_rect.IsEmpty())
      pending_damage_rect_.Union(damage_rect);
    if (frame_in_progress_)
      return;
    frame_in_progress_ = true;
    const int64_t frame_rate_delta =
        (base::TimeTicks::Now() - frame_start_time_).InMilliseconds();
    if (frame_rate_delta < frame_rate_threshold_ms_) {
      content::BrowserThread::PostDelayedTask(content::BrowserThread::UI,
        FROM_HERE,
        base::Bind(&AtomCopyFrameGenerator::InternalGenerateCopyFrame,
        weak_ptr_factory_.GetWeakPtr()), base::TimeDelta::FromMilliseconds(
        frame_rate_threshold_ms_ - frame_rate_delta));
      return;
    }
    InternalGenerateCopyFrame();
  }
  bool frame_pending() const { return frame_pending_; }