summaryrefslogtreecommitdiffstats
path: root/sandbox/mac/mach_message_server.h
Commit message (Collapse)AuthorAgeFilesLines
* Standardize usage of virtual/override/final in sandbox/dcheng2014-10-221-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Google C++ style guide states: Explicitly annotate overrides of virtual functions or virtual destructors with an override or (less frequently) final specifier. Older (pre-C++11) code will use the virtual keyword as an inferior alternative annotation. For clarity, use exactly one of override, final, or virtual when declaring an override. To better conform to these guidelines, the following constructs have been rewritten: - if a base class has a virtual destructor, then: virtual ~Foo(); -> ~Foo() override; - virtual void Foo() override; -> void Foo() override; - virtual void Foo() override final; -> void Foo() final; This patch was automatically generated. The clang plugin can generate fixit hints, which are suggested edits when it is 100% sure it knows how to fix a problem. The hints from the clang plugin were applied to the source tree using the tool in https://codereview.chromium.org/598073004. BUG=417463 R=jln@chromium.org Review URL: https://codereview.chromium.org/666193002 Cr-Commit-Position: refs/heads/master@{#300587}
* replace OVERRIDE and FINAL with override and final in sandbox/mostynb2014-10-071-7/+7
| | | | | | | | | R=cpu@chromium.org,dcheng@chromium.org BUG=417463 Review URL: https://codereview.chromium.org/628233002 Cr-Commit-Position: refs/heads/master@{#298401}
* Create DispatchSourceMach to run a MACH_RECV dispatch source.rsesek@chromium.org2014-07-171-11/+6
| | | | | | | | | | | | | This implements RAII semantics so that when the destructor runs, the source is cancelled and event handler blocks cannot call methods on a destructed object. BUG=382931 R=mark@chromium.org Review URL: https://codereview.chromium.org/392273002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283664 0039d316-1c4b-4281-b951-d872f2087c98
* Do not create a reply IPCMessage for every message received.rsesek@chromium.org2014-07-161-1/+2
| | | | | | | | | | | | | | This is incompatible with the way xpc_dictionary_create_reply() works, which may only be called once per message. This would inhibit forwarding messages, since the receiver of the forwarded XPC message would not be able to reply. Instead, replies now must be created explicitly via MessageServer::CreateReply(). BUG=382931 R=mark@chromium.org Review URL: https://codereview.chromium.org/398563002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283376 0039d316-1c4b-4281-b951-d872f2087c98
* Extract a virtual interface out of MachMessageServer that can be implemented ↵rsesek@chromium.org2014-07-011-33/+12
| | | | | | | | | | | | with XPC. BUG=382931 TEST=none R=mark@chromium.org Review URL: https://codereview.chromium.org/331883008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280703 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a shutdown crash in the bootstrap sandbox.rsesek@chromium.org2014-06-231-0/+4
| | | | | | | | | | | | | The Mach dispatch source must be cancelled to prevent further ReceiveMessage() dispatches, which resulted in a shutdown UAF. BUG=384979 TEST=New regression test. R=mark@chromium.org Review URL: https://codereview.chromium.org/350643003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279193 0039d316-1c4b-4281-b951-d872f2087c98
* Alter the design of the bootstrap sandbox to only take over the bootstrap ↵rsesek@chromium.org2014-06-191-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | port of children when necessary. Rather than replacing the bootstrap port outright in the browser process, this change merely registers the sandboxed bootstrap port with launchd. When a sandboxed child is being launched with base::LaunchProcess(), a new LaunchOptions can specify a bootstrap name to look up and use as a replacement bootstrap port. The bootstrap port in the new child is replaced after fork() but before exec(). The kernel clears the IPC space during both of these system calls, so no other references to the original bootstrap port will exist after replacing the port with the sandboxed one and exec()ing. This change also partially reverts r276026, which introduced a permissive policy for NPAPI plugins. Since those plugins are no longer affected by the bootstrap sandbox, it can be removed. BUG=367863,383513,383517,383791,386330 R=jam@chromium.org, mark@chromium.org Review URL: https://codereview.chromium.org/347783002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278530 0039d316-1c4b-4281-b951-d872f2087c98
* Split the generic MachMessageServer logic out of the LaunchdInterceptionServer.rsesek@chromium.org2014-06-111-0/+88
BUG=382931 R=mark@chromium.org Review URL: https://codereview.chromium.org/320883003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276265 0039d316-1c4b-4281-b951-d872f2087c98