### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:**
  * master
* **Operating System:**
  * macOS 10.15.2 / Windows 10
* **Last Known Working Electron version:**
  * 9.0.0-beta.14

### Expected Behavior
The extension should load.

### Actual Behavior
Loading an extension in any session crashes completely Electron with the following stack trace:
```
[20712:0407/231718.415617:FATAL:extension.cc(552)] Check failed: path.empty() || path.IsAbsolute(). 
0   Electron Framework                  0x0000000110eaa489 base::debug::CollectStackTrace(void**, unsigned long) + 9
1   Electron Framework                  0x0000000110d749e3 base::debug::StackTrace::StackTrace() + 19
2   Electron Framework                  0x0000000110d93419 logging::LogMessage::~LogMessage() + 249
3   Electron Framework                  0x00000001167b5771 extensions::Extension::Extension(base::FilePath const&, std::__1::unique_ptr<extensions::Manifest, std::__1::default_delete<extensions::Manifest> >) + 529
4   Electron Framework                  0x00000001167b208c extensions::Extension::Create(base::FilePath const&, extensions::Manifest::Location, base::DictionaryValue const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 476
5   Electron Framework                  0x00000001167fb8c9 extensions::file_util::LoadExtension(base::FilePath const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, extensions::Manifest::Location, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 169
6   Electron Framework                  0x00000001167fb7fc extensions::file_util::LoadExtension(base::FilePath const&, extensions::Manifest::Location, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 44
7   Electron Framework                  0x000000010bd2d72d extensions::(anonymous namespace)::LoadUnpacked(base::FilePath const&) + 109
8   Electron Framework                  0x000000010bd2ee33 base::internal::Invoker<base::internal::BindState<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (*)(base::FilePath const&), base::FilePath>, std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > ()>::RunOnce(base::internal::BindStateBase*) + 19
9   Electron Framework                  0x000000010bd2f172 void base::internal::ReturnAsParamAdapter<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(base::OnceCallback<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > ()>, std::__1::unique_ptr<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::default_delete<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >*) + 130
10  Electron Framework                  0x000000010bd2f427 base::internal::Invoker<base::internal::BindState<void (*)(base::OnceCallback<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > ()>, std::__1::unique_ptr<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::default_delete<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >*), base::OnceCallback<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > ()>, std::__1::unique_ptr<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::default_delete<std::__1::pair<scoped_refptr<extensions::Extension const>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >*>, void ()>::RunOnce(base::internal::BindStateBase*) + 39
11  Electron Framework                  0x0000000110e5cf2a base::(anonymous namespace)::PostTaskAndReplyRelay::RunTaskAndPostReply(base::(anonymous namespace)::PostTaskAndReplyRelay) + 186
12  Electron Framework                  0x0000000110e5d379 base::internal::Invoker<base::internal::BindState<void (*)(base::(anonymous namespace)::PostTaskAndReplyRelay), base::(anonymous namespace)::PostTaskAndReplyRelay>, void ()>::RunOnce(base::internal::BindStateBase*) + 73
13  Electron Framework                  0x0000000110e0c554 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) + 404
14  Electron Framework                  0x0000000110e47a22 base::internal::TaskTracker::RunSkipOnShutdown(base::internal::Task*) + 34
15  Electron Framework                  0x0000000110e47299 base::internal::TaskTracker::RunTask(base::internal::Task, base::internal::TaskSource*, base::TaskTraits const&) + 1209
16  Electron Framework                  0x0000000110ebb6ee base::internal::TaskTrackerPosix::RunTask(base::internal::Task, base::internal::TaskSource*, base::TaskTraits const&) + 238
17  Electron Framework                  0x0000000110e46a0b base::internal::TaskTracker::RunAndPopNextTask(base::internal::RegisteredTaskSource) + 475
18  Electron Framework                  0x0000000110e55bf6 base::internal::WorkerThread::RunWorker() + 1062
19  Electron Framework                  0x0000000110e55754 base::internal::WorkerThread::RunPooledWorker() + 20
20  Electron Framework                  0x0000000110ebbcdf base::(anonymous namespace)::ThreadFunc(void*) + 95
21  libsystem_pthread.dylib             0x00007fff6f70de65 _pthread_start + 148
22  libsystem_pthread.dylib             0x00007fff6f70983b thread_start + 15
Task trace:
0   Electron Framework                  0x000000010bd2d376 extensions::ElectronExtensionLoader::LoadExtension(base::FilePath const&, base::OnceCallback<void (extensions::Extension const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) + 70
```

### To Reproduce
https://github.com/sentialx/electron-quick-start/tree/extensions-crash-10
shell/browser/api/electron_api_session.cc
bool is_in_memory = browser_context_->IsOffTheRecord();
  if (is_in_memory)
    return false;
  SpellcheckService* service =
      SpellcheckServiceFactory::GetForContext(browser_context_);
  if (!service)
    return false;
#if BUILDFLAG(USE_BROWSER_SPELLCHECKER)
  if (spellcheck::UseBrowserSpellChecker()) {
    spellcheck_platform::AddWord(service->platform_spell_checker(),
                                 base::UTF8ToUTF16(word));
  }
#endif
  return service->GetCustomDictionary()->AddWord(word);
}
bool Session::RemoveWordFromSpellCheckerDictionary(const std::string& word) {