### Issue Details

* **Electron Version:**
  * `8.3.3`
* **Operating System:**
  * Windows 10 2004
* **Last Known Working Electron version:**
  * `7.x`

### Expected Behavior
You can write and read from clipboard via `Buffer`.

### Actual Behavior
You can write but not read.

### To Reproduce

```js
setTimeout(() => {
  clipboard.writeBuffer('code/file-list', Buffer.from("Hello World"));
  console.log("did write")
}, 1000);

setTimeout(() => {
  const res = clipboard.readBuffer('code/file-list');
  console.log(res.toString());
}, 2000);
```

The output is empty with Electron 8 but filled with Electron 7.

//cc @deepak1556 
shell/common/api/electron_api_clipboard.cc
base::string16 title;
  std::string url;
  gin_helper::Dictionary dict =
      gin_helper::Dictionary::CreateEmpty(args->isolate());
  ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
  clipboard->ReadBookmark(&title, &url);
  dict.Set("title", title);
  dict.Set("url", url);
  return dict.GetHandle();
}
void Clipboard::WriteBookmark(const base::string16& title,
                              const std::string& url,
                              gin_helper::Arguments* args) {
  ui::ScopedClipboardWriter writer(GetClipboardBuffer(args));
  writer.WriteBookmark(title, url);
}
gfx::Image Clipboard::ReadImage(gin_helper::Arguments* args) {
  ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
  base::Optional<gfx::Image> image;
  clipboard->ReadImage(
      GetClipboardBuffer(args),
      base::Bind(
          [](base::Optional<gfx::Image>* image, const SkBitmap& result) {
            image->emplace(gfx::Image::CreateFrom1xBitmap(result));
          },
          &image));
  DCHECK(image.has_value());
  return image.value();
}
void Clipboard::WriteImage(const gfx::Image& image,