gecko-dev/widget
Nicholas Nethercote 68124009fc Bug 1438678 - Pass early prefs via shared memory instead of the command line. r=bobowen,jld,glandium.
This patch replaces the large -intPrefs/-boolPrefs/-stringPrefs flags with
a short-lived, anonymous, shared memory segment that is used to pass the early
prefs.

Removing the bloat from the command line is nice, but more important is the
fact that this will let us pass more prefs at content process start-up, which
will allow us to remove the early/late prefs split (bug 1436911).

Although this mechanism is only used for prefs, it's conceivable that it could
be used for other data that must be received very early by children, and for
which the command line isn't ideal.

Notable details:

- Much of the patch deals with the various platform-specific ways of passing
  handles/fds to children.

  - Linux and Mac: we use a fixed fd (8) in combination with the new
    GeckoChildProcessHost::AddFdToRemap() function (which ensures the child
    won't close the fd).

  - Android: like Linux and Mac, but the handles get passed via "parcels" and
    we use the new SetPrefsFd() function instead of the fixed fd.

  - Windows: there is no need to duplicate the handle because Windows handles
    are system-wide. But we do use the new
    GeckoChildProcessHost::AddHandleToShare() function to add it to the list of
    inheritable handles. We also ensure that list is processed on all paths
    (MOZ_SANDBOX with sandbox, MOZ_SANDBOX without sandbox, non-MOZ_SANDBOX) so
    that the handles are marked as inheritable. The handle is passed via the
    -prefsHandle flag.

  The -prefsLen flag is used on all platforms to indicate the size of the
  shared memory segment.

- The patch also moves the serialization/deserialization of the prefs in/out of
  the shared memory into libpref, which is a better spot for it. (This means
  Preferences::MustSendToContentProcesses() can be removed.)

MozReview-Commit-ID: 8fREEBiYFvc

--HG--
extra : rebase_source : 7e4c8ebdbcd7d74d6bd2ab3c9e75a6a17dbd8dfe
2018-02-16 17:54:16 +11:00
..
android Bug 1438678 - Pass early prefs via shared memory instead of the command line. r=bobowen,jld,glandium. 2018-02-16 17:54:16 +11:00
cocoa Backed out 6 changesets (bug 1343451) for mochitest android perma failures on testInputConnection. 2018-03-12 18:07:46 +02:00
crashtests Backed out changeset bbb688fe1ba3 (bug 1365614) 2017-05-22 15:45:31 +02:00
gtk Backed out 6 changesets (bug 1343451) for mochitest android perma failures on testInputConnection. 2018-03-12 18:07:46 +02:00
gtkxtbin Bug 1381253 - Remove redundant control flow declarations rs=ehsan 2017-07-15 19:03:04 +02:00
headless Bug 1436263 - Part 3: Remove `virtual` from final virtual function declarations. r=froydnj 2018-02-08 21:22:43 -08:00
reftests Bug 1417200: Make -moz-border-colors chrome only. r=xidorn 2017-12-01 23:25:01 +01:00
tests Backed out 6 changesets (bug 1343451) for mochitest android perma failures on testInputConnection. 2018-03-12 18:07:46 +02:00
uikit Bug 1441270 - Remove unused WebGL parameter getters. r=jgilbert 2018-02-26 20:35:12 +01:00
windows Backed out 6 changesets (bug 1343451) for mochitest android perma failures on testInputConnection. 2018-03-12 18:07:46 +02:00
x11 Bug 1355089 - add BUG_COMPONENT to widget/* files. r=mstange,jimm 2017-04-14 05:54:36 -04:00
xremoteclient Bug 1418770 - Truncate DBus names used for remote service to DBUS_MAXIMUM_NAME_LENGTH, r=jhorak 2018-02-13 13:59:39 +01:00
BasicEvents.h Bug 1413102 - Ensure Shadow DOM boundaries are dealt properly in event handling, r=masayuki 2018-02-15 12:08:42 +02:00
CommandList.h Bug 1403759 - part 2: Handle edit/selection commands like insertNewline: in TextInputHandler::HandleCommand() r=m_kato 2017-12-02 14:53:10 +09:00
CompositorWidget.cpp Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange 2018-01-10 11:14:16 -05:00
CompositorWidget.h Bug 1425842 - Rename X11CompositorWidget to GtkCompositorWidget and implement WindowSurfaceWayland support, r=jhorak 2017-12-18 20:20:02 +01:00
ContentCache.cpp Bug 1422230 - part 2: ContentCacheInParent should allow to query content relative to composition string even after sending eCompositionCommit(AsIs) event but not yet handled in the remote process r=m_kato 2018-01-12 15:05:24 +09:00
ContentCache.h Bug 1402519 - Remove MOZ_CRASHREPORTER directives from widget; r=froydnj 2017-11-23 10:59:04 +01:00
ContentEvents.h Bug 1433008 - Make AnimationEventInfo, InternalTransitionEvent and InternalAnimationEvent movable. r=masayuki 2018-01-30 09:26:48 +09:00
EventClassList.h Bug 1314388 - Remove SVGZoomEvent; r=longsonr,smaug 2017-04-04 15:36:22 +03:00
EventForwards.h Bug 1403759 - part 2: Handle edit/selection commands like insertNewline: in TextInputHandler::HandleCommand() r=m_kato 2017-12-02 14:53:10 +09:00
EventMessageList.h Bug 1359017 - onmessageerror for WindowEventHandlers in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug 2017-09-13 05:59:06 +02:00
FontRange.h Bug 1377169 - Turn gfxRect into a typedef. r=jrmuizel 2017-07-05 11:22:00 -04:00
GfxDriverInfo.cpp BUG 1428174 - Add Qualcomm to Windows GPU Whitelist r=jrmuizel 2018-01-05 17:28:02 -08:00
GfxDriverInfo.h BUG 1428174 - Add Qualcomm to Windows GPU Whitelist r=jrmuizel 2018-01-05 17:28:02 -08:00
GfxInfoBase.cpp Bug 1441270 - Remove unused WebGL parameter getters. r=jgilbert 2018-02-26 20:35:12 +01:00
GfxInfoBase.h Bug 1441270 - Remove unused WebGL parameter getters. r=jgilbert 2018-02-26 20:35:12 +01:00
GfxInfoCollector.cpp
GfxInfoCollector.h
GfxInfoX11.cpp Bug 1402519 - Remove MOZ_CRASHREPORTER directives from widget; r=froydnj 2017-11-23 10:59:04 +01:00
GfxInfoX11.h Bug 1441270 - Remove unused WebGL parameter getters. r=jgilbert 2018-02-26 20:35:12 +01:00
IMEData.h Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange 2018-01-10 11:14:16 -05:00
InProcessCompositorWidget.cpp Bug 1413217 - Fix some includes etc. in widget code. r=jimm 2017-10-12 17:03:35 +01:00
InProcessCompositorWidget.h Bug 1329362 - part 2, Add accessor functions for EGLNativeWindowType, ANativeWindow, and EGLSurface to AndroidCompositorWidget r=dvander,kats 2017-01-27 09:32:24 -08:00
InputData.cpp Bug 951793 - Obey overscroll-behavior for swipe navigation. r=mstange 2017-11-25 01:29:15 +01:00
InputData.h Bug 951793 - Obey overscroll-behavior for swipe navigation. r=mstange 2017-11-25 01:29:15 +01:00
LSBUtils.cpp Bug 1401786 - Move base::LaunchApp options into a LaunchOptions struct, like upstream Chromium. r=billm 2017-09-08 20:35:06 -06:00
LSBUtils.h
LookAndFeel.h Backed out 5 changesets (bug 1417709) for failing X in devtools/shared/tests/unit/test_css-properties-db.js r=backout on a CLOSED TREE 2017-11-23 01:17:07 +02:00
MiscEvents.h Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro. 2017-10-03 09:05:19 +11:00
MouseEvents.h Bug 1425441 - Move relatedTarget to WidgetEvent, r=stone 2017-12-18 19:08:11 +02:00
NativeKeyToDOMCodeName.h Bug 1389598 - Part 4: Remove remaining gonk refs. r=froydnj 2017-08-11 17:45:18 -07:00
NativeKeyToDOMKeyName.h Backed out 6 changesets (bug 1343451) for mochitest android perma failures on testInputConnection. 2018-03-12 18:07:46 +02:00
PCompositorWidget.ipdl
PlatformWidgetTypes.ipdlh Bug 1373739 - Make macOS compatible with the headless WPT changes. r=bdahl 2017-07-28 23:20:21 -07:00
PluginWidgetProxy.cpp Bug 1338172 part E - make all the PPluginWidget stuff Windows-only. Rip out the GTK-specific native widget support from widget/gtk/nsWindow and elsewhere, r=jimm 2017-02-09 11:53:50 -05:00
PluginWidgetProxy.h Bug 1338172 part E - make all the PPluginWidget stuff Windows-only. Rip out the GTK-specific native widget support from widget/gtk/nsWindow and elsewhere, r=jimm 2017-02-09 11:53:50 -05:00
PuppetBidiKeyboard.cpp
PuppetBidiKeyboard.h
PuppetWidget.cpp Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange 2018-01-10 11:14:16 -05:00
PuppetWidget.h Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange 2018-01-10 11:14:16 -05:00
Screen.cpp Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange 2018-01-10 11:14:16 -05:00
Screen.h Bug 1350643 - Part 3: Add GetDPI to nsIScreen & ScreenDetails. r=kanru 2017-06-06 18:09:34 +08:00
ScreenManager.cpp Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange 2018-01-10 11:14:16 -05:00
ScreenManager.h Bug 1356023 - Remove nsIScreenManager.systemDefaultScale. r=jfkthame 2017-04-13 07:20:35 +09:00
SharedWidgetUtils.cpp
SystemTimeConverter.h Backed out 3 changesets (bug 1434376)for failing browser chrome at browser/base/content/test/performance/browser_urlbar_search_reflows.js on a CLOSED TREE 2018-02-25 12:44:28 +02:00
TextEventDispatcher.cpp Bug 1443117 - Restart to dispatch "keypress" event for non-printable keys and key combinations on Nightly and early-Beta until Google fixes related bugs of their web apps r=smaug 2018-03-05 21:12:27 +09:00
TextEventDispatcher.h Bug 1433101 - part 1: Add new pref which disables keypress event for non-printable keys only for the default event group in web content r=smaug 2018-01-25 23:27:07 +09:00
TextEventDispatcherListener.h Bug 1296220 Rename nsIMEUpdatePreference to mozilla::widget::IMEUpdatePreference r=m_kato 2017-04-11 21:24:55 +09:00
TextEvents.h Bug 1036008 - Use alternative ASCII capable keyboard layout information to decide keyCode even if the key produces an ASCII punctuation character r=smaug 2018-02-16 15:54:07 +09:00
TextRange.h Bug 1386411 - Part 3: Inline some helper functions in Selection.cpp; r=bzbarsky 2017-08-03 17:05:19 -04:00
TouchEvents.h Bug 1436508 part 16. Remove nsIDOMSimpleGestureEvent. r=masayuki 2018-02-09 11:17:10 -05:00
VsyncDispatcher.cpp Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
VsyncDispatcher.h
WidgetEventImpl.cpp Bug 1036008 - Use alternative ASCII capable keyboard layout information to decide keyCode even if the key produces an ASCII punctuation character r=smaug 2018-02-16 15:54:07 +09:00
WidgetMessageUtils.h
WidgetTraceEvent.h
WidgetUtils.cpp Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange 2018-01-10 11:14:16 -05:00
WidgetUtils.h Bug 1151753 - Set program class name when not using --class command line option. r=karlt 2017-10-25 15:58:49 +09:00
WindowSurface.h Bug 1319554 - allow WindowSurfaceX11Image to render to any visual format. r=rhunt 2016-12-01 12:15:58 -05:00
WindowSurfaceX11SHM.cpp
WindowSurfaceX11SHM.h
moz.build Bug 1418749 - Add a TaskbarProgress implementation for gtk3/x11. r=paolo,karlt 2018-03-08 18:43:00 +02:00
nsAppShellSingleton.h
nsAutoRollup.cpp Bug 1343977 - Ensure that synthetic mouseclicks generated from touch gestures don't reopen rollups. r=botond,enndeakin+6102 2017-03-13 10:44:59 -04:00
nsAutoRollup.h Bug 1413217 - Fix some includes etc. in widget code. r=jimm 2017-10-12 17:03:35 +01:00
nsBaseAppShell.cpp Bug 1402519 - Remove MOZ_CRASHREPORTER directives from widget; r=froydnj 2017-11-23 10:59:04 +01:00
nsBaseAppShell.h
nsBaseClipboard.cpp
nsBaseClipboard.h Backed out 22 changesets (bug 1399787) for shutdown leaks on windows 7 debug tc-M without e10s r=backout on a CLOSED TREE 2017-12-08 13:09:56 +02:00
nsBaseDragService.cpp Bug 1424107 - Pass the triggering principal URI across processes in drag-and-drop. r=smaug 2018-02-09 10:43:53 +09:00
nsBaseDragService.h Bug 1424107 - Pass the triggering principal URI across processes in drag-and-drop. r=smaug 2018-02-09 10:43:53 +09:00
nsBaseFilePicker.cpp Bug 1390428 (part 9) - Remove nsXPIDLCString. r=erahm. 2017-08-17 15:29:03 +10:00
nsBaseFilePicker.h Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj 2017-11-05 19:37:28 -08:00
nsBaseScreen.cpp Bug 1350643 - Part 3: Add GetDPI to nsIScreen & ScreenDetails. r=kanru 2017-06-06 18:09:34 +08:00
nsBaseScreen.h Bug 1350643 - Part 3: Add GetDPI to nsIScreen & ScreenDetails. r=kanru 2017-06-06 18:09:34 +08:00
nsBaseWidget.cpp Bug 1441498 - Protect mCompositorVsyncDispatcher by lock. r=kats 2018-03-07 10:53:05 -05:00
nsBaseWidget.h Bug 1441498 - Protect mCompositorVsyncDispatcher by lock. r=kats 2018-03-07 10:53:05 -05:00
nsClipboardHelper.cpp
nsClipboardHelper.h
nsClipboardProxy.cpp
nsClipboardProxy.h
nsColorPickerProxy.cpp
nsColorPickerProxy.h
nsContentProcessWidgetFactory.cpp Bug 1401678 - Proxy nsISound::beep() and nsISound::play() calls from the content process to the parent process and beep away there. r=bkelly 2018-01-16 13:24:51 +01:00
nsDeviceContextSpecProxy.cpp Bug 1432409 part 1 - Prevent nsDeviceContextSpecProxy using RemotePrintJobChild if initialization fails. r=dholbert 2018-02-16 14:53:26 +00:00
nsDeviceContextSpecProxy.h Bug 1436263 - Part 3: Remove `virtual` from final virtual function declarations. r=froydnj 2018-02-08 21:22:43 -08:00
nsDragServiceProxy.cpp Bug 1437118 - Null-check principalURI returned by URI getter. r=froydnj 2018-02-16 03:20:26 +09:00
nsDragServiceProxy.h Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
nsFilePickerProxy.cpp Bug 1387800 - Remove [deprecated] nsIFilePicker.show(). r=qdot 2017-08-06 13:15:31 +09:00
nsFilePickerProxy.h Bug 1387800 - Remove [deprecated] nsIFilePicker.show(). r=qdot 2017-08-06 13:15:31 +09:00
nsGUIEventIPC.h Bug 1401111 - Use ContiguousEnumSerializer for EventMessage ParamTraits; r=botond 2017-12-01 13:00:56 -05:00
nsHTMLFormatConverter.cpp Bug 1313150 - Remove |weak| parameter from nsIMutableArray methods. r=froydnj 2017-10-21 23:53:02 +09:00
nsHTMLFormatConverter.h
nsIAppShell.idl
nsIApplicationChooser.idl
nsIBaseWindow.idl Bug 1402255 - Change nsIBaseWindow::title from wstring to AString. r=janv. 2017-09-25 13:10:51 +10:00
nsIBidiKeyboard.idl
nsIClipboard.idl
nsIClipboardDragDropHookList.idl
nsIClipboardDragDropHooks.idl
nsIClipboardHelper.idl
nsIClipboardOwner.idl
nsIColorPicker.idl
nsIDeviceContextSpec.h
nsIDisplayInfo.idl
nsIDragService.idl Bug 1424107 - Pass the triggering principal URI across processes in drag-and-drop. r=smaug 2018-02-09 10:43:53 +09:00
nsIDragSession.idl Bug 1424107 - Pass the triggering principal URI across processes in drag-and-drop. r=smaug 2018-02-09 10:43:53 +09:00
nsIFilePicker.idl Bug 1387800 - Remove [deprecated] nsIFilePicker.show(). r=qdot 2017-08-06 13:15:31 +09:00
nsIFormatConverter.idl
nsIGfxInfo.idl Bug 1441270 - Remove unused WebGL parameter getters. r=jgilbert 2018-02-26 20:35:12 +01:00
nsIGfxInfoDebug.idl
nsIGtkTaskbarProgress.idl Bug 1418749 - Add a TaskbarProgress implementation for gtk3/x11. r=paolo,karlt 2018-03-08 18:43:00 +02:00
nsIIdleService.idl
nsIIdleServiceInternal.idl
nsIJumpListBuilder.idl Bug 1354143 - Commit jump list on lazy idle thread. r=florian,jimm 2017-05-24 16:38:57 +08:00
nsIJumpListItem.idl
nsIKeyEventInPluginCallback.h
nsIMacDockSupport.idl
nsIMacWebAppUtils.idl
nsINativeMenuService.h Bug 1423167: Move most attribute-related methods from nsIContent to Element. r=bz 2017-12-06 16:05:59 +01:00
nsIPluginWidget.h
nsIPrintDialogService.h
nsIPrintSession.idl
nsIPrintSettings.idl Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen. 2017-10-09 10:08:09 +11:00
nsIPrintSettingsService.idl Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen. 2017-10-09 10:08:09 +11:00
nsIPrintSettingsWin.idl Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen. 2017-10-09 10:08:09 +11:00
nsIPrinterEnumerator.idl Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen. 2017-10-09 10:08:09 +11:00
nsIRollupListener.h
nsIScreen.idl Bug 1350643 - Part 3: Add GetDPI to nsIScreen & ScreenDetails. r=kanru 2017-06-06 18:09:34 +08:00
nsIScreenManager.idl Bug 1356023 - Remove nsIScreenManager.systemDefaultScale. r=jfkthame 2017-04-13 07:20:35 +09:00
nsISound.idl
nsIStandaloneNativeMenu.idl
nsISystemStatusBar.idl
nsITaskbarOverlayIconController.idl
nsITaskbarPreview.idl
nsITaskbarPreviewButton.idl
nsITaskbarPreviewController.idl Bug 1387802 - Remove [deprecated] methods from nsITaskbarPreviewController. r=jimm 2017-08-06 13:35:02 +09:00
nsITaskbarProgress.idl
nsITaskbarTabPreview.idl
nsITaskbarWindowPreview.idl Bug 1387802 - Remove [deprecated] methods from nsITaskbarPreviewController. r=jimm 2017-08-06 13:35:02 +09:00
nsITransferable.idl Bug 1361579 - Remove nsISimpleContentPolicy. r=Ehsan 2017-08-03 17:50:00 +09:00
nsIWidget.h Bug 1293362 - Part 4: Generate runtime bindings for calling xpcom methods from rust, r=froydnj 2018-01-23 17:27:26 -05:00
nsIWidgetListener.cpp Bug 1373581: Make transition into and out of native fullscreen smoother on macOS. r=mstange 2017-10-18 21:50:47 -04:00
nsIWidgetListener.h Bug 1373581: Make transition into and out of native fullscreen smoother on macOS. r=mstange 2017-10-18 21:50:47 -04:00
nsIWinTaskbar.idl
nsIWindowsUIUtils.idl
nsIdleService.cpp Bug 1404198: Part 2d - Switch to NS_NewTimer* in widget. r=njn 2017-10-15 23:12:54 -07:00
nsIdleService.h
nsNativeTheme.cpp Bug 1439751 - Remove all members from nsIDOMHTMLInputElement. r=qdot 2018-02-20 23:10:44 +01:00
nsNativeTheme.h Bug 1399956 - Add basic hard coded GTK theme in headless. r=jrmuizel 2017-10-16 16:15:45 -07:00
nsPrimitiveHelpers.cpp Bug 1390428 (part 2, attempt 2) - Remove more nsXPIDLCString local variables. r=erahm. 2017-08-21 20:01:27 +10:00
nsPrimitiveHelpers.h Bug 1393547 - Add missing nsACString declarations in widget/nsPrimitiveHelpers.h. r=mconley 2017-08-24 11:18:00 -04:00
nsPrintSession.cpp
nsPrintSession.h
nsPrintSettingsImpl.cpp Bug 144114 part 3 - Clean up the headers of the nsPrintSettingsService subclasses. r=bobowen 2017-12-19 11:05:37 +00:00
nsPrintSettingsImpl.h Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen. 2017-10-09 10:08:09 +11:00
nsPrintSettingsService.cpp Bug 144114 part 3 - Clean up the headers of the nsPrintSettingsService subclasses. r=bobowen 2017-12-19 11:05:37 +00:00
nsPrintSettingsService.h Bug 144114 part 3 - Clean up the headers of the nsPrintSettingsService subclasses. r=bobowen 2017-12-19 11:05:37 +00:00
nsShmImage.cpp Bug 1397918 - don't use versions of libxcb before 1.11.1. r=karlt 2017-09-22 00:10:35 -04:00
nsShmImage.h Bug 1321129 - make nsShmImage stride compatible with XShm. r=karlt 2017-02-21 10:00:52 -05:00
nsSoundProxy.cpp Bug 1401678 - Proxy nsISound::beep() and nsISound::play() calls from the content process to the parent process and beep away there. r=bkelly 2018-01-16 13:24:51 +01:00
nsSoundProxy.h Bug 1401678 - Proxy nsISound::beep() and nsISound::play() calls from the content process to the parent process and beep away there. r=bkelly 2018-01-16 13:24:51 +01:00
nsTransferable.cpp Bug 1433030 - Initialize nsTransferable::mPrivateData with false r=jdm 2018-03-07 10:21:50 +01:00
nsTransferable.h Bug 335545 - Make DataStruct non-copyable r=mstange 2018-02-25 17:36:08 +01:00
nsWidgetInitData.h Backout 84bcb5742e0c (bug 1405577) to replace with a slimmer patch. r=me 2017-12-04 15:06:26 -05:00
nsWidgetsCID.h Bug 1418749 - Add a TaskbarProgress implementation for gtk3/x11. r=paolo,karlt 2018-03-08 18:43:00 +02:00
nsXPLookAndFeel.cpp Backed out 5 changesets (bug 1417709) for failing X in devtools/shared/tests/unit/test_css-properties-db.js r=backout on a CLOSED TREE 2017-11-23 01:17:07 +02:00
nsXPLookAndFeel.h Bug 1387594 - Add system colors for use in conjunction with -moz-font-smoothing-background-color and vibrant -moz-appearances. r=dbaron 2017-09-14 23:09:48 +02:00