Chromium Code Reviews| 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 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 754 | 754 |
| 755 // ThreadableLoader::create can return null here, for example if we're n o longer attached to a page. | 755 // ThreadableLoader::create can return null here, for example if we're n o longer attached to a page. |
| 756 // This is true while running onunload handlers. | 756 // This is true while running onunload handlers. |
| 757 // FIXME: Maybe we need to be able to send XMLHttpRequests from onunload , <http://bugs.webkit.org/show_bug.cgi?id=10904>. | 757 // FIXME: Maybe we need to be able to send XMLHttpRequests from onunload , <http://bugs.webkit.org/show_bug.cgi?id=10904>. |
| 758 // FIXME: Maybe create() can return null for other reasons too? | 758 // FIXME: Maybe create() can return null for other reasons too? |
| 759 m_loader = ThreadableLoader::create(scriptExecutionContext(), this, requ est, options); | 759 m_loader = ThreadableLoader::create(scriptExecutionContext(), this, requ est, options); |
| 760 if (m_loader) { | 760 if (m_loader) { |
| 761 // Neither this object nor the JavaScript wrapper should be deleted while | 761 // Neither this object nor the JavaScript wrapper should be deleted while |
| 762 // a request is in progress because we need to keep the listeners al ive, | 762 // a request is in progress because we need to keep the listeners al ive, |
| 763 // and they are referenced by the JavaScript wrapper. | 763 // and they are referenced by the JavaScript wrapper. |
| 764 setPendingActivity(this); | 764 if (!hasPendingActivity()) |
|
haraken
2013/08/14 01:30:59
I'm not sure if this is a right fix. If send() is
kouhei (in TOK)
2013/08/14 02:30:09
There should not be a pending activity at this poi
| |
| 765 setPendingActivity(this); | |
| 765 } | 766 } |
| 766 } else { | 767 } else { |
| 767 request.setPriority(ResourceLoadPriorityVeryHigh); | 768 request.setPriority(ResourceLoadPriorityVeryHigh); |
| 768 InspectorInstrumentation::willLoadXHRSynchronously(scriptExecutionContex t()); | 769 InspectorInstrumentation::willLoadXHRSynchronously(scriptExecutionContex t()); |
| 769 ThreadableLoader::loadResourceSynchronously(scriptExecutionContext(), re quest, *this, options); | 770 ThreadableLoader::loadResourceSynchronously(scriptExecutionContext(), re quest, *this, options); |
| 770 InspectorInstrumentation::didLoadXHRSynchronously(scriptExecutionContext ()); | 771 InspectorInstrumentation::didLoadXHRSynchronously(scriptExecutionContext ()); |
| 771 } | 772 } |
| 772 | 773 |
| 773 if (!m_exceptionCode && m_error) | 774 if (!m_exceptionCode && m_error) |
| 774 m_exceptionCode = NetworkError; | 775 m_exceptionCode = NetworkError; |
| 775 if (m_exceptionCode) | 776 if (m_exceptionCode) |
| 776 es.throwDOMException(m_exceptionCode); | 777 es.throwDOMException(m_exceptionCode); |
| 777 } | 778 } |
| 778 | 779 |
| 779 void XMLHttpRequest::abort() | 780 void XMLHttpRequest::abort() |
| 780 { | 781 { |
| 781 // internalAbort() calls dropProtection(), which may release the last refere nce. | |
| 782 RefPtr<XMLHttpRequest> protect(this); | |
| 783 | |
| 784 bool sendFlag = m_loader; | 782 bool sendFlag = m_loader; |
| 785 | 783 |
| 786 internalAbort(); | 784 internalAbort(); |
| 787 | 785 |
| 788 clearResponseBuffers(); | 786 clearResponseBuffers(); |
| 789 | 787 |
| 790 // Clear headers as required by the spec | 788 // Clear headers as required by the spec |
| 791 m_requestHeaders.clear(); | 789 m_requestHeaders.clear(); |
| 792 | 790 |
| 793 if ((m_state <= OPENED && !sendFlag) || m_state == DONE) | 791 if ((m_state <= OPENED && !sendFlag) || m_state == DONE) |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1250 { | 1248 { |
| 1251 return &m_eventTargetData; | 1249 return &m_eventTargetData; |
| 1252 } | 1250 } |
| 1253 | 1251 |
| 1254 EventTargetData* XMLHttpRequest::ensureEventTargetData() | 1252 EventTargetData* XMLHttpRequest::ensureEventTargetData() |
| 1255 { | 1253 { |
| 1256 return &m_eventTargetData; | 1254 return &m_eventTargetData; |
| 1257 } | 1255 } |
| 1258 | 1256 |
| 1259 } // namespace WebCore | 1257 } // namespace WebCore |
| OLD | NEW |