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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 #include "platform/network/HTTPParsers.h" | 71 #include "platform/network/HTTPParsers.h" |
72 #include "platform/network/NetworkLog.h" | 72 #include "platform/network/NetworkLog.h" |
73 #include "platform/network/ParsedContentType.h" | 73 #include "platform/network/ParsedContentType.h" |
74 #include "platform/network/ResourceError.h" | 74 #include "platform/network/ResourceError.h" |
75 #include "platform/network/ResourceRequest.h" | 75 #include "platform/network/ResourceRequest.h" |
76 #include "platform/weborigin/SecurityOrigin.h" | 76 #include "platform/weborigin/SecurityOrigin.h" |
77 #include "platform/weborigin/SecurityPolicy.h" | 77 #include "platform/weborigin/SecurityPolicy.h" |
78 #include "platform/weborigin/Suborigin.h" | 78 #include "platform/weborigin/Suborigin.h" |
79 #include "public/platform/WebURLRequest.h" | 79 #include "public/platform/WebURLRequest.h" |
80 #include "wtf/Assertions.h" | 80 #include "wtf/Assertions.h" |
| 81 #include "wtf/AutoReset.h" |
81 #include "wtf/StdLibExtras.h" | 82 #include "wtf/StdLibExtras.h" |
82 #include "wtf/text/CString.h" | 83 #include "wtf/text/CString.h" |
83 #include <memory> | 84 #include <memory> |
84 | 85 |
85 namespace blink { | 86 namespace blink { |
86 | 87 |
87 namespace { | 88 namespace { |
88 | 89 |
89 // This class protects the wrapper of the associated XMLHttpRequest object | 90 // This class protects the wrapper of the associated XMLHttpRequest object |
90 // via hasPendingActivity method which returns true if | 91 // via hasPendingActivity method which returns true if |
(...skipping 1506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1597 m_parsedResponse = true; | 1598 m_parsedResponse = true; |
1598 | 1599 |
1599 endLoading(); | 1600 endLoading(); |
1600 } | 1601 } |
1601 | 1602 |
1602 void XMLHttpRequest::endLoading() { | 1603 void XMLHttpRequest::endLoading() { |
1603 InspectorInstrumentation::didFinishXHRLoading(getExecutionContext(), this, | 1604 InspectorInstrumentation::didFinishXHRLoading(getExecutionContext(), this, |
1604 this, m_method, m_url); | 1605 this, m_method, m_url); |
1605 | 1606 |
1606 if (m_loader) { | 1607 if (m_loader) { |
1607 const bool hasError = m_error; | |
1608 // Set |m_error| in order to suppress the cancel notification (see | 1608 // Set |m_error| in order to suppress the cancel notification (see |
1609 // XMLHttpRequest::didFail). | 1609 // XMLHttpRequest::didFail). |
1610 m_error = true; | 1610 AutoReset<bool> scope(&m_error, true); |
1611 m_loader->cancel(); | 1611 m_loader.release()->cancel(); |
1612 m_error = hasError; | |
1613 m_loader = nullptr; | |
1614 } | 1612 } |
1615 | 1613 |
1616 m_sendFlag = false; | 1614 m_sendFlag = false; |
1617 changeState(kDone); | 1615 changeState(kDone); |
1618 | 1616 |
1619 if (!getExecutionContext() || !getExecutionContext()->isDocument() || | 1617 if (!getExecutionContext() || !getExecutionContext()->isDocument()) |
1620 !document() || !document()->frame() || !document()->frame()->page()) | |
1621 return; | 1618 return; |
1622 | 1619 |
1623 if (status() >= 200 && status() < 300) { | 1620 if (document() && document()->frame() && document()->frame()->page() && |
| 1621 FetchUtils::isSuccessfulStatusCode(status())) |
1624 document()->frame()->page()->chromeClient().ajaxSucceeded( | 1622 document()->frame()->page()->chromeClient().ajaxSucceeded( |
1625 document()->frame()); | 1623 document()->frame()); |
1626 } | |
1627 } | 1624 } |
1628 | 1625 |
1629 void XMLHttpRequest::didSendData(unsigned long long bytesSent, | 1626 void XMLHttpRequest::didSendData(unsigned long long bytesSent, |
1630 unsigned long long totalBytesToBeSent) { | 1627 unsigned long long totalBytesToBeSent) { |
1631 NETWORK_DVLOG(1) << this << " didSendData(" << bytesSent << ", " | 1628 NETWORK_DVLOG(1) << this << " didSendData(" << bytesSent << ", " |
1632 << totalBytesToBeSent << ")"; | 1629 << totalBytesToBeSent << ")"; |
1633 ScopedEventDispatchProtect protect(&m_eventDispatchRecursionLevel); | 1630 ScopedEventDispatchProtect protect(&m_eventDispatchRecursionLevel); |
1634 | 1631 |
1635 if (!m_upload) | 1632 if (!m_upload) |
1636 return; | 1633 return; |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1846 visitor->traceWrappers(m_responseDocument); | 1843 visitor->traceWrappers(m_responseDocument); |
1847 visitor->traceWrappers(m_responseArrayBuffer); | 1844 visitor->traceWrappers(m_responseArrayBuffer); |
1848 XMLHttpRequestEventTarget::traceWrappers(visitor); | 1845 XMLHttpRequestEventTarget::traceWrappers(visitor); |
1849 } | 1846 } |
1850 | 1847 |
1851 std::ostream& operator<<(std::ostream& ostream, const XMLHttpRequest* xhr) { | 1848 std::ostream& operator<<(std::ostream& ostream, const XMLHttpRequest* xhr) { |
1852 return ostream << "XMLHttpRequest " << static_cast<const void*>(xhr); | 1849 return ostream << "XMLHttpRequest " << static_cast<const void*>(xhr); |
1853 } | 1850 } |
1854 | 1851 |
1855 } // namespace blink | 1852 } // namespace blink |
OLD | NEW |