summaryrefslogtreecommitdiffstats
path: root/ipc/ipc.gyp
Commit message (Collapse)AuthorAgeFilesLines
* allocator cleanup: remove dependencies on allocator from all targetsprimiano2016-01-281-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Overview of the cleanup: ------------------------ - In the context of the discussion in https://goo.gl/K2m649 our illustrious base/ owners suggested that having base being the only target depending on allocator (and having the other targets inherit that recursively) would be a more scalable solution, as opposite to having to remember to add an exec -> allocator to each target. - This base -> allocator dep landed in crrev.com/1616793003. - After that CL, until this point, many targets got two paths that lead to allocator: 1. The indirect one via base (content_shell -> base -> allocator) which is what we want to preserve. 2. The direct one (content_shell -> allocator) which is the inconsistent one we want to drop. This CL gets rid of all the instances of 2. The nice property of this sequencing of CLs is that the effect of this large change on the final .ninja files is minimal. See details below. Effect on the produced ninja files: ----------------------------------- GYP, Linux, static build: https://paste.ee/p/RaJLj Just some small reordering of include paths. Dropping --rdynamic (as expected) in keyboard_unittests GN, Linux, static build: https://paste.ee/p/zYtrQ Various targets lose the dependency on allocator.stamp (expected, the order is enforced by depending on base which depends on allocator.stamp) GN, Android (both component and static are similar): https://paste.ee/p/Iq6DD As above. GN, Linux, component build: https://paste.ee/p/jHUmv This is the most juicy change. As expected all the ODR goes away and random targets stop re-linking tcmalloc .o files. GYP, Win, static: https://paste.ee/p/j0IjL Extremely minimal changes: All.ninja stops depending on libcmt.lib. Sounds fine as base (which depends on that) is definitely depending on libcmt. GN, Win, static: https://paste.ee/p/Q6zTo Minimal change, like Linux GN, dropping dependencies on the .stamp files. BUG=564618 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1647453002 Cr-Commit-Position: refs/heads/master@{#372167}
* Remove ipc_channel_unittests from Android build.brettw2016-01-211-0/+4
| | | | | | | | All the tests are disabled on Android because this type of test is not supported. Doing this allws us to clean up some of the preprocessor mess in this file Review URL: https://codereview.chromium.org/1613523002 Cr-Commit-Position: refs/heads/master@{#370744}
* ipc: Implement attachment brokering for SharedMemoryHandle on Windows.erikchen2016-01-081-1/+0
| | | | | | | | | | | | | | | | | | Each SharedMemoryHandle is backed by a HANDLE, and that HANDLE is associated with a specific process. If a SharedMemoryHandle passed to IPC is associated with the current process, the IPC stack will automatically broker the handle to the destination process. This functionality has been implemented and tested, but is not yet turned on, because there are a couple of Windows-specific Chrome IPC messages that intentionally pass a HANDLE associated with another process. I will write a follow-up CL that turns on this functionality, and removes those IPC messages. BUG=493414 Review URL: https://codereview.chromium.org/1493413004 Cr-Commit-Position: refs/heads/master@{#368244}
* Isolate ipc_tests_apk.stip2015-10-131-1/+21
| | | | | | | | BUG=525873 Review URL: https://codereview.chromium.org/1394863003 Cr-Commit-Position: refs/heads/master@{#353846}
* ipc: Write end-to-end tests for SharedMemoryHandle brokering on Mac.erikchen2015-10-121-0/+1
| | | | | | | | BUG=535711 Review URL: https://codereview.chromium.org/1397023002 Cr-Commit-Position: refs/heads/master@{#353628}
* ipc: Move Mac test utilities into their own file.erikchen2015-10-121-0/+2
| | | | | | | | | | | They are about to be used by a second test suite. This CL is intended as a refactor with no behavioral change. BUG=535711 Review URL: https://codereview.chromium.org/1393723003 Cr-Commit-Position: refs/heads/master@{#353560}
* ipc: Add BrokerableAttachmentMac.erikchen2015-10-091-1/+1
| | | | | | | | | | | | | This CL defines USE_ATTACHMENT_BROKER as 1 on Mac, and creates a Mac implementation of AttachmentId::CreateIdWithRandomNonce. This allows brokerable attachments to be instantiated on Mac. This CL also hooks up the factory methods for the privileged and unprivileged attachment brokers on Mac. BUG=535711 Review URL: https://codereview.chromium.org/1396993003 Cr-Commit-Position: refs/heads/master@{#353420}
* ipc: Write privileged and unprivileged attachment brokers for Mac.erikchen2015-10-061-0/+1
| | | | | | | | | | This is in preparation for brokering mach ports on Mac. BUG=535711 Review URL: https://codereview.chromium.org/1376473005 Cr-Commit-Position: refs/heads/master@{#352672}
* ipc: Extend attachment broker unit tests.erikchen2015-09-251-0/+3
| | | | | | | | | | | | Previously, attachment broker unit tests didn't test the full functionality of the receiving side of an IPC channel. This CL adds several new tests, and also extends the functionality being tested. BUG=493414 Review URL: https://codereview.chromium.org/1320233002 Cr-Commit-Position: refs/heads/master@{#350871}
* Remove dependency on //crypto in //ipc, except on windows.Sergey Ulanov2015-09-141-1/+8
| | | | | | | | | | | | //ipc was depending on //crypto just for crypto::RandBytes(), but after crrev.com/347312 that function is used only on Windows, so the //crypto is needed only on windows. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1321253011 . Cr-Commit-Position: refs/heads/master@{#348638}
* Revert of IPC: Add attachment brokering support to the message header. ↵erikchen2015-08-271-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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-0/+3
| | | | | | | | | | | | | | | | | | | 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: Create AttachmentBrokerPrivileged and AttachmentBrokerUnprivileged.erikchen2015-07-281-1/+1
| | | | | | | | | | | | | | | | This CL is a refactor and contains no behavior changes. AttachmentBroker is an abstract base class. I made two new abstract subclasses, AttachmentBrokerPrivileged and AttachmentBrokerUnprivileged for use in privileged and unprivileged processes respectively. These in turn are inherited by AttachmentBrokerPrivilegedWin and AttachmentBrokerUnprivilegedWin. BUG=493414 TBR=avi@chromium.org Review URL: https://codereview.chromium.org/1256993003 Cr-Commit-Position: refs/heads/master@{#340803}
* ipc: Add attachment broker code for the privileged browser process.erikchen2015-07-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | No intended behavior change. This CL adds the class AttachmentBrokerPrivilegedWin, a subclass of AttachmentBroker intended for use in the privileged browser process on the Windows platform. No brokerable attachments are made outside of tests, so this code is not yet active. This CL consists of several changes: - The class AttachmentBrokerPrivilegedWin was created. - Common logic between AttachmentBrokerPrivilegedWin and AttachmentBrokerWin was moved to AttachmentBroker. - ChannelWin was given a new member prelim_queue_. This queue is normally empty, but in some circumstances messages are queued here before being processed for delivery. See the documentation for a full explanation. BUG=466437 Review URL: https://codereview.chromium.org/1246103006 Cr-Commit-Position: refs/heads/master@{#340548}
* Update ChannelReader to use AttachmentBroker.erikchen2015-07-271-0/+1
| | | | | | | | | | | | | | | | Previously, translating from bytes into messages and dispatching the messages was accomplished in a single step. I've split this into two steps. The function TranslateInputData turns bytes into messages, and puts those messages in a queue. The function DispatchMessages() dispatches messages from the queue. Messages cannot be dispatched until all attachments have been brokered, so DispatchMessages() will sometimes wait (asynchronously) for the attachments to get brokered. BUG=466437 Review URL: https://codereview.chromium.org/1206093002 Cr-Commit-Position: refs/heads/master@{#340509}
* Make attachment broker a subclass of IPC::Listener.erikchen2015-07-151-0/+1
| | | | | | | | | | In addition, hook up the IPC::Listener functionality in non-broker proceses. BUG=466437 Review URL: https://codereview.chromium.org/1205713002 Cr-Commit-Position: refs/heads/master@{#338798}
* Stub in more IPC attachment brokering functionality.erikchen2015-07-071-0/+2
| | | | | | | | | | | | | | | | | | | This CL fills in most of the logic for sending a Windows HANDLE from a non-broker process to the broker process. This consists of several small changes: - Create the new IPC messages AttachmentBrokerMsg_WinHandleHasBeenBrokered and AttachmentBrokerMsg_RequestBrokerageOfWinHandle. - Add a sender_ member variable to AttachmentBrokerWin. - Define the wire format for HandleAttachmentWin. - Add logic to ChannelWin to send AttachmentBrokerMsg_RequestBrokerageOfWinHandle for each HANDLE attachment. BUG=466437 Review URL: https://codereview.chromium.org/1188923003 Cr-Commit-Position: refs/heads/master@{#337689}
* Convert ipc_tests to run exclusively on Swarmingmaruel2015-06-301-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0 configs already ran on Swarming 28 used to run locally and were converted: - chromium.chromiumos.json: Linux ChromiumOS Ozone Tests (1) - chromium.chromiumos.json: Linux ChromiumOS Tests (1) - chromium.chromiumos.json: Linux ChromiumOS Tests (dbg)(1) - chromium.fyi.json: CrWinAsan tester - chromium.fyi.json: CrWinAsan(dll) tester - chromium.fyi.json: Linux Trusty - chromium.fyi.json: Linux Trusty (dbg) - chromium.linux.json: Cast Linux - chromium.linux.json: Linux Tests - chromium.linux.json: Linux Tests (dbg)(1) - chromium.linux.json: Linux Tests (dbg)(1)(32) - chromium.mac.json: Mac10.6 Tests - chromium.mac.json: Mac10.8 Tests - chromium.mac.json: Mac10.9 Tests - chromium.mac.json: Mac10.9 Tests (dbg) - chromium.memory.fyi.json: Linux ChromeOS MSan Tests - chromium.memory.fyi.json: Linux MSan Tests - chromium.memory.fyi.json: Linux TSan Tests - chromium.memory.json: Linux ASan LSan Tests (1) - chromium.memory.json: Linux Chromium OS ASan LSan Tests (1) - chromium.memory.json: Mac ASan 64 Tests (1) - chromium.webkit.json: Linux ChromiumOS Tests (1) - chromium.webkit.json: Linux ChromiumOS Tests (dbg)(1) - chromium.win.json: Vista Tests (1) - chromium.win.json: Win 7 Tests x64 (1) - chromium.win.json: Win7 Tests (1) - chromium.win.json: Win7 Tests (dbg)(1) - chromium.win.json: XP Tests (1) Ran: ./manage.py --convert ipc_tests R=dpranke@chromium.org,tsepez@chromium.org BUG=98637 Review URL: https://codereview.chromium.org/1217213002 Cr-Commit-Position: refs/heads/master@{#336791}
* IPC: Generalize FileDescriptorSet to MessageAttachmentSetmorrita2015-01-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | This is a preparation for crbug.com/448190, where we're going to allow Mojo MessagePipe being sent over Chrome IPC. The plan is that we'll extend existing FileDescriptorSet to carry both platform handles and Mojo's MessagePipes, then let ChannelMojo take care of these handles. As the first step, this change renames FileDescriptorSet to MessageAttachmentSet and moves it out from the OS_POSIX guard. Although this change doesn't do anything significant, we'll generalize it to carry both platform files and mojo handles eventually. R=agl@chromium.org, viettrungluu@chromium.org BUG=448190 Review URL: https://codereview.chromium.org/835873004 Cr-Commit-Position: refs/heads/master@{#311546}
* IPC: a way for security exploit browsertests to simulate the appearance of a ↵nick2014-11-141-0/+2
| | | | | | | | | | | | | | | malicious IPC. Use this to add a SecurityExploitBrowserTest for http://crbug.com/429922 Fix SecurityExploitBrowserTests on Android. Re-enable SecurityExploitBrowserTests on Android, except for two issues (1) the new test, which is actually disabled because of http://crbug.com/432737, discovered while developing this CL and (2) SetWebUIProperty, which is disabled because of http://crbug.com/433068, also discovered while developing this CL. Moral of the story being: never try. BUG=429922,432737,338023,433068 TEST=content_browsertests Review URL: https://codereview.chromium.org/712713002 Cr-Commit-Position: refs/heads/master@{#304170}
* Add ipc_mojo_perftestsmorrita2014-09-091-0/+2
| | | | | | | | | | | | | | | | 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-2/+4
| | | | | | | | | | | | | | | | | | 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
* Android: cleanup gtest_target_type conditions.bulach@chromium.org2014-05-171-6/+3
| | | | | | | | | | | | For a long time (crrev.com/133053) OS==android implies: gtest_target_type=shared_library Cleanup the spurious conditions and obsolete TODOs. BUG= Review URL: https://codereview.chromium.org/278443003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271222 0039d316-1c4b-4281-b951-d872f2087c98
* Remove {linux|android}_use_tcmalloc and switch to use_allocator in Chromium.dmikurube@chromium.org2014-05-071-4/+2
| | | | | | | | | | | | | | If this change breaks some bots, please try restarting the bot before reverting it. http://crrev.com/264460 may not be effective yet until restarting. See the bug and http://crrev.com/255129 for the details. BUG=345554 Review URL: https://codereview.chromium.org/258433005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268876 0039d316-1c4b-4281-b951-d872f2087c98
* Remove unused input_shlib_pathcjhopman@chromium.org2014-04-171-2/+0
| | | | | | | | | | This path is now only inferred from test_suite_name. TBR=darin NOTRY=true Review URL: https://codereview.chromium.org/226353002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264666 0039d316-1c4b-4281-b951-d872f2087c98
* Remove all uses of toolkit_use_gtk in the gyp files.erg@chromium.org2014-04-171-10/+0
| | | | | | | | | BUG=297026 R=ben@chromium.org, brettw@chromium.org Review URL: https://codereview.chromium.org/238633004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264609 0039d316-1c4b-4281-b951-d872f2087c98
* IPC: Make ipc_perftests run on Android.epenner@chromium.org2014-03-191-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add use_allocator instead of linux_use_tcmalloc to switch the allocator.dmikurube@chromium.org2014-03-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is to add a new build option 'use_allocator' which will replace 'linux_use_tcmalloc' in the future. It doesn't change the behavior immediately. The migration plan is as follows: 1) (this change) ... Add 'use_allocator' and set its default to "see_use_tcmalloc". ... Change allocator conditions to check use_allocator firstly. ... Use linux_use_tcmalloc if use_allocator=="see_use_tcmalloc". ... NO IMPACT without specifying use_allocator explicitly. 2) Change Blink to accept use_allocator. http://crrev.com/177053003/ 3) Change gyp to accept use_allocator. http://crrev.com/178643004/ 4) PSA the transition period to chromium-dev@. 5) (after the PSA-ed transition period) ... Make 'use_allocator' to "tcmalloc" or "none" (it depends) by default. ... Remove all linux_use_tcmalloc. ... Assert in gyp_chromium to check if linux_use_tcmalloc is not specified. At the point of this change (1), linux_use_tcmalloc is still used by default because 'use_allocator%': "see_use_tcmalloc". As written in http://crbug.com/345554, linux_use_tcmalloc would be confusing to have more options about allocators. We plan to: A) enable gperftools' heap-profiler with non-tcmalloc allocator, B) add a new memory allocator instead of tcmalloc. BUG=345554, 339604, 341349 R=agl@chromium.org, brettw@chromium.org, dgarrett@chromium.org, jam@chromium.org, jamesr@chromium.org, joi@chromium.org, miket@chromium.org, nick@chromium.org, rsleevi@chromium.org, scherkus@chromium.org, sergeyu@chromium.org, shess@chromium.org, sievers@chromium.org, sky@chromium.org, vitalybuka@chromium.org, willchan@chromium.org Review URL: https://codereview.chromium.org/177353002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255129 0039d316-1c4b-4281-b951-d872f2087c98
* Allow MessageFilters to restrict listening to specific message classesjdduke@chromium.org2014-02-261-0/+1
| | | | | | | | | | | | | | | | | | | | ChannelProxy currently offers messages to all member MessageFilters. It turns out that a good portion of the most common message types will never be filtered, making the O(N) filter walk an unnecessary affair. To prevent this, allow MessageFilters to indicate which (if any) subset of message classes they may filter, allowing the ChannelProxy to refine the list of filters that are offered a particular message. This saves ~35us per message received on the browser IO thread for a typical Android device. Relanding with a few more guards for MessageFilter removal, access and message class subscription. BUG=340881 TBR=asargent@chromium.org Review URL: https://codereview.chromium.org/142923005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253361 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Allow MessageFilters to restrict listening to specific message classes"jdduke@chromium.org2014-02-211-1/+0
| | | | | | | | | | | | | This reverts commit 2955e4e3c747fd4aa3c227d6c4e4c698cf31b3c4. Reason for revert: Frequent crashes on Windows. BUG=345368 TBR= Review URL: https://codereview.chromium.org/165333004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252428 0039d316-1c4b-4281-b951-d872f2087c98
* Allow MessageFilters to restrict listening to specific message classesjdduke@chromium.org2014-02-161-0/+1
| | | | | | | | | | | | | | | | | ChannelProxy currently offers messages to all member MessageFilters. It turns out that a good portion of the most common message types will never be filtered, making the O(N) filter walk an unnecessary affair. To prevent this, allow MessageFilters to indicate which (if any) subset of message classes they may filter, allowing the ChannelProxy to refine the list of filters that are offered a particular message. This saves ~35us per message received on the browser IO thread for a typical Android device. BUG=340881 TBR=asargent@chromium.org Review URL: https://codereview.chromium.org/142923005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251622 0039d316-1c4b-4281-b951-d872f2087c98
* Allow Win64 build of base library even in a Win32 build.petewil@chromium.org2014-01-091-1/+1
| | | | | | | | | | | | | | | Some components of a 32 bit build of chrome for Windows need to be built as Win64 Dlls. To allow those components to use base, we make a Win64 build of the base library even when building chrome 32 bit. This is needed by the Chrome Desk Band code. crbug.com/327435. https://codereview.chromium.org/79173004/ BUG=327435 Review URL: https://codereview.chromium.org/103333004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243936 0039d316-1c4b-4281-b951-d872f2087c98
* Run ipc_tests serially when using new test launcher.phajdan.jr@chromium.org2013-12-031-1/+1
| | | | | | | | | | | | | | On Windows they would hit resource contention issues otherwise and run slower than serially. Run time is in seconds anyway. BUG=236893 R=jeremy@chromium.org Review URL: https://codereview.chromium.org/93663002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238251 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-131-0/+6
| | | | | | | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Previously committed: - https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 - https://src.chromium.org/viewvc/chrome?view=rev&revision=187233 - https://src.chromium.org/viewvc/chrome?view=rev&revision=187554 Review URL: https://codereview.chromium.org/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187772 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 187554 "Implement IPC::ChannelFactory, a class that accep..."falken@chromium.org2013-03-131-6/+0
| | | | | | | | | | | | | | | | | | | | | | Reverting because it seems to cause failures on ipc_tests (UnixDomainSocketUtil.Connect, UnixDomainSocketUtil.SendReceive) on Android. > Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket. > > IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate > when a client connects. The delegate is expected to craft an IPC::Channel from > the handle it is given. > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=187233 > > Review URL: https://chromiumcodereview.appspot.com/12386010 TBR=jeremya@chromium.org Review URL: https://codereview.chromium.org/12431017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187760 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-121-0/+6
| | | | | | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=187233 Review URL: https://chromiumcodereview.appspot.com/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187554 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 187233dmikurube@chromium.org2013-03-111-6/+0
| | | | | | | | | | | | | | | | | > Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket. > > IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate > when a client connects. The delegate is expected to craft an IPC::Channel from > the handle it is given. > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 > > Review URL: https://chromiumcodereview.appspot.com/12386010 TBR=jeremya@chromium.org Review URL: https://codereview.chromium.org/12761003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187240 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-111-0/+6
| | | | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 Review URL: https://chromiumcodereview.appspot.com/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187233 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 186912jeremya@chromium.org2013-03-081-6/+0
| | | | | | | | | | | | | | | > Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket. > > IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate > when a client connects. The delegate is expected to craft an IPC::Channel from > the handle it is given. > > Review URL: https://codereview.chromium.org/12386010 TBR=jeremya@chromium.org Review URL: https://codereview.chromium.org/12510008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186919 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-081-0/+6
| | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Review URL: https://codereview.chromium.org/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186912 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor (many) IPC tests, notably most of the multiprocess tests.viettrungluu@chromium.org2013-01-251-2/+3
| | | | | | | | | | | This factors out common code and, more importantly/usefully, makes test-specific code more local, and thus easier to add new tests and maintain existing ones. In particular, this allows you to add a new test "client" (running in another process) without modifying ipc_test_base.*. Review URL: https://codereview.chromium.org/12051048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178901 0039d316-1c4b-4281-b951-d872f2087c98
* Disabling nacl_win64 targets when building in target_arch!=ia32 mode.bradnelson@google.com2013-01-211-1/+1
| | | | | | | | | | | | | | | | When building on windows with target_arch=x64, we no longer need win32 targets forced to be 64-bit. This gates out these targets when target_arch!=ia32. (Prior CL dropped the minimal set to break the dependency between these targets and the rest of the build. This eliminates them completely.) BUG=None TEST=None R=jschuh@chromium.org,thestig@chromium.org TBR=darin@chromium.org,abodenha@chromium.org,apatrick@chromium.org,sra@chromium.org,wtc@chromium.org Review URL: https://chromiumcodereview.appspot.com/11929039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177959 0039d316-1c4b-4281-b951-d872f2087c98
* Make ipc_tests file structure a little saner and add an ipc_perftests target.viettrungluu@chromium.org2013-01-111-2/+47
| | | | | | | | | | This means that the (one, semi-manual) IPC perf test that we have will build without manual hackery (and do so separately from the ipc_tests target). Review URL: https://chromiumcodereview.appspot.com/11819041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176341 0039d316-1c4b-4281-b951-d872f2087c98
* Fix shutdown race in IPCSyncChannelTest and get rid of ↵viettrungluu@chromium.org2013-01-081-1/+2
| | | | | | | | | | | | | | | | | | "suppressions"/annotations. Shut down explicitly, rather than doing it in a virtual destructor, which leads to a vtable race. (Possibly also related is http://crbug.com/70075, but I haven't been able to reproduce, so I'll try to re-enable that separately.) BUG=25841 TEST=ipc_tests + TSAN still happy Review URL: https://chromiumcodereview.appspot.com/11761038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175487 0039d316-1c4b-4281-b951-d872f2087c98
* Remove {base,net}_java dependencies from GYP client targets on Android.pliard@chromium.org2012-09-101-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | On Android, some GYP client targets were explicitly depending on both the native and Java sides of a library. This removes the dependencies to {base,net}_java and make the native side ('base' and 'net) of these libraries depend on their Java counterpart. On Android it rarely makes sense to depend on a single side of a Java/C++ library. The {base,net}_java can now be considered as "private" targets although GYP does not support this concept unfortunately (AFAICT). Note that I made sure that the resulting APKs' size is unchanged. Additionally, this CL removes 'base_java' (i.e. does not replace it with 'base') from the targets including 'build/apk_test.gypi'. This dependency should not have been there (in the wrong layer) in the first place. It's needed by ChromeNativeTestActivity.java which clients should not know about. BUG=146323 TBR=lipalani,sky,willchan,brettw Review URL: https://chromiumcodereview.appspot.com/10913083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155737 0039d316-1c4b-4281-b951-d872f2087c98
* Make java.gypi export jar path to input_jars_paths variablecjhopman@chromium.org2012-08-091-1/+0
| | | | | | | | | | | | | | | | | Both java.gypi and apk_test.gypi expect the jar path in input_jars_paths. This means that we were specifying the dependence in both 'dependencies' and 'input_jars_paths'. This change makes it so that we don't need that redundancy. Also, make java.gypi use input_jars_paths in its input so that we actually rebuild targets when we should. BUG=136756 Review URL: https://chromiumcodereview.appspot.com/10837143 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150850 0039d316-1c4b-4281-b951-d872f2087c98
* Make the serialization of IPC::Messages inside other IPC::Messages independentbrettw@chromium.org2012-06-291-0/+1
| | | | | | | | | | | | | | of the platform. This is necessary for sending nested messages between nacl (which the IPC system thinks is posix and so has extra header goo) and a Windows client app (which doesn't have this stuff). BUG= Review URL: https://chromiumcodereview.appspot.com/10667002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144840 0039d316-1c4b-4281-b951-d872f2087c98
* Make GlobalDescriptors::MaybeGet return -1 when the key is not found.jcivelli@chromium.org2012-06-271-0/+4
| | | | | | | | | | BUG=None TEST=Unit tests should still pass. Review URL: https://chromiumcodereview.appspot.com/10387218 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144350 0039d316-1c4b-4281-b951-d872f2087c98