2016-07-14 16:16:42 +00:00
|
|
|
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
2013-02-25 20:47:20 +00:00
|
|
|
# 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/.
|
|
|
|
|
2017-03-01 13:20:25 +00:00
|
|
|
with Files("**"):
|
|
|
|
BUG_COMPONENT = ("Core", "DOM: Content Processes")
|
|
|
|
|
2015-01-17 02:34:47 +00:00
|
|
|
XPIDL_SOURCES += [
|
2020-03-20 09:11:32 +00:00
|
|
|
'nsIContentChild.idl',
|
|
|
|
'nsIContentParent.idl',
|
2015-01-17 02:34:47 +00:00
|
|
|
'nsIHangReport.idl',
|
2019-04-03 17:30:40 +00:00
|
|
|
'nsIRemoteWebProgress.idl',
|
2019-04-03 17:31:07 +00:00
|
|
|
'nsIRemoteWebProgressRequest.idl',
|
2015-01-17 02:34:47 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
XPIDL_MODULE = 'dom'
|
|
|
|
|
2019-04-03 17:30:40 +00:00
|
|
|
XPCOM_MANIFESTS += [
|
|
|
|
'components.conf',
|
|
|
|
]
|
|
|
|
|
2018-07-29 20:18:26 +00:00
|
|
|
EXTRA_JS_MODULES += [
|
2018-07-30 18:39:52 +00:00
|
|
|
'ManifestMessagesChild.jsm',
|
2018-07-29 20:18:26 +00:00
|
|
|
]
|
|
|
|
|
2013-04-16 19:24:43 +00:00
|
|
|
EXPORTS.mozilla.dom.ipc += [
|
2014-10-24 00:28:00 +00:00
|
|
|
'IdType.h',
|
2018-07-02 01:28:31 +00:00
|
|
|
'MemMapSnapshot.h',
|
2018-06-23 03:35:49 +00:00
|
|
|
'SharedMap.h',
|
Bug 1463587: Part 3 - Add bindings for SharedMap, and expose it via process message managers. r=erahm,baku,bz
This is the first basic implementation of a shared-memory key-value store for
JS message managers. It has one read-write endpoint in the parent process, and
separate read-only endpoints for each child-process message manager.
Changes to the parent endpoint are broadcast to the children as snapshots.
Each snapshot triggers a "change" event with a list of changed keys.
It currently has the following limitations:
- It only supports basic structured clone data. There's no support for blobs,
input streams, message ports... Blob support will be added in a follow-up
patch.
- Changes are currently only broadcast to child endpoints when flush() is
explicitly called in the parent, or when new child processes are launched.
In a follow-up, this will be changed to automatically flush after changes
when the event loop is idle.
- All set operations clone their inputs synchronously, which means that
there's no trivial way for callers to batch multiple changes to a single key
without some additional effort. It might be useful to add a
delayed-serialization option to the .set() call in a follow-up, for callers
who are sure they know what they're doing.
MozReview-Commit-ID: IM8a3UgejXU
--HG--
extra : rebase_source : 66c92d538a5485349bc789028fdc3a6806bc5d5a
extra : source : 2ebaf5f8c6055b11b11d7ec334d54ee941115d48
2018-06-29 21:55:27 +00:00
|
|
|
'SharedMapChangeEvent.h',
|
2018-06-30 05:50:41 +00:00
|
|
|
'SharedStringMap.h',
|
2018-07-02 01:28:31 +00:00
|
|
|
'StringTable.h',
|
2015-09-10 20:50:58 +00:00
|
|
|
'StructuredCloneData.h',
|
2013-04-16 19:24:43 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
EXPORTS.mozilla.dom += [
|
2019-03-05 02:15:58 +00:00
|
|
|
'BrowserBridgeChild.h',
|
2019-05-06 21:04:34 +00:00
|
|
|
'BrowserBridgeHost.h',
|
2019-03-05 02:15:58 +00:00
|
|
|
'BrowserBridgeParent.h',
|
2019-04-09 22:39:01 +00:00
|
|
|
'BrowserChild.h',
|
2019-05-06 21:04:34 +00:00
|
|
|
'BrowserHost.h',
|
2019-04-09 21:38:15 +00:00
|
|
|
'BrowserParent.h',
|
2019-12-07 18:59:14 +00:00
|
|
|
'ClonedErrorHolder.h',
|
2017-08-13 06:08:48 +00:00
|
|
|
'CoalescedInputData.h',
|
2017-08-11 06:58:08 +00:00
|
|
|
'CoalescedMouseData.h',
|
2017-02-21 09:56:46 +00:00
|
|
|
'CoalescedWheelData.h',
|
2013-04-16 19:24:43 +00:00
|
|
|
'ContentChild.h',
|
|
|
|
'ContentParent.h',
|
|
|
|
'ContentProcess.h',
|
2014-10-29 18:11:00 +00:00
|
|
|
'ContentProcessManager.h',
|
2014-10-06 22:45:42 +00:00
|
|
|
'CPOWManagerGetter.h',
|
2019-02-21 15:00:32 +00:00
|
|
|
'CSPMessageUtils.h',
|
2018-12-19 22:22:09 +00:00
|
|
|
'DocShellMessageUtils.h',
|
2019-05-24 14:25:34 +00:00
|
|
|
'EffectsInfo.h',
|
2014-02-18 00:30:06 +00:00
|
|
|
'FilePickerParent.h',
|
2020-04-30 07:33:28 +00:00
|
|
|
'JSActor.h',
|
|
|
|
'JSActorService.h',
|
2020-04-30 07:35:17 +00:00
|
|
|
'JSProcessActorChild.h',
|
|
|
|
'JSProcessActorParent.h',
|
|
|
|
'JSProcessActorProtocol.h',
|
2019-01-28 19:02:02 +00:00
|
|
|
'JSWindowActorChild.h',
|
|
|
|
'JSWindowActorParent.h',
|
2020-04-30 07:35:17 +00:00
|
|
|
'JSWindowActorProtocol.h',
|
2020-02-20 23:30:33 +00:00
|
|
|
'MaybeDiscarded.h',
|
2017-01-27 00:35:53 +00:00
|
|
|
'MemoryReportRequest.h',
|
2013-04-16 19:24:43 +00:00
|
|
|
'PermissionMessageUtils.h',
|
2020-04-30 07:35:17 +00:00
|
|
|
'ProcessActor.h',
|
2019-11-26 01:24:12 +00:00
|
|
|
'PropertyBagUtils.h',
|
2019-03-15 05:11:43 +00:00
|
|
|
'ReferrerInfoUtils.h',
|
2020-01-24 07:59:34 +00:00
|
|
|
'RefMessageBodyService.h',
|
2019-05-06 21:04:34 +00:00
|
|
|
'RemoteBrowser.h',
|
2019-04-03 17:30:40 +00:00
|
|
|
'RemoteWebProgress.h',
|
2019-04-03 17:31:07 +00:00
|
|
|
'RemoteWebProgressRequest.h',
|
2020-01-24 07:59:36 +00:00
|
|
|
'SharedMessageBody.h',
|
2013-04-16 19:24:43 +00:00
|
|
|
'TabContext.h',
|
|
|
|
'TabMessageUtils.h',
|
2016-11-18 21:54:57 +00:00
|
|
|
'URLClassifierChild.h',
|
|
|
|
'URLClassifierParent.h',
|
2019-09-20 11:10:13 +00:00
|
|
|
'UserActivationIPCUtils.h',
|
2019-05-03 18:12:55 +00:00
|
|
|
'WindowGlobalActor.h',
|
2018-08-29 22:21:25 +00:00
|
|
|
'WindowGlobalChild.h',
|
|
|
|
'WindowGlobalParent.h',
|
2013-04-16 19:24:43 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
EXPORTS.mozilla += [
|
2017-02-01 12:34:24 +00:00
|
|
|
'PreallocatedProcessManager.h',
|
2015-01-17 02:34:47 +00:00
|
|
|
'ProcessHangMonitor.h',
|
|
|
|
'ProcessHangMonitorIPC.h',
|
2013-04-26 00:53:26 +00:00
|
|
|
'ProcessPriorityManager.h',
|
2013-04-16 19:24:43 +00:00
|
|
|
]
|
|
|
|
|
2019-09-20 18:01:07 +00:00
|
|
|
EXPORTS += [
|
|
|
|
'nsQueryActor.h',
|
|
|
|
]
|
|
|
|
|
2013-11-26 16:39:19 +00:00
|
|
|
UNIFIED_SOURCES += [
|
2019-03-05 02:15:58 +00:00
|
|
|
'BrowserBridgeChild.cpp',
|
2019-05-06 21:04:34 +00:00
|
|
|
'BrowserBridgeHost.cpp',
|
2019-03-05 02:15:58 +00:00
|
|
|
'BrowserBridgeParent.cpp',
|
2019-04-09 22:39:01 +00:00
|
|
|
'BrowserChild.cpp',
|
2019-05-06 21:04:34 +00:00
|
|
|
'BrowserHost.cpp',
|
2019-04-09 21:38:15 +00:00
|
|
|
'BrowserParent.cpp',
|
2019-12-07 18:59:14 +00:00
|
|
|
'ClonedErrorHolder.cpp',
|
2017-08-11 06:58:08 +00:00
|
|
|
'CoalescedMouseData.cpp',
|
2017-02-21 09:56:46 +00:00
|
|
|
'CoalescedWheelData.cpp',
|
2014-02-23 20:19:43 +00:00
|
|
|
'ColorPickerParent.cpp',
|
2013-10-23 23:00:23 +00:00
|
|
|
'ContentParent.cpp',
|
|
|
|
'ContentProcess.cpp',
|
2014-10-29 18:11:00 +00:00
|
|
|
'ContentProcessManager.cpp',
|
2019-02-21 15:00:32 +00:00
|
|
|
'CSPMessageUtils.cpp',
|
2018-12-19 22:22:09 +00:00
|
|
|
'DocShellMessageUtils.cpp',
|
2014-02-18 00:30:06 +00:00
|
|
|
'FilePickerParent.cpp',
|
2020-04-30 07:33:28 +00:00
|
|
|
'JSActor.cpp',
|
|
|
|
'JSActorService.cpp',
|
2020-04-30 07:35:17 +00:00
|
|
|
'JSProcessActorChild.cpp',
|
|
|
|
'JSProcessActorParent.cpp',
|
|
|
|
'JSProcessActorProtocol.cpp',
|
2019-01-28 19:02:02 +00:00
|
|
|
'JSWindowActorChild.cpp',
|
|
|
|
'JSWindowActorParent.cpp',
|
2020-04-30 07:35:17 +00:00
|
|
|
'JSWindowActorProtocol.cpp',
|
2018-06-23 03:30:23 +00:00
|
|
|
'MemMapSnapshot.cpp',
|
2017-01-27 00:35:53 +00:00
|
|
|
'MemoryReportRequest.cpp',
|
2018-12-11 17:31:24 +00:00
|
|
|
'MMPrinter.cpp',
|
2013-04-23 21:54:15 +00:00
|
|
|
'PermissionMessageUtils.cpp',
|
2017-02-01 12:34:24 +00:00
|
|
|
'PreallocatedProcessManager.cpp',
|
2020-04-30 07:35:17 +00:00
|
|
|
'ProcessActor.cpp',
|
2013-04-23 21:54:15 +00:00
|
|
|
'ProcessPriorityManager.cpp',
|
2019-11-26 01:24:12 +00:00
|
|
|
'PropertyBagUtils.cpp',
|
2019-03-15 05:11:43 +00:00
|
|
|
'ReferrerInfoUtils.cpp',
|
2020-01-24 07:59:34 +00:00
|
|
|
'RefMessageBodyService.cpp',
|
2019-05-31 21:00:57 +00:00
|
|
|
'RemoteBrowser.cpp',
|
2019-04-03 17:30:40 +00:00
|
|
|
'RemoteWebProgress.cpp',
|
2019-04-03 17:31:07 +00:00
|
|
|
'RemoteWebProgressRequest.cpp',
|
2018-06-23 03:35:49 +00:00
|
|
|
'SharedMap.cpp',
|
2020-01-24 07:59:36 +00:00
|
|
|
'SharedMessageBody.cpp',
|
2018-06-30 05:50:41 +00:00
|
|
|
'SharedStringMap.cpp',
|
2015-09-10 20:50:58 +00:00
|
|
|
'StructuredCloneData.cpp',
|
2013-04-23 21:54:15 +00:00
|
|
|
'TabContext.cpp',
|
|
|
|
'TabMessageUtils.cpp',
|
2016-11-18 21:54:57 +00:00
|
|
|
'URLClassifierParent.cpp',
|
2019-05-03 18:12:55 +00:00
|
|
|
'WindowGlobalActor.cpp',
|
2018-08-29 22:21:25 +00:00
|
|
|
'WindowGlobalChild.cpp',
|
|
|
|
'WindowGlobalParent.cpp',
|
2013-04-23 21:54:15 +00:00
|
|
|
]
|
|
|
|
|
2014-10-08 20:19:14 +00:00
|
|
|
# ContentChild.cpp cannot be compiled in unified mode on linux due to Time conflict
|
2013-11-26 16:39:19 +00:00
|
|
|
SOURCES += [
|
2014-03-11 22:41:48 +00:00
|
|
|
'ContentChild.cpp',
|
2015-01-17 02:34:47 +00:00
|
|
|
'ProcessHangMonitor.cpp',
|
2013-11-26 16:39:19 +00:00
|
|
|
]
|
|
|
|
|
2019-10-14 15:08:47 +00:00
|
|
|
PREPROCESSED_IPDL_SOURCES += [
|
2019-12-02 06:25:40 +00:00
|
|
|
'PBrowser.ipdl',
|
|
|
|
'PBrowserBridge.ipdl',
|
2019-10-14 15:08:47 +00:00
|
|
|
'PContent.ipdl',
|
|
|
|
]
|
|
|
|
|
2013-07-01 13:56:28 +00:00
|
|
|
IPDL_SOURCES += [
|
|
|
|
'DOMTypes.ipdlh',
|
2017-01-27 00:35:54 +00:00
|
|
|
'MemoryReportTypes.ipdlh',
|
2014-10-29 18:11:00 +00:00
|
|
|
'PBrowserOrId.ipdlh',
|
2014-02-23 20:19:43 +00:00
|
|
|
'PColorPicker.ipdl',
|
2014-02-09 20:34:40 +00:00
|
|
|
'PContentPermission.ipdlh',
|
2013-07-01 13:56:28 +00:00
|
|
|
'PContentPermissionRequest.ipdl',
|
2014-05-13 17:13:00 +00:00
|
|
|
'PCycleCollectWithLogs.ipdl',
|
2014-02-18 00:30:06 +00:00
|
|
|
'PFilePicker.ipdl',
|
2017-12-07 08:32:52 +00:00
|
|
|
'PLoginReputation.ipdl',
|
2014-11-12 20:59:18 +00:00
|
|
|
'PPluginWidget.ipdl',
|
2015-01-17 02:34:47 +00:00
|
|
|
'PProcessHangMonitor.ipdl',
|
2019-01-11 18:57:23 +00:00
|
|
|
'PrefsTypes.ipdlh',
|
2013-07-10 17:07:50 +00:00
|
|
|
'PTabContext.ipdlh',
|
2016-11-18 21:54:57 +00:00
|
|
|
'PURLClassifier.ipdl',
|
2017-02-21 01:46:36 +00:00
|
|
|
'PURLClassifierInfo.ipdlh',
|
2017-04-07 06:15:16 +00:00
|
|
|
'PURLClassifierLocal.ipdl',
|
2018-08-29 22:21:25 +00:00
|
|
|
'PWindowGlobal.ipdl',
|
2016-07-11 14:04:04 +00:00
|
|
|
'ServiceWorkerConfiguration.ipdlh',
|
2013-07-01 13:56:28 +00:00
|
|
|
]
|
2013-08-22 06:55:59 +00:00
|
|
|
|
2013-10-02 17:17:55 +00:00
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
|
2013-11-19 02:47:14 +00:00
|
|
|
FINAL_LIBRARY = 'xul'
|
2015-04-03 16:51:41 +00:00
|
|
|
|
2019-03-18 22:31:59 +00:00
|
|
|
if CONFIG['MOZ_SANDBOX'] and (CONFIG['OS_TARGET'] in ['Darwin', 'Linux']):
|
2016-10-26 22:57:24 +00:00
|
|
|
USE_LIBS += [
|
|
|
|
'mozsandbox',
|
|
|
|
]
|
|
|
|
|
2013-11-11 08:04:11 +00:00
|
|
|
LOCAL_INCLUDES += [
|
2015-02-11 11:53:00 +00:00
|
|
|
'/caps',
|
2014-07-19 19:43:38 +00:00
|
|
|
'/chrome',
|
2013-11-11 08:04:11 +00:00
|
|
|
'/docshell/base',
|
|
|
|
'/dom/base',
|
2018-02-24 01:21:49 +00:00
|
|
|
'/dom/bindings',
|
2015-09-18 12:19:13 +00:00
|
|
|
'/dom/events',
|
2014-03-05 03:25:40 +00:00
|
|
|
'/dom/filesystem',
|
2014-08-31 04:43:45 +00:00
|
|
|
'/dom/geolocation',
|
2014-10-25 17:24:36 +00:00
|
|
|
'/dom/media/webspeech/synth/ipc',
|
2015-09-09 19:14:27 +00:00
|
|
|
'/dom/security',
|
2019-02-06 05:09:57 +00:00
|
|
|
'/dom/storage',
|
2014-10-03 14:52:37 +00:00
|
|
|
'/extensions/spellcheck/src',
|
2015-04-08 18:48:11 +00:00
|
|
|
'/gfx/2d',
|
2013-11-11 08:04:11 +00:00
|
|
|
'/hal/sandbox',
|
2018-06-23 03:30:23 +00:00
|
|
|
'/js/xpconnect/loader',
|
2018-12-11 17:31:24 +00:00
|
|
|
'/js/xpconnect/src',
|
2013-11-11 08:04:11 +00:00
|
|
|
'/layout/base',
|
2015-05-06 16:29:33 +00:00
|
|
|
'/media/webrtc',
|
2015-01-20 08:58:00 +00:00
|
|
|
'/netwerk/base',
|
2019-01-23 21:27:44 +00:00
|
|
|
'/netwerk/protocol/http',
|
2017-01-10 18:34:38 +00:00
|
|
|
'/toolkit/components/printingui/ipc',
|
2016-10-11 21:25:41 +00:00
|
|
|
'/toolkit/crashreporter',
|
2013-11-11 08:04:11 +00:00
|
|
|
'/toolkit/xre',
|
|
|
|
'/uriloader/exthandler',
|
2014-10-23 17:16:45 +00:00
|
|
|
'/widget',
|
2013-11-11 08:04:11 +00:00
|
|
|
'/xpcom/base',
|
2014-01-31 23:02:30 +00:00
|
|
|
'/xpcom/threads',
|
2013-11-11 08:04:11 +00:00
|
|
|
]
|
|
|
|
|
2015-04-01 08:40:35 +00:00
|
|
|
if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
|
|
|
|
LOCAL_INCLUDES += [
|
|
|
|
'/security/sandbox/chromium',
|
|
|
|
'/security/sandbox/chromium-shim',
|
|
|
|
]
|
|
|
|
|
2015-08-17 02:25:59 +00:00
|
|
|
if CONFIG['OS_ARCH'] != 'WINNT':
|
|
|
|
LOCAL_INCLUDES += [
|
|
|
|
'/modules/libjar',
|
|
|
|
]
|
|
|
|
|
2013-11-27 13:55:07 +00:00
|
|
|
DEFINES['BIN_SUFFIX'] = '"%s"' % CONFIG['BIN_SUFFIX']
|
|
|
|
|
2019-11-07 09:52:18 +00:00
|
|
|
DEFINES['MOZ_APP_NAME'] = '"%s"' % CONFIG['MOZ_APP_NAME']
|
|
|
|
|
2018-01-10 09:04:59 +00:00
|
|
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
2013-11-27 13:55:07 +00:00
|
|
|
DEFINES['MOZ_ENABLE_FREETYPE'] = True
|
|
|
|
|
2014-01-10 03:03:25 +00:00
|
|
|
JAR_MANIFESTS += ['jar.mn']
|
2013-11-27 07:59:41 +00:00
|
|
|
|
2019-05-14 21:23:15 +00:00
|
|
|
BROWSER_CHROME_MANIFESTS += [
|
|
|
|
'tests/browser.ini',
|
|
|
|
'tests/JSWindowActor/browser.ini',
|
|
|
|
]
|
|
|
|
|
2014-07-26 06:17:24 +00:00
|
|
|
MOCHITEST_CHROME_MANIFESTS += ['tests/chrome.ini']
|
|
|
|
MOCHITEST_MANIFESTS += ['tests/mochitest.ini']
|
2018-06-27 23:43:36 +00:00
|
|
|
XPCSHELL_TESTS_MANIFESTS += ['tests/xpcshell.ini']
|
2014-07-24 15:55:33 +00:00
|
|
|
|
|
|
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|
2016-05-11 07:00:01 +00:00
|
|
|
|
2017-12-07 21:09:15 +00:00
|
|
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
2016-05-11 07:00:01 +00:00
|
|
|
CXXFLAGS += ['-Wno-error=shadow']
|
2018-05-21 17:53:34 +00:00
|
|
|
|
2018-03-23 20:18:42 +00:00
|
|
|
if CONFIG['FUZZING'] and CONFIG['FUZZING_INTERFACES']:
|
|
|
|
TEST_DIRS += [
|
|
|
|
'fuzztest'
|
|
|
|
]
|
2018-04-05 19:48:11 +00:00
|
|
|
|
|
|
|
# Add libFuzzer configuration directives
|
|
|
|
include('/tools/fuzzing/libfuzzer-config.mozbuild')
|