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 "platform/mojo/FetchAPIRequestStructTraits.h" | |
| 6 | |
| 7 #include "mojo/public/cpp/bindings/map_traits_wtf_hash_map.h" | |
| 8 #include "mojo/public/cpp/bindings/string_traits_wtf.h" | |
| 9 #include "platform/blob/BlobData.h" | |
| 10 #include "platform/mojo/KURLStructTraits.h" | |
| 11 #include "platform/mojo/ReferrerStructTraits.h" | |
| 12 #include "platform/weborigin/Referrer.h" | |
| 13 #include "public/platform/WebReferrerPolicy.h" | |
| 14 | |
| 15 namespace mojo { | |
| 16 | |
| 17 namespace { | |
| 18 | |
| 19 // Struct traits context for the FetchAPIRequest type. Since getters are invoked | |
| 20 // twice when serializing the type, this reduces the load for heavy members. | |
| 21 struct FetchAPIRequestStructTraitsContext { | |
| 22 FetchAPIRequestStructTraitsContext() = default; | |
| 23 ~FetchAPIRequestStructTraitsContext() = default; | |
| 24 | |
| 25 WTF::HashMap<WTF::String, WTF::String> headers; | |
| 26 }; | |
| 27 | |
| 28 } // namespace | |
| 29 | |
| 30 using blink::mojom::FetchCredentialsMode; | |
| 31 using blink::mojom::FetchRedirectMode; | |
| 32 using blink::mojom::FetchRequestMode; | |
| 33 using blink::mojom::RequestContextFrameType; | |
| 34 using blink::mojom::RequestContextType; | |
| 35 | |
| 36 FetchCredentialsMode | |
| 37 EnumTraits<FetchCredentialsMode, blink::WebURLRequest::FetchCredentialsMode>:: | |
| 38 ToMojom(blink::WebURLRequest::FetchCredentialsMode input) { | |
| 39 switch (input) { | |
| 40 case blink::WebURLRequest::FetchCredentialsModeOmit: | |
| 41 return FetchCredentialsMode::OMIT; | |
| 42 case blink::WebURLRequest::FetchCredentialsModeSameOrigin: | |
| 43 return FetchCredentialsMode::SAME_ORIGIN; | |
| 44 case blink::WebURLRequest::FetchCredentialsModeInclude: | |
| 45 return FetchCredentialsMode::INCLUDE; | |
| 46 case blink::WebURLRequest::FetchCredentialsModePassword: | |
| 47 return FetchCredentialsMode::PASSWORD; | |
| 48 } | |
| 49 | |
| 50 NOTREACHED(); | |
| 51 return FetchCredentialsMode::OMIT; | |
| 52 } | |
| 53 | |
| 54 bool EnumTraits<FetchCredentialsMode, | |
| 55 blink::WebURLRequest::FetchCredentialsMode>:: | |
| 56 FromMojom(FetchCredentialsMode input, | |
| 57 blink::WebURLRequest::FetchCredentialsMode* out) { | |
| 58 switch (input) { | |
| 59 case FetchCredentialsMode::OMIT: | |
| 60 *out = blink::WebURLRequest::FetchCredentialsModeOmit; | |
| 61 return true; | |
| 62 case FetchCredentialsMode::SAME_ORIGIN: | |
| 63 *out = blink::WebURLRequest::FetchCredentialsModeSameOrigin; | |
| 64 return true; | |
| 65 case FetchCredentialsMode::INCLUDE: | |
| 66 *out = blink::WebURLRequest::FetchCredentialsModeInclude; | |
| 67 return true; | |
| 68 case FetchCredentialsMode::PASSWORD: | |
| 69 *out = blink::WebURLRequest::FetchCredentialsModePassword; | |
| 70 return true; | |
| 71 } | |
| 72 | |
| 73 return false; | |
| 74 } | |
| 75 | |
| 76 FetchRedirectMode | |
| 77 EnumTraits<FetchRedirectMode, blink::WebURLRequest::FetchRedirectMode>::ToMojom( | |
| 78 blink::WebURLRequest::FetchRedirectMode input) { | |
| 79 switch (input) { | |
| 80 case blink::WebURLRequest::FetchRedirectModeFollow: | |
| 81 return FetchRedirectMode::FOLLOW; | |
| 82 case blink::WebURLRequest::FetchRedirectModeError: | |
| 83 return FetchRedirectMode::ERROR; | |
| 84 case blink::WebURLRequest::FetchRedirectModeManual: | |
| 85 return FetchRedirectMode::MANUAL; | |
| 86 } | |
| 87 | |
| 88 NOTREACHED(); | |
| 89 return FetchRedirectMode::ERROR; | |
| 90 } | |
| 91 | |
| 92 bool EnumTraits<FetchRedirectMode, blink::WebURLRequest::FetchRedirectMode>:: | |
| 93 FromMojom(FetchRedirectMode input, | |
| 94 blink::WebURLRequest::FetchRedirectMode* out) { | |
| 95 switch (input) { | |
| 96 case FetchRedirectMode::FOLLOW: | |
| 97 *out = blink::WebURLRequest::FetchRedirectModeFollow; | |
| 98 return true; | |
| 99 case FetchRedirectMode::ERROR: | |
| 100 *out = blink::WebURLRequest::FetchRedirectModeError; | |
| 101 return true; | |
| 102 case FetchRedirectMode::MANUAL: | |
| 103 *out = blink::WebURLRequest::FetchRedirectModeManual; | |
| 104 return true; | |
| 105 } | |
| 106 | |
| 107 return false; | |
| 108 } | |
| 109 | |
| 110 FetchRequestMode | |
| 111 EnumTraits<FetchRequestMode, blink::WebURLRequest::FetchRequestMode>::ToMojom( | |
| 112 blink::WebURLRequest::FetchRequestMode input) { | |
| 113 switch (input) { | |
| 114 case blink::WebURLRequest::FetchRequestModeSameOrigin: | |
| 115 return FetchRequestMode::SAME_ORIGIN; | |
| 116 case blink::WebURLRequest::FetchRequestModeNoCORS: | |
| 117 return FetchRequestMode::NO_CORS; | |
| 118 case blink::WebURLRequest::FetchRequestModeCORS: | |
| 119 return FetchRequestMode::CORS; | |
| 120 case blink::WebURLRequest::FetchRequestModeCORSWithForcedPreflight: | |
| 121 return FetchRequestMode::CORS_WITH_FORCED_PREFLIGHT; | |
| 122 case blink::WebURLRequest::FetchRequestModeNavigate: | |
| 123 return FetchRequestMode::NAVIGATE; | |
| 124 } | |
| 125 | |
| 126 NOTREACHED(); | |
| 127 return FetchRequestMode::NO_CORS; | |
| 128 } | |
| 129 | |
| 130 bool EnumTraits<FetchRequestMode, blink::WebURLRequest::FetchRequestMode>:: | |
| 131 FromMojom(FetchRequestMode input, | |
| 132 blink::WebURLRequest::FetchRequestMode* out) { | |
| 133 switch (input) { | |
| 134 case FetchRequestMode::SAME_ORIGIN: | |
| 135 *out = blink::WebURLRequest::FetchRequestModeSameOrigin; | |
| 136 return true; | |
| 137 case FetchRequestMode::NO_CORS: | |
| 138 *out = blink::WebURLRequest::FetchRequestModeNoCORS; | |
| 139 return true; | |
| 140 case FetchRequestMode::CORS: | |
| 141 *out = blink::WebURLRequest::FetchRequestModeCORS; | |
| 142 return true; | |
| 143 case FetchRequestMode::CORS_WITH_FORCED_PREFLIGHT: | |
| 144 *out = blink::WebURLRequest::FetchRequestModeCORSWithForcedPreflight; | |
| 145 return true; | |
| 146 case FetchRequestMode::NAVIGATE: | |
| 147 *out = blink::WebURLRequest::FetchRequestModeNavigate; | |
| 148 return true; | |
| 149 } | |
| 150 | |
| 151 return false; | |
| 152 } | |
| 153 | |
| 154 RequestContextFrameType | |
| 155 EnumTraits<RequestContextFrameType, blink::WebURLRequest::FrameType>::ToMojom( | |
| 156 blink::WebURLRequest::FrameType input) { | |
| 157 switch (input) { | |
| 158 case blink::WebURLRequest::FrameTypeAuxiliary: | |
| 159 return RequestContextFrameType::AUXILIARY; | |
| 160 case blink::WebURLRequest::FrameTypeNested: | |
| 161 return RequestContextFrameType::NESTED; | |
| 162 case blink::WebURLRequest::FrameTypeNone: | |
| 163 return RequestContextFrameType::NONE; | |
| 164 case blink::WebURLRequest::FrameTypeTopLevel: | |
| 165 return RequestContextFrameType::TOP_LEVEL; | |
| 166 } | |
| 167 | |
| 168 NOTREACHED(); | |
| 169 return RequestContextFrameType::NONE; | |
| 170 } | |
| 171 | |
| 172 bool EnumTraits<RequestContextFrameType, blink::WebURLRequest::FrameType>:: | |
| 173 FromMojom(RequestContextFrameType input, | |
| 174 blink::WebURLRequest::FrameType* out) { | |
| 175 switch (input) { | |
| 176 case RequestContextFrameType::AUXILIARY: | |
| 177 *out = blink::WebURLRequest::FrameTypeAuxiliary; | |
| 178 return true; | |
| 179 case RequestContextFrameType::NESTED: | |
| 180 *out = blink::WebURLRequest::FrameTypeNested; | |
| 181 return true; | |
| 182 case RequestContextFrameType::NONE: | |
| 183 *out = blink::WebURLRequest::FrameTypeNone; | |
| 184 return true; | |
| 185 case RequestContextFrameType::TOP_LEVEL: | |
| 186 *out = blink::WebURLRequest::FrameTypeTopLevel; | |
| 187 return true; | |
| 188 } | |
| 189 | |
| 190 return false; | |
| 191 } | |
| 192 | |
| 193 RequestContextType | |
| 194 EnumTraits<RequestContextType, blink::WebURLRequest::RequestContext>::ToMojom( | |
| 195 blink::WebURLRequest::RequestContext input) { | |
| 196 switch (input) { | |
| 197 case blink::WebURLRequest::RequestContextUnspecified: | |
| 198 return RequestContextType::UNSPECIFIED; | |
| 199 case blink::WebURLRequest::RequestContextAudio: | |
| 200 return RequestContextType::AUDIO; | |
| 201 case blink::WebURLRequest::RequestContextBeacon: | |
| 202 return RequestContextType::BEACON; | |
| 203 case blink::WebURLRequest::RequestContextCSPReport: | |
| 204 return RequestContextType::CSP_REPORT; | |
| 205 case blink::WebURLRequest::RequestContextDownload: | |
| 206 return RequestContextType::DOWNLOAD; | |
| 207 case blink::WebURLRequest::RequestContextEmbed: | |
| 208 return RequestContextType::EMBED; | |
| 209 case blink::WebURLRequest::RequestContextEventSource: | |
| 210 return RequestContextType::EVENT_SOURCE; | |
| 211 case blink::WebURLRequest::RequestContextFavicon: | |
| 212 return RequestContextType::FAVICON; | |
| 213 case blink::WebURLRequest::RequestContextFetch: | |
| 214 return RequestContextType::FETCH; | |
| 215 case blink::WebURLRequest::RequestContextFont: | |
| 216 return RequestContextType::FONT; | |
| 217 case blink::WebURLRequest::RequestContextForm: | |
| 218 return RequestContextType::FORM; | |
| 219 case blink::WebURLRequest::RequestContextFrame: | |
| 220 return RequestContextType::FRAME; | |
| 221 case blink::WebURLRequest::RequestContextHyperlink: | |
| 222 return RequestContextType::HYPERLINK; | |
| 223 case blink::WebURLRequest::RequestContextIframe: | |
| 224 return RequestContextType::IFRAME; | |
| 225 case blink::WebURLRequest::RequestContextImage: | |
| 226 return RequestContextType::IMAGE; | |
| 227 case blink::WebURLRequest::RequestContextImageSet: | |
| 228 return RequestContextType::IMAGE_SET; | |
| 229 case blink::WebURLRequest::RequestContextImport: | |
| 230 return RequestContextType::IMPORT; | |
| 231 case blink::WebURLRequest::RequestContextInternal: | |
| 232 return RequestContextType::INTERNAL; | |
| 233 case blink::WebURLRequest::RequestContextLocation: | |
| 234 return RequestContextType::LOCATION; | |
| 235 case blink::WebURLRequest::RequestContextManifest: | |
| 236 return RequestContextType::MANIFEST; | |
| 237 case blink::WebURLRequest::RequestContextObject: | |
| 238 return RequestContextType::OBJECT; | |
| 239 case blink::WebURLRequest::RequestContextPing: | |
| 240 return RequestContextType::PING; | |
| 241 case blink::WebURLRequest::RequestContextPlugin: | |
| 242 return RequestContextType::PLUGIN; | |
| 243 case blink::WebURLRequest::RequestContextPrefetch: | |
| 244 return RequestContextType::PREFETCH; | |
| 245 case blink::WebURLRequest::RequestContextScript: | |
| 246 return RequestContextType::SCRIPT; | |
| 247 case blink::WebURLRequest::RequestContextServiceWorker: | |
| 248 return RequestContextType::SERVICE_WORKER; | |
| 249 case blink::WebURLRequest::RequestContextSharedWorker: | |
| 250 return RequestContextType::SHARED_WORKER; | |
| 251 case blink::WebURLRequest::RequestContextSubresource: | |
| 252 return RequestContextType::SUBRESOURCE; | |
| 253 case blink::WebURLRequest::RequestContextStyle: | |
| 254 return RequestContextType::STYLE; | |
| 255 case blink::WebURLRequest::RequestContextTrack: | |
| 256 return RequestContextType::TRACK; | |
| 257 case blink::WebURLRequest::RequestContextVideo: | |
| 258 return RequestContextType::VIDEO; | |
| 259 case blink::WebURLRequest::RequestContextWorker: | |
| 260 return RequestContextType::WORKER; | |
| 261 case blink::WebURLRequest::RequestContextXMLHttpRequest: | |
| 262 return RequestContextType::XML_HTTP_REQUEST; | |
| 263 case blink::WebURLRequest::RequestContextXSLT: | |
| 264 return RequestContextType::XSLT; | |
| 265 } | |
| 266 | |
| 267 NOTREACHED(); | |
| 268 return RequestContextType::UNSPECIFIED; | |
| 269 } | |
| 270 | |
| 271 bool EnumTraits<RequestContextType, blink::WebURLRequest::RequestContext>:: | |
| 272 FromMojom(RequestContextType input, | |
| 273 blink::WebURLRequest::RequestContext* out) { | |
| 274 switch (input) { | |
| 275 case RequestContextType::UNSPECIFIED: | |
| 276 *out = blink::WebURLRequest::RequestContextUnspecified; | |
| 277 return true; | |
| 278 case RequestContextType::AUDIO: | |
| 279 *out = blink::WebURLRequest::RequestContextAudio; | |
| 280 return true; | |
| 281 case RequestContextType::BEACON: | |
| 282 *out = blink::WebURLRequest::RequestContextBeacon; | |
| 283 return true; | |
| 284 case RequestContextType::CSP_REPORT: | |
| 285 *out = blink::WebURLRequest::RequestContextCSPReport; | |
| 286 return true; | |
| 287 case RequestContextType::DOWNLOAD: | |
| 288 *out = blink::WebURLRequest::RequestContextDownload; | |
| 289 return true; | |
| 290 case RequestContextType::EMBED: | |
| 291 *out = blink::WebURLRequest::RequestContextEmbed; | |
| 292 return true; | |
| 293 case RequestContextType::EVENT_SOURCE: | |
| 294 *out = blink::WebURLRequest::RequestContextEventSource; | |
| 295 return true; | |
| 296 case RequestContextType::FAVICON: | |
| 297 *out = blink::WebURLRequest::RequestContextFavicon; | |
| 298 return true; | |
| 299 case RequestContextType::FETCH: | |
| 300 *out = blink::WebURLRequest::RequestContextFetch; | |
| 301 return true; | |
| 302 case RequestContextType::FONT: | |
| 303 *out = blink::WebURLRequest::RequestContextFont; | |
| 304 return true; | |
| 305 case RequestContextType::FORM: | |
| 306 *out = blink::WebURLRequest::RequestContextForm; | |
| 307 return true; | |
| 308 case RequestContextType::FRAME: | |
| 309 *out = blink::WebURLRequest::RequestContextFrame; | |
| 310 return true; | |
| 311 case RequestContextType::HYPERLINK: | |
| 312 *out = blink::WebURLRequest::RequestContextHyperlink; | |
| 313 return true; | |
| 314 case RequestContextType::IFRAME: | |
| 315 *out = blink::WebURLRequest::RequestContextIframe; | |
| 316 return true; | |
| 317 case RequestContextType::IMAGE: | |
| 318 *out = blink::WebURLRequest::RequestContextImage; | |
| 319 return true; | |
| 320 case RequestContextType::IMAGE_SET: | |
| 321 *out = blink::WebURLRequest::RequestContextImageSet; | |
| 322 return true; | |
| 323 case RequestContextType::IMPORT: | |
| 324 *out = blink::WebURLRequest::RequestContextImport; | |
| 325 return true; | |
| 326 case RequestContextType::INTERNAL: | |
| 327 *out = blink::WebURLRequest::RequestContextInternal; | |
| 328 return true; | |
| 329 case RequestContextType::LOCATION: | |
| 330 *out = blink::WebURLRequest::RequestContextLocation; | |
| 331 return true; | |
| 332 case RequestContextType::MANIFEST: | |
| 333 *out = blink::WebURLRequest::RequestContextManifest; | |
| 334 return true; | |
| 335 case RequestContextType::OBJECT: | |
| 336 *out = blink::WebURLRequest::RequestContextObject; | |
| 337 return true; | |
| 338 case RequestContextType::PING: | |
| 339 *out = blink::WebURLRequest::RequestContextPing; | |
| 340 return true; | |
| 341 case RequestContextType::PLUGIN: | |
| 342 *out = blink::WebURLRequest::RequestContextPlugin; | |
| 343 return true; | |
| 344 case RequestContextType::PREFETCH: | |
| 345 *out = blink::WebURLRequest::RequestContextPrefetch; | |
| 346 return true; | |
| 347 case RequestContextType::SCRIPT: | |
| 348 *out = blink::WebURLRequest::RequestContextScript; | |
| 349 return true; | |
| 350 case RequestContextType::SERVICE_WORKER: | |
| 351 *out = blink::WebURLRequest::RequestContextServiceWorker; | |
| 352 return true; | |
| 353 case RequestContextType::SHARED_WORKER: | |
| 354 *out = blink::WebURLRequest::RequestContextSharedWorker; | |
| 355 return true; | |
| 356 case RequestContextType::SUBRESOURCE: | |
| 357 *out = blink::WebURLRequest::RequestContextSubresource; | |
| 358 return true; | |
| 359 case RequestContextType::STYLE: | |
| 360 *out = blink::WebURLRequest::RequestContextStyle; | |
| 361 return true; | |
| 362 case RequestContextType::TRACK: | |
| 363 *out = blink::WebURLRequest::RequestContextTrack; | |
| 364 return true; | |
| 365 case RequestContextType::VIDEO: | |
| 366 *out = blink::WebURLRequest::RequestContextVideo; | |
| 367 return true; | |
| 368 case RequestContextType::WORKER: | |
| 369 *out = blink::WebURLRequest::RequestContextWorker; | |
| 370 return true; | |
| 371 case RequestContextType::XML_HTTP_REQUEST: | |
| 372 *out = blink::WebURLRequest::RequestContextXMLHttpRequest; | |
| 373 return true; | |
| 374 case RequestContextType::XSLT: | |
| 375 *out = blink::WebURLRequest::RequestContextXSLT; | |
| 376 return true; | |
| 377 } | |
| 378 | |
| 379 return false; | |
| 380 } | |
| 381 | |
| 382 // static | |
| 383 void* StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 384 blink::WebServiceWorkerRequest>:: | |
| 385 SetUpContext(const blink::WebServiceWorkerRequest& request) { | |
| 386 FetchAPIRequestStructTraitsContext* context = | |
| 387 new FetchAPIRequestStructTraitsContext(); | |
| 388 for (const auto& pair : request.headers()) | |
| 389 context->headers.insert(pair.key, pair.value); | |
|
dcheng
2017/03/28 06:52:24
Ditto here with MapTraits, or possibly typemapping
Peter Beverloo
2017/03/28 14:07:53
I believe this is also covered by crbug.com/705972
| |
| 390 | |
| 391 return context; | |
| 392 } | |
| 393 | |
| 394 // static | |
| 395 void StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 396 blink::WebServiceWorkerRequest>:: | |
| 397 TearDownContext(const blink::WebServiceWorkerRequest& request, | |
| 398 void* context) { | |
| 399 delete static_cast<FetchAPIRequestStructTraitsContext*>(context); | |
| 400 } | |
| 401 | |
| 402 // static | |
| 403 blink::KURL StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 404 blink::WebServiceWorkerRequest>:: | |
| 405 url(const blink::WebServiceWorkerRequest& request) { | |
| 406 return request.url(); | |
| 407 } | |
| 408 | |
| 409 // static | |
| 410 WTF::String StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 411 blink::WebServiceWorkerRequest>:: | |
| 412 method(const blink::WebServiceWorkerRequest& request) { | |
| 413 return request.method(); | |
| 414 } | |
| 415 | |
| 416 // static | |
| 417 const WTF::HashMap<WTF::String, WTF::String>& | |
| 418 StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 419 blink::WebServiceWorkerRequest>:: | |
| 420 headers(const blink::WebServiceWorkerRequest& request, void* context) { | |
| 421 DCHECK(context); | |
| 422 return static_cast<FetchAPIRequestStructTraitsContext*>(context)->headers; | |
| 423 } | |
| 424 | |
| 425 // static | |
| 426 const blink::Referrer& StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 427 blink::WebServiceWorkerRequest>:: | |
| 428 referrer(const blink::WebServiceWorkerRequest& request) { | |
| 429 return request.referrer(); | |
| 430 } | |
| 431 | |
| 432 // static | |
| 433 WTF::String StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 434 blink::WebServiceWorkerRequest>:: | |
| 435 blob_uuid(const blink::WebServiceWorkerRequest& request) { | |
| 436 if (request.blobDataHandle()) | |
| 437 return request.blobDataHandle()->uuid(); | |
| 438 | |
| 439 return WTF::String(); | |
| 440 } | |
| 441 | |
| 442 // static | |
| 443 uint64_t StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 444 blink::WebServiceWorkerRequest>:: | |
| 445 blob_size(const blink::WebServiceWorkerRequest& request) { | |
| 446 if (request.blobDataHandle()) | |
| 447 return request.blobDataHandle()->size(); | |
| 448 | |
| 449 return 0; | |
| 450 } | |
| 451 | |
| 452 // static | |
| 453 WTF::String StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 454 blink::WebServiceWorkerRequest>:: | |
| 455 client_id(const blink::WebServiceWorkerRequest& request) { | |
| 456 return request.clientId(); | |
| 457 } | |
| 458 | |
| 459 // static | |
| 460 bool StructTraits<blink::mojom::FetchAPIRequestDataView, | |
| 461 blink::WebServiceWorkerRequest>:: | |
| 462 Read(blink::mojom::FetchAPIRequestDataView data, | |
| 463 blink::WebServiceWorkerRequest* out) { | |
| 464 blink::WebURLRequest::FetchRequestMode mode; | |
| 465 blink::WebURLRequest::RequestContext requestContext; | |
| 466 blink::WebURLRequest::FrameType frameType; | |
| 467 blink::KURL url; | |
| 468 WTF::String method; | |
| 469 WTF::HashMap<WTF::String, WTF::String> headers; | |
| 470 WTF::String blobUuid; | |
| 471 blink::Referrer referrer; | |
| 472 blink::WebURLRequest::FetchCredentialsMode credentialsMode; | |
| 473 blink::WebURLRequest::FetchRedirectMode redirectMode; | |
| 474 WTF::String clientId; | |
| 475 | |
| 476 if (!data.ReadMode(&mode) || !data.ReadRequestContextType(&requestContext) || | |
| 477 !data.ReadFrameType(&frameType) || !data.ReadUrl(&url) || | |
| 478 !data.ReadMethod(&method) || !data.ReadHeaders(&headers) || | |
| 479 !data.ReadBlobUuid(&blobUuid) || !data.ReadReferrer(&referrer) || | |
| 480 !data.ReadCredentialsMode(&credentialsMode) || | |
| 481 !data.ReadRedirectMode(&redirectMode) || !data.ReadClientId(&clientId)) { | |
| 482 return false; | |
| 483 } | |
| 484 | |
| 485 out->setMode(mode); | |
| 486 out->setIsMainResourceLoad(data.is_main_resource_load()); | |
| 487 out->setRequestContext(requestContext); | |
| 488 out->setFrameType(frameType); | |
| 489 out->setURL(url); | |
| 490 out->setMethod(method); | |
| 491 for (const auto& pair : headers) | |
| 492 out->setHeader(pair.key, pair.value); | |
| 493 out->setBlob(blobUuid, static_cast<long long>(data.blob_size())); | |
| 494 out->setReferrer(referrer.referrer, static_cast<blink::WebReferrerPolicy>( | |
| 495 referrer.referrerPolicy)); | |
| 496 out->setCredentialsMode(credentialsMode); | |
| 497 out->setRedirectMode(redirectMode); | |
| 498 out->setClientId(clientId); | |
| 499 out->setIsReload(data.is_reload()); | |
| 500 return true; | |
| 501 } | |
| 502 | |
| 503 } // namespace mojo | |
| OLD | NEW |