<!--  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 -->9.2.0
* **Operating System:**
  * <!-- (Platform and Version) e.g. macOS 10.13.6 / Windows 10 (1803) / Ubuntu 18.04 x64 -->win10
* **Last Known Working Electron version:**
  * <!-- (if applicable) e.g. 3.1.0 -->

### Expected Behavior
[this is config](https://www.electronjs.org/docs/api/web-contents#contentsprintoptions-callback)
<!-- A clear and concise description of what you expected to happen. -->The saved PDF has a custom `header`, and the `pageRanges` is work.

### Actual Behavior
<!-- A clear and concise description of what actually happened. -->
`header` and `pageRanges` is not work.
### 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.
-->
[my electron fiddle](https://gist.github.com/36d96e2fe459dab8ffed2a764d751528)
<!--
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 .
```
-->

### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->
![image](https://user-images.githubusercontent.com/19225429/90504323-7d74e680-e183-11ea-86df-6f6925e77616.png)


### Additional Information
<!-- Add any other context about the problem here. -->
Finally, who can tell me how to determine the total number of pages generated by the printer system of Chrome?

shell/browser/api/electron_api_web_contents.cc
blink::CloneableMessage arguments) {
  TRACE_EVENT1("electron", "WebContents::MessageHost", "channel", channel);
   webContents.emit('ipc-message-host', new Event(), channel, args);
  EmitWithSender("ipc-message-host", receivers_.current_context(),
                 InvokeCallback(), channel, std::move(arguments));
}
void WebContents::UpdateDraggableRegions(
    std::vector<mojom::DraggableRegionPtr> regions) {
  for (ExtendedWebContentsObserver& observer : observers_)
    observer.OnDraggableRegionsUpdated(regions);
}
void WebContents::RenderFrameDeleted(
    content::RenderFrameHost* render_frame_host) {
   A RenderFrameHost can be destroyed before the related Mojo binding is
   closed, which can result in Mojo calls being sent for RenderFrameHosts
   that no longer exist. To prevent this from happening, when a
   RenderFrameHost goes away, we close all the bindings related to that
   frame.
  auto it = frame_to_receivers_map_.find(render_frame_host);
  if (it == frame_to_receivers_map_.end())
    return;
  for (auto id : it->second)
    receivers_.Remove(id);
  frame_to_receivers_map_.erase(it);
}
void WebContents::DidStartNavigation(