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 RemoveListener(MediaControlKeysEventListener* aListener);
size_t GetListenersNum() const;
void Close();
virtual void Close();
protected:
virtual ~MediaControlKeysEventSource() = default;

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

@ -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();

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

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