Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: clipboard.readBuffer returning empty value #24467

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 2 additions & 3 deletions shell/common/api/electron_api_clipboard.cc
Expand Up @@ -71,9 +71,8 @@ void Clipboard::WriteBuffer(const std::string& format,
base::span<const uint8_t> payload_span(
reinterpret_cast<const uint8_t*>(node::Buffer::Data(buffer)),
node::Buffer::Length(buffer));
writer.WriteData(
base::UTF8ToUTF16(ui::ClipboardFormatType::GetType(format).Serialize()),
mojo_base::BigBuffer(payload_span));
writer.WriteData(base::UTF8ToUTF16(format),
mojo_base::BigBuffer(payload_span));
}

void Clipboard::Write(const gin_helper::Dictionary& data,
Expand Down
24 changes: 2 additions & 22 deletions spec/api-clipboard-spec.js
Expand Up @@ -112,17 +112,11 @@ describe('clipboard module', () => {
});
});

describe('clipboard.writeBuffer(format, buffer)', () => {
describe('clipboard.readBuffer(format)', () => {
it('writes a Buffer for the specified format', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return;
}

const buffer = Buffer.from('writeBuffer', 'utf8');
clipboard.writeBuffer('public.utf8-plain-text', buffer);
expect(clipboard.readText()).to.equal('writeBuffer');
expect(buffer.equals(clipboard.readBuffer('public.utf8-plain-text'))).to.equal(true);
});

it('throws an error when a non-Buffer is specified', () => {
Expand All @@ -131,18 +125,4 @@ describe('clipboard module', () => {
}).to.throw(/buffer must be a node Buffer/);
});
});

describe('clipboard.readBuffer(format)', () => {
before(function () {
if (process.platform !== 'darwin') {
this.skip();
}
});

it('returns a Buffer of the content for the specified format', () => {
const buffer = Buffer.from('this is binary', 'utf8');
clipboard.writeText(buffer.toString());
expect(buffer.equals(clipboard.readBuffer('public.utf8-plain-text'))).to.equal(true);
});
});
});