<!--
Thanks for opening an issue! A few things to keep in mind:

- The issue tracker is only for bugs and feature requests.
- Before reporting a bug, please try reproducing your issue against
  the latest version of Electron.
- If you need general advice, join our Slack: http://atom-slack.herokuapp.com
-->

* Electron version: 1.8.4
* Operating system: Windows

### Expected behavior

Off screen windows should respond to the `.focus()` method being called by making the content appear to be focused.

### Actual behavior

Currently the undocumented method `focusOnWebView()` method must be called in order to "focus" an offscreen window.

This behaviour should either be documented [in the off-screen rendering guide](https://electronjs.org/docs/tutorial/offscreen-rendering), or the `.focus()` method should fix this

### How to reproduce

* Create an offscreen window, and have its content output to some location (In my case an OpenGL texture)
* Go to a web page, such as google
* Observe no caret in focused text box, and selected text is the wrong colour

Not sure if this is just a documentation issue or a bug... Feel free to resolve as if it were working as intended and document this issue in the off-screen rendering guide.

atom/browser/api/atom_api_browser_window.cc
web_contents()->GetRenderViewHost()->GetWidget()->Focus();
}
void BrowserWindow::BlurWebView() {
  web_contents()->GetRenderViewHost()->GetWidget()->Blur();
}
bool BrowserWindow::IsWebViewFocused() {
  auto host_view = web_contents()->GetRenderViewHost()->GetWidget()->GetView();
  return host_view && host_view->HasFocus();
}
void BrowserWindow::SetRepresentedFilename(const std::string& filename) {
  window_->SetRepresentedFilename(filename);
}
std::string BrowserWindow::GetRepresentedFilename() {
  return window_->GetRepresentedFilename();
}
void BrowserWindow::SetDocumentEdited(bool edited) {
  window_->SetDocumentEdited(edited);
}
bool BrowserWindow::IsDocumentEdited() {
  return window_->IsDocumentEdited();
}
void BrowserWindow::SetIgnoreMouseEvents(bool ignore, mate::Arguments* args) {
  mate::Dictionary options;
  bool forward = false;
  args->GetNext(&options) && options.Get("forward", &forward);
  return window_->SetIgnoreMouseEvents(ignore, forward);
}
void BrowserWindow::SetContentProtection(bool enable) {