This commit is contained in:
Kyle Huey 2011-08-25 08:19:48 -04:00
Родитель fc016aaf1d f17404327f
Коммит db43d2ec00
5 изменённых файлов: 21 добавлений и 25 удалений

Просмотреть файл

@ -4797,9 +4797,7 @@ MOZ_ARG_ENABLE_STRING(application,
xulrunner xulrunner
content/xslt (Standalone Transformiix XSLT) content/xslt (Standalone Transformiix XSLT)
netwerk (Standalone Necko) netwerk (Standalone Necko)
tools/update-packaging (AUS-related packaging tools) tools/update-packaging (AUS-related packaging tools)],
standalone (use this for standalone
xpcom/xpconnect or to manually drive a build)],
[ MOZ_BUILD_APP=$enableval ] ) [ MOZ_BUILD_APP=$enableval ] )
MOZ_ARG_WITH_STRING(xulrunner-stub-name, MOZ_ARG_WITH_STRING(xulrunner-stub-name,
@ -4877,12 +4875,6 @@ content/xslt)
AC_DEFINE(TX_EXE) AC_DEFINE(TX_EXE)
;; ;;
standalone)
MOZ_APP_NAME=mozilla
MOZ_APP_DISPLAYNAME=Mozilla
MOZ_APP_VERSION=$MOZILLA_VERSION
;;
esac esac
AC_SUBST(MOZ_BUILD_APP) AC_SUBST(MOZ_BUILD_APP)

Просмотреть файл

@ -1230,23 +1230,20 @@ nsXMLHttpRequest::GetResponseHeader(const nsACString& header,
return rv; return rv;
} }
nsresult already_AddRefed<nsILoadGroup>
nsXMLHttpRequest::GetLoadGroup(nsILoadGroup **aLoadGroup) nsXMLHttpRequest::GetLoadGroup() const
{ {
NS_ENSURE_ARG_POINTER(aLoadGroup);
*aLoadGroup = nsnull;
if (mState & XML_HTTP_REQUEST_BACKGROUND) { if (mState & XML_HTTP_REQUEST_BACKGROUND) {
return NS_OK; return nsnull;
} }
nsCOMPtr<nsIDocument> doc = nsCOMPtr<nsIDocument> doc =
nsContentUtils::GetDocumentFromScriptContext(mScriptContext); nsContentUtils::GetDocumentFromScriptContext(mScriptContext);
if (doc) { if (doc) {
*aLoadGroup = doc->GetDocumentLoadGroup().get(); // already_AddRefed return doc->GetDocumentLoadGroup();
} }
return NS_OK; return nsnull;
} }
nsresult nsresult
@ -1493,8 +1490,7 @@ nsXMLHttpRequest::Open(const nsACString& method, const nsACString& url,
// When we are called from JS we can find the load group for the page, // When we are called from JS we can find the load group for the page,
// and add ourselves to it. This way any pending requests // and add ourselves to it. This way any pending requests
// will be automatically aborted if the user leaves the page. // will be automatically aborted if the user leaves the page.
nsCOMPtr<nsILoadGroup> loadGroup; nsCOMPtr<nsILoadGroup> loadGroup = GetLoadGroup();
GetLoadGroup(getter_AddRefs(loadGroup));
// get Content Security Policy from principal to pass into channel // get Content Security Policy from principal to pass into channel
nsCOMPtr<nsIChannelPolicy> channelPolicy; nsCOMPtr<nsIChannelPolicy> channelPolicy;
@ -1728,6 +1724,7 @@ nsXMLHttpRequest::OnStartRequest(nsIRequest *request, nsISupports *ctxt)
mResponseBody.Truncate(); mResponseBody.Truncate();
mResponseBodyUnicode.SetIsVoid(PR_TRUE); mResponseBodyUnicode.SetIsVoid(PR_TRUE);
mResponseBlob = nsnull; mResponseBlob = nsnull;
mResultArrayBuffer = nsnull;
// Set up responseXML // Set up responseXML
PRBool parseBody = mResponseType == XML_HTTP_RESPONSE_TYPE_DEFAULT || PRBool parseBody = mResponseType == XML_HTTP_RESPONSE_TYPE_DEFAULT ||
@ -2075,7 +2072,7 @@ GetRequestBody(nsIVariant* aBody, nsIInputStream** aResult,
// nsIInputStream? // nsIInputStream?
nsCOMPtr<nsIInputStream> stream = do_QueryInterface(supports); nsCOMPtr<nsIInputStream> stream = do_QueryInterface(supports);
if (stream) { if (stream) {
*aResult = stream.forget().get(); stream.forget(aResult);
aCharset.Truncate(); aCharset.Truncate();
return NS_OK; return NS_OK;

Просмотреть файл

@ -214,7 +214,7 @@ protected:
// Change the state of the object with this. The broadcast argument // Change the state of the object with this. The broadcast argument
// determines if the onreadystatechange listener should be called. // determines if the onreadystatechange listener should be called.
nsresult ChangeState(PRUint32 aState, PRBool aBroadcast = PR_TRUE); nsresult ChangeState(PRUint32 aState, PRBool aBroadcast = PR_TRUE);
nsresult GetLoadGroup(nsILoadGroup **aLoadGroup); already_AddRefed<nsILoadGroup> GetLoadGroup() const;
nsIURI *GetBaseURI(); nsIURI *GetBaseURI();
nsresult RemoveAddEventListener(const nsAString& aType, nsresult RemoveAddEventListener(const nsAString& aType,

Просмотреть файл

@ -121,6 +121,17 @@ ab = xhr.response;
ok(ab != null, "should have a non-null arraybuffer"); ok(ab != null, "should have a non-null arraybuffer");
arraybuffer_equals_to(ab, "hello pass\n"); arraybuffer_equals_to(ab, "hello pass\n");
// test reusing the same XHR (Bug 680816)
xhr.open("GET", 'file_XHR_binary1.bin', false);
xhr.responseType = 'arraybuffer';
xhr.send(null);
is(xhr.status, 200, "wrong status");
ab2 = xhr.response;
ok(ab2 != null, "should have a non-null arraybuffer");
ok(ab2 != ab, "arraybuffer on XHR reuse should be distinct");
arraybuffer_equals_to(ab, "hello pass\n");
arraybuffer_equals_to(ab2, "\xaa\xee\0\x03\xff\xff\xff\xff\xbb\xbb\xbb\xbb");
// with a binary file // with a binary file
xhr = new XMLHttpRequest(); xhr = new XMLHttpRequest();
xhr.open("GET", 'file_XHR_binary1.bin', false); xhr.open("GET", 'file_XHR_binary1.bin', false);

Просмотреть файл

@ -35,8 +35,6 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#if !defined(XPCONNECT_STANDALONE)
#include "nsAutoPtr.h" #include "nsAutoPtr.h"
#include "nsScriptLoader.h" #include "nsScriptLoader.h"
@ -191,5 +189,3 @@ WriteCachedScript(StartupCache* cache, nsACString &uri, JSContext *cx, JSObject
rv = cache->PutBuffer(PromiseFlatCString(uri).get(), buf, len); rv = cache->PutBuffer(PromiseFlatCString(uri).get(), buf, len);
return rv; return rv;
} }
#endif /* XPCONNECT_STANDALONE */