OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> | 3 * Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> |
4 * Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> | 4 * Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> |
5 * Copyright (C) 2008, 2011 Google Inc. All rights reserved. | 5 * Copyright (C) 2008, 2011 Google Inc. All rights reserved. |
6 * Copyright (C) 2012 Intel Corporation | 6 * Copyright (C) 2012 Intel Corporation |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 } | 184 } |
185 | 185 |
186 Member<XMLHttpRequest> m_xhr; | 186 Member<XMLHttpRequest> m_xhr; |
187 FileReaderLoader m_loader; | 187 FileReaderLoader m_loader; |
188 }; | 188 }; |
189 | 189 |
190 XMLHttpRequest* XMLHttpRequest::create(ScriptState* scriptState) | 190 XMLHttpRequest* XMLHttpRequest::create(ScriptState* scriptState) |
191 { | 191 { |
192 ExecutionContext* context = scriptState->executionContext(); | 192 ExecutionContext* context = scriptState->executionContext(); |
193 DOMWrapperWorld& world = scriptState->world(); | 193 DOMWrapperWorld& world = scriptState->world(); |
194 RefPtr<SecurityOrigin> securityOrigin = world.isIsolatedWorld() ? world.isol
atedWorldSecurityOrigin() : nullptr; | 194 RefPtr<SecurityOrigin> isolatedWorldSecurityOrigin = world.isIsolatedWorld()
? world.isolatedWorldSecurityOrigin() : nullptr; |
195 XMLHttpRequest* xmlHttpRequest = new XMLHttpRequest(context, securityOrigin)
; | 195 XMLHttpRequest* xmlHttpRequest = new XMLHttpRequest(context, isolatedWorldSe
curityOrigin); |
196 xmlHttpRequest->suspendIfNeeded(); | 196 xmlHttpRequest->suspendIfNeeded(); |
197 | 197 |
198 return xmlHttpRequest; | 198 return xmlHttpRequest; |
199 } | 199 } |
200 | 200 |
201 XMLHttpRequest* XMLHttpRequest::create(ExecutionContext* context) | 201 XMLHttpRequest* XMLHttpRequest::create(ExecutionContext* context) |
202 { | 202 { |
203 XMLHttpRequest* xmlHttpRequest = new XMLHttpRequest(context, nullptr); | 203 XMLHttpRequest* xmlHttpRequest = new XMLHttpRequest(context, nullptr); |
204 xmlHttpRequest->suspendIfNeeded(); | 204 xmlHttpRequest->suspendIfNeeded(); |
205 | 205 |
206 return xmlHttpRequest; | 206 return xmlHttpRequest; |
207 } | 207 } |
208 | 208 |
209 XMLHttpRequest::XMLHttpRequest(ExecutionContext* context, PassRefPtr<SecurityOri
gin> securityOrigin) | 209 XMLHttpRequest::XMLHttpRequest(ExecutionContext* context, PassRefPtr<SecurityOri
gin> isolatedWorldSecurityOrigin) |
210 : ActiveDOMObject(context) | 210 : ActiveDOMObject(context) |
211 , m_timeoutMilliseconds(0) | 211 , m_timeoutMilliseconds(0) |
212 , m_state(UNSENT) | 212 , m_state(UNSENT) |
213 , m_lengthDownloadedToFile(0) | 213 , m_lengthDownloadedToFile(0) |
214 , m_receivedLength(0) | 214 , m_receivedLength(0) |
215 , m_exceptionCode(0) | 215 , m_exceptionCode(0) |
216 , m_progressEventThrottle(XMLHttpRequestProgressEventThrottle::create(this)) | 216 , m_progressEventThrottle(XMLHttpRequestProgressEventThrottle::create(this)) |
217 , m_responseTypeCode(ResponseTypeDefault) | 217 , m_responseTypeCode(ResponseTypeDefault) |
218 , m_securityOrigin(securityOrigin) | 218 , m_isolatedWorldSecurityOrigin(isolatedWorldSecurityOrigin) |
219 , m_eventDispatchRecursionLevel(0) | 219 , m_eventDispatchRecursionLevel(0) |
220 , m_async(true) | 220 , m_async(true) |
221 , m_includeCredentials(false) | 221 , m_includeCredentials(false) |
222 , m_parsedResponse(false) | 222 , m_parsedResponse(false) |
223 , m_error(false) | 223 , m_error(false) |
224 , m_uploadEventsAllowed(true) | 224 , m_uploadEventsAllowed(true) |
225 , m_uploadComplete(false) | 225 , m_uploadComplete(false) |
226 , m_sameOriginRequest(true) | 226 , m_sameOriginRequest(true) |
227 , m_downloadingToFile(false) | 227 , m_downloadingToFile(false) |
228 , m_responseTextOverflow(false) | 228 , m_responseTextOverflow(false) |
(...skipping 10 matching lines...) Expand all Loading... |
239 } | 239 } |
240 | 240 |
241 Document* XMLHttpRequest::document() const | 241 Document* XMLHttpRequest::document() const |
242 { | 242 { |
243 ASSERT(executionContext()->isDocument()); | 243 ASSERT(executionContext()->isDocument()); |
244 return toDocument(executionContext()); | 244 return toDocument(executionContext()); |
245 } | 245 } |
246 | 246 |
247 SecurityOrigin* XMLHttpRequest::securityOrigin() const | 247 SecurityOrigin* XMLHttpRequest::securityOrigin() const |
248 { | 248 { |
249 return m_securityOrigin ? m_securityOrigin.get() : executionContext()->secur
ityOrigin(); | 249 return m_isolatedWorldSecurityOrigin ? m_isolatedWorldSecurityOrigin.get() :
executionContext()->securityOrigin(); |
250 } | 250 } |
251 | 251 |
252 XMLHttpRequest::State XMLHttpRequest::readyState() const | 252 XMLHttpRequest::State XMLHttpRequest::readyState() const |
253 { | 253 { |
254 return m_state; | 254 return m_state; |
255 } | 255 } |
256 | 256 |
257 ScriptString XMLHttpRequest::responseText(ExceptionState& exceptionState) | 257 ScriptString XMLHttpRequest::responseText(ExceptionState& exceptionState) |
258 { | 258 { |
259 if (m_responseTypeCode != ResponseTypeDefault && m_responseTypeCode != Respo
nseTypeText) { | 259 if (m_responseTypeCode != ResponseTypeDefault && m_responseTypeCode != Respo
nseTypeText) { |
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
886 // added after the request is started. | 886 // added after the request is started. |
887 m_uploadEventsAllowed = m_sameOriginRequest || uploadEvents || !FetchUtils::
isSimpleRequest(m_method, m_requestHeaders); | 887 m_uploadEventsAllowed = m_sameOriginRequest || uploadEvents || !FetchUtils::
isSimpleRequest(m_method, m_requestHeaders); |
888 | 888 |
889 ASSERT(executionContext()); | 889 ASSERT(executionContext()); |
890 ExecutionContext& executionContext = *this->executionContext(); | 890 ExecutionContext& executionContext = *this->executionContext(); |
891 | 891 |
892 ResourceRequest request(m_url); | 892 ResourceRequest request(m_url); |
893 request.setHTTPMethod(m_method); | 893 request.setHTTPMethod(m_method); |
894 request.setRequestContext(WebURLRequest::RequestContextXMLHttpRequest); | 894 request.setRequestContext(WebURLRequest::RequestContextXMLHttpRequest); |
895 request.setFetchCredentialsMode(m_includeCredentials ? WebURLRequest::FetchC
redentialsModeInclude : WebURLRequest::FetchCredentialsModeSameOrigin); | 895 request.setFetchCredentialsMode(m_includeCredentials ? WebURLRequest::FetchC
redentialsModeInclude : WebURLRequest::FetchCredentialsModeSameOrigin); |
| 896 request.setSkipServiceWorker(m_isolatedWorldSecurityOrigin); |
896 | 897 |
897 InspectorInstrumentation::willLoadXHR(&executionContext, this, this, m_metho
d, m_url, m_async, httpBody ? httpBody->deepCopy() : nullptr, m_requestHeaders,
m_includeCredentials); | 898 InspectorInstrumentation::willLoadXHR(&executionContext, this, this, m_metho
d, m_url, m_async, httpBody ? httpBody->deepCopy() : nullptr, m_requestHeaders,
m_includeCredentials); |
898 | 899 |
899 if (httpBody) { | 900 if (httpBody) { |
900 ASSERT(m_method != "GET"); | 901 ASSERT(m_method != "GET"); |
901 ASSERT(m_method != "HEAD"); | 902 ASSERT(m_method != "HEAD"); |
902 request.setHTTPBody(httpBody); | 903 request.setHTTPBody(httpBody); |
903 } | 904 } |
904 | 905 |
905 if (m_requestHeaders.size() > 0) | 906 if (m_requestHeaders.size() > 0) |
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1715 visitor->trace(m_responseDocumentParser); | 1716 visitor->trace(m_responseDocumentParser); |
1716 visitor->trace(m_progressEventThrottle); | 1717 visitor->trace(m_progressEventThrottle); |
1717 visitor->trace(m_upload); | 1718 visitor->trace(m_upload); |
1718 visitor->trace(m_blobLoader); | 1719 visitor->trace(m_blobLoader); |
1719 XMLHttpRequestEventTarget::trace(visitor); | 1720 XMLHttpRequestEventTarget::trace(visitor); |
1720 DocumentParserClient::trace(visitor); | 1721 DocumentParserClient::trace(visitor); |
1721 ActiveDOMObject::trace(visitor); | 1722 ActiveDOMObject::trace(visitor); |
1722 } | 1723 } |
1723 | 1724 |
1724 } // namespace blink | 1725 } // namespace blink |
OLD | NEW |