#include "third_party/blink/renderer/modules/notifications/notification.h"
#include <memory>
#include <utility>
#include "base/task/single_thread_task_runner.h"
#include "base/unguessable_token.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/common/notifications/notification_constants.h"
#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h"
#include "third_party/blink/renderer/bindings/core/v8/to_v8_traits.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_notification_action.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_notification_options.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/dom/scoped_window_focus_allowed_indicator.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/performance_monitor.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/modules/notifications/notification_data.h"
#include "third_party/blink/renderer/modules/notifications/notification_manager.h"
#include "third_party/blink/renderer/modules/notifications/notification_resources_loader.h"
#include "third_party/blink/renderer/modules/notifications/timestamp_trigger.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h"
#include "third_party/blink/renderer/platform/bindings/source_location.h"
#include "third_party/blink/renderer/platform/instrumentation/resource_coordinator/document_resource_coordinator.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
namespace blink {
Notification* Notification::Create(ExecutionContext* context,
const String& title,
const NotificationOptions* options,
ExceptionState& exception_state) { … }
Notification* Notification::Create(ExecutionContext* context,
const String& notification_id,
mojom::blink::NotificationDataPtr data,
bool showing) { … }
Notification::Notification(ExecutionContext* context,
Type type,
mojom::blink::NotificationDataPtr data)
: … { … }
Notification::~Notification() = default;
void Notification::SchedulePrepareShow() { … }
void Notification::PrepareShow(TimerBase*) { … }
void Notification::DidLoadResources(NotificationResourcesLoader* loader) { … }
void Notification::close() { … }
void Notification::OnShow() { … }
void Notification::OnClick(OnClickCallback completed_closure) { … }
void Notification::OnClose(OnCloseCallback completed_closure) { … }
void Notification::DispatchErrorEvent() { … }
String Notification::title() const { … }
String Notification::dir() const { … }
String Notification::lang() const { … }
String Notification::body() const { … }
String Notification::tag() const { … }
String Notification::image() const { … }
String Notification::icon() const { … }
String Notification::badge() const { … }
VibrationController::VibrationPattern Notification::vibrate() const { … }
DOMTimeStamp Notification::timestamp() const { … }
bool Notification::renotify() const { … }
bool Notification::silent() const { … }
bool Notification::requireInteraction() const { … }
ScriptValue Notification::data(ScriptState* script_state) { … }
v8::LocalVector<v8::Value> Notification::actions(
ScriptState* script_state) const { … }
String Notification::scenario() const { … }
String Notification::PermissionString(
mojom::blink::PermissionStatus permission) { … }
String Notification::permission(ExecutionContext* context) { … }
ScriptPromise<V8NotificationPermission> Notification::requestPermission(
ScriptState* script_state,
V8NotificationPermissionCallback* deprecated_callback) { … }
uint32_t Notification::maxActions() { … }
DispatchEventResult Notification::DispatchEventInternal(Event& event) { … }
const AtomicString& Notification::InterfaceName() const { … }
void Notification::ContextDestroyed() { … }
bool Notification::HasPendingActivity() const { … }
void Notification::Trace(Visitor* visitor) const { … }
}