### Preflight Checklist
* [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:**
  * 12.0.0-beta.7
* **Operating System:**
  * macOS / Window
* **Last Known Working Electron version:**
  * 8

### Expected Behavior
<!-- A clear and concise description of what you expected to happen. -->
1. Add `<input type="color" />` in HTML code
2. Run the app
3. Click on input - color picker is opening
4. Pick color by Eyedropper
5. Input should be updated by selected color

### Actual Behavior
The eyedropper is not started

### To Reproduce
For reproduce you can use electron fiddle and simply add `<input type="color" />`  in HTML code
 
### Screenshots
![5ZqhvTeI95](https://user-images.githubusercontent.com/8972979/101465241-fa4ceb80-393f-11eb-950f-152f736e127e.gif)


shell/browser/api/electron_api_web_contents.cc
return handle;
  }
  auto* frame_host = ontents()->GetMainFrame();
  if (!frame_host) {
    promise.RejectWithErrorMessage("takeHeapSnapshot failed");
    return handle;
  }
   This dance with `base::Owned` is to ensure that the interface stays alive
   until the callback is called. Otherwise it would be closed at the end of
   this function.
  auto electron_renderer =
      std::make_unique<mojo::AssociatedRemote<mojom::ElectronRenderer>>();
  frame_host->GetRemoteAssociatedInterfaces()->GetInterface(
      electron_renderer.get());
  auto* raw_ptr = electron_renderer.get();
  (*raw_ptr)->TakeHeapSnapshot(
      mojo::WrapPlatformFile(base::ScopedPlatformFile(file.TakePlatformFile())),
      base::BindOnce(
          [](mojo::AssociatedRemote<mojom::ElectronRenderer>* ep,
             gin_helper::Promise<void> promise, bool success) {
            if (success) {
              promise.Resolve();
            } else {
              promise.RejectWithErrorMessage("takeHeapSnapshot failed");
            }
          },
          base::Owned(std::move(electron_renderer)), std::move(promise)));
  return handle;
}
void WebContents::UpdatePreferredSize(content::WebContents* ontents,