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/api/atom_api_web_contents.h
void ReplaceMisspelling(const base::string16& word);
  uint32_t FindInPage(mate::Arguments* args);
  void StopFindInPage(content::StopFindAction action);
  void ShowDefinitionForSelection();
  void CopyImageAt(int x, int y);
  
  void Focus();
  bool IsFocused() const;
  void TabTraverse(bool reverse);
  
  bool SendIPCMessage(bool all_frames,
                      const base::string16& channel,
                      const base::ListValue& args);
  
  void SendInputEvent(v8::Isolate* isolate, v8::Local<v8::Value> input_event);
  
  void BeginFrameSubscription(mate::Arguments* args);
  void EndFrameSubscription();
  
  void StartDrag(const mate::Dictionary& item, mate::Arguments* args);
  
  
  void CapturePage(mate::Arguments* args);
  
  void SetSize(const SetSizeParams& params);
  bool IsGuest() const;
  
  bool IsOffScreen() const;
  void OnPaint(const gfx::Rect& dirty_rect,
               const gfx::Size& bitmap_size,