diff --git a/atom/common/api/atom_api_clipboard.cc b/atom/common/api/atom_api_clipboard.cc
index bda3b0c38c..01e670be92 100644
--- a/atom/common/api/atom_api_clipboard.cc
+++ b/atom/common/api/atom_api_clipboard.cc
@@ -54,12 +54,16 @@ std::string Read(const std::string& format_string,
void Write(const mate::Dictionary& data,
mate::Arguments* args) {
ui::ScopedClipboardWriter writer(GetClipboardType(args));
- base::string16 text, html;
+ base::string16 text, html, bookmark;
gfx::Image image;
- if (data.Get("text", &text))
+ if (data.Get("text", &text)) {
writer.WriteText(text);
+ if (data.Get("bookmark", &bookmark))
+ writer.WriteBookmark(bookmark, base::UTF16ToUTF8(text));
+ }
+
if (data.Get("rtf", &text)) {
std::string rtf = base::UTF16ToUTF8(text);
writer.WriteRTF(rtf);
diff --git a/spec/api-clipboard-spec.js b/spec/api-clipboard-spec.js
index 1c3682ba2b..3915b550e2 100644
--- a/spec/api-clipboard-spec.js
+++ b/spec/api-clipboard-spec.js
@@ -58,16 +58,19 @@ describe('clipboard module', function () {
var p = path.join(fixtures, 'assets', 'logo.png')
var i = nativeImage.createFromPath(p)
var markup = process.platform === 'darwin' ? "Hi" : process.platform === 'linux' ? 'Hi' : 'Hi'
+ var bookmark = {title: 'a title', url: 'test'}
clipboard.write({
text: 'test',
html: 'Hi',
rtf: '{\\rtf1\\utf8 text}',
+ bookmark: 'a title',
image: p
})
assert.equal(clipboard.readText(), text)
assert.equal(clipboard.readHTML(), markup)
assert.equal(clipboard.readRTF(), rtf)
assert.equal(clipboard.readImage().toDataURL(), i.toDataURL())
+ assert.deepEqual(clipboard.readBookmark(), bookmark)
})
})
})