Index: content/renderer/scoped_clipboard_writer_glue.cc |
diff --git a/content/renderer/scoped_clipboard_writer_glue.cc b/content/renderer/scoped_clipboard_writer_glue.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..71471344fd5be6158acc6e62f16a9db0f1b0b028 |
--- /dev/null |
+++ b/content/renderer/scoped_clipboard_writer_glue.cc |
@@ -0,0 +1,36 @@ |
+// 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 |
+ |