| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/nacl/loader/nacl_ipc_adapter.h" | 5 #include "components/nacl/loader/nacl_ipc_adapter.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 | 225 |
| 226 NaClDesc* desc() { return desc_; } | 226 NaClDesc* desc() { return desc_; } |
| 227 | 227 |
| 228 private: | 228 private: |
| 229 NaClDesc* desc_; | 229 NaClDesc* desc_; |
| 230 DISALLOW_COPY_AND_ASSIGN(NaClDescWrapper); | 230 DISALLOW_COPY_AND_ASSIGN(NaClDescWrapper); |
| 231 }; | 231 }; |
| 232 | 232 |
| 233 } // namespace | 233 } // namespace |
| 234 | 234 |
| 235 // TODO(mgiuca): Avoid using UnsafeRefCounted. http://crbug.com/469952. |
| 235 class NaClIPCAdapter::RewrittenMessage | 236 class NaClIPCAdapter::RewrittenMessage |
| 236 : public base::RefCounted<RewrittenMessage> { | 237 : public base::UnsafeRefCounted<RewrittenMessage> { |
| 237 public: | 238 public: |
| 238 RewrittenMessage(); | 239 RewrittenMessage(); |
| 239 | 240 |
| 240 bool is_consumed() const { return data_read_cursor_ == data_len_; } | 241 bool is_consumed() const { return data_read_cursor_ == data_len_; } |
| 241 | 242 |
| 242 void SetData(const NaClIPCAdapter::NaClMessageHeader& header, | 243 void SetData(const NaClIPCAdapter::NaClMessageHeader& header, |
| 243 const void* payload, size_t payload_length); | 244 const void* payload, size_t payload_length); |
| 244 | 245 |
| 245 int Read(NaClImcTypedMsgHdr* msg); | 246 int Read(NaClImcTypedMsgHdr* msg); |
| 246 | 247 |
| 247 void AddDescriptor(NaClDescWrapper* desc) { descs_.push_back(desc); } | 248 void AddDescriptor(NaClDescWrapper* desc) { descs_.push_back(desc); } |
| 248 | 249 |
| 249 size_t desc_count() const { return descs_.size(); } | 250 size_t desc_count() const { return descs_.size(); } |
| 250 | 251 |
| 251 private: | 252 private: |
| 252 friend class base::RefCounted<RewrittenMessage>; | 253 friend class base::UnsafeRefCounted<RewrittenMessage>; |
| 253 ~RewrittenMessage() {} | 254 ~RewrittenMessage() {} |
| 254 | 255 |
| 255 scoped_ptr<char[]> data_; | 256 scoped_ptr<char[]> data_; |
| 256 size_t data_len_; | 257 size_t data_len_; |
| 257 | 258 |
| 258 // Offset into data where the next read will happen. This will be equal to | 259 // Offset into data where the next read will happen. This will be equal to |
| 259 // data_len_ when all data has been consumed. | 260 // data_len_ when all data has been consumed. |
| 260 size_t data_read_cursor_; | 261 size_t data_read_cursor_; |
| 261 | 262 |
| 262 // Wrapped descriptors for transfer to untrusted code. | 263 // Wrapped descriptors for transfer to untrusted code. |
| (...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 header.flags = msg.flags(); | 808 header.flags = msg.flags(); |
| 808 header.num_fds = static_cast<uint16>(rewritten_msg->desc_count()); | 809 header.num_fds = static_cast<uint16>(rewritten_msg->desc_count()); |
| 809 | 810 |
| 810 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); | 811 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); |
| 811 locked_data_.to_be_received_.push(rewritten_msg); | 812 locked_data_.to_be_received_.push(rewritten_msg); |
| 812 } | 813 } |
| 813 | 814 |
| 814 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { | 815 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { |
| 815 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); | 816 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); |
| 816 } | 817 } |
| OLD | NEW |