зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changesets 41d0ad0271a6, 2bda66cf60fd, and dd1fc46d4d56 (bug 1118845) for B2G mochitest failures.
CLOSED TREE --HG-- extra : amend_source : 19240e92f40420f384a7835383cbb2be75350ddc
This commit is contained in:
Родитель
df536cedbe
Коммит
71aff521dd
|
@ -11,7 +11,7 @@ namespace mozilla {
|
||||||
|
|
||||||
NS_IMPL_ISUPPORTS(LoadContext, nsILoadContext, nsIInterfaceRequestor)
|
NS_IMPL_ISUPPORTS(LoadContext, nsILoadContext, nsIInterfaceRequestor)
|
||||||
|
|
||||||
LoadContext::LoadContext(nsIPrincipal* aPrincipal, nsILoadContext* aOptionalBase)
|
LoadContext::LoadContext(nsIPrincipal* aPrincipal)
|
||||||
: mTopFrameElement(nullptr)
|
: mTopFrameElement(nullptr)
|
||||||
, mNestedFrameId(0)
|
, mNestedFrameId(0)
|
||||||
, mIsContent(true)
|
, mIsContent(true)
|
||||||
|
@ -24,15 +24,6 @@ LoadContext::LoadContext(nsIPrincipal* aPrincipal, nsILoadContext* aOptionalBase
|
||||||
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(aPrincipal->GetAppId(&mAppId)));
|
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(aPrincipal->GetAppId(&mAppId)));
|
||||||
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(
|
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(
|
||||||
aPrincipal->GetIsInBrowserElement(&mIsInBrowserElement)));
|
aPrincipal->GetIsInBrowserElement(&mIsInBrowserElement)));
|
||||||
|
|
||||||
if (!aOptionalBase) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(aOptionalBase->GetIsContent(&mIsContent)));
|
|
||||||
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(
|
|
||||||
aOptionalBase->GetUsePrivateBrowsing(&mUsePrivateBrowsing)));
|
|
||||||
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(aOptionalBase->GetUseRemoteTabs(&mUseRemoteTabs)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
@ -107,8 +107,7 @@ public:
|
||||||
|
|
||||||
// Constructor for creating a LoadContext with a given principal's appId and
|
// Constructor for creating a LoadContext with a given principal's appId and
|
||||||
// browser flag.
|
// browser flag.
|
||||||
explicit LoadContext(nsIPrincipal* aPrincipal,
|
explicit LoadContext(nsIPrincipal* aPrincipal);
|
||||||
nsILoadContext* aOptionalBase = nullptr);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
~LoadContext() {}
|
~LoadContext() {}
|
||||||
|
|
|
@ -2253,8 +2253,7 @@ RuntimeService::CreateSharedWorkerInternal(const GlobalObject& aGlobal,
|
||||||
|
|
||||||
WorkerPrivate::LoadInfo loadInfo;
|
WorkerPrivate::LoadInfo loadInfo;
|
||||||
nsresult rv = WorkerPrivate::GetLoadInfo(cx, window, nullptr, aScriptURL,
|
nsresult rv = WorkerPrivate::GetLoadInfo(cx, window, nullptr, aScriptURL,
|
||||||
false, WorkerPrivate::ForceNewLoadGroup,
|
false, &loadInfo);
|
||||||
&loadInfo);
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
return CreateSharedWorkerFromLoadInfo(cx, &loadInfo, aScriptURL, aName, aType,
|
return CreateSharedWorkerFromLoadInfo(cx, &loadInfo, aScriptURL, aName, aType,
|
||||||
|
|
|
@ -3988,8 +3988,7 @@ WorkerPrivate::Constructor(JSContext* aCx,
|
||||||
stackLoadInfo.emplace();
|
stackLoadInfo.emplace();
|
||||||
|
|
||||||
nsresult rv = GetLoadInfo(aCx, nullptr, parent, aScriptURL,
|
nsresult rv = GetLoadInfo(aCx, nullptr, parent, aScriptURL,
|
||||||
aIsChromeWorker, InheritLoadGroup,
|
aIsChromeWorker, stackLoadInfo.ptr());
|
||||||
stackLoadInfo.ptr());
|
|
||||||
if (NS_FAILED(rv)) {
|
if (NS_FAILED(rv)) {
|
||||||
scriptloader::ReportLoadError(aCx, aScriptURL, rv, !parent);
|
scriptloader::ReportLoadError(aCx, aScriptURL, rv, !parent);
|
||||||
aRv.Throw(rv);
|
aRv.Throw(rv);
|
||||||
|
@ -4044,9 +4043,7 @@ WorkerPrivate::Constructor(JSContext* aCx,
|
||||||
nsresult
|
nsresult
|
||||||
WorkerPrivate::GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow,
|
WorkerPrivate::GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow,
|
||||||
WorkerPrivate* aParent, const nsAString& aScriptURL,
|
WorkerPrivate* aParent, const nsAString& aScriptURL,
|
||||||
bool aIsChromeWorker,
|
bool aIsChromeWorker, LoadInfo* aLoadInfo)
|
||||||
LoadGroupBehavior aLoadGroupBehavior,
|
|
||||||
LoadInfo* aLoadInfo)
|
|
||||||
{
|
{
|
||||||
using namespace mozilla::dom::workers::scriptloader;
|
using namespace mozilla::dom::workers::scriptloader;
|
||||||
using mozilla::dom::indexedDB::IDBFactory;
|
using mozilla::dom::indexedDB::IDBFactory;
|
||||||
|
@ -4279,9 +4276,9 @@ WorkerPrivate::GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow,
|
||||||
loadInfo.mReportCSPViolations = false;
|
loadInfo.mReportCSPViolations = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!loadInfo.mLoadGroup || aLoadGroupBehavior == ForceNewLoadGroup) {
|
if (!loadInfo.mLoadGroup) {
|
||||||
rv = NS_NewLoadGroup(getter_AddRefs(loadInfo.mLoadGroup),
|
rv = NS_NewLoadGroup(getter_AddRefs(loadInfo.mLoadGroup),
|
||||||
loadInfo.mPrincipal, loadInfo.mLoadGroup);
|
loadInfo.mPrincipal);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
}
|
}
|
||||||
MOZ_ASSERT(NS_LoadGroupMatchesPrincipal(loadInfo.mLoadGroup,
|
MOZ_ASSERT(NS_LoadGroupMatchesPrincipal(loadInfo.mLoadGroup,
|
||||||
|
|
|
@ -921,16 +921,10 @@ public:
|
||||||
static bool
|
static bool
|
||||||
WorkerAvailable(JSContext* /* unused */, JSObject* /* unused */);
|
WorkerAvailable(JSContext* /* unused */, JSObject* /* unused */);
|
||||||
|
|
||||||
enum LoadGroupBehavior
|
|
||||||
{
|
|
||||||
InheritLoadGroup,
|
|
||||||
ForceNewLoadGroup
|
|
||||||
};
|
|
||||||
|
|
||||||
static nsresult
|
static nsresult
|
||||||
GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow, WorkerPrivate* aParent,
|
GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow, WorkerPrivate* aParent,
|
||||||
const nsAString& aScriptURL, bool aIsChromeWorker,
|
const nsAString& aScriptURL, bool aIsChromeWorker,
|
||||||
LoadGroupBehavior aLoadGroupBehavior, LoadInfo* aLoadInfo);
|
LoadInfo* aLoadInfo);
|
||||||
|
|
||||||
WorkerDebugger*
|
WorkerDebugger*
|
||||||
Debugger() const
|
Debugger() const
|
||||||
|
|
|
@ -995,12 +995,9 @@ NS_NewLoadGroup(nsILoadGroup **result,
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a new nsILoadGroup that will match the given principal. Also,
|
// Create a new nsILoadGroup that will match the given principal.
|
||||||
// if a base laod group is provided, populate the nsILoadContext of the
|
|
||||||
// new group with information from the existing context.
|
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewLoadGroup(nsILoadGroup** aResult, nsIPrincipal* aPrincipal,
|
NS_NewLoadGroup(nsILoadGroup** aResult, nsIPrincipal* aPrincipal);
|
||||||
nsILoadGroup* aOptionalBase = nullptr);
|
|
||||||
|
|
||||||
// Determine if the given loadGroup/principal pair will produce a principal
|
// Determine if the given loadGroup/principal pair will produce a principal
|
||||||
// with similar permissions when passed to NS_NewChannel(). This checks for
|
// with similar permissions when passed to NS_NewChannel(). This checks for
|
||||||
|
|
|
@ -19,27 +19,16 @@ bool NS_IsValidHTTPToken(const nsACString& aToken)
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewLoadGroup(nsILoadGroup** aResult, nsIPrincipal* aPrincipal,
|
NS_NewLoadGroup(nsILoadGroup** aResult, nsIPrincipal* aPrincipal)
|
||||||
nsILoadGroup* aOptionalBase)
|
|
||||||
{
|
{
|
||||||
using mozilla::LoadContext;
|
using mozilla::LoadContext;
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
nsCOMPtr<nsILoadContext> baseLoadContext;
|
|
||||||
if (aOptionalBase) {
|
|
||||||
nsCOMPtr<nsIInterfaceRequestor> cb;
|
|
||||||
rv = aOptionalBase->GetNotificationCallbacks(getter_AddRefs(cb));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
baseLoadContext = do_QueryInterface(cb);
|
|
||||||
}
|
|
||||||
|
|
||||||
nsCOMPtr<nsILoadGroup> group =
|
nsCOMPtr<nsILoadGroup> group =
|
||||||
do_CreateInstance(NS_LOADGROUP_CONTRACTID, &rv);
|
do_CreateInstance(NS_LOADGROUP_CONTRACTID, &rv);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
nsRefPtr<LoadContext> loadContext = new LoadContext(aPrincipal,
|
nsRefPtr<LoadContext> loadContext = new LoadContext(aPrincipal);
|
||||||
baseLoadContext);
|
|
||||||
rv = group->SetNotificationCallbacks(loadContext);
|
rv = group->SetNotificationCallbacks(loadContext);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче