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 += [
|
|
|
|
'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',
|
|
|
|
'BrowserBridgeParent.h',
|
2019-04-09 22:39:01 +00:00
|
|
|
'BrowserChild.h',
|
2019-04-09 21:38:15 +00:00
|
|
|
'BrowserParent.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',
|
2014-02-18 00:30:06 +00:00
|
|
|
'FilePickerParent.h',
|
2019-04-18 19:37:15 +00:00
|
|
|
'JSWindowActor.h',
|
2019-01-28 19:02:02 +00:00
|
|
|
'JSWindowActorChild.h',
|
|
|
|
'JSWindowActorParent.h',
|
2019-01-03 16:45:42 +00:00
|
|
|
'JSWindowActorService.h',
|
2017-01-27 00:35:53 +00:00
|
|
|
'MemoryReportRequest.h',
|
2013-04-16 19:24:43 +00:00
|
|
|
'PermissionMessageUtils.h',
|
2019-03-15 05:11:43 +00:00
|
|
|
'ReferrerInfoUtils.h',
|
2019-04-03 17:30:40 +00:00
|
|
|
'RemoteWebProgress.h',
|
2019-04-03 17:31:07 +00:00
|
|
|
'RemoteWebProgressRequest.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-05-03 15:31:04 +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
|
|
|
]
|
|
|
|
|
2013-11-26 16:39:19 +00:00
|
|
|
UNIFIED_SOURCES += [
|
2019-03-05 02:15:58 +00:00
|
|
|
'BrowserBridgeChild.cpp',
|
|
|
|
'BrowserBridgeParent.cpp',
|
2019-04-09 22:39:01 +00:00
|
|
|
'BrowserChild.cpp',
|
2019-04-09 21:38:15 +00:00
|
|
|
'BrowserParent.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',
|
2019-04-18 19:37:15 +00:00
|
|
|
'JSWindowActor.cpp',
|
2019-01-28 19:02:02 +00:00
|
|
|
'JSWindowActorChild.cpp',
|
|
|
|
'JSWindowActorParent.cpp',
|
2019-01-03 16:45:42 +00:00
|
|
|
'JSWindowActorService.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',
|
2013-04-23 21:54:15 +00:00
|
|
|
'ProcessPriorityManager.cpp',
|
2019-03-15 05:11:43 +00:00
|
|
|
'ReferrerInfoUtils.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',
|
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 15:31:04 +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
|
|
|
]
|
|
|
|
|
2013-07-01 13:56:28 +00:00
|
|
|
IPDL_SOURCES += [
|
|
|
|
'DOMTypes.ipdlh',
|
2017-01-27 00:35:54 +00:00
|
|
|
'MemoryReportTypes.ipdlh',
|
2013-07-01 13:56:28 +00:00
|
|
|
'PBrowser.ipdl',
|
2019-03-05 02:15:58 +00:00
|
|
|
'PBrowserBridge.ipdl',
|
2014-10-29 18:11:00 +00:00
|
|
|
'PBrowserOrId.ipdlh',
|
2014-02-23 20:19:43 +00:00
|
|
|
'PColorPicker.ipdl',
|
2013-07-01 13:56:28 +00:00
|
|
|
'PContent.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',
|
2019-04-30 14:06:53 +00:00
|
|
|
'/extensions/permissions',
|
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']
|
|
|
|
|
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
|
|
|
|
2015-03-24 14:29:16 +00:00
|
|
|
BROWSER_CHROME_MANIFESTS += ['tests/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')
|