Bug 964148 - location.origin is not available in workers. r=bent, r=baku

This commit is contained in:
Kevin Grandon 2014-01-31 13:22:52 -05:00
parent 8d800b3945
commit 5e22487099
6 changed files with 16 additions and 3 deletions

View File

@ -25,4 +25,5 @@ interface URLUtilsReadOnly {
readonly attribute DOMString pathname;
readonly attribute DOMString search;
readonly attribute DOMString hash;
readonly attribute DOMString origin;
};

View File

@ -25,7 +25,8 @@ WorkerLocation::Create(WorkerPrivate::LocationInfo& aInfo)
NS_ConvertUTF8toUTF16(aInfo.mPort),
NS_ConvertUTF8toUTF16(aInfo.mPathname),
NS_ConvertUTF8toUTF16(aInfo.mSearch),
NS_ConvertUTF8toUTF16(aInfo.mHash));
NS_ConvertUTF8toUTF16(aInfo.mHash),
aInfo.mOrigin);
return location.forget();
}

View File

@ -22,6 +22,7 @@ class WorkerLocation MOZ_FINAL : public nsWrapperCache
nsString mPathname;
nsString mSearch;
nsString mHash;
nsString mOrigin;
WorkerLocation(const nsAString& aHref,
const nsAString& aProtocol,
@ -30,7 +31,8 @@ class WorkerLocation MOZ_FINAL : public nsWrapperCache
const nsAString& aPort,
const nsAString& aPathname,
const nsAString& aSearch,
const nsAString& aHash)
const nsAString& aHash,
const nsAString& aOrigin)
: mHref(aHref)
, mProtocol(aProtocol)
, mHost(aHost)
@ -39,6 +41,7 @@ class WorkerLocation MOZ_FINAL : public nsWrapperCache
, mPathname(aPathname)
, mSearch(aSearch)
, mHash(aHash)
, mOrigin(aOrigin)
{
MOZ_COUNT_CTOR(WorkerLocation);
SetIsDOMBinding();
@ -100,6 +103,10 @@ public:
{
aHash = mHash;
}
void GetOrigin(nsString& aOrigin) const
{
aOrigin = mOrigin;
}
};
END_WORKERS_NAMESPACE

View File

@ -3445,6 +3445,8 @@ WorkerPrivateParent<Derived>::SetBaseURI(nsIURI* aBaseURI)
else {
mLocationInfo.mHost.Assign(mLocationInfo.mHostname);
}
nsContentUtils::GetUTFNonNullOrigin(aBaseURI, mLocationInfo.mOrigin);
}
template <class Derived>

View File

@ -131,6 +131,7 @@ public:
nsCString mPathname;
nsCString mSearch;
nsCString mHash;
nsString mOrigin;
};
struct LoadInfo

View File

@ -39,7 +39,8 @@ Tests of DOM Worker Location
"port": window.location.port,
"pathname": basePath + workerFilename,
"search": "",
"hash": ""
"hash": "",
"origin": "http://mochi.test:8888"
};
var lastSlash = href.substr(0, queryPos).lastIndexOf("/") + 1;