From f3a4ab9441bc906100988324b3899e99a43a5947 Mon Sep 17 00:00:00 2001 From: Alastor Wu Date: Mon, 9 Dec 2019 23:54:14 +0000 Subject: [PATCH] Bug 1601379 - part1 : allow inherited class to override 'Close()' r=MeFisto94 Add an ability for inherited sources to implement their own deconstruction operations. Differential Revision: https://phabricator.services.mozilla.com/D56447 --HG-- extra : moz-landing-system : lando --- dom/media/mediacontrol/MediaControlKeysEvent.h | 2 +- widget/cocoa/MediaHardwareKeysEventSourceMac.h | 5 ++++- widget/cocoa/MediaHardwareKeysEventSourceMac.mm | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dom/media/mediacontrol/MediaControlKeysEvent.h b/dom/media/mediacontrol/MediaControlKeysEvent.h index 8f5b8ba723f2..d0e676a14c5e 100644 --- a/dom/media/mediacontrol/MediaControlKeysEvent.h +++ b/dom/media/mediacontrol/MediaControlKeysEvent.h @@ -57,7 +57,7 @@ class MediaControlKeysEventSource : public nsISupports { virtual void AddListener(MediaControlKeysEventListener* aListener); virtual void RemoveListener(MediaControlKeysEventListener* aListener); size_t GetListenersNum() const; - void Close(); + virtual void Close(); protected: virtual ~MediaControlKeysEventSource() = default; diff --git a/widget/cocoa/MediaHardwareKeysEventSourceMac.h b/widget/cocoa/MediaHardwareKeysEventSourceMac.h index ee498f0d4fe4..86fa278077c4 100644 --- a/widget/cocoa/MediaHardwareKeysEventSourceMac.h +++ b/widget/cocoa/MediaHardwareKeysEventSourceMac.h @@ -18,12 +18,15 @@ class MediaHardwareKeysEventSourceMac final : public mozilla::dom::MediaControlKeysEventSource { public: MediaHardwareKeysEventSourceMac(); - ~MediaHardwareKeysEventSourceMac(); static CGEventRef EventTapCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void* refcon); + void Close() override; + private: + ~MediaHardwareKeysEventSourceMac() = default; + void StartEventTap(); void StopEventTap(); diff --git a/widget/cocoa/MediaHardwareKeysEventSourceMac.mm b/widget/cocoa/MediaHardwareKeysEventSourceMac.mm index d8e13ffe63f7..5eb8f709b529 100644 --- a/widget/cocoa/MediaHardwareKeysEventSourceMac.mm +++ b/widget/cocoa/MediaHardwareKeysEventSourceMac.mm @@ -70,9 +70,10 @@ MediaHardwareKeysEventSourceMac::MediaHardwareKeysEventSourceMac() { StartEventTap(); } -MediaHardwareKeysEventSourceMac::~MediaHardwareKeysEventSourceMac() { - LOG("Destroy MediaHardwareKeysEventSourceMac"); +void MediaHardwareKeysEventSourceMac::Close() { + LOG("Close MediaHardwareKeysEventSourceMac"); StopEventTap(); + MediaControlKeysEventSource::Close(); } void MediaHardwareKeysEventSourceMac::StartEventTap() {