**Is your feature request related to a problem? Please describe.**
Notifications, Geolocation, Device motion/orientation, EME, getUserMedia, AppCache require a secure origin to work in Chromium. HTTP URLs are not considered secure.
That's why Chromium provides the command-line switch
`--unsafely-treat-insecure-origin-as-secure="$url"` to circumvent this problem.
Unfortunately it's not working in Electron.

**Describe the solution you'd like**
Please make it work. In the renderer. I'd suggest simply like 
```
new BrowserWindow({
  webPreferences: {
    additionalArguments: {
    '--unsafely-treat-insecure-origin-as-secure', 'http://insecure-origin'
    }
}
```
Or a new option `considerSecure: String[]` to `BrowserWindow.webPreferences`.
I guess it should be not too hard to implement since Chromium already supports it and it seems to get lost only in the process of Electron integration.

**Describe alternatives you've considered**
- `app.commandLine.appendSwitch('unsafely-treat-insecure-origin-as-secure', $url)` in the main thread
- Invisible [BrowserWindow](https://github.com/electron/electron/blob/master/docs/api/browser-window.md) with secure origin + IPC
- `<iframe>` on a secure origin
- localhost-Proxy
- Using Data URLs in [loadURL](https://github.com/electron/electron/blob/master/docs/api/browser-window.md#winloadurlurl-options): `data:text/html,<script>new Notification("hi")</script>`
- webFrame.registerURLSchemeAsPrivileged

**Additional context**
'Deprecating Powerful Features on Insecure Origins' https://goo.gl/rStTGz
When the flag is set in Chromium a message appears under the address bar, saying that
'You are using an unsupported command-line flag'.
![image](https://user-images.githubusercontent.com/23075755/47640947-1c6ebf80-db65-11e8-9e6e-d7a5bd90c208.png)
Nonetheless the features are then working on the origin treated securely.
shell/browser/electron_browser_client.cc
ElectronBrowserClient::CreateLoginDelegate(
    const net::AuthChallengeInfo& auth_info,
    content::WebContents* web_contents,
    const content::GlobalRequestID& request_id,
    bool is_main_frame,
    const GURL& url,
    scoped_refptr<net::HttpResponseHeaders> response_headers,
    bool first_auth_attempt,
    LoginAuthRequiredCallback auth_required_callback) {
  return std::make_unique<LoginHandler>(
      auth_info, web_contents, is_main_frame, url, response_headers,
      first_auth_attempt, std::move(auth_required_callback));
}
std::vector<std::unique_ptr<blink::URLLoaderThrottle>>
ElectronBrowserClient::CreateURLLoaderThrottles(
    const network::ResourceRequest& request,
    content::BrowserContext* browser_context,
    const base::RepeatingCallback<content::WebContents*()>& wc_getter,
    content::NavigationUIData* navigation_ui_data,
    int frame_tree_node_id) {
  DCHECK_CURRENTLY_ON(BrowserThread::UI);
  std::vector<std::unique_ptr<blink::URLLoaderThrottle>> result;
#if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
  result.push_back(std::make_unique<PluginResponseInterceptorURLLoaderThrottle>(
      request.destination, frame_tree_node_id));
#endif
  return result;
}
base::flat_set<std::string>