2011-04-11 Chris Marrin <cmarrin@apple.com>
authorcmarrin@apple.com <cmarrin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Apr 2011 23:31:47 +0000 (23:31 +0000)
committercmarrin@apple.com <cmarrin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Apr 2011 23:31:47 +0000 (23:31 +0000)
        Rubberstamped by Dan Bernstein.

        xhr.responseType = 'arraybuffer' works on Mac but not on Windows
        https://bugs.webkit.org/show_bug.cgi?id=50334

        Got rid of guards around arraybuffer logic in XHR. ArrayBuffer and friends
        are always turned on now, so there's not need for the guard. I reenabled the
        test that was Skipped on Windows and it works now.

        * bindings/js/JSXMLHttpRequestCustom.cpp:
        (WebCore::JSXMLHttpRequest::markChildren):
        (WebCore::JSXMLHttpRequest::send):
        (WebCore::JSXMLHttpRequest::response):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::responseArrayBuffer):
        (WebCore::XMLHttpRequest::setResponseType):
        (WebCore::XMLHttpRequest::send):
        (WebCore::XMLHttpRequest::clearResponseBuffers):
        (WebCore::XMLHttpRequest::didReceiveData):
        * xml/XMLHttpRequest.h:
        (WebCore::XMLHttpRequest::optionalResponseArrayBuffer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@83532 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/win/Skipped
LayoutTests/platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-abort-expected.txt [deleted file]
LayoutTests/platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer-expected.txt [deleted file]
Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
Source/WebCore/xml/XMLHttpRequest.cpp
Source/WebCore/xml/XMLHttpRequest.h

index b644a5a..7ea4fde 100644 (file)
@@ -1,3 +1,18 @@
+2011-04-11  Chris Marrin  <cmarrin@apple.com>
+
+        Rubberstamped by Dan Bernstein.
+
+        xhr.responseType = 'arraybuffer' works on Mac but not on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=50334
+
+        Unskipped the XHR ArrayBuffer test for Windows. I also got rid of a couple of bogus expected
+        results. These had errors in them for what Windows used to be returning. Now the non-platform
+        specific results files are correct for Windows.
+
+        * platform/win/Skipped:
+        * platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-abort-expected.txt: Removed.
+        * platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer-expected.txt: Removed.
+
 2011-02-03  Martin Robinson  <mrobinson@igalia.com>
 
         Reviewed by Eric Seidel.
index fd83f42..bee70a6 100644 (file)
@@ -1172,9 +1172,6 @@ fast/animation
 # This port doesn't support v8 i18n extension.
 fast/js/i18n-bindings-locale.html
 
-# For https://bugs.webkit.org/show_bug.cgi?id=54519
-fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer.html
-
 # https://bugs.webkit.org/show_bug.cgi?id=55921
 # Windows port doesn't support HTML in pastes.
 editing/pasteboard/onpaste-text-html-types.html
diff --git a/LayoutTests/platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-abort-expected.txt b/LayoutTests/platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-abort-expected.txt
deleted file mode 100644 (file)
index ffc6c69..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Tests aborting XMLHttpRequest 'arraybuffer' loading with the .responseType and .response attributes.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-PASS responseType property exists.
-PASS response property exists.
-PASS abort() was called.
-PASS 'arraybuffer' .response does not exist after aborted load.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer-expected.txt b/LayoutTests/platform/win/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer-expected.txt
deleted file mode 100644 (file)
index 5f24734..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-CONSOLE MESSAGE: line 59: TypeError: Type error
-FAIL: Timed out waiting for notifyDone to be called
-Tests XMLHttpRequest 'arraybuffer' loading with the .responseType and .response attributes.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-PASS 'arraybuffer' .response does not exist when .readyState is 1.
-PASS responseType property exists.
-PASS response property exists.
-PASS xhr.responseType is initially set to default value of empty string.
-PASS xhr.responseType has been correctly set to ''.
-PASS xhr.responseType has been correctly set to 'text'.
-PASS xhr.responseType has been correctly set to 'document'.
-PASS exception correctly thrown when xhr.responseType is set to invalid value : Error: SYNTAX_ERR: DOM Exception 12.
-PASS 'arraybuffer' .response does not exist when .readyState is 2.
-PASS 'arraybuffer' .response does not exist when .readyState is 3.
-FAIL 'arraybuffer' .response should exist when .readyState is 4.
-PASS DONE LOADING
-PASS received response object : null.
-PASS exception correctly thrown when xhr.responseType is set to valid value too late in the loading process : Error: INVALID_STATE_ERR: DOM Exception 11.
-
index 12ce77d..de5f0ea 100644 (file)
@@ -1,3 +1,27 @@
+2011-04-11  Chris Marrin  <cmarrin@apple.com>
+
+        Rubberstamped by Dan Bernstein.
+
+        xhr.responseType = 'arraybuffer' works on Mac but not on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=50334
+
+        Got rid of guards around arraybuffer logic in XHR. ArrayBuffer and friends
+        are always turned on now, so there's not need for the guard. I reenabled the
+        test that was Skipped on Windows and it works now.
+
+        * bindings/js/JSXMLHttpRequestCustom.cpp:
+        (WebCore::JSXMLHttpRequest::markChildren):
+        (WebCore::JSXMLHttpRequest::send):
+        (WebCore::JSXMLHttpRequest::response):
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::responseArrayBuffer):
+        (WebCore::XMLHttpRequest::setResponseType):
+        (WebCore::XMLHttpRequest::send):
+        (WebCore::XMLHttpRequest::clearResponseBuffers):
+        (WebCore::XMLHttpRequest::didReceiveData):
+        * xml/XMLHttpRequest.h:
+        (WebCore::XMLHttpRequest::optionalResponseArrayBuffer):
+
 2011-04-11  Anna Cavender  <annacc@chromium.org>
 
         Reviewed by Eric Carlson.
index 1d6f1cb..eba5db7 100644 (file)
@@ -64,10 +64,8 @@ void JSXMLHttpRequest::markChildren(MarkStack& markStack)
     if (Document* responseDocument = m_impl->optionalResponseXML())
         markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), responseDocument);
 
-#if ENABLE(WEBGL) || ENABLE(BLOB)
     if (ArrayBuffer* responseArrayBuffer = m_impl->optionalResponseArrayBuffer())
         markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), responseArrayBuffer);
-#endif
 
 #if ENABLE(XHR_RESPONSE_BLOB)
     if (Blob* responseBlob = m_impl->optionalResponseBlob())
@@ -124,10 +122,8 @@ JSValue JSXMLHttpRequest::send(ExecState* exec)
             impl()->send(toBlob(val), ec);
         else if (val.inherits(&JSDOMFormData::s_info))
             impl()->send(toDOMFormData(val), ec);
-#if ENABLE(WEBGL) || ENABLE(BLOB)
         else if (val.inherits(&JSArrayBuffer::s_info))
             impl()->send(toArrayBuffer(val), ec);
-#endif
         else
             impl()->send(ustringToString(val.toString(exec)), ec);
     }
@@ -189,7 +185,6 @@ JSValue JSXMLHttpRequest::response(ExecState* exec) const
 #endif
 
     case XMLHttpRequest::ResponseTypeArrayBuffer:
-#if ENABLE(WEBGL) || ENABLE(BLOB)
         {
             ExceptionCode ec = 0;
             ArrayBuffer* arrayBuffer = impl()->responseArrayBuffer(ec);
@@ -199,9 +194,6 @@ JSValue JSXMLHttpRequest::response(ExecState* exec) const
             }
             return toJS(exec, globalObject(), arrayBuffer);
         }
-#else
-        return jsUndefined();
-#endif
     }
 
     return jsUndefined();
index ae00da8..3d3c12e 100644 (file)
@@ -271,7 +271,6 @@ Blob* XMLHttpRequest::responseBlob(ExceptionCode& ec) const
 }
 #endif
 
-#if ENABLE(WEBGL) || ENABLE(BLOB)
 ArrayBuffer* XMLHttpRequest::responseArrayBuffer(ExceptionCode& ec)
 {
     if (m_responseTypeCode != ResponseTypeArrayBuffer) {
@@ -292,7 +291,6 @@ ArrayBuffer* XMLHttpRequest::responseArrayBuffer(ExceptionCode& ec)
 
     return 0;
 }
-#endif
 
 void XMLHttpRequest::setResponseType(const String& responseType, ExceptionCode& ec)
 {
@@ -312,9 +310,7 @@ void XMLHttpRequest::setResponseType(const String& responseType, ExceptionCode&
         m_responseTypeCode = ResponseTypeBlob;
 #endif
     } else if (responseType == "arraybuffer") {
-#if ENABLE(WEBGL) || ENABLE(BLOB)
         m_responseTypeCode = ResponseTypeArrayBuffer;
-#endif
     } else
         ec = SYNTAX_ERR;
 }
@@ -586,7 +582,6 @@ void XMLHttpRequest::send(DOMFormData* body, ExceptionCode& ec)
     createRequest(ec);
 }
 
-#if ENABLE(WEBGL) || ENABLE(BLOB)
 void XMLHttpRequest::send(ArrayBuffer* body, ExceptionCode& ec)
 {
     if (!initSend(ec))
@@ -600,7 +595,6 @@ void XMLHttpRequest::send(ArrayBuffer* body, ExceptionCode& ec)
 
     createRequest(ec);
 }
-#endif
 
 void XMLHttpRequest::createRequest(ExceptionCode& ec)
 {
@@ -739,10 +733,8 @@ void XMLHttpRequest::clearResponseBuffers()
 #if ENABLE(XHR_RESPONSE_BLOB)
     m_responseBlob = 0;
 #endif
-#if ENABLE(WEBGL) || ENABLE(BLOB)
     m_binaryResponseBuilder.clear();
     m_responseArrayBuffer.clear();
-#endif
 }
 
 void XMLHttpRequest::clearRequest()
@@ -1076,14 +1068,12 @@ void XMLHttpRequest::didReceiveData(const char* data, int len)
 
     if (useDecoder)
         m_responseBuilder.append(m_decoder->decode(data, len));
-#if ENABLE(WEBGL) || ENABLE(BLOB)
     else if (responseTypeCode() == ResponseTypeArrayBuffer) {
         // Buffer binary data.
         if (!m_binaryResponseBuilder)
             m_binaryResponseBuilder = SharedBuffer::create();
         m_binaryResponseBuilder->append(data, len);
     }
-#endif
 
     if (!m_error) {
         long long expectedLength = m_response.expectedContentLength();
index 0f461e1..9f7c885 100644 (file)
@@ -95,9 +95,7 @@ public:
     void send(const String&, ExceptionCode&);
     void send(Blob*, ExceptionCode&);
     void send(DOMFormData*, ExceptionCode&);
-#if ENABLE(WEBGL) || ENABLE(BLOB)
     void send(ArrayBuffer*, ExceptionCode&);
-#endif
     void abort();
     void setRequestHeader(const AtomicString& name, const String& value, ExceptionCode&);
     void overrideMimeType(const String& override);
@@ -115,11 +113,9 @@ public:
     String responseType();
     ResponseTypeCode responseTypeCode() const { return m_responseTypeCode; }
     
-#if ENABLE(WEBGL) || ENABLE(BLOB)
     // response attribute has custom getter.
     ArrayBuffer* responseArrayBuffer(ExceptionCode&);
     ArrayBuffer* optionalResponseArrayBuffer() const { return m_responseArrayBuffer.get(); }
-#endif
 
     void setLastSendLineNumber(unsigned lineNumber) { m_lastSendLineNumber = lineNumber; }
     void setLastSendURL(const String& url) { m_lastSendURL = url; }
@@ -207,10 +203,8 @@ private:
     mutable bool m_createdDocument;
     mutable RefPtr<Document> m_responseXML;
     
-#if ENABLE(WEBGL) || ENABLE(BLOB)
     RefPtr<SharedBuffer> m_binaryResponseBuilder;
     mutable RefPtr<ArrayBuffer> m_responseArrayBuffer;
-#endif
 
     bool m_error;