blob: 9561458d230b46e32b4c3a0ab05b281fa45f0266 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/nfc/ndef_reading_event.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_ndef_reading_event_init.h"
#include "third_party/blink/renderer/modules/nfc/ndef_message.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
namespace blink {
// static
NDEFReadingEvent* NDEFReadingEvent::Create(const AtomicString& event_type,
const NDEFReadingEventInit* init,
ExceptionState& exception_state) {
NDEFMessage* message =
NDEFMessage::Create(nullptr, init->message(), exception_state);
if (exception_state.HadException())
return nullptr;
DCHECK(message);
return MakeGarbageCollected<NDEFReadingEvent>(event_type, init, message);
}
NDEFReadingEvent::NDEFReadingEvent(const AtomicString& event_type,
const NDEFReadingEventInit* init,
NDEFMessage* message)
: Event(event_type, init),
serial_number_(init->serialNumber()),
message_(message) {}
NDEFReadingEvent::NDEFReadingEvent(const AtomicString& event_type,
const String& serial_number,
NDEFMessage* message)
: Event(event_type, Bubbles::kNo, Cancelable::kNo),
serial_number_(serial_number),
message_(message) {}
NDEFReadingEvent::~NDEFReadingEvent() = default;
const AtomicString& NDEFReadingEvent::InterfaceName() const {
return event_interface_names::kNDEFReadingEvent;
}
void NDEFReadingEvent::Trace(Visitor* visitor) const {
visitor->Trace(message_);
Event::Trace(visitor);
}
const String& NDEFReadingEvent::serialNumber() const {
if (serial_number_.IsNull())
return g_empty_string;
return serial_number_;
}
NDEFMessage* NDEFReadingEvent::message() const {
return message_;
}
} // namespace blink