Files
sousa-gecko/widget/windows/moz.build
T
Jan-Niklas Jaeschke 6dc725ce27 Bug 2022043 - Fire PermissionStatus.onchange when Windows OS geolocation permission changes. r=saschanaz,win-reviewers,handyman,emilio
When the OS-level geolocation permission changes on Windows, PermissionStatus
objects for geolocation now fire their "change" event. This is done by
monitoring the location AppCapability's AccessChanged event in the parent
process and broadcasting the new state to all content processes via IPC.

The monitor starts lazily on the first geolocation permission query and
shuts down on xpcom-shutdown. The permission state mapping matches
Geolocation::GetLocationOSPermission().

Differential Revision: https://phabricator.services.mozilla.com/D287570
2026-04-09 18:51:50 +00:00

245 lines
5.9 KiB
INI

# 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/.
with Files("**"):
BUG_COMPONENT = ("Core", "Widget: Win32")
SCHEDULES.exclusive = ["windows"]
with Files("*CompositorWidget*"):
BUG_COMPONENT = ("Core", "Graphics")
with Files("*IMEHandler*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("*IMMHandler*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("*KeyboardLayout*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("OSK*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("*TSF*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("*permission_monitor.rs"):
BUG_COMPONENT = ("Core", "Permission Manager")
DIRS += [
"filedialog",
]
TEST_DIRS += ["tests"]
EXPORTS += [
"nsAppShell.h",
"nsdefs.h",
"WindowHook.h",
"WinUtils.h",
]
EXPORTS.mozilla += [
"ScreenHelperWin.h",
"ShellHeaderOnlyUtils.h",
"ToastNotificationHeaderOnlyUtils.h",
"UrlmonHeaderOnlyUtils.h",
"WindowsConsole.h",
"WindowsEventLog.h",
"WinHeaderOnlyUtils.h",
]
EXPORTS.mozilla.widget += [
"AudioSession.h",
"CompositorWidgetChild.h",
"CompositorWidgetParent.h",
"InProcessWinCompositorWidget.h",
"JumpListBuilder.h",
"nsWindowLoggedMessages.h",
"WinCompositorWidget.h",
"WinCompositorWindowThread.h",
"WindowsSMTCProvider.h",
"WinEventObserver.h",
"WinMessages.h",
"WinModifierKeyState.h",
"WinRegistry.h",
"WinTaskbar.h",
"WinWindowOcclusionTracker.h",
]
UNIFIED_SOURCES += [
"AudioSession.cpp",
"CompositorWidgetChild.cpp",
"DirectManipulationOwner.cpp",
"GfxInfo.cpp",
"IEnumFE.cpp",
"IMMHandler.cpp",
"JumpListBuilder.cpp",
"KeyboardLayout.cpp",
"LSPAnnotator.cpp",
"nsAppShell.cpp",
"nsClipboard.cpp",
"nsColorPicker.cpp",
"nsDataObj.cpp",
"nsDataObjCollection.cpp",
"nsDragService.cpp",
"nsLookAndFeel.cpp",
"nsNativeDragSource.cpp",
"nsNativeDragTarget.cpp",
"nsNativeThemeWin.cpp",
"nsSound.cpp",
"nsToolkit.cpp",
"nsUserIdleServiceWin.cpp",
"nsWindow.cpp",
"nsWindowDbg.cpp",
"nsWindowGfx.cpp",
"nsWindowLoggedMessages.cpp",
"nsWindowTaskbarConcealer.cpp",
"nsWinGesture.cpp",
"OSKTabTipManager.cpp",
"OSKVRManager.cpp",
"RemoteBackbuffer.cpp",
"ScreenHelperWin.cpp",
"SystemStatusBar.cpp",
"TaskbarPreview.cpp",
"TaskbarPreviewButton.cpp",
"TaskbarTabPreview.cpp",
"TaskbarWindowPreview.cpp",
"TSFEmptyTextStore.cpp",
"TSFInputScope.cpp",
"TSFStaticSink.cpp",
"TSFTextStore.cpp",
"TSFTextStoreBase.cpp",
"WinCompositorWindowThread.cpp",
"WindowHook.cpp",
"WindowsConsole.cpp",
"WindowsTestDebug.cpp",
"WinEventObserver.cpp",
"WinIMEHandler.cpp",
"WinMouseScrollHandler.cpp",
"WinPointerEvents.cpp",
"WinRegistry.cpp",
"WinTaskbar.cpp",
"WinTextEventDispatcherListener.cpp",
"WinUtils.cpp",
"WinWindowOcclusionTracker.cpp",
]
# The following files cannot be built in unified mode because of name clashes.
SOURCES += [
"CompositorWidgetParent.cpp",
"InProcessWinCompositorWidget.cpp",
"MediaKeysEventSourceFactory.cpp",
"nsBidiKeyboard.cpp",
"nsFilePicker.cpp",
"nsSharePicker.cpp",
"nsWidgetFactory.cpp",
"OSKInputPaneManager.cpp",
"WinCompositorWidget.cpp",
"WindowsSMTCProvider.cpp",
"WindowsUIUtils.cpp",
]
# Needs INITGUID and we don't allow INITGUID in unified sources since bug 970429.
SOURCES += [
"InputDeviceUtils.cpp",
"TSFUtils.cpp",
]
# Needs winrt exceptions since we're calling into the
# Windows App SDK.
SOURCES["WindowsUIUtils.cpp"].flags += [
"-Xclang",
"-fcxx-exceptions",
]
if CONFIG["NS_PRINTING"]:
UNIFIED_SOURCES += [
"nsDeviceContextSpecWin.cpp",
"nsPrintDialogWin.cpp",
"nsPrinterWin.cpp",
"nsPrintSettingsServiceWin.cpp",
"nsPrintSettingsWin.cpp",
]
SOURCES += [
"nsPrintDialogUtil.cpp",
]
XPIDL_SOURCES += [
"nsIAlertsServiceRust.idl",
"nsIWindowsTestDebug.idl",
]
XPIDL_MODULE = "widget_windows"
XPCOM_MANIFESTS += [
"components.conf",
]
include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
if CONFIG["MOZ_ENABLE_SKIA_PDF"]:
LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
"/layout/forms",
"/layout/generic",
"/layout/style",
"/layout/xul",
"/toolkit/components/jsoncpp/include",
"/toolkit/xre",
"/widget",
"/widget/headless",
"/xpcom/base",
]
if CONFIG["MOZ_BUILD_APP"] == "browser":
DEFINES["MOZ_BUILD_APP_IS_BROWSER"] = True
DEFINES["MOZ_UNICODE"] = True
DEFINES["MOZ_APP_NAME"] = '"%s"' % CONFIG["MOZ_APP_NAME"]
# Turn `firefox` into `Firefox`.
DEFINES["MOZ_TOAST_APP_NAME"] = '"%s"' % CONFIG["MOZ_APP_NAME"].title()
USE_LIBS += [
"jsoncpp",
]
OS_LIBS += [
"ktmw32",
"rpcrt4",
"shcore",
"urlmon",
"winmm",
]
# mingw is missing Windows toast notification definitions.
if CONFIG["CC_TYPE"] == "clang-cl":
SOURCES += [
"ToastNotification.cpp",
"ToastNotificationHandler.cpp",
]
SPHINX_TREES["/widget/windows"] = "docs"
if CONFIG["MOZ_WINDOWSAPPSDK_DIR"]:
# These are the few DLLs that Firefox needs instead of the
# whole Windows App SDK.
FINAL_TARGET_FILES += [
f"%{CONFIG['MOZ_WINDOWSAPPSDK_DIR']}/{f}"
for f in (
"CoreMessagingXP.dll",
"marshal.dll",
"Microsoft.InputStateManager.dll",
"Microsoft.Internal.FrameworkUdk.dll",
"Microsoft.UI.Composition.OSSupport.dll",
"Microsoft.UI.Input.dll",
"Microsoft.UI.Windowing.Core.dll",
"Microsoft.UI.Windowing.dll",
)
]