Chromium Code Reviews| Index: ipc/brokerable_attachment.h |
| diff --git a/ipc/brokerable_attachment.h b/ipc/brokerable_attachment.h |
| index 452d1297aa9df2cfdaa173652131b5f7a944d407..72416a86a3874694d0ef20868728a05085e379b4 100644 |
| --- a/ipc/brokerable_attachment.h |
| +++ b/ipc/brokerable_attachment.h |
| @@ -17,31 +17,28 @@ namespace IPC { |
| // attached to a Chrome IPC message. |
| class IPC_EXPORT BrokerableAttachment : public MessageAttachment { |
| public: |
| - static const size_t kNonceSize = 16; |
| + static const size_t kNonceSize; |
|
Tom Sepez
2015/08/17 18:29:39
Why did we lose the initianlizer? should be just c
erikchen
2015/08/18 05:59:46
I looked into this further...the actual problem li
|
| // An id uniquely identifies an attachment sent via a broker. |
| struct IPC_EXPORT AttachmentId { |
| - uint8_t nonce[kNonceSize]; |
| - |
| - bool operator==(const AttachmentId& rhs) const { |
| - for (size_t i = 0; i < kNonceSize; ++i) { |
| - if (nonce[i] != rhs.nonce[i]) |
| - return false; |
| - } |
| - return true; |
| - } |
| - |
| - bool operator<(const AttachmentId& rhs) const { |
| - for (size_t i = 0; i < kNonceSize; ++i) { |
| - if (nonce[i] < rhs.nonce[i]) |
| - return true; |
| - if (nonce[i] > rhs.nonce[i]) |
| - return false; |
| - } |
| - return false; |
| - } |
| + // The size of this array must match kNonceSize. |
| + uint8_t nonce[16]; |
| + |
| + // Default constructor doesn't initialize nonce. |
|
Tom Sepez
2015/08/17 18:29:39
nit: Seems like a mistake to leave it uninitizlize
erikchen
2015/08/18 05:59:46
You're right, I've changed the behavior and update
|
| + AttachmentId(){}; |
| + |
| + // Constructs an AttachmentId from a buffer. |
| + AttachmentId(const char* start_address, size_t size); |
| + |
| + // Writes the nonce into a buffer. |
| + void SerializeToBuffer(char* start_address, size_t size); |
| + |
| + bool operator==(const AttachmentId& rhs) const; |
|
Tom Sepez
2015/08/17 18:29:39
probably want to put the code in here to help the
erikchen
2015/08/18 05:59:46
Done.
|
| + |
| + bool operator<(const AttachmentId& rhs) const; |
| }; |
| enum BrokerableType { |
| + PLACEHOLDER, |
| WIN_HANDLE, |
| }; |
| @@ -52,31 +49,26 @@ class IPC_EXPORT BrokerableAttachment : public MessageAttachment { |
| // can be used. |
| bool NeedsBrokering() const; |
| - // Fills in the data of this instance with the data from |attachment|. |
| - // This instance must require brokering, |attachment| must be brokered, and |
| - // both instances must have the same identifier. |
| - virtual void PopulateWithAttachment( |
| - const BrokerableAttachment* attachment) = 0; |
| - |
| // Returns TYPE_BROKERABLE_ATTACHMENT |
| Type GetType() const override; |
| virtual BrokerableType GetBrokerableType() const = 0; |
| +// MessageAttachment override. |
| +#if defined(OS_POSIX) |
| + base::PlatformFile TakePlatformFile() override; |
| +#endif // OS_POSIX |
| + |
| protected: |
| BrokerableAttachment(); |
| - BrokerableAttachment(const AttachmentId& id, bool needs_brokering); |
| + BrokerableAttachment(const AttachmentId& id); |
| ~BrokerableAttachment() override; |
| - void SetNeedsBrokering(bool needs_brokering); |
| - |
| private: |
| // This member uniquely identifies a BrokerableAttachment across all Chrome |
| // processes. |
| const AttachmentId id_; |
| - // Whether the attachment still needs to be filled in by an AttachmentBroker. |
| - bool needs_brokering_; |
| DISALLOW_COPY_AND_ASSIGN(BrokerableAttachment); |
| }; |