Commit Graph

1156 Commits

Author SHA1 Message Date
Haik Aftandilian
59576e83d0 Bug 1546836 - Video Playback and Form Rendering Issues on macOS Version 10.14.5 Beta r=jmathies
Allow access to Apple's Metal shader language compiler in our content process sandbox. Limit the sandbox policy change to 10.14 and newer OS versions to reduce risk given that problems have only been reported on 10.14.5.

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

--HG--
extra : moz-landing-system : lando
2019-04-26 16:28:06 +00:00
Sylvestre Ledru
a1dce6440a Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-22 16:35:03 +00:00
Jed Davis
64717a0c9f Bug 1543790 - Fix RDD sandboxing conditions so the parent and child processes agree. r=gcp
If the system doesn't support seccomp-bpf, the parent process won't
try to set up sandboxing, but the child process has a separate check that
didn't test for this, and ends up failing a release assertion (in
SandboxReporterClient, but we also release-assert that installing the
seccomp-bpf policy succeeds).

This patch just fixes the child-side conditional to match the intended
behavior, but in the long term we should consider redesigning SandboxInfo
to avoid this.

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

--HG--
extra : moz-landing-system : lando
2019-04-16 13:53:20 +00:00
Jed Davis
69140d1e65 Bug 1543858 - Adjust Linux sandbox policies to tolerate glibc's qsort. r=gcp
Differential Revision: https://phabricator.services.mozilla.com/D27632

--HG--
extra : moz-landing-system : lando
2019-04-16 06:50:50 +00:00
Aaron Klotz
2484ee1608 Bug 1503538: Part 5 - Add static DLL dependency blocking to SandboxBroker; r=bobowen
Depends on D27146

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

--HG--
extra : moz-landing-system : lando
2019-04-12 09:47:13 +00:00
Jonathan Kew
c48e7d41b9 Bug 1542773 - Make the mac font activation/sandbox test (browser_bug1393259.js) more robust. r=haik
When the test font is activated, the notification of the font configuration change
may be handled asynchronously by content processes, so that it's possible the content
process has not yet handled the update at the point when registerFont() detects the
change and returns to the test script.

(This issue becomes more acute with the upcoming shared-font-list system, where the
OS notification is not handled by the content process at all; it's only handled by
the parent process, which then notifies content processes *after* it has updated the
font list. So there's an inherent latency between the update being recognized by the
chrome process - and therefore "ready" as far as the test script is concerned - and
content processes receiving and handling the change.)

To handle this, we can explicitly wait for the width of the rendered content to change,
which will indicate that the font configuration change has been handled by the content
process.

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

--HG--
extra : moz-landing-system : lando
2019-04-09 16:56:06 +00:00
Haik Aftandilian
2abd1f81a6 Bug 1541230 - Part 2 - Add /System/Library read access to the utility sandbox r=Alex_Gaynor
Allow read access to /System/Library for accessing system libraries.

Depends on D26397

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

--HG--
extra : moz-landing-system : lando
2019-04-09 12:51:18 +00:00
Bob Owen
3761608ad2 Bug 1534196: Correct return values from failed brokering. r=jmathies 2019-04-08 08:54:27 +01:00
Sylvestre Ledru
03fc65347c Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-05 21:42:17 +00:00
Sylvestre Ledru
03c8e8c2dd Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-05 21:41:42 +00:00
Csoregi Natalia
ba58e936bd Backed out changeset 4ad80127f89f (bug 1519636) for bustage on MarkupMap.h and nsAccessibilityService.cpp. CLOSED TREE 2019-04-05 09:48:19 +03:00
Sylvestre Ledru
d1c1878603 Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 21:36:16 +00:00
Narcis Beleuzu
24dbe577a5 Backed out changeset 389b6bbd76db (bug 1519636) for bustages on MarkupMap.h . CLOSED TREE 2019-04-05 00:27:56 +03:00
Sylvestre Ledru
399dbd28fe Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 20:12:23 +00:00
Haik Aftandilian
f357396a1e Bug 1541272 - Mac Utility sandbox profile missing crash reporter port allow rule r=Alex_Gaynor
Add the crash reporter port to the utility process sandbox so that crash reports can be saved for processes using the utility sandbox with early sandbox init.

At this time, the RDD process is the only process using the utility sandbox.

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

--HG--
extra : moz-landing-system : lando
2019-04-04 19:59:25 +00:00
Haik Aftandilian
f7082591a7 Bug 1540892 - [Mac] Don't #include policy definition headers in mac/Sandbox.h r=Alex_Gaynor
Move sandbox policy includes to Sandbox.mm.

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

--HG--
extra : moz-landing-system : lando
2019-04-02 12:59:46 +00:00
Gian-Carlo Pascutto
d0f1336b84 Bug 1535794 - Allow getrandom() in all sandbox policies. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D25610

--HG--
extra : moz-landing-system : lando
2019-04-02 12:37:58 +00:00
Gian-Carlo Pascutto
4f54fd166f Bug 1536137 - Add getrusage to RDD policy. r=jld
Depends on D24190

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

--HG--
extra : moz-landing-system : lando
2019-04-01 16:10:05 +00:00
Gian-Carlo Pascutto
9261673631 Bug 1536127 - Add F_SETFD/CLOEXEC logic to RDD process. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D24190

--HG--
extra : moz-landing-system : lando
2019-04-01 16:10:07 +00:00
Sylvestre Ledru
ef0bfc3822 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-03-31 15:12:55 +00:00
Haik Aftandilian
a8b3df5de0 Bug 1525086 - Part 6 - Use AssertMacSandboxEnabled() for the RDD process, change the assert to use sandbox_check() r=Alex_Gaynor
When the RDD process sandbox is started at launch, assert the sandbox has been enabled in the Init message.

Change AssertMacSandboxEnabled() to use the undocumented sandbox_check() function instead of sandbox_init().

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

--HG--
extra : moz-landing-system : lando
2019-03-27 20:29:08 +00:00
Haik Aftandilian
ae8b138790 Bug 1525086 - Part 3a - Move sandbox param logic to GeckoChildProcessHost and MacSandboxInfo to be more reusable r=Alex_Gaynor
Move sandbox early start logic to GeckoChildProcessHost.

Move sandbox CLI param logic into MacSandboxInfo.

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

--HG--
extra : moz-landing-system : lando
2019-03-28 02:25:52 +00:00
Haik Aftandilian
a6d4dd5d34 Bug 1525086 - Part 2 - Remove unneeded params and permissions from the utility sandbox r=Alex_Gaynor
Remove the unused plugin binary path and app binary path parameters and cleanup file path permissions.

Explicitly allow access to launchservicesd to allow SetProcessName() to work when the sandbox is started during startup.

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

--HG--
extra : moz-landing-system : lando
2019-03-27 20:27:32 +00:00
Haik Aftandilian
40e8968bd5 Bug 1525086 - Part 1 - Split up sandbox policies, create utility policy for the RDD process r=Alex_Gaynor
Move sandbox policies for different process types into their own files.

Create a new "utility" policy cloned from the GMP policy to be used for basic utility-type processes.

Use the utility policy for the RDD process.

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

--HG--
extra : moz-landing-system : lando
2019-03-27 20:27:09 +00:00
srujana
6e50bb941c Bug 1451127 : Added files to UNIFIED_SOURCES and removed conflicts. r=handyman
Added files to UNIFIED_SOURCES and removed conflicts. Files that required flags still remain in SOURCES.  SOURCES use "StrictOrderingOnAppendListWithFlagsFactory" base class and UNIFIED_SOURCES use "StrictOrderingOnAppendList" base class. As of now I do not think there is an option to add flags for the later. So the files requiring flags are kept in SOURCES.

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

--HG--
extra : moz-landing-system : lando
2019-03-20 21:32:50 +00:00
brendaadel
7b652fc9d8 Bug 1474759 - added strings to the empty MOZ_Crash() in Linux sandboxing module. r=handyman
Added reason strings to all MOZ_CRASH in linux/sandbox

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

--HG--
extra : moz-landing-system : lando
2019-03-22 07:43:29 +00:00
Alex Gaynor
177fb00eba Bug 1375863 - fold MOZ_CONTENT_SANDBOX and MOZ_GMP_SANDBOX into MOZ_SANDBOX; r=jld,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D22975

--HG--
extra : moz-landing-system : lando
2019-03-18 22:31:59 +00:00
Sylvestre Ledru
4aa92e3091 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
David Major
e5773183d6 Bug 1528074 - Remove MSVC warning flags that clang-cl doesn't understand r=chmanchester
Per the previous patch, clang-cl only understands five MSVC-style warning flags: 7219c7e9af/clang/include/clang/Driver/CLCompatOptions.td (L188-L197)

This patch removes the flags that clang-cl doesn't understand.

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

--HG--
extra : moz-landing-system : lando
2019-03-13 20:19:08 +00:00
Chris Pearce
de686d23c1 Bug 1530245 - Launch sandbox from new remote sandbox broker process. r=jld,bobowen
Depends on D22051

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

--HG--
extra : moz-landing-system : lando
2019-03-13 09:24:52 +00:00
Chris Pearce
f4c9b88845 Bug 1530245 - Make GeckoChildProcessHost::mSandboxBroker an abstract pointer. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D22051

--HG--
extra : moz-landing-system : lando
2019-03-13 09:24:37 +00:00
David Major
56ea434680 Bug 1528074 - Translate MSVC warning flags to clang spelling where supported r=froydnj
clang-cl only acts on five MSVC warning flags: 7219c7e9af/clang/include/clang/Driver/CLCompatOptions.td (L188-L197)

With MSVC now unsupported, most -wdNNNN have no effect and can be removed.

This patch converts the five supported warnings to their clang spellings, as preparation for a subsequent patch that will remove all remaining `[/-]w[edo][0-9]{4}`.

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

--HG--
extra : moz-landing-system : lando
2019-03-11 01:39:42 +00:00
Gurzau Raul
6b94d177d1 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-03-01 09:28:28 +02:00
Alex Gaynor
f789c68941 Bug 1531476 - replace MaybeFileDesc with FileDescriptor? in IPDL; r=mccr8
Also contains a small amount of unrelated devirtualization of IPC methods.

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

--HG--
extra : moz-landing-system : lando
2019-02-28 21:20:40 +00:00
Jed Davis
af97210807 Bug 1506291 - Add Linux sandboxing for the RDD (media decoder) process. r=gcp,mjf,flod
The seccomp-bpf policy is currently just the "common" policy with no
additions (but with the fixes in bug 1511560 to enable shared memory
creation).  The file broker policy allows shared memory creation and
nothing else.  The namespace setup is the same as for GMP (i.e., as
restrictive as we currently can be).

The sandbox can be turned off for troubleshooting by setting the
environment variable MOZ_DISABLE_RDD_SANDBOX, similarly to the other
process types.

Tested against https://demo.bitmovin.com/public/firefox/av1/ with the
necessary prefs set.

Depends on D20895

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

--HG--
extra : moz-landing-system : lando
2019-02-27 20:14:54 +00:00
Jed Davis
6fc87bff63 Bug 1511560 - Allow dup and ftruncate (when needed) in SandboxPolicyCommon. r=gcp
File descriptors are sometimes dup()ed in the process of communicating
them over IPC; some of this may be unnecessary (due to insufficient
use of move-only types), but dup() is relatively harmless.  It was
previously allowed for both content and GMP, so this doesn't change
anything.

The handling of ftruncate is a little complicated -- it's used for IPC
shared memory, but only when creating segments; so GMP doesn't allow
it and should continue not allowing it, but content needs it and RDD
will as well.  As a result, the subclass indicates if it will be needed.

Note that even when we have memfd_create support (bug 1440203),
ftruncate is still necessary even though brokering may not.

Depends on D14523

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

--HG--
extra : moz-landing-system : lando
2019-02-27 20:14:52 +00:00
Jed Davis
bb4d6b8630 Bug 1511560 - Move the socketpair handling into SandboxPolicyCommon. r=gcp
The sandbox broker uses socketpair to construct the per-request channels
over which responses are sent; thus, if and only if the policy will be
using brokering, it will allow socketpair as safely as possible (i.e.,
denying datagram sockets if possible).

Depends on D14522

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

--HG--
extra : moz-landing-system : lando
2019-02-23 00:44:10 +00:00
Jed Davis
2dfa36102d Bug 1511560 - Move syscalls for adjusting memory mapping properties into SandboxPolicyCommon. r=gcp
madvise is used by our malloc (and probably others), and mprotect is
used with shared memory, including when created by another process, so
the common policy should include those rules.

Depends on D14521

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

--HG--
extra : moz-landing-system : lando
2019-02-23 00:44:08 +00:00
Jed Davis
6acf27b81f Bug 1511560 - Move the Linux sandbox broker hooks into SandboxPolicyCommon. r=gcp
This will allow other policies to use brokering if needed (e.g., RDD and
similar utility processes may need to access /dev/shm to create shared
memory).  The concrete policy class can deny filesystem access completely
(matching the current behavior of the GMP policy) by passing nullptr to
the superclass constructor instead.

Depends on D14520

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

--HG--
extra : moz-landing-system : lando
2019-02-23 00:44:06 +00:00
Jed Davis
86607a852d Bug 1500297 - Require a broker client in ContentSandboxPolicy at level > 1. r=gcp
ContentSandboxPolicy currently allows direct filesystem access if it
isn't given a broker client; this is a legacy design from the B2G era,
before the current idea of "sandbox level".  With this patch, it allows
filesystem access at level 1, and above that it requires brokering.

This is both to reduce the opportunities for accidentally having a
too-permissive sandbox and to prepare for refactoring the broker glue in
bug 1511560.

Depends on D14519

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

--HG--
extra : moz-landing-system : lando
2019-02-27 15:23:25 +00:00
Jed Davis
0901298ac2 Bug 1500297 - Fix Linux content sandbox level 1. r=gcp
Level 1 is meant to enable some seccomp-bpf filtering, but still allow
direct access to the filesystem, and level 2 is where brokering starts.
This was accidentally broken in 1365257 (making "level 1" act like level
2); this patch fixes that.

This feature obviously isn't used much given how long nobody noticed it was
broken, but it's useful to have around for troubleshooting, and it's
actually easier to fix it than edit it out of the documentation.

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

--HG--
extra : moz-landing-system : lando
2019-02-27 15:23:25 +00:00
Ryan Hunt
a6457a95be Bug 1523969 part 21 - Move method definition inline comments to new line in 'security/'. r=ehsan
Differential Revision: https://phabricator.services.mozilla.com/D21122

--HG--
extra : rebase_source : cceafd5ad497236b2ce532727ad3435b8ea49fa7
extra : histedit_source : 630de35708f3a312d4b286a94d92536d086c4c9c
2019-02-25 16:12:13 -06:00
Kris Maglione
b2f85650a1 Bug 1524687: Part 12 - Convert everything else to static registration. r=erahm
--HG--
extra : source : 625f71135038f79c075f758e316fbb00097c9a18
extra : intermediate-source : 7a1ef487a9e74d66b112034051e49b77023860b8
extra : histedit_source : 88d19dbee4a99faa191e49e2847c4c59aba05b0c%2C5ee702f97153152d31124e0c5f3e8318cbeb3195
2019-01-29 16:03:41 -08:00
arthur.iakab
470dbf03b6 Backed out 5 changesets (bug 1524687) for causing build bustages on platform.h CLOSED TREE
Backed out changeset 0f06a6b51bfe (bug 1524687)
Backed out changeset 7a1ef487a9e7 (bug 1524687)
Backed out changeset accad7b4cbc7 (bug 1524687)
Backed out changeset eb33f7e6467c (bug 1524687)
Backed out changeset 86cf09db340b (bug 1524687)
2019-02-21 02:04:02 +02:00
Kris Maglione
95c0cf7aa9 Bug 1524687: Part 12 - Convert everything else to static registration. r=erahm
--HG--
extra : rebase_source : ccc1b4f8559152237e523b67ea76e2b406c1cb11
extra : intermediate-source : e8ad5619116c31fc4d38e0e789ddb9b5d2a5bb25
extra : source : 625f71135038f79c075f758e316fbb00097c9a18
2019-01-29 16:03:41 -08:00
Masatoshi Kimura
e59e3b3e20 Bug 1528651 - Fix some trivial warnings and re-enable warnings-as-errors on Windows in some directories. r=dmajor
--HG--
extra : source : 5ee9efeda9e67f6af0521be85266703763cc4c50
2019-02-19 20:42:11 +09:00
Bob Owen
36320360f7 Bug 1515088 Part 2: Set LoaderThreads to 1 in the RTL_USER_PROCESS_PARAMETERS structure on child process start-up. r=aklotz 2019-02-08 17:17:52 +00:00
Mike Hommey
ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

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

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Daniel Varga
023ea6a08f Backed out changeset 60f9b60f1f4f (bug 1347710) for causing bug 1526661. a=backout 2019-02-09 20:13:30 +02:00
Haik Aftandilian
9b822034f6 Bug 1525625 - [Mac] Flash plugin can not save settings r=Alex_Gaynor
Allow file-write-unlink in ~/Library/Preferences/Macromedia/Flash Player to allow changes made in the Flash Global Settings panel to persist.

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

--HG--
extra : moz-landing-system : lando
2019-02-08 20:42:10 +00:00