* Electron Version: 3.0.0-beta.1
* Operating System (Platform and Version): macOS 10.13 (but all others seem affected, too)
* Last known working Electron version: 2.0.x

**Expected Behavior**
Spellchecking should work: After calling `webFrame.setSpellCheckProvider` with a given provider, that provider's `spellCheck()` method should be called.

**Actual behavior**
Calling `webFrame.setSpellCheckProvider` seems to have no effect - the provider is simply never called.

**To Reproduce**
Clone the repo below and start the app. The spellcheck provider is configured to log each input word. However, it appears that `spellCheck` is never called.

```sh
git clone https://github.com/felixrieseberg/electron-3-spellcheck
cd electron-3-spellcheck
npm install
npm start || electron .
```


atom/renderer/api/atom_api_spell_check_client.cc
const blink::WebString& textToCheck,
    blink::WebTextCheckingCompletion* completionCallback) {
  base::string16 text(textToCheck.Utf16());
  
  if (text.empty() || !HasWordCharacters(text, 0)) {
    completionCallback->DidCancelCheckingText();
    return;
  }
  
  if (pending_request_param_.get()) {
    pending_request_param_->completion()->DidCancelCheckingText();
  }
  pending_request_param_.reset(new SpellcheckRequest(text, completionCallback));
  base::ThreadTaskRunnerHandle::Get()->PostTask(
      FROM_HERE,
      base::BindOnce(&SpellCheckClient::PerformSpellCheck, AsWeakPtr(),
                     base::Owned(pending_request_param_.release())));
}
void SpellCheckClient::ShowSpellingUI(bool show) {}
bool SpellCheckClient::IsShowingSpellingUI() {
  return false;
}
void SpellCheckClient::UpdateSpellingUIWithMisspelledWord(