diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/clipboard/clipboard_item.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/clipboard/clipboard_item.cc | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/modules/clipboard/clipboard_item.cc b/chromium/third_party/blink/renderer/modules/clipboard/clipboard_item.cc index d032f794c75..b352746a38b 100644 --- a/chromium/third_party/blink/renderer/modules/clipboard/clipboard_item.cc +++ b/chromium/third_party/blink/renderer/modules/clipboard/clipboard_item.cc @@ -4,6 +4,8 @@ #include "third_party/blink/renderer/modules/clipboard/clipboard_item.h" +#include "third_party/blink/public/common/features.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_clipboard_item_options.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/heap/heap.h" @@ -13,7 +15,9 @@ namespace blink { // static ClipboardItem* ClipboardItem::Create( const HeapVector<std::pair<String, Member<Blob>>>& items, + const ClipboardItemOptions* options, ExceptionState& exception_state) { + DCHECK(options); // Check that incoming dictionary isn't empty. If it is, it's possible that // Javascript bindings implicitly converted an Object (like a Blob) into {}, // an empty dictionary. @@ -21,12 +25,17 @@ ClipboardItem* ClipboardItem::Create( exception_state.ThrowTypeError("Empty dictionary argument"); return nullptr; } - return MakeGarbageCollected<ClipboardItem>(items); + return MakeGarbageCollected<ClipboardItem>(items, options); } ClipboardItem::ClipboardItem( - const HeapVector<std::pair<String, Member<Blob>>>& items) - : items_(items) {} + const HeapVector<std::pair<String, Member<Blob>>>& items, + const ClipboardItemOptions* options) + : items_(items), + is_raw_(base::FeatureList::IsEnabled(features::kRawClipboard) && + options->raw()) { + DCHECK(items_.size()); +} Vector<String> ClipboardItem::types() const { Vector<String> types; @@ -37,6 +46,10 @@ Vector<String> ClipboardItem::types() const { return types; } +bool ClipboardItem::raw() const { + return is_raw_; +} + ScriptPromise ClipboardItem::getType(ScriptState* script_state, const String& type) const { auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state); @@ -54,7 +67,7 @@ ScriptPromise ClipboardItem::getType(ScriptState* script_state, return promise; } -void ClipboardItem::Trace(blink::Visitor* visitor) { +void ClipboardItem::Trace(Visitor* visitor) { visitor->Trace(items_); ScriptWrappable::Trace(visitor); } |