summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/chromium/ChromiumDataObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/chromium/ChromiumDataObject.cpp')
-rw-r--r--WebCore/platform/chromium/ChromiumDataObject.cpp215
1 files changed, 174 insertions, 41 deletions
diff --git a/WebCore/platform/chromium/ChromiumDataObject.cpp b/WebCore/platform/chromium/ChromiumDataObject.cpp
index 8352669..78b794b 100644
--- a/WebCore/platform/chromium/ChromiumDataObject.cpp
+++ b/WebCore/platform/chromium/ChromiumDataObject.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2009, Google Inc. All rights reserved.
+ * Copyright (c) 2010, Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -33,54 +33,187 @@
namespace WebCore {
-void ChromiumDataObject::clear()
+ChromiumDataObject::ChromiumDataObject(PassRefPtr<ChromiumDataObjectLegacy> data)
+ : RefCounted<ChromiumDataObject>()
+ , m_legacyData(data)
+{
+}
+
+ChromiumDataObject::ChromiumDataObject(PassRefPtr<ReadableDataObject> data)
+ : RefCounted<ChromiumDataObject>()
+ , m_readableData(data)
+{
+}
+
+ChromiumDataObject::ChromiumDataObject(PassRefPtr<WritableDataObject> data)
+ : RefCounted<ChromiumDataObject>()
+ , m_writableData(data)
+{
+}
+
+PassRefPtr<ChromiumDataObject> ChromiumDataObject::create(PassRefPtr<ChromiumDataObjectLegacy> data)
+{
+ return adoptRef(new ChromiumDataObject(data));
+}
+
+PassRefPtr<ChromiumDataObject> ChromiumDataObject::createReadable(Clipboard::ClipboardType clipboardType)
+{
+ return adoptRef(new ChromiumDataObject(ReadableDataObject::create(clipboardType)));
+}
+
+PassRefPtr<ChromiumDataObject> ChromiumDataObject::createWritable(Clipboard::ClipboardType clipboardType)
+{
+ return adoptRef(new ChromiumDataObject(WritableDataObject::create(clipboardType)));
+}
+
+void ChromiumDataObject::clearData(const String& type)
+{
+ if (m_legacyData)
+ m_legacyData->clearData(type);
+ else
+ m_writableData->clearData(type);
+}
+
+void ChromiumDataObject::clearAll()
{
- clearAllExceptFiles();
- filenames.clear();
+ if (m_legacyData)
+ m_legacyData->clearAll();
+ else
+ m_writableData->clearAll();
}
void ChromiumDataObject::clearAllExceptFiles()
{
- url = KURL();
- urlTitle = "";
- uriList.clear();
- downloadMetadata = "";
- fileExtension = "";
- plainText = "";
- textHtml = "";
- htmlBaseUrl = KURL();
- fileContentFilename = "";
- if (fileContent)
- fileContent->clear();
+ if (m_legacyData)
+ m_legacyData->clearAllExceptFiles();
+ else
+ m_writableData->clearAllExceptFiles();
}
bool ChromiumDataObject::hasData() const
{
- return !url.isEmpty()
- || !uriList.isEmpty()
- || !downloadMetadata.isEmpty()
- || !fileExtension.isEmpty()
- || !filenames.isEmpty()
- || !plainText.isEmpty()
- || !textHtml.isEmpty()
- || fileContent;
+ if (m_legacyData)
+ return m_legacyData->hasData();
+ return m_readableData->hasData();
+}
+
+HashSet<String> ChromiumDataObject::types() const
+{
+ if (m_legacyData)
+ return m_legacyData->types();
+ return m_readableData->types();
+}
+
+String ChromiumDataObject::getData(const String& type, bool& success)
+{
+ if (m_legacyData)
+ return m_legacyData->getData(type, success);
+ return m_readableData->getData(type, success);
+}
+
+bool ChromiumDataObject::setData(const String& type, const String& data)
+{
+ if (m_legacyData)
+ return m_legacyData->setData(type, data);
+ return m_writableData->setData(type, data);
+}
+
+String ChromiumDataObject::urlTitle() const
+{
+ if (m_legacyData)
+ return m_legacyData->urlTitle();
+ return m_readableData->urlTitle();
+}
+
+void ChromiumDataObject::setUrlTitle(const String& urlTitle)
+{
+ if (m_legacyData)
+ m_legacyData->setUrlTitle(urlTitle);
+ else
+ m_writableData->setUrlTitle(urlTitle);
+}
+
+KURL ChromiumDataObject::htmlBaseUrl() const
+{
+ if (m_legacyData)
+ return m_legacyData->htmlBaseUrl();
+ return m_readableData->htmlBaseUrl();
+}
+
+void ChromiumDataObject::setHtmlBaseUrl(const KURL& url)
+{
+ if (m_legacyData)
+ m_legacyData->setHtmlBaseUrl(url);
+ else
+ m_writableData->setHtmlBaseUrl(url);
+}
+
+bool ChromiumDataObject::containsFilenames() const
+{
+ if (m_legacyData)
+ return m_legacyData->containsFilenames();
+ return m_readableData->containsFilenames();
+}
+
+Vector<String> ChromiumDataObject::filenames() const
+{
+ if (m_legacyData)
+ return m_legacyData->filenames();
+ return m_readableData->filenames();
+}
+
+void ChromiumDataObject::setFilenames(const Vector<String>& filenames)
+{
+ if (m_legacyData)
+ m_legacyData->setFilenames(filenames);
+ else
+ ASSERT_NOT_REACHED();
+}
+
+String ChromiumDataObject::fileExtension() const
+{
+ if (m_legacyData)
+ return m_legacyData->fileExtension();
+ return m_writableData->fileExtension();
+}
+
+void ChromiumDataObject::setFileExtension(const String& fileExtension)
+{
+ if (m_legacyData)
+ m_legacyData->setFileExtension(fileExtension);
+ else
+ m_writableData->setFileExtension(fileExtension);
+}
+
+String ChromiumDataObject::fileContentFilename() const
+{
+ if (m_legacyData)
+ return m_legacyData->fileContentFilename();
+ return m_writableData->fileContentFilename();
+}
+
+void ChromiumDataObject::setFileContentFilename(const String& fileContentFilename)
+{
+ if (m_legacyData)
+ m_legacyData->setFileContentFilename(fileContentFilename);
+ else
+ m_writableData->setFileContentFilename(fileContentFilename);
+}
+
+PassRefPtr<SharedBuffer> ChromiumDataObject::fileContent() const
+{
+ if (m_legacyData)
+ return m_legacyData->fileContent();
+ return m_writableData->fileContent();
+}
+
+void ChromiumDataObject::setFileContent(PassRefPtr<SharedBuffer> fileContent)
+{
+ if (m_legacyData)
+ m_legacyData->setFileContent(fileContent);
+ else
+ m_writableData->setFileContent(fileContent);
+}
+
}
-ChromiumDataObject::ChromiumDataObject(const ChromiumDataObject& other)
- : RefCounted<ChromiumDataObject>()
- , urlTitle(other.urlTitle)
- , downloadMetadata(other.downloadMetadata)
- , fileExtension(other.fileExtension)
- , filenames(other.filenames)
- , plainText(other.plainText)
- , textHtml(other.textHtml)
- , htmlBaseUrl(other.htmlBaseUrl)
- , fileContentFilename(other.fileContentFilename)
- , url(other.url)
- , uriList(other.uriList)
-{
- if (other.fileContent.get())
- fileContent = other.fileContent->copy();
-}
-
-} // namespace WebCore