1a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch/* 2a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * Copyright (c) 2008, 2009, Google Inc. All rights reserved. 3a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * 4a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * Redistribution and use in source and binary forms, with or without 5a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * modification, are permitted provided that the following conditions are 6a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * met: 7a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * 8a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * * Redistributions of source code must retain the above copyright 9a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * notice, this list of conditions and the following disclaimer. 10a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * * Redistributions in binary form must reproduce the above 11a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * copyright notice, this list of conditions and the following disclaimer 12a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * in the documentation and/or other materials provided with the 13a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * distribution. 14a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * * Neither the name of Google Inc. nor the names of its 15a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * contributors may be used to endorse or promote products derived from 16a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * this software without specific prior written permission. 17a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * 18a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch */ 30a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 31a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "config.h" 32a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "ChromiumDataObjectLegacy.h" 33a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 34a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "ClipboardMimeTypes.h" 35a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "Pasteboard.h" 36ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch#include "PlatformBridge.h" 37a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 38a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochnamespace WebCore { 39a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 40a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch// Per RFC 2483, the line separator for "text/..." MIME types is CR-LF. 41a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochstatic char const* const textMIMETypeLineSeparator = "\r\n"; 42a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 43a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid ChromiumDataObjectLegacy::clearData(const String& type) 44a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 45a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeTextPlain) { 46a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_plainText = ""; 47a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return; 48a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 49a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 50a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeURL || type == mimeTypeTextURIList) { 51a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_uriList = ""; 52a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_url = KURL(); 53a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_urlTitle = ""; 54a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return; 55a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 56a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 57a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeTextHTML) { 58a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_textHtml = ""; 59a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_htmlBaseUrl = KURL(); 60a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return; 61a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 62a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 63a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeDownloadURL) { 64a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_downloadMetadata = ""; 65a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return; 66a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 67a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 68a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 69a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid ChromiumDataObjectLegacy::clearAll() 70a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 71a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch clearAllExceptFiles(); 72a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_filenames.clear(); 73a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 74a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 75a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid ChromiumDataObjectLegacy::clearAllExceptFiles() 76a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 77a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_urlTitle = ""; 78a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_url = KURL(); 79a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_uriList = ""; 80a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_downloadMetadata = ""; 81a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_fileExtension = ""; 82a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_plainText = ""; 83a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_textHtml = ""; 84a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_htmlBaseUrl = KURL(); 85a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_fileContentFilename = ""; 86a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (m_fileContent) 87a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_fileContent->clear(); 88a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 89a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 90a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool ChromiumDataObjectLegacy::hasData() const 91a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 92a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return !m_url.isEmpty() 93a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch || !m_uriList.isEmpty() 94a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch || !m_downloadMetadata.isEmpty() 95a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch || !m_fileExtension.isEmpty() 96a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch || !m_filenames.isEmpty() 97a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch || !m_plainText.isEmpty() 98a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch || !m_textHtml.isEmpty() 99a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch || m_fileContent; 100a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 101a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 102a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochHashSet<String> ChromiumDataObjectLegacy::types() const 103a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 104a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // This is currently broken for pasteboard events, and always has been. 105a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch HashSet<String> results; 106a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 107a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (!m_plainText.isEmpty()) { 108a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch results.add(mimeTypeText); 109a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch results.add(mimeTypeTextPlain); 110a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 111a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 112a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (m_url.isValid()) 113a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch results.add(mimeTypeURL); 114a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 115a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (!m_uriList.isEmpty()) 116a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch results.add(mimeTypeTextURIList); 117a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 118a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (!m_textHtml.isEmpty()) 119a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch results.add(mimeTypeTextHTML); 120a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 121a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (!m_filenames.isEmpty()) 122a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch results.add("Files"); 123a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 124a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return results; 125a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 126a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 127a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochString ChromiumDataObjectLegacy::getData(const String& type, bool& success) 128a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 129a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeTextPlain) { 130a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (m_clipboardType == Clipboard::CopyAndPaste) { 131a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch PasteboardPrivate::ClipboardBuffer buffer = 132a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch Pasteboard::generalPasteboard()->isSelectionMode() ? 133a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch PasteboardPrivate::SelectionBuffer : 134a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch PasteboardPrivate::StandardBuffer; 135ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch String text = PlatformBridge::clipboardReadPlainText(buffer); 136a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = !text.isEmpty(); 137a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return text; 138a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 139a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = !m_plainText.isEmpty(); 140a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return m_plainText; 141a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 142a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 143a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeURL) { 144a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = !m_url.isEmpty(); 145a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return m_url.string(); 146a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 147a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 148a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeTextURIList) { 149a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = !m_uriList.isEmpty(); 150a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return m_uriList; 151a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 152a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 153a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeTextHTML) { 154a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (m_clipboardType == Clipboard::CopyAndPaste) { 155a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch PasteboardPrivate::ClipboardBuffer buffer = 156a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch Pasteboard::generalPasteboard()->isSelectionMode() ? 157a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch PasteboardPrivate::SelectionBuffer : 158a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch PasteboardPrivate::StandardBuffer; 159a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch String htmlText; 160a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch KURL sourceURL; 161ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch PlatformBridge::clipboardReadHTML(buffer, &htmlText, &sourceURL); 162a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = !htmlText.isEmpty(); 163a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return htmlText; 164a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 165a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = !m_textHtml.isEmpty(); 166a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return m_textHtml; 167a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 168a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 169a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeDownloadURL) { 170a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = !m_downloadMetadata.isEmpty(); 171a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return m_downloadMetadata; 172a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 173a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 174a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch success = false; 175a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return String(); 176a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 177a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 178a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool ChromiumDataObjectLegacy::setData(const String& type, const String& data) 179a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 180a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeTextPlain) { 181a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_plainText = data; 182a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return true; 183a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 184a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 185a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeURL || type == mimeTypeTextURIList) { 186a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_url = KURL(); 187a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch Vector<String> uriList; 188a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // Line separator is \r\n per RFC 2483 - however, for compatibility 189a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // reasons we also allow just \n here. 190a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch data.split('\n', uriList); 191a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // Process the input and copy the first valid URL into the url member. 192a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // In case no URLs can be found, subsequent calls to getData("URL") 193a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // will get an empty string. This is in line with the HTML5 spec (see 194a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // "The DragEvent and DataTransfer interfaces"). 195a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch for (size_t i = 0; i < uriList.size(); ++i) { 196a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch String& line = uriList[i]; 197a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch line = line.stripWhiteSpace(); 198a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (line.isEmpty()) 199a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch continue; 200a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (line[0] == '#') 201a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch continue; 202a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch KURL url = KURL(ParsedURLString, line); 203a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (url.isValid()) { 204a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_url = url; 205a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch break; 206a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 207a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 208a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_uriList = data; 209a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return true; 210a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 211a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 212a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeTextHTML) { 213a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_textHtml = data; 214a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_htmlBaseUrl = KURL(); 215a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return true; 216a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 217a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 218a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (type == mimeTypeDownloadURL) { 219a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_downloadMetadata = data; 220a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return true; 221a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 222a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 223a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return false; 224a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 225a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 226a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochChromiumDataObjectLegacy::ChromiumDataObjectLegacy(Clipboard::ClipboardType clipboardType) 227a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch : m_clipboardType(clipboardType) 228a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 229a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 230a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 231a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochChromiumDataObjectLegacy::ChromiumDataObjectLegacy(const ChromiumDataObjectLegacy& other) 232a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch : RefCounted<ChromiumDataObjectLegacy>() 233a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_clipboardType(other.m_clipboardType) 234a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_urlTitle(other.m_urlTitle) 235a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_downloadMetadata(other.m_downloadMetadata) 236a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_fileExtension(other.m_fileExtension) 237a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_filenames(other.m_filenames) 238a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_plainText(other.m_plainText) 239a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_textHtml(other.m_textHtml) 240a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_htmlBaseUrl(other.m_htmlBaseUrl) 241a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_fileContentFilename(other.m_fileContentFilename) 242a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_url(other.m_url) 243a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch , m_uriList(other.m_uriList) 244a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 245a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (other.m_fileContent.get()) 246a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch m_fileContent = other.m_fileContent->copy(); 247a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 248a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 249a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} // namespace WebCore 250