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
This commit is contained in:
Alastor Wu 2019-12-09 23:54:14 +00:00
Родитель c68dbd86f2
Коммит f3a4ab9441
3 изменённых файлов: 8 добавлений и 4 удалений

Просмотреть файл

@ -57,7 +57,7 @@ class MediaControlKeysEventSource : public nsISupports {
virtual void AddListener(MediaControlKeysEventListener* aListener); virtual void AddListener(MediaControlKeysEventListener* aListener);
virtual void RemoveListener(MediaControlKeysEventListener* aListener); virtual void RemoveListener(MediaControlKeysEventListener* aListener);
size_t GetListenersNum() const; size_t GetListenersNum() const;
void Close(); virtual void Close();
protected: protected:
virtual ~MediaControlKeysEventSource() = default; virtual ~MediaControlKeysEventSource() = default;

Просмотреть файл

@ -18,12 +18,15 @@ class MediaHardwareKeysEventSourceMac final
: public mozilla::dom::MediaControlKeysEventSource { : public mozilla::dom::MediaControlKeysEventSource {
public: public:
MediaHardwareKeysEventSourceMac(); MediaHardwareKeysEventSourceMac();
~MediaHardwareKeysEventSourceMac();
static CGEventRef EventTapCallback(CGEventTapProxy proxy, CGEventType type, static CGEventRef EventTapCallback(CGEventTapProxy proxy, CGEventType type,
CGEventRef event, void* refcon); CGEventRef event, void* refcon);
void Close() override;
private: private:
~MediaHardwareKeysEventSourceMac() = default;
void StartEventTap(); void StartEventTap();
void StopEventTap(); void StopEventTap();

Просмотреть файл

@ -70,9 +70,10 @@ MediaHardwareKeysEventSourceMac::MediaHardwareKeysEventSourceMac() {
StartEventTap(); StartEventTap();
} }
MediaHardwareKeysEventSourceMac::~MediaHardwareKeysEventSourceMac() { void MediaHardwareKeysEventSourceMac::Close() {
LOG("Destroy MediaHardwareKeysEventSourceMac"); LOG("Close MediaHardwareKeysEventSourceMac");
StopEventTap(); StopEventTap();
MediaControlKeysEventSource::Close();
} }
void MediaHardwareKeysEventSourceMac::StartEventTap() { void MediaHardwareKeysEventSourceMac::StartEventTap() {