gecko-dev/dom/base/moz.build
Tooru Fujisawa 44806f8c45 Bug 1432749 - Part 2: Introduce WindowFeature class with spec-compliant tokenization, and use it both in nsGlobalWindowOuter and nsWindowWatcher. r=smaug
WindowFeature provides the tokenization and access to the map.
This changes the following behavior:
  * "*" value is removed, given it's unused.
    * Default width and default height handling is removed,
      given there's no callsites
  * Some chrome-priv feature handling becomes stricter:
    * All substring match is removed and directly checks the item in the map

Also, fixed noopener=0 and noreferrer=0 options to be handled properly.

Differential Revision: https://phabricator.services.mozilla.com/D67725

--HG--
extra : moz-landing-system : lando
2020-04-14 06:27:47 +00:00

556 lines
14 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('*Selection*'):
BUG_COMPONENT = ('Core', 'DOM: Selection')
with Files("**"):
BUG_COMPONENT = ("Core", "DOM: Core & HTML")
TEST_DIRS += ['test']
XPIDL_SOURCES += [
'mozIDOMWindow.idl',
'nsIContentPolicy.idl',
'nsIDocumentEncoder.idl',
'nsIDOMRequestService.idl',
'nsIDroppedLinkHandler.idl',
'nsIImageLoadingContent.idl',
'nsIMessageManager.idl',
'nsIObjectLoadingContent.idl',
'nsIRemoteWindowContext.idl',
'nsIScriptableContentIterator.idl',
'nsIScriptChannel.idl',
'nsISelectionController.idl',
'nsISelectionDisplay.idl',
'nsISelectionListener.idl',
'nsISlowScriptDebug.idl',
]
XPIDL_MODULE = 'dom'
EXPORTS += [
'AttrArray.h',
'AutocompleteFieldList.h',
'Crypto.h',
'HTMLSplitOnSpacesTokenizer.h',
'IframeSandboxKeywordList.h',
'mozAutoDocUpdate.h',
'NodeUbiReporting.h',
'nsAttrName.h',
'nsAttrValue.h',
'nsAttrValueInlines.h',
'nsCaseTreatment.h',
'nsChildContentList.h',
'nsContentCID.h',
'nsContentCreatorFunctions.h',
'nsContentList.h',
'nsContentListDeclarations.h',
'nsContentPermissionHelper.h',
'nsContentPolicyUtils.h',
'nsContentSink.h',
'nsContentTypeParser.h',
'nsContentUtils.h',
'nsCopySupport.h',
'nsDeprecatedOperationList.h',
'nsDocElementCreatedNotificationRunner.h',
'nsDocumentWarningList.h',
'nsDOMAttributeMap.h',
'nsDOMCID.h',
'nsDOMJSUtils.h',
'nsDOMNavigationTiming.h',
'nsDOMString.h',
'nsDOMTokenList.h',
'nsFocusManager.h',
'nsFrameLoader.h', # Because binding headers include it.
'nsFrameLoaderOwner.h',
'nsFrameMessageManager.h',
'nsGlobalWindow.h', # Because binding headers include it.
'nsGlobalWindowInner.h', # Because binding headers include it.
'nsGlobalWindowOuter.h', # Because binding headers include it.
'nsIAnimationObserver.h',
'nsIContent.h',
'nsIContentInlines.h',
'nsIContentSerializer.h',
'nsIDocumentObserver.h',
'nsIGlobalObject.h',
'nsImageLoadingContent.h',
'nsIMutationObserver.h',
'nsINode.h',
'nsINodeList.h',
'nsIScriptContext.h',
'nsIScriptGlobalObject.h',
'nsIScriptObjectPrincipal.h',
'nsIStyleSheetLinkingElement.h',
'nsJSEnvironment.h',
'nsJSUtils.h',
'nsLineBreaker.h',
'nsMappedAttributeElement.h',
'nsNameSpaceManager.h',
'nsNodeInfoManager.h',
'nsPIDOMWindow.h',
'nsPIDOMWindowInlines.h',
'nsPIWindowRoot.h',
'nsPropertyTable.h',
'nsRange.h',
'nsSandboxFlags.h',
'nsStructuredCloneContainer.h',
'nsStubAnimationObserver.h',
'nsStubDocumentObserver.h',
'nsStubMutationObserver.h',
'nsStyledElement.h',
'nsStyleLinkElement.h',
'nsTextFragment.h',
'nsTraversal.h',
'nsTreeSanitizer.h',
'nsViewportInfo.h',
'nsWindowMemoryReporter.h',
'nsWindowSizes.h',
'nsWrapperCache.h',
'nsWrapperCacheInlines.h',
'XPathGenerator.h',
]
if CONFIG['MOZ_WEBRTC']:
EXPORTS += [
'nsDOMDataChannel.h',
'nsDOMDataChannelDeclarations.h',
]
EXPORTS.mozilla += [
'CallState.h',
'ContentIterator.h',
'CORSMode.h',
'FlushType.h',
'FullscreenChange.h',
'IdentifierMapEntry.h',
'RangeBoundary.h',
'RangeUtils.h',
'ScriptableContentIterator.h',
'SelectionChangeEventDispatcher.h',
'TextInputProcessor.h',
'UseCounter.h',
]
EXPORTS.mozilla.dom += [
'!UseCounterList.h',
'!UseCounterWorkerList.h',
'AbstractRange.h',
'AncestorIterator.h',
'AnonymousContent.h',
'Attr.h',
'BarProps.h',
'BindContext.h',
'BodyConsumer.h',
'BodyStream.h',
'BodyUtil.h',
'BorrowedAttrInfo.h',
'CharacterData.h',
'ChildIterator.h',
'ChildProcessMessageManager.h',
'ChromeMessageBroadcaster.h',
'ChromeMessageSender.h',
'ChromeNodeList.h',
'ChromeUtils.h',
'Comment.h',
'ContentFrameMessageManager.h',
'ContentProcessMessageManager.h',
'CustomElementRegistry.h',
'DirectionalityUtils.h',
'DispatcherTrait.h',
'DocGroup.h',
'Document.h',
'DocumentFragment.h',
'DocumentInlines.h',
'DocumentOrShadowRoot.h',
'DocumentType.h',
'DOMArena.h',
'DOMException.h',
'DOMImplementation.h',
'DOMIntersectionObserver.h',
'DOMMatrix.h',
'DOMMozPromiseRequestHolder.h',
'DOMParser.h',
'DOMPoint.h',
'DOMQuad.h',
'DOMRect.h',
'DOMRequest.h',
'DOMStringList.h',
'DOMTokenListSupportedTokens.h',
'Element.h',
'ElementInlines.h',
'EventSource.h',
'FilteredNodeIterator.h',
'FormData.h',
'FragmentOrElement.h',
'FromParser.h',
'GeneratedImageContent.h',
'IdleDeadline.h',
'IdleRequest.h',
'IDTracker.h',
'ImageEncoder.h',
'ImageTracker.h',
'IntlUtils.h',
'Link.h',
'Location.h',
'LocationBase.h',
'MaybeCrossOriginObject.h',
'MessageBroadcaster.h',
'MessageListenerManager.h',
'MessageManagerGlobal.h',
'MessageSender.h',
'MimeType.h',
'MozQueryInterface.h',
'MutationObservers.h',
'NameSpaceConstants.h',
'Navigator.h',
'NodeInfo.h',
'NodeInfoInlines.h',
'NodeIterator.h',
'ParentProcessMessageManager.h',
'PlacesBookmark.h',
'PlacesBookmarkAddition.h',
'PlacesBookmarkRemoved.h',
'PlacesEvent.h',
'PlacesObservers.h',
'PlacesVisit.h',
'PlacesWeakCallbackWrapper.h',
'PopupBlocker.h',
'Pose.h',
'PostMessageEvent.h',
'ProcessMessageManager.h',
'ResizeObserver.h',
'ResizeObserverController.h',
'ResponsiveImageSelector.h',
'SameProcessMessageQueue.h',
'ScreenLuminance.h',
'ScreenOrientation.h',
'Selection.h',
'SerializedStackHolder.h',
'ShadowIncludingTreeIterator.h',
'ShadowRoot.h',
'StaticRange.h',
'StructuredCloneBlob.h',
'StructuredCloneHolder.h',
'StructuredCloneTags.h',
'StructuredCloneTester.h',
'StyledRange.h',
'StyleSheetList.h',
'SubtleCrypto.h',
'SyncMessageSender.h',
'Text.h',
'Timeout.h',
'TimeoutHandler.h',
'TimeoutManager.h',
'TreeIterator.h',
'TreeOrderedArray.h',
'TreeOrderedArrayInlines.h',
'TreeWalker.h',
'UIDirectionManager.h',
'UserActivation.h',
'ViewportMetaData.h',
'VisualViewport.h',
'WindowFeatures.h',
'WindowOrientationObserver.h',
'WindowProxyHolder.h',
]
if CONFIG['FUZZING']:
EXPORTS.mozilla.dom += [
'FuzzingFunctions.h',
]
UNIFIED_SOURCES += [
'AbstractRange.cpp',
'AnonymousContent.cpp',
'Attr.cpp',
'AttrArray.cpp',
'BarProps.cpp',
'BodyConsumer.cpp',
'BodyStream.cpp',
'BodyUtil.cpp',
'BorrowedAttrInfo.cpp',
'CharacterData.cpp',
'ChildIterator.cpp',
'ChromeMessageBroadcaster.cpp',
'ChromeMessageSender.cpp',
'ChromeNodeList.cpp',
'ChromeUtils.cpp',
'Comment.cpp',
'ContentFrameMessageManager.cpp',
'ContentIterator.cpp',
'ContentProcessMessageManager.cpp',
'Crypto.cpp',
'CustomElementRegistry.cpp',
'DirectionalityUtils.cpp',
'DispatcherTrait.cpp',
'DocGroup.cpp',
'Document.cpp',
'DocumentFragment.cpp',
'DocumentOrShadowRoot.cpp',
'DocumentType.cpp',
'DOMException.cpp',
'DOMImplementation.cpp',
'DOMMatrix.cpp',
'DOMParser.cpp',
'DOMPoint.cpp',
'DOMQuad.cpp',
'DOMRect.cpp',
'DOMRequest.cpp',
'DOMStringList.cpp',
'Element.cpp',
'EventSource.cpp',
'FormData.cpp',
'FragmentOrElement.cpp',
'GeneratedImageContent.cpp',
'IdleDeadline.cpp',
'IdleRequest.cpp',
'IDTracker.cpp',
'ImageEncoder.cpp',
'ImageTracker.cpp',
'InProcessBrowserChildMessageManager.cpp',
'IntlUtils.cpp',
'Link.cpp',
'Location.cpp',
'LocationBase.cpp',
'MaybeCrossOriginObject.cpp',
'MessageBroadcaster.cpp',
'MessageListenerManager.cpp',
'MessageManagerGlobal.cpp',
'MessageSender.cpp',
'MimeType.cpp',
'MozQueryInterface.cpp',
'MutationObservers.cpp',
'Navigator.cpp',
'NodeInfo.cpp',
'NodeIterator.cpp',
'NodeUbiReporting.cpp',
'nsAttrValue.cpp',
'nsAttrValueOrString.cpp',
'nsCCUncollectableMarker.cpp',
'nsContentAreaDragDrop.cpp',
'nsContentList.cpp',
'nsContentPermissionHelper.cpp',
'nsContentPolicy.cpp',
'nsContentSink.cpp',
'nsContentTypeParser.cpp',
'nsCopySupport.cpp',
'nsDataDocumentContentPolicy.cpp',
'nsDocumentEncoder.cpp',
'nsDOMAttributeMap.cpp',
'nsDOMCaretPosition.cpp',
'nsDOMMutationObserver.cpp',
'nsDOMNavigationTiming.cpp',
'nsDOMSerializer.cpp',
'nsDOMTokenList.cpp',
'nsFocusManager.cpp',
'nsFrameLoader.cpp',
'nsFrameLoaderOwner.cpp',
'nsGlobalWindowCommands.cpp',
'nsHistory.cpp',
'nsHTMLContentSerializer.cpp',
'nsIGlobalObject.cpp',
'nsINode.cpp',
'nsJSEnvironment.cpp',
'nsJSUtils.cpp',
'nsLineBreaker.cpp',
'nsMappedAttributeElement.cpp',
'nsMappedAttributes.cpp',
'nsMimeTypeArray.cpp',
'nsNameSpaceManager.cpp',
'nsNoDataProtocolContentPolicy.cpp',
'nsNodeInfoManager.cpp',
'nsOpenURIInFrameParams.cpp',
'nsPlainTextSerializer.cpp',
'nsPropertyTable.cpp',
'nsQueryContentEventResult.cpp',
'nsRange.cpp',
'nsScreen.cpp',
'nsStructuredCloneContainer.cpp',
'nsStubAnimationObserver.cpp',
'nsStubDocumentObserver.cpp',
'nsStubMutationObserver.cpp',
'nsStyledElement.cpp',
'nsStyleLinkElement.cpp',
'nsSyncLoadService.cpp',
'nsTextFragment.cpp',
'nsTextNode.cpp',
'nsTraversal.cpp',
'nsTreeSanitizer.cpp',
'nsViewportInfo.cpp',
'nsWindowMemoryReporter.cpp',
'nsWindowRoot.cpp',
'nsWrapperCache.cpp',
'nsXHTMLContentSerializer.cpp',
'nsXMLContentSerializer.cpp',
'ParentProcessMessageManager.cpp',
'PopupBlocker.cpp',
'Pose.cpp',
'PostMessageEvent.cpp',
'ProcessMessageManager.cpp',
'RangeUtils.cpp',
'RemoteOuterWindowProxy.cpp',
'ResizeObserver.cpp',
'ResizeObserverController.cpp',
'ResponsiveImageSelector.cpp',
'SameProcessMessageQueue.cpp',
'ScreenLuminance.cpp',
'ScreenOrientation.cpp',
'ScriptableContentIterator.cpp',
'Selection.cpp',
'SelectionChangeEventDispatcher.cpp',
'SerializedStackHolder.cpp',
'ShadowRoot.cpp',
'StaticRange.cpp',
'StorageAccessPermissionRequest.cpp',
'StructuredCloneBlob.cpp',
'StructuredCloneHolder.cpp',
'StructuredCloneTester.cpp',
'StyledRange.cpp',
'StyleSheetList.cpp',
'SubtleCrypto.cpp',
'Text.cpp',
'TextInputProcessor.cpp',
'ThirdPartyUtil.cpp',
'Timeout.cpp',
'TimeoutBudgetManager.cpp',
'TimeoutExecutor.cpp',
'TimeoutHandler.cpp',
'TimeoutManager.cpp',
'TreeWalker.cpp',
'UIDirectionManager.cpp',
'UserActivation.cpp',
'ViewportMetaData.cpp',
'VisualViewport.cpp',
'WindowDestroyedEvent.cpp',
'WindowFeatures.cpp',
'WindowNamedPropertiesHandler.cpp',
'WindowOrientationObserver.cpp',
'XPathGenerator.cpp',
]
if CONFIG['MOZ_WEBRTC']:
UNIFIED_SOURCES += [
'nsDOMDataChannel.cpp',
]
if CONFIG['FUZZING']:
UNIFIED_SOURCES += [
'FuzzingFunctions.cpp',
]
if CONFIG['MOZ_PLACES']:
UNIFIED_SOURCES += [
'PlacesEvent.cpp',
'PlacesObservers.cpp',
'PlacesWeakCallbackWrapper.cpp',
]
# these files couldn't be in UNIFIED_SOURCES for now for reasons given below:
SOURCES += [
# Several conflicts with other bindings.
'DOMIntersectionObserver.cpp',
# Because of OS X headers.
'nsContentUtils.cpp',
# this file doesn't like windows.h
'nsDOMWindowUtils.cpp',
# Conflicts with windows.h's definition of SendMessage.
'nsFrameMessageManager.cpp',
# These files have a #error "Never include unwrapped windows.h in this file!"
'nsGlobalWindowInner.cpp',
'nsGlobalWindowOuter.cpp',
# Conflicts with windows.h's definition of LoadImage.
'nsImageLoadingContent.cpp',
# Because of OS X headers.
'nsObjectLoadingContent.cpp',
# nsPluginArray.cpp includes npapi.h indirectly, and that includes a lot of system headers
'nsPluginArray.cpp',
]
# Are we targeting x86-32 or x86-64? If so, we want to include SSE2 code for
# nsTextFragment.cpp
if CONFIG['INTEL_ARCHITECTURE']:
SOURCES += ['nsTextFragmentSSE2.cpp']
SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
# Are we targeting PowerPC? If so, we can enable a SIMD version for
# nsTextFragment.cpp as well.
if CONFIG['CPU_ARCH'].startswith('ppc'):
SOURCES += ['nsTextFragmentVMX.cpp']
SOURCES['nsTextFragmentVMX.cpp'].flags += CONFIG['PPC_VMX_FLAGS']
EXTRA_JS_MODULES += [
'ContentAreaDropListener.jsm',
'DOMRequestHelper.jsm',
'IndexedDBHelper.jsm',
'ProcessSelector.jsm',
'SlowScriptDebug.jsm',
]
XPCOM_MANIFESTS += [
'components.conf',
]
LOCAL_INCLUDES += [
'../battery',
'../events',
'../media',
'../network',
'/caps',
'/docshell/base',
'/dom/base',
'/dom/file',
'/dom/geolocation',
'/dom/html',
'/dom/ipc',
'/dom/storage',
'/dom/svg',
'/dom/u2f',
'/dom/xml',
'/dom/xslt/xpath',
'/dom/xul',
'/gfx/2d',
'/image',
'/js/xpconnect/loader',
'/js/xpconnect/src',
'/js/xpconnect/wrappers',
'/layout/base',
'/layout/forms',
'/layout/generic',
'/layout/style',
'/layout/svg',
'/layout/xul',
'/netwerk/base',
'/netwerk/url-classifier',
'/security/manager/ssl',
'/widget',
'/xpcom/ds',
]
if CONFIG['MOZ_WEBRTC']:
LOCAL_INCLUDES += [
'/netwerk/sctp/datachannel',
]
include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul'
if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']:
DEFINES['HAVE_SIDEBAR'] = True
if CONFIG['MOZ_X11']:
CXXFLAGS += CONFIG['TK_CFLAGS']
GeneratedFile('UseCounterList.h', script='gen-usecounters.py',
entry_point='use_counter_list', inputs=['UseCounters.conf'])
GeneratedFile('UseCounterWorkerList.h', script='gen-usecounters.py',
entry_point='use_counter_list', inputs=['UseCountersWorker.conf'])
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CXXFLAGS += ['-Wno-error=shadow']