haikuwebkit/LayoutTests/fast/xmlhttprequest
Chris Dumez 3fdbb2916d Fix unsafe access to m_upload in XMLHttpRequest::virtualHasPendingActivity()
https://bugs.webkit.org/show_bug.cgi?id=226508

Reviewed by Geoffrey Garen.

Source/WebCore:

Fix unsafe access to m_upload in XMLHttpRequest::virtualHasPendingActivity() as virtualHasPendingActivity()
may get called off the main thread and m_upload gets initialized lazily on the main thread.

Tests: fast/xmlhttprequest/xmlhttprequest-upload-sameobject.html
       http/tests/xmlhttprequest/upload-progress-events-gc.html

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::updateHasRelevantEventListener):
(WebCore::XMLHttpRequest::eventListenersDidChange):
(WebCore::XMLHttpRequest::virtualHasPendingActivity const):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.idl:
* xml/XMLHttpRequestUpload.cpp:
(WebCore::XMLHttpRequestUpload::eventListenersDidChange):
(WebCore::XMLHttpRequestUpload::hasRelevantEventListener const):
* xml/XMLHttpRequestUpload.h:

LayoutTests:

Improve layout test coverage to make sure that XMLHttpRequest.upload always returns
the same object and that progress events on XMLHttpRequest.upload still get fired
after GC.

* fast/xmlhttprequest/xmlhttprequest-upload-sameobject-expected.txt: Added.
* fast/xmlhttprequest/xmlhttprequest-upload-sameobject.html: Added.
* http/tests/xmlhttprequest/upload-progress-events-gc-expected.txt: Added.
* http/tests/xmlhttprequest/upload-progress-events-gc.html: Added.


Canonical link: https://commits.webkit.org/238362@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-06-01 22:03:35 +00:00
..
resources [LayoutTess] Delete unused LayoutTests/fast resources 2021-05-25 19:32:08 +00:00
null-document-xmlhttprequest-open-expected.txt
null-document-xmlhttprequest-open.html
set-dangerous-headers-expected.txt Changes to shared testing JS files should not cause test failures due to console message line numbers changing 2020-04-10 21:10:11 +00:00
set-dangerous-headers-from-file-when-setting-enabled-expected.txt
set-dangerous-headers-from-file-when-setting-enabled.html
set-dangerous-headers.html
xmlhttprequest-bad-mimetype-expected.txt
xmlhttprequest-bad-mimetype.html
xmlhttprequest-blob-url-has-valid-response-type-and-size-expected.txt
xmlhttprequest-blob-url-has-valid-response-type-and-size.html
xmlhttprequest-default-attributes-expected.txt
xmlhttprequest-default-attributes.html
xmlhttprequest-gc-expected.txt
xmlhttprequest-gc.html
xmlhttprequest-get-expected.txt
xmlhttprequest-get.xhtml
xmlhttprequest-invalid-values-expected.txt
xmlhttprequest-invalid-values.html
xmlhttprequest-missing-file-exception-expected.txt
xmlhttprequest-missing-file-exception.html
xmlhttprequest-multiple-sync-xhr-during-unload-expected.txt Changes to shared testing JS files should not cause test failures due to console message line numbers changing 2020-04-10 21:10:11 +00:00
xmlhttprequest-multiple-sync-xhr-during-unload.html
xmlhttprequest-no-file-access-expected.txt Changes to shared testing JS files should not cause test failures due to console message line numbers changing 2020-04-10 21:10:11 +00:00
xmlhttprequest-no-file-access.html Remove remaining alternative preference setting mechanisms from LayoutTests 2020-11-01 20:09:38 +00:00
xmlhttprequest-nonexistent-file-expected.txt Changes to shared testing JS files should not cause test failures due to console message line numbers changing 2020-04-10 21:10:11 +00:00
xmlhttprequest-nonexistent-file.html Remove remaining alternative preference setting mechanisms from LayoutTests 2020-11-01 20:09:38 +00:00
xmlhttprequest-open-after-iframe-onload-remove-self-expected.txt Remove trailing spaces from expected.txt files (excluding WPT for now since that contains too many) 2020-09-27 02:15:19 +00:00
xmlhttprequest-open-after-iframe-onload-remove-self.html
xmlhttprequest-properties-prototype-expected.txt Move properties that use custom bindings to the prototype 2016-02-01 19:42:14 +00:00
xmlhttprequest-properties-prototype.html
xmlhttprequest-recursive-sync-event-expected.txt Remove trailing spaces from expected.txt files (excluding WPT for now since that contains too many) 2020-09-27 02:15:19 +00:00
xmlhttprequest-recursive-sync-event.html
xmlhttprequest-responseXML-html-document-responsetype-quirks-expected.txt
xmlhttprequest-responseXML-html-document-responsetype-quirks.html
xmlhttprequest-responseXML-html-document-responsetype-strict-expected.txt
xmlhttprequest-responseXML-html-document-responsetype-strict.html
xmlhttprequest-responseXML-html-no-responsetype-expected.txt
xmlhttprequest-responseXML-html-no-responsetype.html
xmlhttprequest-responseXML-invalid-xml-expected.txt
xmlhttprequest-responseXML-invalid-xml.html
xmlhttprequest-responseXML-xml-document-responsetype-expected.txt
xmlhttprequest-responseXML-xml-document-responsetype.html
xmlhttprequest-responseXML-xml-text-responsetype-expected.txt
xmlhttprequest-responseXML-xml-text-responsetype.html
xmlhttprequest-responsetype-abort-expected.txt
xmlhttprequest-responsetype-abort.html
xmlhttprequest-responsetype-arraybuffer-expected.txt Remove trailing spaces from expected.txt files (excluding WPT for now since that contains too many) 2020-09-27 02:15:19 +00:00
xmlhttprequest-responsetype-arraybuffer.html
xmlhttprequest-responsetype-before-open-expected.txt
xmlhttprequest-responsetype-before-open-sync-request-expected.txt Changes to shared testing JS files should not cause test failures due to console message line numbers changing 2020-04-10 21:10:11 +00:00
xmlhttprequest-responsetype-before-open-sync-request.html
xmlhttprequest-responsetype-before-open.html
xmlhttprequest-responsetype-document-expected.txt DOMException should not have its own toString() 2017-07-19 20:24:15 +00:00
xmlhttprequest-responsetype-document.html
xmlhttprequest-responsetype-json-invalid-expected.txt
xmlhttprequest-responsetype-json-invalid.html
xmlhttprequest-responsetype-json-utf16-expected.txt
xmlhttprequest-responsetype-json-utf16.html
xmlhttprequest-responsetype-json-valid-expected.txt
xmlhttprequest-responsetype-json-valid.html
xmlhttprequest-responsetype-set-at-headers-received-expected.txt
xmlhttprequest-responsetype-set-at-headers-received.html
xmlhttprequest-responsetype-sync-request-expected.txt Changes to shared testing JS files should not cause test failures due to console message line numbers changing 2020-04-10 21:10:11 +00:00
xmlhttprequest-responsetype-sync-request.html
xmlhttprequest-responsetype-text-expected.txt
xmlhttprequest-responsetype-text.html Change fast/u*, fast/w*, and fast/x* files to use pre and post js files in LayoutTests/resources. 2013-09-08 01:01:30 +00:00
xmlhttprequest-set-responsetype-expected.txt
xmlhttprequest-set-responsetype.html Change fast/u*, fast/w*, and fast/x* files to use pre and post js files in LayoutTests/resources. 2013-09-08 01:01:30 +00:00
xmlhttprequest-sync-xhr-failure-loop-during-unload-expected.txt Changes to shared testing JS files should not cause test failures due to console message line numbers changing 2020-04-10 21:10:11 +00:00
xmlhttprequest-sync-xhr-failure-loop-during-unload.html
xmlhttprequest-upload-sameobject-expected.txt Fix unsafe access to m_upload in XMLHttpRequest::virtualHasPendingActivity() 2021-06-01 22:03:35 +00:00
xmlhttprequest-upload-sameobject.html Fix unsafe access to m_upload in XMLHttpRequest::virtualHasPendingActivity() 2021-06-01 22:03:35 +00:00
xmlhttprequest-withcredentials-before-open-expected.txt
xmlhttprequest-withcredentials-before-open.html