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, |