Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Side by Side Diff: content/common/content_param_traits.cc

Issue 2892953006: WIP POC blob transport over mojo
Patch Set: pass mojo blobs over ipc Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/common/content_param_traits.h" 5 #include "content/common/content_param_traits.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "content/common/accessibility_mode.h" 10 #include "content/common/accessibility_mode.h"
11 #include "content/common/message_port.h" 11 #include "content/common/message_port.h"
12 #include "ipc/ipc_mojo_message_helper.h"
12 #include "ipc/ipc_mojo_param_traits.h" 13 #include "ipc/ipc_mojo_param_traits.h"
13 #include "net/base/ip_endpoint.h" 14 #include "net/base/ip_endpoint.h"
14 #include "ui/events/blink/web_input_event_traits.h" 15 #include "ui/events/blink/web_input_event_traits.h"
15 16
16 namespace IPC { 17 namespace IPC {
17 18
18 void ParamTraits<WebInputEventPointer>::GetSize(base::PickleSizer* s, 19 void ParamTraits<WebInputEventPointer>::GetSize(base::PickleSizer* s,
19 const param_type& p) { 20 const param_type& p) {
20 s->AddData(p->size()); 21 s->AddData(p->size());
21 } 22 }
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 param_type* r) { 106 param_type* r) {
106 uint32_t value; 107 uint32_t value;
107 if (!IPC::ReadParam(m, iter, &value)) 108 if (!IPC::ReadParam(m, iter, &value))
108 return false; 109 return false;
109 *r = content::AccessibilityMode(value); 110 *r = content::AccessibilityMode(value);
110 return true; 111 return true;
111 } 112 }
112 113
113 void ParamTraits<content::AccessibilityMode>::Log(const param_type& p, 114 void ParamTraits<content::AccessibilityMode>::Log(const param_type& p,
114 std::string* l) {} 115 std::string* l) {}
116
117 void ParamTraits<storage::mojom::BlobPtr>::GetSize(base::PickleSizer* s,
118 const param_type& p) {
119 GetParamSize(s, p.is_bound());
120 if (p.is_bound()) {
121 s->AddUInt32();
122 s->AddAttachment();
123 }
124 }
125
126 void ParamTraits<storage::mojom::BlobPtr>::Write(base::Pickle* m,
127 const param_type& p) {
128 WriteParam(m, p.is_bound());
129 if (p.is_bound()) {
130 storage::mojom::BlobPtr clone;
131 p->Clone(MakeRequest(&clone));
132 auto info = clone.PassInterface();
133 m->WriteUInt32(info.version());
134 MojoMessageHelper::WriteMessagePipeTo(m, info.PassHandle());
135 }
136 }
137
138 bool ParamTraits<storage::mojom::BlobPtr>::Read(const base::Pickle* m,
139 base::PickleIterator* iter,
140 param_type* r) {
141 bool is_valid;
142 if (!ReadParam(m, iter, &is_valid))
143 return false;
144 if (!is_valid)
145 return true;
146
147 uint32_t version;
148 if (!ReadParam(m, iter, &version))
149 return false;
150 mojo::ScopedMessagePipeHandle handle;
151 if (!MojoMessageHelper::ReadMessagePipeFrom(m, iter, &handle))
152 return false;
153 DCHECK(handle.is_valid());
154 r->Bind(
155 mojo::InterfacePtrInfo<storage::mojom::Blob>(std::move(handle), version));
156 return true;
157 }
158
159 void ParamTraits<storage::mojom::BlobPtr>::Log(const param_type& p,
160 std::string* l) {}
161
115 } // namespace IPC 162 } // namespace IPC
116 163
117 // Generate param traits size methods. 164 // Generate param traits size methods.
118 #include "ipc/param_traits_size_macros.h" 165 #include "ipc/param_traits_size_macros.h"
119 namespace IPC { 166 namespace IPC {
120 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_ 167 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_
121 #include "content/common/content_param_traits_macros.h" 168 #include "content/common/content_param_traits_macros.h"
122 } 169 }
123 170
124 // Generate param traits write methods. 171 // Generate param traits write methods.
125 #include "ipc/param_traits_write_macros.h" 172 #include "ipc/param_traits_write_macros.h"
126 namespace IPC { 173 namespace IPC {
127 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_ 174 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_
128 #include "content/common/content_param_traits_macros.h" 175 #include "content/common/content_param_traits_macros.h"
129 } // namespace IPC 176 } // namespace IPC
130 177
131 // Generate param traits read methods. 178 // Generate param traits read methods.
132 #include "ipc/param_traits_read_macros.h" 179 #include "ipc/param_traits_read_macros.h"
133 namespace IPC { 180 namespace IPC {
134 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_ 181 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_
135 #include "content/common/content_param_traits_macros.h" 182 #include "content/common/content_param_traits_macros.h"
136 } // namespace IPC 183 } // namespace IPC
137 184
138 // Generate param traits log methods. 185 // Generate param traits log methods.
139 #include "ipc/param_traits_log_macros.h" 186 #include "ipc/param_traits_log_macros.h"
140 namespace IPC { 187 namespace IPC {
141 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_ 188 #undef CONTENT_COMMON_CONTENT_PARAM_TRAITS_MACROS_H_
142 #include "content/common/content_param_traits_macros.h" 189 #include "content/common/content_param_traits_macros.h"
143 } // namespace IPC 190 } // namespace IPC
OLDNEW
« no previous file with comments | « content/common/content_param_traits.h ('k') | content/common/service_worker/service_worker_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698