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
245 lines
5.9 KiB
INI
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",
|
|
)
|
|
]
|