Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "content/common/service_worker/service_worker_fetch_request_struct_trai ts.h" | |
| 6 | |
| 7 #include "base/logging.h" | |
| 8 #include "content/public/common/referrer_struct_traits.h" | |
|
dcheng
2017/03/28 06:52:24
Out of curiosity, why are these includes needed?
Peter Beverloo
2017/03/28 14:07:53
We're calling ReadReferrer() on the DataView on li
| |
| 9 #include "url/mojo/url_gurl_struct_traits.h" | |
| 10 | |
| 11 namespace mojo { | |
| 12 | |
| 13 namespace { | |
| 14 | |
| 15 // Struct traits context for the FetchAPIRequest type. Since getters are invoked | |
| 16 // twice when serializing the type, this reduces the load for heavy members. | |
| 17 struct ServiceWorkerFetchRequestStructTraitsContext { | |
| 18 ServiceWorkerFetchRequestStructTraitsContext() = default; | |
| 19 ~ServiceWorkerFetchRequestStructTraitsContext() = default; | |
| 20 | |
| 21 std::map<std::string, std::string> headers; | |
| 22 }; | |
| 23 | |
| 24 } // namespace | |
| 25 | |
| 26 using blink::mojom::FetchCredentialsMode; | |
| 27 using blink::mojom::FetchRedirectMode; | |
| 28 using blink::mojom::FetchRequestMode; | |
| 29 using blink::mojom::RequestContextFrameType; | |
| 30 using blink::mojom::RequestContextType; | |
| 31 using blink::mojom::ServiceWorkerFetchType; | |
| 32 | |
| 33 FetchCredentialsMode | |
| 34 EnumTraits<FetchCredentialsMode, content::FetchCredentialsMode>::ToMojom( | |
| 35 content::FetchCredentialsMode input) { | |
| 36 switch (input) { | |
| 37 case content::FETCH_CREDENTIALS_MODE_OMIT: | |
| 38 return FetchCredentialsMode::OMIT; | |
| 39 case content::FETCH_CREDENTIALS_MODE_SAME_ORIGIN: | |
| 40 return FetchCredentialsMode::SAME_ORIGIN; | |
| 41 case content::FETCH_CREDENTIALS_MODE_INCLUDE: | |
| 42 return FetchCredentialsMode::INCLUDE; | |
| 43 case content::FETCH_CREDENTIALS_MODE_PASSWORD: | |
| 44 return FetchCredentialsMode::PASSWORD; | |
| 45 } | |
| 46 | |
| 47 NOTREACHED(); | |
| 48 return FetchCredentialsMode::OMIT; | |
| 49 } | |
| 50 | |
| 51 bool EnumTraits<FetchCredentialsMode, content::FetchCredentialsMode>::FromMojom( | |
| 52 FetchCredentialsMode input, | |
| 53 content::FetchCredentialsMode* out) { | |
| 54 switch (input) { | |
| 55 case FetchCredentialsMode::OMIT: | |
| 56 *out = content::FETCH_CREDENTIALS_MODE_OMIT; | |
| 57 return true; | |
| 58 case FetchCredentialsMode::SAME_ORIGIN: | |
| 59 *out = content::FETCH_CREDENTIALS_MODE_SAME_ORIGIN; | |
| 60 return true; | |
| 61 case FetchCredentialsMode::INCLUDE: | |
| 62 *out = content::FETCH_CREDENTIALS_MODE_INCLUDE; | |
| 63 return true; | |
| 64 case FetchCredentialsMode::PASSWORD: | |
| 65 *out = content::FETCH_CREDENTIALS_MODE_PASSWORD; | |
| 66 return true; | |
| 67 } | |
| 68 | |
| 69 return false; | |
| 70 } | |
| 71 | |
| 72 FetchRedirectMode | |
| 73 EnumTraits<FetchRedirectMode, content::FetchRedirectMode>::ToMojom( | |
| 74 content::FetchRedirectMode input) { | |
| 75 switch (input) { | |
| 76 case content::FetchRedirectMode::FOLLOW_MODE: | |
| 77 return FetchRedirectMode::FOLLOW; | |
| 78 case content::FetchRedirectMode::ERROR_MODE: | |
| 79 return FetchRedirectMode::ERROR; | |
| 80 case content::FetchRedirectMode::MANUAL_MODE: | |
| 81 return FetchRedirectMode::MANUAL; | |
| 82 } | |
| 83 | |
| 84 NOTREACHED(); | |
| 85 return FetchRedirectMode::ERROR; | |
| 86 } | |
| 87 | |
| 88 bool EnumTraits<FetchRedirectMode, content::FetchRedirectMode>::FromMojom( | |
| 89 FetchRedirectMode input, | |
| 90 content::FetchRedirectMode* out) { | |
| 91 switch (input) { | |
| 92 case FetchRedirectMode::FOLLOW: | |
| 93 *out = content::FetchRedirectMode::FOLLOW_MODE; | |
| 94 return true; | |
| 95 case FetchRedirectMode::ERROR: | |
| 96 *out = content::FetchRedirectMode::ERROR_MODE; | |
| 97 return true; | |
| 98 case FetchRedirectMode::MANUAL: | |
| 99 *out = content::FetchRedirectMode::MANUAL_MODE; | |
| 100 return true; | |
| 101 } | |
| 102 | |
| 103 return false; | |
| 104 } | |
| 105 | |
| 106 FetchRequestMode | |
| 107 EnumTraits<FetchRequestMode, content::FetchRequestMode>::ToMojom( | |
| 108 content::FetchRequestMode input) { | |
| 109 switch (input) { | |
| 110 case content::FETCH_REQUEST_MODE_SAME_ORIGIN: | |
| 111 return FetchRequestMode::SAME_ORIGIN; | |
| 112 case content::FETCH_REQUEST_MODE_NO_CORS: | |
| 113 return FetchRequestMode::NO_CORS; | |
| 114 case content::FETCH_REQUEST_MODE_CORS: | |
| 115 return FetchRequestMode::CORS; | |
| 116 case content::FETCH_REQUEST_MODE_CORS_WITH_FORCED_PREFLIGHT: | |
| 117 return FetchRequestMode::CORS_WITH_FORCED_PREFLIGHT; | |
| 118 case content::FETCH_REQUEST_MODE_NAVIGATE: | |
| 119 return FetchRequestMode::NAVIGATE; | |
| 120 } | |
| 121 | |
| 122 NOTREACHED(); | |
| 123 return FetchRequestMode::NO_CORS; | |
| 124 } | |
| 125 | |
| 126 bool EnumTraits<FetchRequestMode, content::FetchRequestMode>::FromMojom( | |
| 127 FetchRequestMode input, | |
| 128 content::FetchRequestMode* out) { | |
| 129 switch (input) { | |
| 130 case FetchRequestMode::SAME_ORIGIN: | |
| 131 *out = content::FETCH_REQUEST_MODE_SAME_ORIGIN; | |
| 132 return true; | |
| 133 case FetchRequestMode::NO_CORS: | |
| 134 *out = content::FETCH_REQUEST_MODE_NO_CORS; | |
| 135 return true; | |
| 136 case FetchRequestMode::CORS: | |
| 137 *out = content::FETCH_REQUEST_MODE_CORS; | |
| 138 return true; | |
| 139 case FetchRequestMode::CORS_WITH_FORCED_PREFLIGHT: | |
| 140 *out = content::FETCH_REQUEST_MODE_CORS_WITH_FORCED_PREFLIGHT; | |
| 141 return true; | |
| 142 case FetchRequestMode::NAVIGATE: | |
| 143 *out = content::FETCH_REQUEST_MODE_NAVIGATE; | |
| 144 return true; | |
| 145 } | |
| 146 | |
| 147 return false; | |
| 148 } | |
| 149 | |
| 150 RequestContextFrameType | |
| 151 EnumTraits<RequestContextFrameType, content::RequestContextFrameType>::ToMojom( | |
| 152 content::RequestContextFrameType input) { | |
| 153 switch (input) { | |
| 154 case content::REQUEST_CONTEXT_FRAME_TYPE_AUXILIARY: | |
| 155 return RequestContextFrameType::AUXILIARY; | |
| 156 case content::REQUEST_CONTEXT_FRAME_TYPE_NESTED: | |
| 157 return RequestContextFrameType::NESTED; | |
| 158 case content::REQUEST_CONTEXT_FRAME_TYPE_NONE: | |
| 159 return RequestContextFrameType::NONE; | |
| 160 case content::REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL: | |
| 161 return RequestContextFrameType::TOP_LEVEL; | |
| 162 } | |
| 163 | |
| 164 NOTREACHED(); | |
| 165 return RequestContextFrameType::NONE; | |
| 166 } | |
| 167 | |
| 168 bool EnumTraits<RequestContextFrameType, content::RequestContextFrameType>:: | |
| 169 FromMojom(RequestContextFrameType input, | |
| 170 content::RequestContextFrameType* out) { | |
| 171 switch (input) { | |
| 172 case RequestContextFrameType::AUXILIARY: | |
| 173 *out = content::REQUEST_CONTEXT_FRAME_TYPE_AUXILIARY; | |
| 174 return true; | |
| 175 case RequestContextFrameType::NESTED: | |
| 176 *out = content::REQUEST_CONTEXT_FRAME_TYPE_NESTED; | |
| 177 return true; | |
| 178 case RequestContextFrameType::NONE: | |
| 179 *out = content::REQUEST_CONTEXT_FRAME_TYPE_NONE; | |
| 180 return true; | |
| 181 case RequestContextFrameType::TOP_LEVEL: | |
| 182 *out = content::REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL; | |
| 183 return true; | |
| 184 } | |
| 185 | |
| 186 return false; | |
| 187 } | |
| 188 | |
| 189 RequestContextType | |
| 190 EnumTraits<RequestContextType, content::RequestContextType>::ToMojom( | |
| 191 content::RequestContextType input) { | |
| 192 switch (input) { | |
| 193 case content::REQUEST_CONTEXT_TYPE_UNSPECIFIED: | |
| 194 return RequestContextType::UNSPECIFIED; | |
| 195 case content::REQUEST_CONTEXT_TYPE_AUDIO: | |
| 196 return RequestContextType::AUDIO; | |
| 197 case content::REQUEST_CONTEXT_TYPE_BEACON: | |
| 198 return RequestContextType::BEACON; | |
| 199 case content::REQUEST_CONTEXT_TYPE_CSP_REPORT: | |
| 200 return RequestContextType::CSP_REPORT; | |
| 201 case content::REQUEST_CONTEXT_TYPE_DOWNLOAD: | |
| 202 return RequestContextType::DOWNLOAD; | |
| 203 case content::REQUEST_CONTEXT_TYPE_EMBED: | |
| 204 return RequestContextType::EMBED; | |
| 205 case content::REQUEST_CONTEXT_TYPE_EVENT_SOURCE: | |
| 206 return RequestContextType::EVENT_SOURCE; | |
| 207 case content::REQUEST_CONTEXT_TYPE_FAVICON: | |
| 208 return RequestContextType::FAVICON; | |
| 209 case content::REQUEST_CONTEXT_TYPE_FETCH: | |
| 210 return RequestContextType::FETCH; | |
| 211 case content::REQUEST_CONTEXT_TYPE_FONT: | |
| 212 return RequestContextType::FONT; | |
| 213 case content::REQUEST_CONTEXT_TYPE_FORM: | |
| 214 return RequestContextType::FORM; | |
| 215 case content::REQUEST_CONTEXT_TYPE_FRAME: | |
| 216 return RequestContextType::FRAME; | |
| 217 case content::REQUEST_CONTEXT_TYPE_HYPERLINK: | |
| 218 return RequestContextType::HYPERLINK; | |
| 219 case content::REQUEST_CONTEXT_TYPE_IFRAME: | |
| 220 return RequestContextType::IFRAME; | |
| 221 case content::REQUEST_CONTEXT_TYPE_IMAGE: | |
| 222 return RequestContextType::IMAGE; | |
| 223 case content::REQUEST_CONTEXT_TYPE_IMAGE_SET: | |
| 224 return RequestContextType::IMAGE_SET; | |
| 225 case content::REQUEST_CONTEXT_TYPE_IMPORT: | |
| 226 return RequestContextType::IMPORT; | |
| 227 case content::REQUEST_CONTEXT_TYPE_INTERNAL: | |
| 228 return RequestContextType::INTERNAL; | |
| 229 case content::REQUEST_CONTEXT_TYPE_LOCATION: | |
| 230 return RequestContextType::LOCATION; | |
| 231 case content::REQUEST_CONTEXT_TYPE_MANIFEST: | |
| 232 return RequestContextType::MANIFEST; | |
| 233 case content::REQUEST_CONTEXT_TYPE_OBJECT: | |
| 234 return RequestContextType::OBJECT; | |
| 235 case content::REQUEST_CONTEXT_TYPE_PING: | |
| 236 return RequestContextType::PING; | |
| 237 case content::REQUEST_CONTEXT_TYPE_PLUGIN: | |
| 238 return RequestContextType::PLUGIN; | |
| 239 case content::REQUEST_CONTEXT_TYPE_PREFETCH: | |
| 240 return RequestContextType::PREFETCH; | |
| 241 case content::REQUEST_CONTEXT_TYPE_SCRIPT: | |
| 242 return RequestContextType::SCRIPT; | |
| 243 case content::REQUEST_CONTEXT_TYPE_SERVICE_WORKER: | |
| 244 return RequestContextType::SERVICE_WORKER; | |
| 245 case content::REQUEST_CONTEXT_TYPE_SHARED_WORKER: | |
| 246 return RequestContextType::SHARED_WORKER; | |
| 247 case content::REQUEST_CONTEXT_TYPE_SUBRESOURCE: | |
| 248 return RequestContextType::SUBRESOURCE; | |
| 249 case content::REQUEST_CONTEXT_TYPE_STYLE: | |
| 250 return RequestContextType::STYLE; | |
| 251 case content::REQUEST_CONTEXT_TYPE_TRACK: | |
| 252 return RequestContextType::TRACK; | |
| 253 case content::REQUEST_CONTEXT_TYPE_VIDEO: | |
| 254 return RequestContextType::VIDEO; | |
| 255 case content::REQUEST_CONTEXT_TYPE_WORKER: | |
| 256 return RequestContextType::WORKER; | |
| 257 case content::REQUEST_CONTEXT_TYPE_XML_HTTP_REQUEST: | |
| 258 return RequestContextType::XML_HTTP_REQUEST; | |
| 259 case content::REQUEST_CONTEXT_TYPE_XSLT: | |
| 260 return RequestContextType::XSLT; | |
| 261 } | |
| 262 | |
| 263 NOTREACHED(); | |
| 264 return RequestContextType::UNSPECIFIED; | |
| 265 } | |
| 266 | |
| 267 bool EnumTraits<RequestContextType, content::RequestContextType>::FromMojom( | |
| 268 RequestContextType input, | |
| 269 content::RequestContextType* out) { | |
| 270 switch (input) { | |
| 271 case RequestContextType::UNSPECIFIED: | |
| 272 *out = content::REQUEST_CONTEXT_TYPE_UNSPECIFIED; | |
| 273 return true; | |
| 274 case RequestContextType::AUDIO: | |
| 275 *out = content::REQUEST_CONTEXT_TYPE_AUDIO; | |
| 276 return true; | |
| 277 case RequestContextType::BEACON: | |
| 278 *out = content::REQUEST_CONTEXT_TYPE_BEACON; | |
| 279 return true; | |
| 280 case RequestContextType::CSP_REPORT: | |
| 281 *out = content::REQUEST_CONTEXT_TYPE_CSP_REPORT; | |
| 282 return true; | |
| 283 case RequestContextType::DOWNLOAD: | |
| 284 *out = content::REQUEST_CONTEXT_TYPE_DOWNLOAD; | |
| 285 return true; | |
| 286 case RequestContextType::EMBED: | |
| 287 *out = content::REQUEST_CONTEXT_TYPE_EMBED; | |
| 288 return true; | |
| 289 case RequestContextType::EVENT_SOURCE: | |
| 290 *out = content::REQUEST_CONTEXT_TYPE_EVENT_SOURCE; | |
| 291 return true; | |
| 292 case RequestContextType::FAVICON: | |
| 293 *out = content::REQUEST_CONTEXT_TYPE_FAVICON; | |
| 294 return true; | |
| 295 case RequestContextType::FETCH: | |
| 296 *out = content::REQUEST_CONTEXT_TYPE_FETCH; | |
| 297 return true; | |
| 298 case RequestContextType::FONT: | |
| 299 *out = content::REQUEST_CONTEXT_TYPE_FONT; | |
| 300 return true; | |
| 301 case RequestContextType::FORM: | |
| 302 *out = content::REQUEST_CONTEXT_TYPE_FORM; | |
| 303 return true; | |
| 304 case RequestContextType::FRAME: | |
| 305 *out = content::REQUEST_CONTEXT_TYPE_FRAME; | |
| 306 return true; | |
| 307 case RequestContextType::HYPERLINK: | |
| 308 *out = content::REQUEST_CONTEXT_TYPE_HYPERLINK; | |
| 309 return true; | |
| 310 case RequestContextType::IFRAME: | |
| 311 *out = content::REQUEST_CONTEXT_TYPE_IFRAME; | |
| 312 return true; | |
| 313 case RequestContextType::IMAGE: | |
| 314 *out = content::REQUEST_CONTEXT_TYPE_IMAGE; | |
| 315 return true; | |
| 316 case RequestContextType::IMAGE_SET: | |
| 317 *out = content::REQUEST_CONTEXT_TYPE_IMAGE_SET; | |
| 318 return true; | |
| 319 case RequestContextType::IMPORT: | |
| 320 *out = content::REQUEST_CONTEXT_TYPE_IMPORT; | |
| 321 return true; | |
| 322 case RequestContextType::INTERNAL: | |
| 323 *out = content::REQUEST_CONTEXT_TYPE_INTERNAL; | |
| 324 return true; | |
| 325 case RequestContextType::LOCATION: | |
| 326 *out = content::REQUEST_CONTEXT_TYPE_LOCATION; | |
| 327 return true; | |
| 328 case RequestContextType::MANIFEST: | |
| 329 *out = content::REQUEST_CONTEXT_TYPE_MANIFEST; | |
| 330 return true; | |
| 331 case RequestContextType::OBJECT: | |
| 332 *out = content::REQUEST_CONTEXT_TYPE_OBJECT; | |
| 333 return true; | |
| 334 case RequestContextType::PING: | |
| 335 *out = content::REQUEST_CONTEXT_TYPE_PING; | |
| 336 return true; | |
| 337 case RequestContextType::PLUGIN: | |
| 338 *out = content::REQUEST_CONTEXT_TYPE_PLUGIN; | |
| 339 return true; | |
| 340 case RequestContextType::PREFETCH: | |
| 341 *out = content::REQUEST_CONTEXT_TYPE_PREFETCH; | |
| 342 return true; | |
| 343 case RequestContextType::SCRIPT: | |
| 344 *out = content::REQUEST_CONTEXT_TYPE_SCRIPT; | |
| 345 return true; | |
| 346 case RequestContextType::SERVICE_WORKER: | |
| 347 *out = content::REQUEST_CONTEXT_TYPE_SERVICE_WORKER; | |
| 348 return true; | |
| 349 case RequestContextType::SHARED_WORKER: | |
| 350 *out = content::REQUEST_CONTEXT_TYPE_SHARED_WORKER; | |
| 351 return true; | |
| 352 case RequestContextType::SUBRESOURCE: | |
| 353 *out = content::REQUEST_CONTEXT_TYPE_SUBRESOURCE; | |
| 354 return true; | |
| 355 case RequestContextType::STYLE: | |
| 356 *out = content::REQUEST_CONTEXT_TYPE_STYLE; | |
| 357 return true; | |
| 358 case RequestContextType::TRACK: | |
| 359 *out = content::REQUEST_CONTEXT_TYPE_TRACK; | |
| 360 return true; | |
| 361 case RequestContextType::VIDEO: | |
| 362 *out = content::REQUEST_CONTEXT_TYPE_VIDEO; | |
| 363 return true; | |
| 364 case RequestContextType::WORKER: | |
| 365 *out = content::REQUEST_CONTEXT_TYPE_WORKER; | |
| 366 return true; | |
| 367 case RequestContextType::XML_HTTP_REQUEST: | |
| 368 *out = content::REQUEST_CONTEXT_TYPE_XML_HTTP_REQUEST; | |
| 369 return true; | |
| 370 case RequestContextType::XSLT: | |
| 371 *out = content::REQUEST_CONTEXT_TYPE_XSLT; | |
| 372 return true; | |
| 373 } | |
| 374 | |
| 375 return false; | |
| 376 } | |
| 377 | |
| 378 ServiceWorkerFetchType | |
| 379 EnumTraits<ServiceWorkerFetchType, content::ServiceWorkerFetchType>::ToMojom( | |
| 380 content::ServiceWorkerFetchType input) { | |
| 381 switch (input) { | |
| 382 case content::ServiceWorkerFetchType::FETCH: | |
| 383 return ServiceWorkerFetchType::FETCH; | |
| 384 case content::ServiceWorkerFetchType::FOREIGN_FETCH: | |
| 385 return ServiceWorkerFetchType::FOREIGN_FETCH; | |
| 386 } | |
| 387 | |
| 388 NOTREACHED(); | |
| 389 return ServiceWorkerFetchType::FETCH; | |
| 390 } | |
| 391 | |
| 392 bool EnumTraits<ServiceWorkerFetchType, content::ServiceWorkerFetchType>:: | |
| 393 FromMojom(ServiceWorkerFetchType input, | |
| 394 content::ServiceWorkerFetchType* out) { | |
| 395 switch (input) { | |
| 396 case ServiceWorkerFetchType::FETCH: | |
| 397 *out = content::ServiceWorkerFetchType::FETCH; | |
| 398 return true; | |
| 399 case ServiceWorkerFetchType::FOREIGN_FETCH: | |
| 400 *out = content::ServiceWorkerFetchType::FOREIGN_FETCH; | |
| 401 return true; | |
| 402 } | |
| 403 | |
| 404 return false; | |
| 405 } | |
| 406 | |
| 407 void* StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 408 content::ServiceWorkerFetchRequest>:: | |
| 409 SetUpContext(const content::ServiceWorkerFetchRequest& request) { | |
| 410 ServiceWorkerFetchRequestStructTraitsContext* context = | |
| 411 new ServiceWorkerFetchRequestStructTraitsContext(); | |
| 412 context->headers.insert(request.headers.begin(), request.headers.end()); | |
| 413 | |
| 414 return context; | |
| 415 } | |
| 416 | |
| 417 void StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 418 content::ServiceWorkerFetchRequest>:: | |
| 419 TearDownContext(const content::ServiceWorkerFetchRequest& request, | |
| 420 void* context) { | |
| 421 delete static_cast<ServiceWorkerFetchRequestStructTraitsContext*>(context); | |
| 422 } | |
| 423 | |
| 424 const std::map<std::string, std::string>& | |
| 425 StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 426 content::ServiceWorkerFetchRequest>:: | |
| 427 headers(const content::ServiceWorkerFetchRequest& request, void* context) { | |
| 428 return static_cast<ServiceWorkerFetchRequestStructTraitsContext*>(context) | |
|
dcheng
2017/03/28 06:52:24
I'm OK with this to unblock things. Would you mind
Peter Beverloo
2017/03/28 14:07:53
There's some more interesting differences in these
| |
| 429 ->headers; | |
| 430 } | |
| 431 | |
| 432 bool StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 433 content::ServiceWorkerFetchRequest>:: | |
| 434 Read(blink::mojom::FetchAPIRequestDataView data, | |
| 435 content::ServiceWorkerFetchRequest* out) { | |
| 436 std::unordered_map<std::string, std::string> headers; | |
| 437 base::Optional<std::string> blob_uuid; | |
| 438 if (!data.ReadMode(&out->mode) || | |
| 439 !data.ReadRequestContextType(&out->request_context_type) || | |
| 440 !data.ReadFrameType(&out->frame_type) || !data.ReadUrl(&out->url) || | |
| 441 !data.ReadMethod(&out->method) || !data.ReadHeaders(&headers) || | |
| 442 !data.ReadBlobUuid(&blob_uuid) || !data.ReadReferrer(&out->referrer) || | |
| 443 !data.ReadCredentialsMode(&out->credentials_mode) || | |
| 444 !data.ReadRedirectMode(&out->redirect_mode) || | |
| 445 !data.ReadClientId(&out->client_id) || | |
| 446 !data.ReadFetchType(&out->fetch_type)) { | |
| 447 return false; | |
| 448 } | |
| 449 | |
| 450 out->is_main_resource_load = data.is_main_resource_load(); | |
| 451 out->headers.insert(headers.begin(), headers.end()); | |
| 452 if (blob_uuid) { | |
| 453 out->blob_uuid = blob_uuid.value(); | |
| 454 out->blob_size = data.blob_size(); | |
| 455 } | |
| 456 out->is_reload = data.is_reload(); | |
| 457 return true; | |
| 458 } | |
| 459 | |
| 460 } // namespace mojo | |
| OLD | NEW |