Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Unified Diff: third_party/WebKit/Source/core/clipboard/DataTransfer.cpp

Issue 2875013002: DataTransfer: Make |types| be a FrozenArray<DOMString>. (Closed)
Patch Set: Add new test, use CachedAttribute Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
diff --git a/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp b/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
index 2738516710bd335ed2df5c41eca8df85e30a864e..1941dce9a626612eb3b068f7d646f0b066ae59ff 100644
--- a/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
+++ b/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
@@ -168,10 +168,15 @@ void DataTransfer::clearData(const String& type) {
if (!CanWriteData())
return;
+ const size_t old_length = data_object_->length();
+
if (type.IsNull())
data_object_->ClearAll();
else
data_object_->ClearData(NormalizeType(type));
+
+ if (old_length != data_object_->length())
+ data_store_item_list_changed_ = true;
}
String DataTransfer::getData(const String& type) const {
@@ -190,9 +195,16 @@ void DataTransfer::setData(const String& type, const String& data) {
return;
data_object_->SetData(NormalizeType(type), data);
+ data_store_item_list_changed_ = true;
+}
+
+bool DataTransfer::hasDataStoreItemListChanged() {
+ if (!data_store_item_list_changed_)
+ return false;
+ data_store_item_list_changed_ = false;
jsbell 2017/05/12 17:07:35 Hrm... most places where we use [CachedAttribute]
+ return true;
}
-// extensions beyond IE's API
Vector<String> DataTransfer::types() const {
Vector<String> types;
if (!CanReadTypes())
@@ -429,7 +441,8 @@ DataTransfer::DataTransfer(DataTransferType type,
drop_effect_("uninitialized"),
effect_allowed_("uninitialized"),
transfer_type_(type),
- data_object_(data_object) {}
+ data_object_(data_object),
+ data_store_item_list_changed_(true) {}
void DataTransfer::setDragImage(ImageResourceContent* image,
Node* node,

Powered by Google App Engine
This is Rietveld 408576698