Index: base/clipboard.cc |
=================================================================== |
--- base/clipboard.cc (revision 27849) |
+++ base/clipboard.cc (working copy) |
@@ -1,65 +0,0 @@ |
-// Copyright (c) 2006-2008 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 "base/clipboard.h" |
- |
-#include "base/gfx/size.h" |
-#include "base/logging.h" |
- |
-namespace { |
- |
-// A compromised renderer could send us bad data, so validate it. |
-bool IsBitmapSafe(const Clipboard::ObjectMapParams& params) { |
- const gfx::Size* size = |
- reinterpret_cast<const gfx::Size*>(&(params[1].front())); |
- return params[0].size() == |
- static_cast<size_t>(size->width() * size->height() * 4); |
-} |
- |
-} // namespace |
- |
-void Clipboard::DispatchObject(ObjectType type, const ObjectMapParams& params) { |
- switch (type) { |
- case CBF_TEXT: |
- WriteText(&(params[0].front()), params[0].size()); |
- break; |
- |
- case CBF_HTML: |
- if (params.size() == 2) |
- WriteHTML(&(params[0].front()), params[0].size(), |
- &(params[1].front()), params[1].size()); |
- else |
- WriteHTML(&(params[0].front()), params[0].size(), NULL, 0); |
- break; |
- |
- case CBF_BOOKMARK: |
- WriteBookmark(&(params[0].front()), params[0].size(), |
- &(params[1].front()), params[1].size()); |
- break; |
- |
- case CBF_FILES: |
- WriteFiles(&(params[0].front()), params[0].size()); |
- break; |
- |
- case CBF_WEBKIT: |
- WriteWebSmartPaste(); |
- break; |
- |
-#if defined(OS_WIN) || defined(OS_LINUX) |
- case CBF_BITMAP: |
- if (!IsBitmapSafe(params)) |
- return; |
- WriteBitmap(&(params[0].front()), &(params[1].front())); |
- break; |
- |
- case CBF_DATA: |
- WriteData(&(params[0].front()), params[0].size(), |
- &(params[1].front()), params[1].size()); |
- break; |
-#endif // defined(OS_WIN) || defined(OS_LINUX) |
- |
- default: |
- NOTREACHED(); |
- } |
-} |