Files
tubestation/widget/windows/WinEventObserver.h
Ray Kraesig 5426301ca1 Bug 1915665 - [1/2] Streamline WinEventHub r=win-reviewers,gfx-reviewers,handyman,bradwerth
`WinEventHub` was largely taken from Chromium, where its dynamic
connection/disconnection features are presumably more used. We don't
have any need for that, and anyway if we ever do it'll be easy to add
it alongside the static functionality or even migrate the latter over.

Hardwire the relevant message-processing and invocation directly into
the hidden window's WNDPROC, rather than providing a registration
system. Following the discoveries made in bug 1571516, also remove the
additional failure-mode checks added in bug 1852801, reverting to a
crash (which can be unified with 1571516 when it shows up).

This has, as fallout, a minor functional change to the occlusion
tracker: the subfeature prefs mentioned above are now checked at
message-receipt time, rather than at construction time.

Differential Revision: https://phabricator.services.mozilla.com/D220639
2024-09-17 19:16:46 +00:00

34 lines
1.0 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef widget_windows_WinEventObserver_h
#define widget_windows_WinEventObserver_h
#include <windef.h>
namespace mozilla::widget {
class WinEventWindow {
public:
// Create the hidden window. This window will persist for the lifetime of the
// process: we do not destroy it, but neither does it keep the process alive.
//
// Must be called in the parent process and on the main thread. Crashes on
// failure.
static void Ensure();
// (Do not call in real code.)
static HWND GetHwndForTestingOnly();
private:
// the hidden window's WNDPROC
static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
};
} // namespace mozilla::widget
#endif // widget_windows_WinEventObserver_h