2016-07-14 19:16:42 +03:00
|
|
|
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
2013-02-26 00:47:20 +04: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 16:20:25 +03:00
|
|
|
with Files("**"):
|
|
|
|
BUG_COMPONENT = ("Core", "DOM: Content Processes")
|
|
|
|
|
2015-01-17 05:34:47 +03:00
|
|
|
XPIDL_SOURCES += [
|
|
|
|
'nsIHangReport.idl',
|
2019-04-03 20:30:40 +03:00
|
|
|
'nsIRemoteWebProgress.idl',
|
2019-04-03 20:31:07 +03:00
|
|
|
'nsIRemoteWebProgressRequest.idl',
|
2015-01-17 05:34:47 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
XPIDL_MODULE = 'dom'
|
|
|
|
|
2019-04-03 20:30:40 +03:00
|
|
|
XPCOM_MANIFESTS += [
|
|
|
|
'components.conf',
|
|
|
|
]
|
|
|
|
|
2018-07-29 23:18:26 +03:00
|
|
|
EXTRA_JS_MODULES += [
|
2018-07-30 21:39:52 +03:00
|
|
|
'ManifestMessagesChild.jsm',
|
2018-07-29 23:18:26 +03:00
|
|
|
]
|
|
|
|
|
2013-04-16 23:24:43 +04:00
|
|
|
EXPORTS.mozilla.dom.ipc += [
|
2014-10-24 04:28:00 +04:00
|
|
|
'IdType.h',
|
2018-07-02 04:28:31 +03:00
|
|
|
'MemMapSnapshot.h',
|
2018-06-23 06:35:49 +03: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-30 00:55:27 +03:00
|
|
|
'SharedMapChangeEvent.h',
|
2018-06-30 08:50:41 +03:00
|
|
|
'SharedStringMap.h',
|
2018-07-02 04:28:31 +03:00
|
|
|
'StringTable.h',
|
2015-09-10 23:50:58 +03:00
|
|
|
'StructuredCloneData.h',
|
2013-04-16 23:24:43 +04:00
|
|
|
]
|
|
|
|
|
|
|
|
EXPORTS.mozilla.dom += [
|
2019-03-05 05:15:58 +03:00
|
|
|
'BrowserBridgeChild.h',
|
2019-05-07 00:04:34 +03:00
|
|
|
'BrowserBridgeHost.h',
|
2019-03-05 05:15:58 +03:00
|
|
|
'BrowserBridgeParent.h',
|
2019-04-10 01:39:01 +03:00
|
|
|
'BrowserChild.h',
|
2019-05-07 00:04:34 +03:00
|
|
|
'BrowserHost.h',
|
2019-04-10 00:38:15 +03:00
|
|
|
'BrowserParent.h',
|
2017-08-13 09:08:48 +03:00
|
|
|
'CoalescedInputData.h',
|
2017-08-11 09:58:08 +03:00
|
|
|
'CoalescedMouseData.h',
|
2017-02-21 12:56:46 +03:00
|
|
|
'CoalescedWheelData.h',
|
2013-04-16 23:24:43 +04:00
|
|
|
'ContentChild.h',
|
|
|
|
'ContentParent.h',
|
|
|
|
'ContentProcess.h',
|
2014-10-29 21:11:00 +03:00
|
|
|
'ContentProcessManager.h',
|
2014-10-07 02:45:42 +04:00
|
|
|
'CPOWManagerGetter.h',
|
2019-02-21 18:00:32 +03:00
|
|
|
'CSPMessageUtils.h',
|
2018-12-20 01:22:09 +03:00
|
|
|
'DocShellMessageUtils.h',
|
2019-05-24 17:25:34 +03:00
|
|
|
'EffectsInfo.h',
|
2014-02-18 04:30:06 +04:00
|
|
|
'FilePickerParent.h',
|
2019-04-18 22:37:15 +03:00
|
|
|
'JSWindowActor.h',
|
2019-01-28 22:02:02 +03:00
|
|
|
'JSWindowActorChild.h',
|
|
|
|
'JSWindowActorParent.h',
|
2019-01-03 19:45:42 +03:00
|
|
|
'JSWindowActorService.h',
|
2017-01-27 03:35:53 +03:00
|
|
|
'MemoryReportRequest.h',
|
2013-04-16 23:24:43 +04:00
|
|
|
'PermissionMessageUtils.h',
|
2019-03-15 08:11:43 +03:00
|
|
|
'ReferrerInfoUtils.h',
|
2019-05-07 00:04:34 +03:00
|
|
|
'RemoteBrowser.h',
|
2019-04-03 20:30:40 +03:00
|
|
|
'RemoteWebProgress.h',
|
2019-04-03 20:31:07 +03:00
|
|
|
'RemoteWebProgressRequest.h',
|
2013-04-16 23:24:43 +04:00
|
|
|
'TabContext.h',
|
|
|
|
'TabMessageUtils.h',
|
2016-11-19 00:54:57 +03:00
|
|
|
'URLClassifierChild.h',
|
|
|
|
'URLClassifierParent.h',
|
2019-05-03 21:12:55 +03:00
|
|
|
'WindowGlobalActor.h',
|
2018-08-30 01:21:25 +03:00
|
|
|
'WindowGlobalChild.h',
|
|
|
|
'WindowGlobalParent.h',
|
2013-04-16 23:24:43 +04:00
|
|
|
]
|
|
|
|
|
|
|
|
EXPORTS.mozilla += [
|
2017-02-01 15:34:24 +03:00
|
|
|
'PreallocatedProcessManager.h',
|
2015-01-17 05:34:47 +03:00
|
|
|
'ProcessHangMonitor.h',
|
|
|
|
'ProcessHangMonitorIPC.h',
|
2013-04-26 04:53:26 +04:00
|
|
|
'ProcessPriorityManager.h',
|
2013-04-16 23:24:43 +04:00
|
|
|
]
|
|
|
|
|
2013-11-26 20:39:19 +04:00
|
|
|
UNIFIED_SOURCES += [
|
2019-03-05 05:15:58 +03:00
|
|
|
'BrowserBridgeChild.cpp',
|
2019-05-07 00:04:34 +03:00
|
|
|
'BrowserBridgeHost.cpp',
|
2019-03-05 05:15:58 +03:00
|
|
|
'BrowserBridgeParent.cpp',
|
2019-04-10 01:39:01 +03:00
|
|
|
'BrowserChild.cpp',
|
2019-05-07 00:04:34 +03:00
|
|
|
'BrowserHost.cpp',
|
2019-04-10 00:38:15 +03:00
|
|
|
'BrowserParent.cpp',
|
2017-08-11 09:58:08 +03:00
|
|
|
'CoalescedMouseData.cpp',
|
2017-02-21 12:56:46 +03:00
|
|
|
'CoalescedWheelData.cpp',
|
2014-02-24 00:19:43 +04:00
|
|
|
'ColorPickerParent.cpp',
|
2013-10-24 03:00:23 +04:00
|
|
|
'ContentParent.cpp',
|
|
|
|
'ContentProcess.cpp',
|
2014-10-29 21:11:00 +03:00
|
|
|
'ContentProcessManager.cpp',
|
2019-02-21 18:00:32 +03:00
|
|
|
'CSPMessageUtils.cpp',
|
2018-12-20 01:22:09 +03:00
|
|
|
'DocShellMessageUtils.cpp',
|
2014-02-18 04:30:06 +04:00
|
|
|
'FilePickerParent.cpp',
|
2019-04-18 22:37:15 +03:00
|
|
|
'JSWindowActor.cpp',
|
2019-01-28 22:02:02 +03:00
|
|
|
'JSWindowActorChild.cpp',
|
|
|
|
'JSWindowActorParent.cpp',
|
2019-01-03 19:45:42 +03:00
|
|
|
'JSWindowActorService.cpp',
|
2018-06-23 06:30:23 +03:00
|
|
|
'MemMapSnapshot.cpp',
|
2017-01-27 03:35:53 +03:00
|
|
|
'MemoryReportRequest.cpp',
|
2018-12-11 20:31:24 +03:00
|
|
|
'MMPrinter.cpp',
|
2013-04-24 01:54:15 +04:00
|
|
|
'PermissionMessageUtils.cpp',
|
2017-02-01 15:34:24 +03:00
|
|
|
'PreallocatedProcessManager.cpp',
|
2013-04-24 01:54:15 +04:00
|
|
|
'ProcessPriorityManager.cpp',
|
2019-03-15 08:11:43 +03:00
|
|
|
'ReferrerInfoUtils.cpp',
|
2019-06-01 00:00:57 +03:00
|
|
|
'RemoteBrowser.cpp',
|
2019-04-03 20:30:40 +03:00
|
|
|
'RemoteWebProgress.cpp',
|
2019-04-03 20:31:07 +03:00
|
|
|
'RemoteWebProgressRequest.cpp',
|
2018-06-23 06:35:49 +03:00
|
|
|
'SharedMap.cpp',
|
2018-06-30 08:50:41 +03:00
|
|
|
'SharedStringMap.cpp',
|
2015-09-10 23:50:58 +03:00
|
|
|
'StructuredCloneData.cpp',
|
2013-04-24 01:54:15 +04:00
|
|
|
'TabContext.cpp',
|
|
|
|
'TabMessageUtils.cpp',
|
2016-11-19 00:54:57 +03:00
|
|
|
'URLClassifierParent.cpp',
|
2019-05-03 21:12:55 +03:00
|
|
|
'WindowGlobalActor.cpp',
|
2018-08-30 01:21:25 +03:00
|
|
|
'WindowGlobalChild.cpp',
|
|
|
|
'WindowGlobalParent.cpp',
|
2013-04-24 01:54:15 +04:00
|
|
|
]
|
|
|
|
|
2014-10-09 00:19:14 +04:00
|
|
|
# ContentChild.cpp cannot be compiled in unified mode on linux due to Time conflict
|
2013-11-26 20:39:19 +04:00
|
|
|
SOURCES += [
|
2014-03-12 02:41:48 +04:00
|
|
|
'ContentChild.cpp',
|
2015-01-17 05:34:47 +03:00
|
|
|
'ProcessHangMonitor.cpp',
|
2013-11-26 20:39:19 +04:00
|
|
|
]
|
|
|
|
|
2013-07-01 17:56:28 +04:00
|
|
|
IPDL_SOURCES += [
|
|
|
|
'DOMTypes.ipdlh',
|
2017-01-27 03:35:54 +03:00
|
|
|
'MemoryReportTypes.ipdlh',
|
2013-07-01 17:56:28 +04:00
|
|
|
'PBrowser.ipdl',
|
2019-03-05 05:15:58 +03:00
|
|
|
'PBrowserBridge.ipdl',
|
2014-10-29 21:11:00 +03:00
|
|
|
'PBrowserOrId.ipdlh',
|
2014-02-24 00:19:43 +04:00
|
|
|
'PColorPicker.ipdl',
|
2013-07-01 17:56:28 +04:00
|
|
|
'PContent.ipdl',
|
2014-02-10 00:34:40 +04:00
|
|
|
'PContentPermission.ipdlh',
|
2013-07-01 17:56:28 +04:00
|
|
|
'PContentPermissionRequest.ipdl',
|
2014-05-13 21:13:00 +04:00
|
|
|
'PCycleCollectWithLogs.ipdl',
|
2014-02-18 04:30:06 +04:00
|
|
|
'PFilePicker.ipdl',
|
2017-12-07 11:32:52 +03:00
|
|
|
'PLoginReputation.ipdl',
|
2014-11-12 23:59:18 +03:00
|
|
|
'PPluginWidget.ipdl',
|
2015-01-17 05:34:47 +03:00
|
|
|
'PProcessHangMonitor.ipdl',
|
2019-01-11 21:57:23 +03:00
|
|
|
'PrefsTypes.ipdlh',
|
2013-07-10 21:07:50 +04:00
|
|
|
'PTabContext.ipdlh',
|
2016-11-19 00:54:57 +03:00
|
|
|
'PURLClassifier.ipdl',
|
2017-02-21 04:46:36 +03:00
|
|
|
'PURLClassifierInfo.ipdlh',
|
2017-04-07 09:15:16 +03:00
|
|
|
'PURLClassifierLocal.ipdl',
|
2018-08-30 01:21:25 +03:00
|
|
|
'PWindowGlobal.ipdl',
|
2016-07-11 17:04:04 +03:00
|
|
|
'ServiceWorkerConfiguration.ipdlh',
|
2013-07-01 17:56:28 +04:00
|
|
|
]
|
2013-08-22 10:55:59 +04:00
|
|
|
|
2013-10-02 21:17:55 +04:00
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
|
2013-11-19 06:47:14 +04:00
|
|
|
FINAL_LIBRARY = 'xul'
|
2015-04-03 19:51:41 +03:00
|
|
|
|
2019-03-19 01:31:59 +03:00
|
|
|
if CONFIG['MOZ_SANDBOX'] and (CONFIG['OS_TARGET'] in ['Darwin', 'Linux']):
|
2016-10-27 01:57:24 +03:00
|
|
|
USE_LIBS += [
|
|
|
|
'mozsandbox',
|
|
|
|
]
|
|
|
|
|
2013-11-11 12:04:11 +04:00
|
|
|
LOCAL_INCLUDES += [
|
2015-02-11 14:53:00 +03:00
|
|
|
'/caps',
|
2014-07-19 23:43:38 +04:00
|
|
|
'/chrome',
|
2013-11-11 12:04:11 +04:00
|
|
|
'/docshell/base',
|
|
|
|
'/dom/base',
|
2018-02-24 04:21:49 +03:00
|
|
|
'/dom/bindings',
|
2015-09-18 15:19:13 +03:00
|
|
|
'/dom/events',
|
2014-03-05 07:25:40 +04:00
|
|
|
'/dom/filesystem',
|
2014-08-31 08:43:45 +04:00
|
|
|
'/dom/geolocation',
|
2014-10-25 21:24:36 +04:00
|
|
|
'/dom/media/webspeech/synth/ipc',
|
2015-09-09 22:14:27 +03:00
|
|
|
'/dom/security',
|
2019-02-06 08:09:57 +03:00
|
|
|
'/dom/storage',
|
2019-04-30 17:06:53 +03:00
|
|
|
'/extensions/permissions',
|
2014-10-03 18:52:37 +04:00
|
|
|
'/extensions/spellcheck/src',
|
2015-04-08 21:48:11 +03:00
|
|
|
'/gfx/2d',
|
2013-11-11 12:04:11 +04:00
|
|
|
'/hal/sandbox',
|
2018-06-23 06:30:23 +03:00
|
|
|
'/js/xpconnect/loader',
|
2018-12-11 20:31:24 +03:00
|
|
|
'/js/xpconnect/src',
|
2013-11-11 12:04:11 +04:00
|
|
|
'/layout/base',
|
2015-05-06 19:29:33 +03:00
|
|
|
'/media/webrtc',
|
2015-01-20 11:58:00 +03:00
|
|
|
'/netwerk/base',
|
2019-01-24 00:27:44 +03:00
|
|
|
'/netwerk/protocol/http',
|
2017-01-10 21:34:38 +03:00
|
|
|
'/toolkit/components/printingui/ipc',
|
2016-10-12 00:25:41 +03:00
|
|
|
'/toolkit/crashreporter',
|
2013-11-11 12:04:11 +04:00
|
|
|
'/toolkit/xre',
|
|
|
|
'/uriloader/exthandler',
|
2014-10-23 21:16:45 +04:00
|
|
|
'/widget',
|
2013-11-11 12:04:11 +04:00
|
|
|
'/xpcom/base',
|
2014-02-01 03:02:30 +04:00
|
|
|
'/xpcom/threads',
|
2013-11-11 12:04:11 +04:00
|
|
|
]
|
|
|
|
|
2015-04-01 11:40:35 +03:00
|
|
|
if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
|
|
|
|
LOCAL_INCLUDES += [
|
|
|
|
'/security/sandbox/chromium',
|
|
|
|
'/security/sandbox/chromium-shim',
|
|
|
|
]
|
|
|
|
|
2015-08-17 05:25:59 +03:00
|
|
|
if CONFIG['OS_ARCH'] != 'WINNT':
|
|
|
|
LOCAL_INCLUDES += [
|
|
|
|
'/modules/libjar',
|
|
|
|
]
|
|
|
|
|
2013-11-27 17:55:07 +04:00
|
|
|
DEFINES['BIN_SUFFIX'] = '"%s"' % CONFIG['BIN_SUFFIX']
|
|
|
|
|
2018-01-10 12:04:59 +03:00
|
|
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
2013-11-27 17:55:07 +04:00
|
|
|
DEFINES['MOZ_ENABLE_FREETYPE'] = True
|
|
|
|
|
2014-01-10 07:03:25 +04:00
|
|
|
JAR_MANIFESTS += ['jar.mn']
|
2013-11-27 11:59:41 +04:00
|
|
|
|
2019-05-15 00:23:15 +03:00
|
|
|
BROWSER_CHROME_MANIFESTS += [
|
|
|
|
'tests/browser.ini',
|
|
|
|
'tests/JSWindowActor/browser.ini',
|
|
|
|
]
|
|
|
|
|
2014-07-26 10:17:24 +04:00
|
|
|
MOCHITEST_CHROME_MANIFESTS += ['tests/chrome.ini']
|
|
|
|
MOCHITEST_MANIFESTS += ['tests/mochitest.ini']
|
2018-06-28 02:43:36 +03:00
|
|
|
XPCSHELL_TESTS_MANIFESTS += ['tests/xpcshell.ini']
|
2014-07-24 19:55:33 +04:00
|
|
|
|
|
|
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|
2016-05-11 10:00:01 +03:00
|
|
|
|
2017-12-08 00:09:15 +03:00
|
|
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
2016-05-11 10:00:01 +03:00
|
|
|
CXXFLAGS += ['-Wno-error=shadow']
|
2018-05-21 20:53:34 +03:00
|
|
|
|
2018-03-23 23:18:42 +03:00
|
|
|
if CONFIG['FUZZING'] and CONFIG['FUZZING_INTERFACES']:
|
|
|
|
TEST_DIRS += [
|
|
|
|
'fuzztest'
|
|
|
|
]
|
2018-04-05 22:48:11 +03:00
|
|
|
|
|
|
|
# Add libFuzzer configuration directives
|
|
|
|
include('/tools/fuzzing/libfuzzer-config.mozbuild')
|