summaryrefslogtreecommitdiffstats
path: root/ipc/param_traits_read_macros.h
Commit message (Collapse)AuthorAgeFilesLines
* IPC::Message -> base::Picklerockot2016-02-031-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes consumers of IPC::Message to generally refer refer to base::Pickle instead when performing serialization and deserialization operations. The few specific instances where the IPC::Message interface (Read/WriteAttachent) is needed can safely be static_cast'd, as IPC::Message is the only public subclass of base::Pickle. The purpose of this change is to facilitate the transition to Mojo IPC, as we've trained the Mojo bindings layer to use existing ParamTraits<T> parameterized over base::Pickle. To support this base::Pickle has had some stub interfaces added for WriteAttachment and ReadAttachment, along with a Pickle::Attachment. A follow-up patch will add sizing traits to the standard IPC_STRUCT macros, enabling the majority of Chrome IPC structs to be carried over Mojo message pipes as-is. BUG=577685 R=jam@chromium.org Review URL: https://codereview.chromium.org/1659003003 Cr-Commit-Position: refs/heads/master@{#373323}
* Move Pickle to base namespace.brettw2015-06-021-2/+2
| | | | | | | | | | Updates forward-declares and headers, but keeps a using statement in to avoid updating all users atomically. TBR=jschuh for IPC stuff Review URL: https://codereview.chromium.org/1149113006 Cr-Commit-Position: refs/heads/master@{#332352}
* Remove deprecated methods from Pickle.avi2014-12-281-1/+1
| | | | | | | | | | | | | BUG=444578 TEST=none R=nasko@chromium.org TBR=ben@chromium.org Committed: https://chromium.googlesource.com/chromium/src/+/b740bfe23ae7ad244356a4a7538b95ae560251db Review URL: https://codereview.chromium.org/818833004 Cr-Commit-Position: refs/heads/master@{#309691}
* Revert of Remove deprecated methods from Pickle. (patchset #10 id:180001 of ↵avi2014-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/818833004/) Reason for revert: Allegedly causes a performance hit: http://crbug.com/445173 Original issue's description: > Remove deprecated methods from Pickle. > > BUG=444578 > TEST=none > R=nasko@chromium.org > TBR=ben@chromium.org > > Committed: https://chromium.googlesource.com/chromium/src/+/b740bfe23ae7ad244356a4a7538b95ae560251db TBR=nasko@chromium.org NOTREECHECKS=true NOTRY=true BUG=444578 Review URL: https://codereview.chromium.org/825353003 Cr-Commit-Position: refs/heads/master@{#309689}
* Remove deprecated methods from Pickle.Avi Drissman2014-12-221-1/+1
| | | | | | | | | | | BUG=444578 TEST=none R=nasko@chromium.org TBR=ben@chromium.org Review URL: https://codereview.chromium.org/818833004 Cr-Commit-Position: refs/heads/master@{#309445}
* Implement off-the-wire validation scheme for emum types.tsepez@chromium.org2013-06-041-8/+8
| | | | | | | | | | | | | This CL adds explicit IPC macros that can be used to ensure that the values being read off the wire are legitimate for the enum type. BUG=176110 R=jam@chromium.org Review URL: https://chromiumcodereview.appspot.com/15841011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203892 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for default values of IPC_STRUCT_MEMBER.jbates@chromium.org2012-04-161-1/+1
| | | | | | Review URL: http://codereview.chromium.org/10067023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132435 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor Pickle Read methods to use higher performance PickleIterator.jbates@chromium.org2012-03-071-3/+3
| | | | | | | | | | | | | | | | There was a lot of redundant error checking and initialization code in all Pickle Read methods because of the void** iterator type. This change replaces the void* iterator with PickleIterator, which encapsulates the read pointer so that less error checking and initialization code is needed for reading. PickleIterator has all the necessary data to do the actual reading. The advantage of having it provide Read methods (as opposed to leaving them solely in the Pickle interface) is that the callers do not need to pass around the const Pickle* once they have a PickleIterator. Followup CLs will refactor the call sites to remove const Pickle* arguments where they are now unnecessary. Then the Pickle::Read* methods can be removed entirely. The alternative approach would have been to change the Pickle::Read methods to non-const and remove the iterator parameter (making Read methods advance an internal read pointer). Unfortunately, the const Read with iterator design is entrenched throughout the chromium code, making this a much more complex change with the same performance outcome. BUG=13108 Review URL: https://chromiumcodereview.appspot.com/9447084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125447 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of a bunch of view_messages.h includes from chrome by making the ↵jam@chromium.org2011-11-211-0/+3
| | | | | | | | | TabContentsObserver interface not use a struct from it. Instead, the interface uses a new struct, content::FrameNavigateParams, that's in the public directory. The IPC message's struct derives from it. BUG=98716 Review URL: http://codereview.chromium.org/8603015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110963 0039d316-1c4b-4281-b951-d872f2087c98
* Change common_message_generator code block.tsepez@chromium.org2011-03-121-0/+1
| | | | | | | | | | | | | | | Makes namespace IPC {} more tightly wrapped around the inclusion of the genertor header file. Updates comments in ipc_message_macros to indicate this new style of block. Makes message ID generation into a macro so can be re-used in forthcoming ipclist CL. Simplfies the NULL macros. Adds #pragma once to param traits, because we can. Review URL: http://codereview.chromium.org/6683014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77943 0039d316-1c4b-4281-b951-d872f2087c98
* Move resource related IPCs to their own file in content. I added a ↵jam@chromium.org2011-03-051-0/+2
| | | | | | | | | IPC_STRUCT_TRAITS_PARENT macro to allow the automatic serializing macros to add a parent struct. TBR=tsepez Review URL: http://codereview.chromium.org/6628035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77048 0039d316-1c4b-4281-b951-d872f2087c98
* Make the implementation .cc files go away, instead have the authors give us ↵tsepez@chromium.org2011-02-111-0/+42
a header only. Review URL: http://codereview.chromium.org/6410007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74637 0039d316-1c4b-4281-b951-d872f2087c98