* 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.h
void CheckSpelling(
      const blink::WebString& text,
      int& misspelledOffset,
      int& misspelledLength,
      blink::WebVector<blink::WebString>* optionalSuggestions) override;
  void RequestCheckingOfText(
      const blink::WebString& textToCheck,
      blink::WebTextCheckingCompletion* completionCallback) override;
  
  void ShowSpellingUI(bool show) override;
  bool IsShowingSpellingUI() override;
  void UpdateSpellingUIWithMisspelledWord(
      const blink::WebString& word) override;
  struct SpellCheckScope {
    v8::HandleScope handle_scope_;
    v8::Context::Scope context_scope_;
    v8::Local<v8::Object> provider_;
    v8::Local<v8::Function> spell_check_;
    explicit SpellCheckScope(const SpellCheckClient& client);
    ~SpellCheckScope();
  };
  
  void SpellCheckText(const base::string16& text,
                      bool stop_at_first_result,
                      std::vector<blink::WebTextCheckingResult>* results);
  
  bool SpellCheckWord(const SpellCheckScope& scope,
                      const base::string16& word_to_check) const;