Even while IME is disabled (i.e., when non-editable element or nobody has focus), we'll expose active tab's URL and whether it's in the private browsing mode via the input scope. Therefore, we need to handle requests for retrieving attributes. So, we need a TextStore instance for that. However, they may require special behavior due to its context is marked as empty and not editable. Unfortunately, `TSFTextStore` is enough complicated and big even after some features are moved to `TSFUtils` and `TSFTextStoreBase`. Therefore, this patch creates `TSFEmptyTextStore` to isolate the implementation from `TSFTextStore`. Differential Revision: https://phabricator.services.mozilla.com/D242682
217 lines
5.2 KiB
Python
217 lines
5.2 KiB
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# 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")
|
|
|
|
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",
|
|
"WindowsEMF.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",
|
|
"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",
|
|
]
|
|
|
|
if CONFIG["NS_PRINTING"]:
|
|
UNIFIED_SOURCES += [
|
|
"nsDeviceContextSpecWin.cpp",
|
|
"nsPrintDialogWin.cpp",
|
|
"nsPrinterWin.cpp",
|
|
"nsPrintSettingsServiceWin.cpp",
|
|
"nsPrintSettingsWin.cpp",
|
|
]
|
|
SOURCES += [
|
|
"nsPrintDialogUtil.cpp",
|
|
]
|
|
|
|
if CONFIG["MOZ_ENABLE_SKIA_PDF"]:
|
|
UNIFIED_SOURCES += [
|
|
"WindowsEMF.cpp",
|
|
]
|
|
|
|
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",
|
|
"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"
|