| // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/renderer/scoped_clipboard_writer_glue.h" |
| #include "base/logging.h" |
| |
| namespace content { |
| |
| ScopedClipboardWriterGlue::ScopedClipboardWriterGlue(ClipboardClient* client) |
| : ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE), |
| context_(client->CreateWriteContext()) { |
| DCHECK(context_); |
| } |
| |
| ScopedClipboardWriterGlue::~ScopedClipboardWriterGlue() { |
| if (!objects_.empty() && context_) { |
| context_->Flush(objects_); |
| // TODO(dcheng): Temporary hack while the clipboard IPCs are cleaned up. |
| // This prevents the base class destructor from also trying to (probably |
| // unsuccessfully) flush things to the clipboard. |
| objects_.clear(); |
| } |
| } |
| |
| void ScopedClipboardWriterGlue::WriteBitmapFromPixels(const void* pixels, |
| const gfx::Size& size) { |
| if (context_) { |
| context_->WriteBitmapFromPixels(&objects_, pixels, size); |
| } else { |
| NOTREACHED(); |
| } |
| } |
| |
| } // namespace content |
| |