<!--  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

* **Electron Version:**
  * <!-- (output of `node_modules/.bin/electron --version`) e.g. 4.0.3 --> v8.2.0
* **Operating System:**
  * <!-- (Platform and Version) e.g. macOS 10.13.6 / Windows 10 (1803) / Ubuntu 18.04 x64 --> Windows 10 (17763) 
* **Last Known Working Electron version:**  
  * <!-- (if applicable) e.g. 3.1.0 --> n/a

### Expected Behavior
<!-- A clear and concise description of what you expected to happen. -->
When setting `nativeTheme.themeSource`, the `prefers-color-scheme` media query updates accordingly and all elements using the query on the page are restyled.

### Actual Behavior
<!-- A clear and concise description of what actually happened. -->
Setting `nativeTheme.themeSource` does not appear to update the media query until a system-level change to the light/dark theme is made.

e.g. if we do `nativeTheme.themeSource = "dark"`, then running `matchMedia("(prefers-color-scheme: dark)").matches` returns `false`.

The documentation appears to suggest the media query should update: https://www.electronjs.org/docs/api/native-theme#nativethemethemesource

### To Reproduce
<!--
Your best chance of getting this bug looked at quickly is to provide an example.
-->

<!--
For bugs that can be encapsulated in a small experiment, you can use Electron Fiddle (https://github.com/electron/fiddle) to publish your example to a GitHub Gist and link it your bug report.
-->

<!--
If Fiddle is insufficient to produce an example, please provide an example REPOSITORY that can be cloned and run. You can fork electron-quick-start (https://github.com/electron/electron-quick-start) and include a link to the branch with your changes.
-->

<!--
If you provide a URL, please list the commands required to clone/setup/run your repo e.g.
```sh
$ git clone $YOUR_URL -b $BRANCH
$ npm install
$ npm start || electron .
```
-->

Fiddle Gist: https://gist.github.com/6e571fb4e8aa3d319a3109d61dda79c3
1. Set your windows theme to light in system settings.
2. Open the fiddle. The menu bar and page are in the light theme.
3. From the `Theme` menu, click `Dark`. This sets `nativeTheme`.
4. Notice that the menu changes colour but the page does not (as per screenshot).
5. Set your windows theme to dark in system settings.
6. Notice that the page is now dark.
7. Set your windows theme to light in system settings.
8. The page remains dark as expected.
9. From the `Theme` menu, click `Light`.
10. The menu changes colour but the page does not. It only updates when changing the system settings.

### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->
![image](https://user-images.githubusercontent.com/9112859/77646981-87d8de80-6f5d-11ea-8d23-2e4b0df05e21.png)


### Additional Information
<!-- Add any other context about the problem here. -->
- Using the remote module to set `nativeTheme`.
shell/browser/electron_browser_client.cc
content::WebContents* web_contents,
    int cert_error,
    const net::SSLInfo& ssl_info,
    const GURL& request_url,
    bool is_main_frame_request,
    bool strict_enforcement,
    base::OnceCallback<void(content::CertificateRequestResultType)> callback) {
  if (delegate_) {
    delegate_->AllowCertificateError(web_contents, cert_error, ssl_info,
                                     request_url, is_main_frame_request,
                                     strict_enforcement, std::move(callback));
  }
}
base::OnceClosure ElectronBrowserClient::SelectClientCertificate(
    content::WebContents* web_contents,
    net::SSLCertRequestInfo* cert_request_info,
    net::ClientCertIdentityList client_certs,
    std::unique_ptr<content::ClientCertificateDelegate> delegate) {
  if (!client_certs.empty() && delegate_) {
    delegate_->SelectClientCertificate(web_contents, cert_request_info,
                                       std::move(client_certs),
                                       std::move(delegate));
  }
  return base::OnceClosure();
}
bool ElectronBrowserClient::CanCreateWindow(