<!--  As an open source project with a dedicated but small maintainer team, it can sometimes take a long time for issues to be addressed so please be patient and we will get back to you as soon as we can.
-->

### 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
This is a bug report specifically for the 7.0 beta. 

* **Electron Version:**
  * 7.0.0-beta.6
* **Operating System:**
  * Ubuntu 18.04 x64, Windows 10
* **Last Known Working Electron version:**
  * 6.0.12

### Expected Behavior
SharedWorker should be functional and *shared* when using
  a custom protocol to provide a proper origin.

### Actual Behavior
SharedWorker does not execute when loaded from custom protocol.
It does execute when page is loaded with the `file://` protocol, but this 
  defeats the purpose, since it is not shared between contexts.

Also noticed while diagnosing the issue:
Creating a SharedWorker with node integration enabled using a Data URL crashes 
the renderer.  I verified that this works in Electron 6, figured the cause might be related.

### To Reproduce
Install and run the following repo:

https://github.com/krisdages/electron-7-shared-worker-broken

$ git clone https://github.com/krisdages/electron-7-shared-worker-broken
$ npm install
$ npm start

Sorry, had it implemented before seeing the "electron fiddle" option. May try that next time.

Thanks for looking into this :)
shell/browser/electron_browser_client.cc
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/post_task.h"
#include "chrome/browser/browser_process.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_version.h"
#include "components/net_log/chrome_net_log.h"
#include "components/network_hints/common/network_hints.mojom.h"
#include "content/public/browser/browser_main_runner.h"
#include "content/public/browser/browser_ppapi_host.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/client_certificate_delegate.h"
#include "content/public/browser/login_delegate.h"
#include "content/public/browser/overlay_window.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/tts_controller.h"
#include "content/public/browser/tts_platform.h"
#include "content/public/common/content_descriptors.h"
#include "content/public/common/content_paths.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/service_names.mojom.h"
#include "content/public/common/url_constants.h"
#include "content/public/common/web_preferences.h"
#include "electron/buildflags/buildflags.h"
#include "electron/grit/electron_resources.h"
#include "extensions/browser/extension_navigation_ui_data.h"