| Differences between
and this patch
- Source/WebCore/ChangeLog +26 lines
Lines 1-3 Source/WebCore/ChangeLog_sec1
1
2017-10-01  Sam Weinig  <sam@webkit.org>
2
3
        XMLHttpRequest's responseXML should be annotated with [Exposed=Window]
4
        https://bugs.webkit.org/show_bug.cgi?id=177714
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Tests: imported/w3c/web-platform-tests/XMLHttpRequest/responseType-document-in-worker.html
9
               imported/w3c/web-platform-tests/XMLHttpRequest/responseXML-unavailable-in-worker.html
10
11
        * xml/XMLHttpRequest.cpp:
12
        (WebCore::XMLHttpRequest::responseXML):
13
        
14
            Replace returning null for non-document contexts with an assertion now
15
            that the bindings layer ensures this doesn't get called.
16
        
17
        (WebCore::XMLHttpRequest::setResponseType):
18
        
19
            Match the spec and turn attempts to set a responseType of 'document' in
20
            non-documents contexts as a no-op.
21
        
22
        * xml/XMLHttpRequest.idl:
23
        
24
            Address FIXME and annotate responseXML with [Exposed=Window] now that it
25
            is supported.
26
1
2017-09-30  Sam Weinig  <sam@webkit.org>
27
2017-09-30  Sam Weinig  <sam@webkit.org>
2
28
3
        [Settings] Replace SettingsMacros.h with a generated base class for Settings
29
        [Settings] Replace SettingsMacros.h with a generated base class for Settings
- Source/WebCore/xml/XMLHttpRequest.cpp -2 / +6 lines
Lines 172-177 void XMLHttpRequest::didCacheResponse() Source/WebCore/xml/XMLHttpRequest.cpp_sec1
172
172
173
ExceptionOr<Document*> XMLHttpRequest::responseXML()
173
ExceptionOr<Document*> XMLHttpRequest::responseXML()
174
{
174
{
175
    ASSERT(scriptExecutionContext()->isDocument());
176
    
175
    if (m_responseType != ResponseType::EmptyString && m_responseType != ResponseType::Document)
177
    if (m_responseType != ResponseType::EmptyString && m_responseType != ResponseType::Document)
176
        return Exception { InvalidStateError };
178
        return Exception { InvalidStateError };
177
179
Lines 185-192 ExceptionOr<Document*> XMLHttpRequest::r Source/WebCore/xml/XMLHttpRequest.cpp_sec2
185
        // The W3C spec requires the final MIME type to be some valid XML type, or text/html.
187
        // The W3C spec requires the final MIME type to be some valid XML type, or text/html.
186
        // If it is text/html, then the responseType of "document" must have been supplied explicitly.
188
        // If it is text/html, then the responseType of "document" must have been supplied explicitly.
187
        if ((m_response.isHTTP() && !responseIsXML() && !isHTML)
189
        if ((m_response.isHTTP() && !responseIsXML() && !isHTML)
188
            || (isHTML && m_responseType == ResponseType::EmptyString)
190
            || (isHTML && m_responseType == ResponseType::EmptyString)) {
189
            || scriptExecutionContext()->isWorkerGlobalScope()) {
190
            m_responseDocument = nullptr;
191
            m_responseDocument = nullptr;
191
        } else {
192
        } else {
192
            if (isHTML)
193
            if (isHTML)
Lines 252-257 ExceptionOr<void> XMLHttpRequest::setTim Source/WebCore/xml/XMLHttpRequest.cpp_sec3
252
253
253
ExceptionOr<void> XMLHttpRequest::setResponseType(ResponseType type)
254
ExceptionOr<void> XMLHttpRequest::setResponseType(ResponseType type)
254
{
255
{
256
    if (!scriptExecutionContext()->isDocument() && type == ResponseType::Document)
257
        return { };
258
255
    if (m_state >= LOADING)
259
    if (m_state >= LOADING)
256
        return Exception { InvalidStateError };
260
        return Exception { InvalidStateError };
257
261
- Source/WebCore/xml/XMLHttpRequest.idl -2 / +1 lines
Lines 79-84 enum XMLHttpRequestResponseType { Source/WebCore/xml/XMLHttpRequest.idl_sec1
79
    attribute XMLHttpRequestResponseType responseType;
79
    attribute XMLHttpRequestResponseType responseType;
80
    [CachedAttribute, CustomGetter] readonly attribute any response;
80
    [CachedAttribute, CustomGetter] readonly attribute any response;
81
    readonly attribute USVString responseText;
81
    readonly attribute USVString responseText;
82
    // FIXME: responseXML should be annotated with [Exposed=Window].
82
    [Exposed=Window] readonly attribute Document? responseXML;
83
    readonly attribute Document? responseXML;
84
};
83
};
- LayoutTests/imported/w3c/ChangeLog +18 lines
Lines 1-3 LayoutTests/imported/w3c/ChangeLog_sec1
1
2017-10-01  Sam Weinig  <sam@webkit.org>
2
3
        XMLHttpRequest's responseXML should be annotated with [Exposed=Window]
4
        https://bugs.webkit.org/show_bug.cgi?id=177714
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * web-platform-tests/XMLHttpRequest/resources/responseType-document-in-worker.js: Added.
9
        * web-platform-tests/XMLHttpRequest/resources/responseXML-unavailable-in-worker.js: Added.
10
        * web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
11
        * web-platform-tests/XMLHttpRequest/responseType-document-in-worker.html: Added.
12
        * web-platform-tests/XMLHttpRequest/responseXML-unavailable-in-worker.html: Added.
13
        * web-platform-tests/XMLHttpRequest/w3c-import.log:
14
15
            Import latest XMLHttpRequest tests that include tests for responseXML not
16
            being available in workers and setting a responseType of 'document' being
17
            a no-op in workers.
18
1
2017-09-27  Chris Dumez  <cdumez@apple.com>
19
2017-09-27  Chris Dumez  <cdumez@apple.com>
2
20
3
        cssFloat missing in CSSPropertyDeclaration.prototype
21
        cssFloat missing in CSSPropertyDeclaration.prototype
- LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseType-document-in-worker.html +13 lines
Line 0 LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseType-document-in-worker.html_sec1
1
<!doctype html>
2
<html>
3
<head>
4
    <meta charset="utf-8">
5
    <script src="/resources/testharness.js"></script>
6
    <script src="/resources/testharnessreport.js"></script>
7
</head>
8
<body>
9
<script>
10
    fetch_tests_from_worker(new Worker("resources/responseType-document-in-worker.js"));
11
</script>
12
</body>
13
</html>
- LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseXML-unavailable-in-worker.html +13 lines
Line 0 LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseXML-unavailable-in-worker.html_sec1
1
<!doctype html>
2
<html>
3
<head>
4
    <meta charset="utf-8">
5
    <script src="/resources/testharness.js"></script>
6
    <script src="/resources/testharnessreport.js"></script>
7
</head>
8
<body>
9
<script>
10
    fetch_tests_from_worker(new Worker("resources/responseXML-unavailable-in-worker.js"));
11
</script>
12
</body>
13
</html>
- LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log +2 lines
Lines 169-174 List of files: LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log_sec1
169
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-json.htm
169
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-json.htm
170
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-method.htm
170
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-method.htm
171
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseText-status.html
171
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseText-status.html
172
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseType-document-in-worker.html
173
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseXML-unavailable-in-worker.html
172
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding.htm
174
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding.htm
173
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetype.html
175
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetype.html
174
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseurl.html
176
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responseurl.html
- LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/responseType-document-in-worker.js +9 lines
Line 0 LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/responseType-document-in-worker.js_sec1
1
self.importScripts('/resources/testharness.js');
2
3
test(function() {
4
    let xhr = new XMLHttpRequest();
5
    xhr.responseType = "document";
6
    assert_not_equals(xhr.responseType, "document");
7
}, "Setting XMLHttpRequest responseType to 'document' in a worker should have no effect.");
8
9
done();
- LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/responseXML-unavailable-in-worker.js +9 lines
Line 0 LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/responseXML-unavailable-in-worker.js_sec1
1
self.importScripts('/resources/testharness.js');
2
3
test(function() {
4
    let xhr = new XMLHttpRequest();
5
    assert_not_exists(xhr, "responseXML", "responseXML should not be available on instances.");
6
    assert_not_exists(XMLHttpRequest.prototype, "responseXML", "responseXML should not be on the prototype.");
7
}, "XMLHttpRequest's responseXML property should not be exposed in workers.");
8
9
done();
- LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/w3c-import.log +2 lines
Lines 71-76 List of files: LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/w3c-import.log_sec1
71
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/redirect.py
71
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/redirect.py
72
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/requri.py
72
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/requri.py
73
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/reset-token.py
73
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/reset-token.py
74
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/responseType-document-in-worker.js
75
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/responseXML-unavailable-in-worker.js
74
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-1.htm
76
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-1.htm
75
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-2.htm
77
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-2.htm
76
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-helper.js
78
/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-helper.js

Return to Bug 177714