mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
934e37ef92
The majority of the XUL broadcaster logic is moved out of XULDocument and into a separate class (XULBroadcastManager). The hookup points for when listeners need to be created and listeners need to be notified is now handled by the XULElement itself and nsDocument. To avoid any overhead, the XULBroadcastManager is only ever created when a document uses a listener. The new approach does have the disadvantage that broadcasting can now only work with XULElements, but going forward we'd like to discontinue this feature and rely on MutationObservers to implement similar things. One test had to be modified to use XUL elements instead of HTML elements because of the reason noted above. Differential Revision: https://phabricator.services.mozilla.com/D8888 --HG-- extra : moz-landing-system : lando
80 lines
1.9 KiB
Python
80 lines
1.9 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", "XUL")
|
|
|
|
if CONFIG['MOZ_BUILD_APP'] == 'browser':
|
|
DEFINES['MOZ_BREAK_XUL_OVERLAYS'] = True
|
|
|
|
MOCHITEST_MANIFESTS += ['test/mochitest.ini']
|
|
|
|
MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']
|
|
|
|
if CONFIG['MOZ_XUL']:
|
|
EXPORTS += [
|
|
'nsXULCommandDispatcher.h',
|
|
'nsXULElement.h',
|
|
'nsXULSortService.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.dom += [
|
|
'XULBroadcastManager.h',
|
|
'XULFrameElement.h',
|
|
'XULMenuElement.h',
|
|
'XULPopupElement.h',
|
|
'XULScrollElement.h',
|
|
'XULTextElement.h',
|
|
'XULTooltipElement.h',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'nsXULCommandDispatcher.cpp',
|
|
'nsXULContentSink.cpp',
|
|
'nsXULContentUtils.cpp',
|
|
'nsXULElement.cpp',
|
|
'nsXULPopupListener.cpp',
|
|
'nsXULPrototypeCache.cpp',
|
|
'nsXULPrototypeDocument.cpp',
|
|
'nsXULSortService.cpp',
|
|
'XULBroadcastManager.cpp',
|
|
'XULDocument.cpp',
|
|
'XULFrameElement.cpp',
|
|
'XULMenuElement.cpp',
|
|
'XULPopupElement.cpp',
|
|
'XULScrollElement.cpp',
|
|
'XULTextElement.cpp',
|
|
'XULTooltipElement.cpp',
|
|
]
|
|
|
|
XPIDL_SOURCES += [
|
|
'nsIController.idl',
|
|
'nsIControllers.idl',
|
|
]
|
|
|
|
XPIDL_MODULE = 'xul'
|
|
|
|
UNIFIED_SOURCES += [
|
|
'nsXULControllers.cpp',
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/docshell/base',
|
|
'/dom/base',
|
|
'/dom/html',
|
|
'/dom/xbl',
|
|
'/dom/xml',
|
|
'/layout/base',
|
|
'/layout/generic',
|
|
'/layout/style',
|
|
'/layout/xul',
|
|
]
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
|
CXXFLAGS += ['-Wno-error=shadow']
|