summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_channel.h
Commit message (Collapse)AuthorAgeFilesLines
* Removing ipc/content debugging for ResourceMsg.erikchen2016-01-131-5/+0
| | | | | | | | | | This CL reverts commit ee68563f8c5c4781a26b0f2f5dc310cbd6aa950d. BUG= Review URL: https://codereview.chromium.org/1574283003 Cr-Commit-Position: refs/heads/master@{#369235}
* Switch to standard integer types in ipc/.avi2015-12-221-5/+7
| | | | | | | | | BUG=138542 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1546533002 Cr-Commit-Position: refs/heads/master@{#366527}
* ipc: Add debugging to verify the source of ResourceDispatcher crashes.erikchen2015-12-071-0/+5
| | | | | | | | | | | | | This CL is mostly a reland of https://codereview.chromium.org/1354063002/. It adds a MessageVerifier that verifies specific IPC messages right before serialization, and right after deserialization. It also adds the same CHECKs to the application logic that uses Chrome IPC. BUG=527588 Review URL: https://codereview.chromium.org/1500013003 Cr-Commit-Position: refs/heads/master@{#363577}
* Trim IPC ChannelReader's buffer after processing large messages.dskiba2015-11-041-0/+5
| | | | | | | | | | | | Most IPC messages are small, but there are few ones that can be quite large. With this change ChannelReader trims its input buffer after processing large messages. BUG=529940 Review URL: https://codereview.chromium.org/1377483003 Cr-Commit-Position: refs/heads/master@{#357708}
* ipc: Plumbing for attachment brokering in ChannelPosix.erikchen2015-10-061-2/+2
| | | | | | | | | | Add attachment brokering plumbing to ChannelPosix. BUG=535711 Review URL: https://codereview.chromium.org/1387973002 Cr-Commit-Position: refs/heads/master@{#352693}
* ipc: Remove unnecessary attachment broker plumbing.erikchen2015-09-241-23/+6
| | | | | | | | | | | | The original design was to pass around an instance of an attachment broker. The new design uses a single global, and no longer needs any plumbing. This CL removes the last vestiges of the plumbing. BUG=493414 Review URL: https://codereview.chromium.org/1354973006 Cr-Commit-Position: refs/heads/master@{#350471}
* Revert of Reland debugging for ipc related crash.erikchen2015-09-231-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reason for revert: Once again, seeing crashes. https://crash.corp.google.com/browse?q=product.name%3D%27Chrome%27%20AND%20product.version%3D%2747.0.2517.0%27%20AND%20custom_data.ChromeCrashProto.ptype%3D%27renderer%27 Original issue's description: > Reland of land debugging for ipc related crash. (patchset #1 id:1 of https://codereview.chromium.org/1354863004/ ) > > Reason for revert: > Relanding this CL, as I don't think it will actually cause crashes. > > https://code.google.com/p/chromium/issues/detail?id=524032#c27 > > Original issue's description: > > Revert of Reland debugging for ipc related crash. (patchset #1 id:1 of https://codereview.chromium.org/1354063002/ ) > > > > Reason for revert: > > Supposedly, this CL only changes the signature of the crash, not the presence of the crash. There is some (but not totally clear) evidence that this CL is causing a crash itself. > > > > https://code.google.com/p/chromium/issues/detail?id=527588#c32 > > > > Original issue's description: > > > Reland debugging for ipc related crash. > > > > > > This CL is almost identical to https://codereview.chromium.org/1350823002/. The > > > only difference is that the part of the CL that causes the crash has been > > > omitted. > > > > > > BUG=527588 > > > > > > Committed: https://crrev.com/a7502c6dff276bce3c76d680c5d613cb6ece19be > > > Cr-Commit-Position: refs/heads/master@{#349828} > > > > TBR=avi@chromium.org,tsepez@chromium.org > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=527588 > > > > Committed: https://crrev.com/dbc8c1869a4fd0493150c008106be720eba86205 > > Cr-Commit-Position: refs/heads/master@{#350062} > > TBR=avi@chromium.org,tsepez@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=527588 > > Committed: https://crrev.com/a8b611fd4d40c8be9d65a16853fcfb572e3302cd > Cr-Commit-Position: refs/heads/master@{#350203} TBR=avi@chromium.org,tsepez@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=527588 Review URL: https://codereview.chromium.org/1367543002 Cr-Commit-Position: refs/heads/master@{#350346}
* Reland of land debugging for ipc related crash. (patchset #1 id:1 of ↵erikchen2015-09-221-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1354863004/ ) Reason for revert: Relanding this CL, as I don't think it will actually cause crashes. https://code.google.com/p/chromium/issues/detail?id=524032#c27 Original issue's description: > Revert of Reland debugging for ipc related crash. (patchset #1 id:1 of https://codereview.chromium.org/1354063002/ ) > > Reason for revert: > Supposedly, this CL only changes the signature of the crash, not the presence of the crash. There is some (but not totally clear) evidence that this CL is causing a crash itself. > > https://code.google.com/p/chromium/issues/detail?id=527588#c32 > > Original issue's description: > > Reland debugging for ipc related crash. > > > > This CL is almost identical to https://codereview.chromium.org/1350823002/. The > > only difference is that the part of the CL that causes the crash has been > > omitted. > > > > BUG=527588 > > > > Committed: https://crrev.com/a7502c6dff276bce3c76d680c5d613cb6ece19be > > Cr-Commit-Position: refs/heads/master@{#349828} > > TBR=avi@chromium.org,tsepez@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=527588 > > Committed: https://crrev.com/dbc8c1869a4fd0493150c008106be720eba86205 > Cr-Commit-Position: refs/heads/master@{#350062} TBR=avi@chromium.org,tsepez@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=527588 Review URL: https://codereview.chromium.org/1359933002 Cr-Commit-Position: refs/heads/master@{#350203}
* Revert of Reland debugging for ipc related crash. (patchset #1 id:1 of ↵erikchen2015-09-211-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1354063002/ ) Reason for revert: Supposedly, this CL only changes the signature of the crash, not the presence of the crash. There is some (but not totally clear) evidence that this CL is causing a crash itself. https://code.google.com/p/chromium/issues/detail?id=527588#c32 Original issue's description: > Reland debugging for ipc related crash. > > This CL is almost identical to https://codereview.chromium.org/1350823002/. The > only difference is that the part of the CL that causes the crash has been > omitted. > > BUG=527588 > > Committed: https://crrev.com/a7502c6dff276bce3c76d680c5d613cb6ece19be > Cr-Commit-Position: refs/heads/master@{#349828} TBR=avi@chromium.org,tsepez@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=527588 Review URL: https://codereview.chromium.org/1354863004 Cr-Commit-Position: refs/heads/master@{#350062}
* Reland debugging for ipc related crash.erikchen2015-09-191-0/+5
| | | | | | | | | | | | This CL is almost identical to https://codereview.chromium.org/1350823002/. The only difference is that the part of the CL that causes the crash has been omitted. BUG=527588 Review URL: https://codereview.chromium.org/1354063002 Cr-Commit-Position: refs/heads/master@{#349828}
* Revert of Reland #2 "ipc: Add a new field num_brokered_attachments to the ↵erikchen2015-09-161-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | message header." (patchset #5 id:80001 of https://codereview.chromium.org/1334593002/ ) Reason for revert: CL was only ever intended to be in 1 canary release. Original issue's description: > Reland #2 "ipc: Add a new field num_brokered_attachments to the message header." > > This original version of this CL is causing an unusual crash in Canary. This CL > adds a message verifier to the ipc code so that it can dynamically verify the > contents of this message that is being corrupted. This CL also verifies the > message at several different points in the dispatch process. This will help > narrow down the range of code that is corrupting the message. > > I expect this CL to cause ~100 crashes in the next Chrome Canary. I intend to > revert this CL after a single Canary release. > > BUG=527588 > > Committed: https://crrev.com/a2e71be46dc4bdcbb544db479680f65a390ae8f3 > Cr-Commit-Position: refs/heads/master@{#349056} TBR=avi@chromium.org,tsepez@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=527588 Review URL: https://codereview.chromium.org/1350823002 Cr-Commit-Position: refs/heads/master@{#349152}
* Reland #2 "ipc: Add a new field num_brokered_attachments to the message header."erikchen2015-09-161-0/+5
| | | | | | | | | | | | | | | | | This original version of this CL is causing an unusual crash in Canary. This CL adds a message verifier to the ipc code so that it can dynamically verify the contents of this message that is being corrupted. This CL also verifies the message at several different points in the dispatch process. This will help narrow down the range of code that is corrupting the message. I expect this CL to cause ~100 crashes in the next Chrome Canary. I intend to revert this CL after a single Canary release. BUG=527588 Review URL: https://codereview.chromium.org/1334593002 Cr-Commit-Position: refs/heads/master@{#349056}
* ipc: Convert k(u)int*max types from basictypes.h to std::numeric_limits ↵tfarina2015-09-111-1/+3
| | | | | | | | | | | | | | | variants. As the types from basictypes.h are deprecated this moves them to std::numeric_limits from <limits> or when necessary to the (U)INTx_{MIN,MAX} macros from <stdint.h>. BUG=138542 TEST=ipc_tests R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1331673002 Cr-Commit-Position: refs/heads/master@{#348474}
* ipc: Add the inner class OutputElement to Channel.erikchen2015-09-101-0/+21
| | | | | | | | | | | | OutputElement is a wrapper around messages that are going to be written to the underlying OS IPC mechanism. It can wrap either a Message, or a data buffer which contains serialized attachment broker metainformation. BUG=493414 Review URL: https://codereview.chromium.org/1309003003 Cr-Commit-Position: refs/heads/master@{#348229}
* Revert of IPC: Add attachment brokering support to the message header. ↵erikchen2015-08-271-26/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #3 id:40001 of https://codereview.chromium.org/1303103002/ ) Reason for revert: Reverting on suspicion of causing crashes in Canary. https://code.google.com/p/chromium/issues/detail?id=524032 Original issue's description: > Reland #1: IPC: Add attachment brokering support to the message header. > > This reland fixes a race condition in the unit test SendHandleTwice that caused > the test to flakily fail, mostly on XP machines. This reland also updates switch > statements to contain a block for the newly added enum > BrokerableAttachment::PLACEHOLDER, which was causing problems with the clang > Windows build. > > > Message dispatch happens before message translation, and message dispatch > > requires that all brokered attachments have been received. This means that > > attachment brokering needs to function without message translation. This is > > accomplished by modifying the message header to include a new field > > num_brokered_attachments, and writing the attachment ids into the IPC Channel > > immediately following the pickled message itself. > > > > AttachmentBrokerPrivilegedWinUnittest was expanded to test ChannelReader in the > > receiving process. It is now a fully functional end-to-end test of attachment > > brokering. > > > > BUG=493414 > > TBR=tsepez@chromium.org > BUG=493414 > > Committed: https://crrev.com/37a2e0b682555bf35852d707dbd74b68f345841f > Cr-Commit-Position: refs/heads/master@{#344933} TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=493414 Review URL: https://codereview.chromium.org/1312433009 Cr-Commit-Position: refs/heads/master@{#345960}
* Reland #1: IPC: Add attachment brokering support to the message header.erikchen2015-08-221-6/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reland fixes a race condition in the unit test SendHandleTwice that caused the test to flakily fail, mostly on XP machines. This reland also updates switch statements to contain a block for the newly added enum BrokerableAttachment::PLACEHOLDER, which was causing problems with the clang Windows build. > Message dispatch happens before message translation, and message dispatch > requires that all brokered attachments have been received. This means that > attachment brokering needs to function without message translation. This is > accomplished by modifying the message header to include a new field > num_brokered_attachments, and writing the attachment ids into the IPC Channel > immediately following the pickled message itself. > > AttachmentBrokerPrivilegedWinUnittest was expanded to test ChannelReader in the > receiving process. It is now a fully functional end-to-end test of attachment > brokering. > > BUG=493414 TBR=tsepez@chromium.org BUG=493414 Review URL: https://codereview.chromium.org/1303103002 Cr-Commit-Position: refs/heads/master@{#344933}
* Revert of IPC: Add attachment brokering support to the message header. ↵ricea2015-08-201-26/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #20 id:420001 of https://codereview.chromium.org/1286253002/ ) Reason for revert: Suspected of breaking XP Tests. See, for example https://build.chromium.org/p/chromium.win/builders/XP%20Tests%20%281%29/builds/39586 . Original issue's description: > IPC: Add attachment brokering support to the message header. > > Message dispatch happens before message translation, and message dispatch > requires that all brokered attachments have been received. This means that > attachment brokering needs to function without message translation. This is > accomplished by modifying the message header to include a new field > num_brokered_attachments, and writing the attachment ids into the IPC Channel > immediately following the pickled message itself. > > AttachmentBrokerPrivilegedWinUnittest was expanded to test ChannelReader in the > receiving process. It is now a fully functional end-to-end test of attachment > brokering. > > BUG=493414 > > Committed: https://crrev.com/e8e4f4fa67ee9db6c2910020ef49318e5df68481 > Cr-Commit-Position: refs/heads/master@{#344389} TBR=tsepez@chromium.org,thakis@chromium.org,erikchen@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=493414 Review URL: https://codereview.chromium.org/1286883003 Cr-Commit-Position: refs/heads/master@{#344461}
* IPC: Add attachment brokering support to the message header.erikchen2015-08-201-6/+26
| | | | | | | | | | | | | | | | | | | Message dispatch happens before message translation, and message dispatch requires that all brokered attachments have been received. This means that attachment brokering needs to function without message translation. This is accomplished by modifying the message header to include a new field num_brokered_attachments, and writing the attachment ids into the IPC Channel immediately following the pickled message itself. AttachmentBrokerPrivilegedWinUnittest was expanded to test ChannelReader in the receiving process. It is now a fully functional end-to-end test of attachment brokering. BUG=493414 Review URL: https://codereview.chromium.org/1286253002 Cr-Commit-Position: refs/heads/master@{#344389}
* ipc: Make a common subclass for Channel and ProxyChannel.erikchen2015-08-101-26/+2
| | | | | | | | | | | Channel and ProxyChannel share some functionality which the attachment broker code uses. I made a new, shared superclass called Endpoint. BUG=493414 Review URL: https://codereview.chromium.org/1270683002 Cr-Commit-Position: refs/heads/master@{#342669}
* Reland #1: Clean up interface of attachment broker.erikchen2015-07-301-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | I forgot to initialize a member variable, which is why the original CL flakily succeeded (and managed to pass the CQ). Original issue's description: > ipc: Clean up interface of attachment broker. > > AttachmentBrokerUnprivileged now has a method > DesignateBrokerCommunicationChannel which is used by non-broker processes to > designate an IPC::Channel as the communication medium for brokerable attachment > messages. IPC::Channel has a new member attachment_broker_endpoint_ which causes > it to pass all messages through the attachment broker before forwarding them to > the listener. > > BUG=493414 > > Committed: https://crrev.com/9a06836982214f2edced21bbd1615b49e7f231bf > Cr-Commit-Position: refs/heads/master@{#341143} BUG=493414 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1258323004 Cr-Commit-Position: refs/heads/master@{#341207}
* Revert of ipc: Clean up interface of attachment broker. (patchset #5 ↵avi2015-07-301-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:80001 of https://codereview.chromium.org/1269553003/) Reason for revert: Causes failures in: IPCAttachmentBrokerPrivilegedWinTest.SendHandle IPCAttachmentBrokerPrivilegedWinTest.SendHandleToSelf IPCAttachmentBrokerPrivilegedWinTest.SendHandleWithoutPermissions on the Win7 Tests (dbg)(1) bot http://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/40372/steps/ipc_tests/logs/stdio Original issue's description: > ipc: Clean up interface of attachment broker. > > AttachmentBrokerUnprivileged now has a method > DesignateBrokerCommunicationChannel which is used by non-broker processes to > designate an IPC::Channel as the communication medium for brokerable attachment > messages. IPC::Channel has a new member attachment_broker_endpoint_ which causes > it to pass all messages through the attachment broker before forwarding them to > the listener. > > BUG=493414 > > Committed: https://crrev.com/9a06836982214f2edced21bbd1615b49e7f231bf > Cr-Commit-Position: refs/heads/master@{#341143} TBR=tsepez@chromium.org,erikchen@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=493414 Review URL: https://codereview.chromium.org/1259953005 Cr-Commit-Position: refs/heads/master@{#341171}
* ipc: Clean up interface of attachment broker.erikchen2015-07-301-0/+12
| | | | | | | | | | | | | | | AttachmentBrokerUnprivileged now has a method DesignateBrokerCommunicationChannel which is used by non-broker processes to designate an IPC::Channel as the communication medium for brokerable attachment messages. IPC::Channel has a new member attachment_broker_endpoint_ which causes it to pass all messages through the attachment broker before forwarding them to the listener. BUG=493414 Review URL: https://codereview.chromium.org/1269553003 Cr-Commit-Position: refs/heads/master@{#341143}
* IPC: Make ChannelReader inherit from SupportsAttachmentBrokering.erikchen2015-06-161-8/+30
| | | | | | | | | | | | | | | | Each IPC::Channel will have a reference to an AttachmentBroker. This is accomplished by requiring each of the Channel::Create methods to have a |broker| parameter. For now, the |broker| parameter has a default value of nullptr. This default parameter only exists so that this CL and subsequent refactors can be decomposed into smaller CLs. The default parameter will be removed once all callers of Channel::Create have been updated to pass in an appropriate broker. BUG=493414 Review URL: https://codereview.chromium.org/1185133006 Cr-Commit-Position: refs/heads/master@{#334699}
* ChannelMojo: Introduce thread-safe Send()morrita2015-04-201-0/+4
| | | | | | | | | | | | | | | | | | | With the thread-safe Send(), ChannelProxy() calls Channel::Send() from the UI thread instead of PostTask()-ing the Channel to the IO thread. This eliminates one extra thread hop, improves the IPC latency. Times taken to ping-pong 14kb messages 500k times using ChannelProxy: * ChannelPosix: 25,306ms +/- 2,012ms * ChannelMojo before: 27,870ms +/- 4,205ms * ChannelMojo now: 19,758ms +/- 2,074ms BUG=272113,473367 R=viettrungluu@chromium.org, agl@chromium.org Review URL: https://codereview.chromium.org/1054943005 Cr-Commit-Position: refs/heads/master@{#325911}
* Standardize usage of virtual/override/final specifiers in ipc/.dcheng2014-12-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Several formatting edits by clang-format were manually reverted, due to mangling of some of the more complicate IPC macros. BUG=417463 Review URL: https://codereview.chromium.org/815503005 Cr-Commit-Position: refs/heads/master@{#309578}
* Revert "Non-SFI mode: Use dummy PID for NaCl's IPC channel and IPC channel ↵perkj2014-12-111-0/+7
| | | | | | | | | | | | | | | | on Linux platform." This reverts commit d3eb0838097cbffb09005db2b66ffcdd7e2b9417. Reason for revert, it breaks chrome://webrtc_internals on Linux. BUG=441312,358465 TBR=hidehiko@chromium.org Review URL: https://codereview.chromium.org/795153002 Cr-Commit-Position: refs/heads/master@{#307922}
* Non-SFI mode: Use dummy PID for NaCl's IPC channel and IPC channel on Linux ↵hidehiko2014-12-111-7/+0
| | | | | | | | | | | | | | | | platform. We do not want to expose PID from process on Linux, because it does not play any security role. Specifically, in NaCl processes, now although getpid() syscall is prohibited by seccomp sandbox, it looks working, probably because of the cache in libc layer. By this CL, Linux IPC, including nacl_helper_nonsfi, uses dummy PID (-1). Note; as for nacl_helper process, currently, the process is under PID namespace, so "dummy-like-" PID is already used. BUG=358465 TEST=Ran trybot. Review URL: https://codereview.chromium.org/695353005 Cr-Commit-Position: refs/heads/master@{#307853}
* Add a few missing overrides found by a new clang warning.thakis2014-10-291-1/+2
| | | | | | | | | | Namely, -Winconsistent-missing-override. No behavior change. BUG=428099 Review URL: https://codereview.chromium.org/687693004 Cr-Commit-Position: refs/heads/master@{#301746}
* Introduce OS_NACL_SFI and OS_NACL_NONSFI macros.hidehiko2014-10-281-3/+2
| | | | | | | | | | | | | | | | | | PNaCl toolchain starts to support "Non-SFI build binary" mode. Some sources are built both for SFI binary and for Non-SFI binary, but, in some cases, there are small diffs which need to be guarded by #ifdef. In "Non-SFI build binary" mode, __native_client_nonsfi__ is defined. This CL introduce OS_NACL_SFI and OS_NACL_NONSFI which can be used among the chrome code, to slightly simplify the #ifdef conditions. This CL is the follow up of crrev.com/659243002 BUG=358465 TEST=Ran trybot. Review URL: https://codereview.chromium.org/664373003 Cr-Commit-Position: refs/heads/master@{#301603}
* Non-SFI Mode: Build ipc/ library by PNaCl toolchain for nacl_helper_nonsfi.hidehiko2014-10-241-3/+7
| | | | | | | | | | | | | | | | | | This CL is to build ipc/ for nacl_helper_nonsfi. The library is similar to ipc_nacl, but slightly different: - The IPC::Channel should use ChannelPosix rather than ChannelNaCl, as it runs under linux directly. - Some features of ChannelPosix cannot be compiled by PNaCl toolchain for Non-SFI build, but these are not necessary for nacl_helper_nonsfi. These are dropped by "ifdef" guard. Note that this library is not used yet, but should be built successfully. BUG=358465 TEST=Ran trybot. Implement nacl_helper_nonsfi on top of this CL, and made sure it works. Review URL: https://codereview.chromium.org/659243002 Cr-Commit-Position: refs/heads/master@{#301037}
* Standardize usage of virtual/override/final in ipc/dcheng2014-10-221-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Several formatting edits by clang-format were manually reverted, due to mangling of some of the more complicate IPC macros. BUG=417463 R=agl@chromium.org Review URL: https://codereview.chromium.org/666493005 Cr-Commit-Position: refs/heads/master@{#300623}
* Revert of Standardize usage of virtual/override/final in ipc/ (patchset #1 ↵dcheng2014-10-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | id:1 of https://codereview.chromium.org/645623006/) Reason for revert: Addressing reviewer comments in a followup patch. Original issue's description: > Standardize usage of virtual/override/final in ipc/ > > This patch was automatically generated by applying clang fixit hints > generated by the plugin to the source tree. > > BUG=417463 > TBR=agl@chromium.org > > Committed: https://crrev.com/39be52ebbd6681c7d79ad63e2a0ab028075af0c2 > Cr-Commit-Position: refs/heads/master@{#300481} TBR=agl@chromium.org NOTREECHECKS=true NOTRY=true BUG=417463 Review URL: https://codereview.chromium.org/669953003 Cr-Commit-Position: refs/heads/master@{#300521}
* Standardize usage of virtual/override/final in ipc/dcheng2014-10-211-2/+1
| | | | | | | | | | | | This patch was automatically generated by applying clang fixit hints generated by the plugin to the source tree. BUG=417463 TBR=agl@chromium.org Review URL: https://codereview.chromium.org/645623006 Cr-Commit-Position: refs/heads/master@{#300481}
* Refactoring: Make IPC::Channel::TakeClientFileDescriptor() a ScopedFD.morrita2014-10-201-1/+2
| | | | | | | | | | | | | By using base::ScopedFD, the ownership of the returned FD becomes clearer. BUG=415294 R=brettw@chromium.org, jam@chromium.org, yzshen@chromium.org, sehr@chromium.org TBR=gene@chromium.org Review URL: https://codereview.chromium.org/621613002 Cr-Commit-Position: refs/heads/master@{#300381}
* Remove IPC::Channel::TakePipeHandle()morrita2014-09-251-5/+0
| | | | | | | | | | | It doesn't work, and it is no longer used. BUG=416208 R=cpu@chromium.org, jam@chromium.org Review URL: https://codereview.chromium.org/601563002 Cr-Commit-Position: refs/heads/master@{#296820}
* Add ipc_mojo_perftestsmorrita2014-09-091-1/+1
| | | | | | | | | | | | | | | | This change adds ipc_mojo_perftests that runs the same benchmark as of ipc_perftests. Now head-to-head comparison becomes possible. For this change, whole ipc_perftests logic is extracted to ipc_perftest_support.cc to make it reusable by ipc_mojo_perftests. TEST=none BUG=none R=jam@chromium.org, darin@chromium.org, yuzhu@chromium.org Review URL: https://codereview.chromium.org/536213002 Cr-Commit-Position: refs/heads/master@{#293988}
* Introduce ChannelMojomorrita@chromium.org2014-08-041-0/+8
| | | | | | | | | | | | | | | | | | This CL introduces ChannelMojo IPC::Channel implementation and optionally applies it for renderer-browser IPC channel. Current stability is like 5-seconds browser and There are rough edges. It often closes the channel so needs to be more robust. Even though the level of stability, having it in the tree will helps team to try and improve it. BUG=377980 R=darin@chromium.org,jam@chromium.org,viettrungluu@chromium.org TEST=ipc_channel_mojo_unittest.cc Review URL: https://codereview.chromium.org/382333002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287402 0039d316-1c4b-4281-b951-d872f2087c98
* IPC::Channel: Reduce POSIX specific API surfacemorrita@chromium.org2014-06-071-20/+0
| | | | | | | | | | | | | | | This change is a simple cleanup: It removes some Channel API that is only used only in POSIX specific tests. These funtions still live in ChannelPosix. POSIX speicific tests now touch ChannelPosix instead of its superclass Channel. TEST=none R=darin@chromium.org, jam@chromium.org BUG=377980 Review URL: https://codereview.chromium.org/320433002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275632 0039d316-1c4b-4281-b951-d872f2087c98
* Make IPC::Channel polymorphicmorrita@chromium.org2014-06-061-26/+13
| | | | | | | | | | | | | | This change makes each platform specific ChannelImpl into a subclass of Channel: ChannelPosix, ChannelWin, ChannelNacl. delegated functions are now virtual. TEST=none BUG=377980 R=darin@chromium.org, jam@chromium.org Review URL: https://codereview.chromium.org/310293002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275505 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce IPC::Channel::Create*() to ensure it being heap-allocated.morrita@chromium.org2014-05-301-14/+43
| | | | | | | | | | | | | | | | | | | | | This change introduces IPC::Channel::Create*() API to turn IPC::Channel into a heap allocated object. This will allow us to make Channel a polymorphic class. This change also tries to hide Channel::Mode from public API so that we can simplify channel creation code paths cleaner in following changes. ChannelProxy has to follow same pattern to finish this cleanup. Such changes will follow. TEST=none BUG=377980 R=darin@chromium.org,cpu@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=273575 Review URL: https://codereview.chromium.org/307653003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273713 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 273575 "Introduce IPC::Channel::Create*() to ensure it be..."mattm@chromium.org2014-05-291-43/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Broke win compile. > Introduce IPC::Channel::Create*() to ensure it being heap-allocated. > > This change introduces IPC::Channel::Create*() API to turn > IPC::Channel into a heap allocated object. This will allow us to > make Channel a polymorphic class. > > This change also tries to hide Channel::Mode from public API > so that we can simplify channel creation code paths cleaner in > following changes. ChannelProxy has to follow same pattern to > finish this cleanup. Such changes will follow. > > TEST=none > BUG=377980 > R=darin@chromium.org,cpu@chromium.org > > Review URL: https://codereview.chromium.org/307653003 TBR=morrita@chromium.org Review URL: https://codereview.chromium.org/304153005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273596 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce IPC::Channel::Create*() to ensure it being heap-allocated.morrita@chromium.org2014-05-291-14/+43
| | | | | | | | | | | | | | | | | | | This change introduces IPC::Channel::Create*() API to turn IPC::Channel into a heap allocated object. This will allow us to make Channel a polymorphic class. This change also tries to hide Channel::Mode from public API so that we can simplify channel creation code paths cleaner in following changes. ChannelProxy has to follow same pattern to finish this cleanup. Such changes will follow. TEST=none BUG=377980 R=darin@chromium.org,cpu@chromium.org Review URL: https://codereview.chromium.org/307653003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273575 0039d316-1c4b-4281-b951-d872f2087c98
* IPC: Make ipc_perftests run on Android.epenner@chromium.org2014-03-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There was several minor issues: - Base perf logging file location was off-limits on Android - Printf needs to be flushed to be visible on Android. - Android needs to reset the 'PipeMap' manually since we can't 'exec' after forking a test process. If we don't do this the Channel thinks we are in a single- process test and tries to open an FD which was closed during forking. - Android's base file descriptor needs to be increased to prevent stomping the android native logging file-descriptor with the default pipe. - The test took too long, so the 'exponent' is reduced from 5 to 3 - We need an APK With this patch the test runs like on other platforms, and lots of testing code is fixed such that it works the same way on all platforms. BUG=345471 Review URL: https://codereview.chromium.org/196343019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257877 0039d316-1c4b-4281-b951-d872f2087c98
* Connect PPAPI IPC channels for non-SFI mode.hidehiko@chromium.org2014-02-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By this CL, plugin starts to talk with hosts via IPC. For that purpose, ppapi_proxy is linked to nacl_helper (temporarily). This increase the size of nacl_helper, but when we split nacl_helper for non-sfi mode, it'll be resolved. In SFI mode, this CL shouldn't affect the concept of IPC channel connection between the plugin and the hosts. We still use NaClIPCAdapter to wrap the IPC channel, and NaClDesc for the plugin-side IPC file descriptors. In non-SFI mode, we neither intercept nor rewrite the message using NaClIPCAdapter, and the channels are connected between the plugin and the hosts directly. Note: plugin_main_nacl.cc is renamed to plugin_main.cc, because files with _nacl.cc suffix are automatically excluded from the sources of non-untrusted libs. This increases the size of nacl_helper (temporarily) intentionally. GYP_DEFINES="target_arch=ia32 remove_webcore_debug_symbols=1 linux_strip_symbols=1" GYP_GENERATORS="ninja" gclient runhooks Before: text data bss dec hex filename 1469882 15576 108644 1594102 1852f6 out/Release/nacl_helper After: text data bss dec hex filename 5641443 124636 126980 5893059 59ebc3 out/Release/nacl_helper GYP_DEFINES="target_arch=x64 remove_webcore_debug_symbols=1 linux_strip_symbols=1" GYP_GENERATORS="ninja" gclient runhooks Before: text data bss dec hex filename 2063530 27910 213872 2305312 232d20 out/Release/nacl_helper After: text data bss dec hex filename 6304467 234424 247984 6786875 678f3b out/Release/nacl_helper BUG=https://code.google.com/p/nativeclient/issues/detail?id=3734 TEST=Ran trybot. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=252503 Review URL: https://codereview.chromium.org/140573003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252556 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Connect PPAPI IPC channels for non-SFI mode."loislo@chromium.org2014-02-211-6/+0
| | | | | | This reverts commit 3d41a2a63bbd307fcee6e6c5547ce5fe29e2f4a5. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252506 0039d316-1c4b-4281-b951-d872f2087c98
* Connect PPAPI IPC channels for non-SFI mode.hidehiko@chromium.org2014-02-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By this CL, plugin starts to talk with hosts via IPC. For that purpose, ppapi_proxy is linked to nacl_helper (temporarily). This increase the size of nacl_helper, but when we split nacl_helper for non-sfi mode, it'll be resolved. In SFI mode, this CL shouldn't affect the concept of IPC channel connection between the plugin and the hosts. We still use NaClIPCAdapter to wrap the IPC channel, and NaClDesc for the plugin-side IPC file descriptors. In non-SFI mode, we neither intercept nor rewrite the message using NaClIPCAdapter, and the channels are connected between the plugin and the hosts directly. Note: plugin_main_nacl.cc is renamed to plugin_main.cc, because files with _nacl.cc suffix are automatically excluded from the sources of non-untrusted libs. This increases the size of nacl_helper (temporarily) intentionally. GYP_DEFINES="target_arch=ia32 remove_webcore_debug_symbols=1 linux_strip_symbols=1" GYP_GENERATORS="ninja" gclient runhooks Before: text data bss dec hex filename 1469882 15576 108644 1594102 1852f6 out/Release/nacl_helper After: text data bss dec hex filename 5641443 124636 126980 5893059 59ebc3 out/Release/nacl_helper GYP_DEFINES="target_arch=x64 remove_webcore_debug_symbols=1 linux_strip_symbols=1" GYP_GENERATORS="ninja" gclient runhooks Before: text data bss dec hex filename 2063530 27910 213872 2305312 232d20 out/Release/nacl_helper After: text data bss dec hex filename 6304467 234424 247984 6786875 678f3b out/Release/nacl_helper BUG=https://code.google.com/p/nativeclient/issues/detail?id=3734 TEST=Ran trybot. Review URL: https://codereview.chromium.org/140573003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252503 0039d316-1c4b-4281-b951-d872f2087c98
* Alternative workaround for mac kernel bug.hubbe@chromium.org2013-10-151-8/+15
| | | | | | | | | | BUG=298276 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=227999 Review URL: https://codereview.chromium.org/25325002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228569 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 227999 "Alternative workaround for mac kernel bug."benwells@chromium.org2013-10-111-15/+8
| | | | | | | | | | | | | | | | | > Alternative workaround for mac kernel bug. > > BUG=298276 > > Review URL: https://codereview.chromium.org/25325002 This change seemed to cause the Mac ASAN bot to timeout when running the ipc_tests. TBR=hubbe@chromium.org Review URL: https://codereview.chromium.org/26384003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228110 0039d316-1c4b-4281-b951-d872f2087c98
* Alternative workaround for mac kernel bug.hubbe@chromium.org2013-10-101-8/+15
| | | | | | | | BUG=298276 Review URL: https://codereview.chromium.org/25325002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227999 0039d316-1c4b-4281-b951-d872f2087c98
* Update include paths in ipc for base/process changes.rsesek@chromium.org2013-07-241-1/+1
| | | | | | | | | BUG=242290 R=cpu@chromium.org Review URL: https://chromiumcodereview.appspot.com/19525007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213349 0039d316-1c4b-4281-b951-d872f2087c98