d6c8ff2e70
* chore: bump chromium in DEPS to 119.0.6021.0 * 4727729: Initial ScreenCaptureKit AudioInputStream implementation https://chromium-review.googlesource.com/c/chromium/src/+/4727729 * chore: fixup patch indices * chore: bump chromium in DEPS to 119.0.6023.0 * 4875713: mac: Switch to Xcode 15.0 15A240d with macOS SDK 14.0 23A334 https://chromium-review.googlesource.com/c/chromium/src/+/4875713 * 4831380: [task-attribution] Reland: Move to an implicit GCed task container model https://chromium-review.googlesource.com/c/chromium/src/+/4831380 * 4877868: Remove all gitignore entries for submodules https://chromium-review.googlesource.com/c/chromium/src/+/4877868 * 4824705: Set origin to commit for data: URLs https://chromium-review.googlesource.com/c/chromium/src/+/4824705 * chore: fixup patch indices * 4881382: Expose selection in WebFormControlElement as unsigned https://chromium-review.googlesource.com/c/chromium/src/+/4881382 * 4874216: Portals: Cancel drag-drop in predecessor before activation https://chromium-review.googlesource.com/c/chromium/src/+/4874216 * chore: bump chromium in DEPS to 119.0.6025.0 * chore: bump chromium in DEPS to 119.0.6027.0 * 4884489: Update gitignore to be explicit about directories https://chromium-review.googlesource.com/c/chromium/src/+/4884489 * 4881091: Add debug info about owner document's origin when inheriting https://chromium-review.googlesource.com/c/chromium/src/+/4881091 * chore: fixup patch indices * chore: bump chromium in DEPS to 119.0.6029.0 * chore: update patches * 4881091: Add debug info about owner document's origin when inheriting Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4881091 * 4831380: [task-attribution] Reland: Move to an implicit GCed task container model Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4831380 * 4866732: Extract document.title for installable checks Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4866732 * chore: link to crbug in message port test --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
51 lines
2.5 KiB
Diff
51 lines
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jeremy Apthorp <nornagon@nornagon.net>
|
|
Date: Wed, 4 Mar 2020 11:18:03 -0800
|
|
Subject: feat: add onclose to MessagePort
|
|
|
|
This adds the 'onclose' event to MessagePort. This is
|
|
[proposed](https://github.com/w3ctag/design-reviews/issues/269#issuecomment-407584290)
|
|
in w3c and has been discussed for years without conclusion. I'd like to
|
|
get this standardised, but in lieu of that, this makes MessagePort a
|
|
whole bunch more useful!
|
|
|
|
diff --git a/third_party/blink/renderer/core/messaging/message_port.cc b/third_party/blink/renderer/core/messaging/message_port.cc
|
|
index 1d75181438c3219aa984bc87051df3e938b65211..0fd5bbf170efa02d3e710de3cb6733158faec858 100644
|
|
--- a/third_party/blink/renderer/core/messaging/message_port.cc
|
|
+++ b/third_party/blink/renderer/core/messaging/message_port.cc
|
|
@@ -193,6 +193,7 @@ void MessagePort::close() {
|
|
Entangle(pipe.TakePort0(), nullptr);
|
|
}
|
|
closed_ = true;
|
|
+ DispatchEvent(*Event::Create(event_type_names::kClose));
|
|
}
|
|
|
|
void MessagePort::Entangle(MessagePortDescriptor port_descriptor,
|
|
diff --git a/third_party/blink/renderer/core/messaging/message_port.h b/third_party/blink/renderer/core/messaging/message_port.h
|
|
index e093a1ed6c40ab49255fec71c5349272c413d0ca..98ed58a9a765f5101d9b421507bf25db4359d7e5 100644
|
|
--- a/third_party/blink/renderer/core/messaging/message_port.h
|
|
+++ b/third_party/blink/renderer/core/messaging/message_port.h
|
|
@@ -125,6 +125,13 @@ class CORE_EXPORT MessagePort : public EventTarget,
|
|
return GetAttributeEventListener(event_type_names::kMessageerror);
|
|
}
|
|
|
|
+ void setOnclose(EventListener* listener) {
|
|
+ SetAttributeEventListener(event_type_names::kClose, listener);
|
|
+ }
|
|
+ EventListener* onclose() {
|
|
+ return GetAttributeEventListener(event_type_names::kClose);
|
|
+ }
|
|
+
|
|
// A port starts out its life entangled, and remains entangled until it is
|
|
// closed or is cloned.
|
|
bool IsEntangled() const { return !closed_ && !IsNeutered(); }
|
|
diff --git a/third_party/blink/renderer/core/messaging/message_port.idl b/third_party/blink/renderer/core/messaging/message_port.idl
|
|
index 6fab27fcdf1c333739b6ffe88b3cc4eed3301ee4..3f1f181d9b8a66997136f870f55c97c08294b6eb 100644
|
|
--- a/third_party/blink/renderer/core/messaging/message_port.idl
|
|
+++ b/third_party/blink/renderer/core/messaging/message_port.idl
|
|
@@ -40,4 +40,5 @@
|
|
// event handlers
|
|
attribute EventHandler onmessage;
|
|
attribute EventHandler onmessageerror;
|
|
+ attribute EventHandler onclose;
|
|
};
|