OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "config.h" | 5 #include "config.h" |
6 #include "modules/fetch/Request.h" | 6 #include "modules/fetch/Request.h" |
7 | 7 |
8 #include "bindings/core/v8/Dictionary.h" | 8 #include "bindings/core/v8/Dictionary.h" |
9 #include "core/dom/Document.h" | 9 #include "core/dom/Document.h" |
10 #include "core/dom/ExecutionContext.h" | 10 #include "core/dom/ExecutionContext.h" |
(...skipping 16 matching lines...) Expand all Loading... | |
27 request->setURL(original->url()); | 27 request->setURL(original->url()); |
28 request->setMethod(original->method()); | 28 request->setMethod(original->method()); |
29 request->setHeaderList(original->headerList()->clone()); | 29 request->setHeaderList(original->headerList()->clone()); |
30 request->setUnsafeRequestFlag(true); | 30 request->setUnsafeRequestFlag(true); |
31 request->setBlobDataHandle(original->blobDataHandle()); | 31 request->setBlobDataHandle(original->blobDataHandle()); |
32 // FIXME: Set client. | 32 // FIXME: Set client. |
33 request->setOrigin(SecurityOrigin::create(context->url())); | 33 request->setOrigin(SecurityOrigin::create(context->url())); |
34 // FIXME: Set ForceOriginHeaderFlag. | 34 // FIXME: Set ForceOriginHeaderFlag. |
35 request->setSameOriginDataURLFlag(true); | 35 request->setSameOriginDataURLFlag(true); |
36 request->mutableReferrer()->setClient(); | 36 request->mutableReferrer()->setClient(); |
37 request->setContext(WebURLRequest::RequestContextFetch); | 37 request->setContext(original->context()); |
hiroshige
2015/04/07 03:56:11
Should this be WebURLRequest::RequestContextUnspec
shiva.jm
2015/04/09 09:16:22
I think we no need to set the context here, it wil
hiroshige
2015/04/09 17:43:21
Then we have to remove the line of
shiva.jm
2015/04/10 09:27:10
The call to setContext() should be present here, n
hiroshige
2015/04/10 11:24:23
I still think we must NOT set context to |original
| |
38 request->setMode(original->mode()); | 38 request->setMode(original->mode()); |
39 request->setCredentials(original->credentials()); | 39 request->setCredentials(original->credentials()); |
40 // FIXME: Set cache mode. | 40 // FIXME: Set cache mode. |
41 return request; | 41 return request; |
42 } | 42 } |
43 | 43 |
44 Request* Request::createRequestWithRequestOrString(ExecutionContext* context, Re quest* inputRequest, const String& inputString, const RequestInit& init, Excepti onState& exceptionState) | 44 Request* Request::createRequestWithRequestOrString(ExecutionContext* context, Re quest* inputRequest, const String& inputString, const RequestInit& init, Excepti onState& exceptionState) |
45 { | 45 { |
46 // "1. If input is a Request object, run these substeps:" | 46 // "1. If input is a Request object, run these substeps:" |
47 if (inputRequest) { | 47 if (inputRequest) { |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
305 case WebURLRequest::FetchRequestModeNoCORS: | 305 case WebURLRequest::FetchRequestModeNoCORS: |
306 return "no-cors"; | 306 return "no-cors"; |
307 case WebURLRequest::FetchRequestModeCORS: | 307 case WebURLRequest::FetchRequestModeCORS: |
308 case WebURLRequest::FetchRequestModeCORSWithForcedPreflight: | 308 case WebURLRequest::FetchRequestModeCORSWithForcedPreflight: |
309 return "cors"; | 309 return "cors"; |
310 } | 310 } |
311 ASSERT_NOT_REACHED(); | 311 ASSERT_NOT_REACHED(); |
312 return ""; | 312 return ""; |
313 } | 313 } |
314 | 314 |
315 String Request::context() const | |
hiroshige
2015/04/07 03:56:11
Move context() above referrer() to match the order
shiva.jm
2015/04/09 09:16:22
Done.
| |
316 { | |
317 // "The context attribute's getter must return request's context" | |
318 switch (m_request->context()) { | |
319 case WebURLRequest::RequestContextUnspecified: | |
320 return ""; | |
321 case WebURLRequest::RequestContextAudio: | |
322 return "audio"; | |
323 case WebURLRequest::RequestContextBeacon: | |
324 return "beacon"; | |
325 case WebURLRequest::RequestContextCSPReport: | |
326 return "cspreport"; | |
327 case WebURLRequest::RequestContextDownload: | |
328 return "download"; | |
329 case WebURLRequest::RequestContextEmbed: | |
330 return "embed"; | |
331 case WebURLRequest::RequestContextEventSource: | |
332 return "eventsource"; | |
333 case WebURLRequest::RequestContextFavicon: | |
334 return "favicon"; | |
335 case WebURLRequest::RequestContextFetch: | |
336 return "fetch"; | |
337 case WebURLRequest::RequestContextFont: | |
338 return "font"; | |
339 case WebURLRequest::RequestContextForm: | |
340 return "form"; | |
341 case WebURLRequest::RequestContextFrame: | |
342 return "frame"; | |
343 case WebURLRequest::RequestContextHyperlink: | |
344 return "hyperlink"; | |
345 case WebURLRequest::RequestContextIframe: | |
346 return "iframe"; | |
347 case WebURLRequest::RequestContextImage: | |
348 return "image"; | |
349 case WebURLRequest::RequestContextImageSet: | |
350 return "imageset"; | |
351 case WebURLRequest::RequestContextImport: | |
352 return "import"; | |
353 case WebURLRequest::RequestContextInternal: | |
354 return "internal"; | |
355 case WebURLRequest::RequestContextLocation: | |
356 return "location"; | |
357 case WebURLRequest::RequestContextManifest: | |
358 return "manifest"; | |
359 case WebURLRequest::RequestContextObject: | |
360 return "object"; | |
361 case WebURLRequest::RequestContextPing: | |
362 return "ping"; | |
363 case WebURLRequest::RequestContextPlugin: | |
364 return "plugin"; | |
365 case WebURLRequest::RequestContextPrefetch: | |
366 return "prefetch"; | |
367 case WebURLRequest::RequestContextScript: | |
368 return "script"; | |
369 case WebURLRequest::RequestContextServiceWorker: | |
370 return "serviceworker"; | |
371 case WebURLRequest::RequestContextSharedWorker: | |
372 return "sharedworker"; | |
373 case WebURLRequest::RequestContextSubresource: | |
374 return "subresource"; | |
375 case WebURLRequest::RequestContextStyle: | |
376 return "style"; | |
377 case WebURLRequest::RequestContextTrack: | |
378 return "track"; | |
379 case WebURLRequest::RequestContextVideo: | |
380 return "video"; | |
381 case WebURLRequest::RequestContextWorker: | |
382 return "worker"; | |
383 case WebURLRequest::RequestContextXMLHttpRequest: | |
384 return "xmlhttprequest"; | |
385 case WebURLRequest::RequestContextXSLT: | |
386 return "xslt"; | |
387 } | |
388 ASSERT_NOT_REACHED(); | |
389 return ""; | |
390 } | |
391 | |
315 String Request::credentials() const | 392 String Request::credentials() const |
316 { | 393 { |
317 // "The credentials attribute's getter must return the value corresponding | 394 // "The credentials attribute's getter must return the value corresponding |
318 // to the first matching statement, switching on request's credentials | 395 // to the first matching statement, switching on request's credentials |
319 // mode:" | 396 // mode:" |
320 switch (m_request->credentials()) { | 397 switch (m_request->credentials()) { |
321 case WebURLRequest::FetchCredentialsModeOmit: | 398 case WebURLRequest::FetchCredentialsModeOmit: |
322 return "omit"; | 399 return "omit"; |
323 case WebURLRequest::FetchCredentialsModeSameOrigin: | 400 case WebURLRequest::FetchCredentialsModeSameOrigin: |
324 return "same-origin"; | 401 return "same-origin"; |
(...skipping 22 matching lines...) Expand all Loading... | |
347 FetchRequestData* Request::passRequestData() | 424 FetchRequestData* Request::passRequestData() |
348 { | 425 { |
349 ASSERT(!bodyUsed()); | 426 ASSERT(!bodyUsed()); |
350 setBodyUsed(); | 427 setBodyUsed(); |
351 return m_request->pass(); | 428 return m_request->pass(); |
352 } | 429 } |
353 | 430 |
354 void Request::populateWebServiceWorkerRequest(WebServiceWorkerRequest& webReques t) const | 431 void Request::populateWebServiceWorkerRequest(WebServiceWorkerRequest& webReques t) const |
355 { | 432 { |
356 webRequest.setMethod(method()); | 433 webRequest.setMethod(method()); |
434 webRequest.setRequestContext(m_request->context()); | |
357 // This strips off the fragment part. | 435 // This strips off the fragment part. |
358 webRequest.setURL(url()); | 436 webRequest.setURL(url()); |
359 | 437 |
360 const FetchHeaderList* headerList = m_headers->headerList(); | 438 const FetchHeaderList* headerList = m_headers->headerList(); |
361 for (size_t i = 0, size = headerList->size(); i < size; ++i) { | 439 for (size_t i = 0, size = headerList->size(); i < size; ++i) { |
362 const FetchHeaderList::Header& header = headerList->entry(i); | 440 const FetchHeaderList::Header& header = headerList->entry(i); |
363 webRequest.appendHeader(header.first, header.second); | 441 webRequest.appendHeader(header.first, header.second); |
364 } | 442 } |
365 | 443 |
366 webRequest.setReferrer(m_request->referrer().referrer().referrer, static_cas t<WebReferrerPolicy>(m_request->referrer().referrer().referrerPolicy)); | 444 webRequest.setReferrer(m_request->referrer().referrer().referrer, static_cas t<WebReferrerPolicy>(m_request->referrer().referrer().referrerPolicy)); |
(...skipping 28 matching lines...) Expand all Loading... | |
395 } | 473 } |
396 | 474 |
397 DEFINE_TRACE(Request) | 475 DEFINE_TRACE(Request) |
398 { | 476 { |
399 Body::trace(visitor); | 477 Body::trace(visitor); |
400 visitor->trace(m_request); | 478 visitor->trace(m_request); |
401 visitor->trace(m_headers); | 479 visitor->trace(m_headers); |
402 } | 480 } |
403 | 481 |
404 } // namespace blink | 482 } // namespace blink |
OLD | NEW |