Backed out changeset 42d5d3080bc4 (bug 847656) for mochitest crashes on a CLOSED TREE.

This commit is contained in:
Ryan VanderMeulen 2013-03-20 14:17:22 -04:00
Родитель 614ee78879
Коммит 3e6b0826a4
4 изменённых файлов: 6 добавлений и 8 удалений

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

@ -370,7 +370,7 @@ ContentParent::JoinAllSubprocesses()
sCanLaunchSubprocesses = false; sCanLaunchSubprocesses = false;
} }
/*static*/ already_AddRefed<ContentParent> /*static*/ ContentParent*
ContentParent::GetNewOrUsed(bool aForBrowserElement) ContentParent::GetNewOrUsed(bool aForBrowserElement)
{ {
if (!gNonAppContentParents) if (!gNonAppContentParents)
@ -394,7 +394,7 @@ ContentParent::GetNewOrUsed(bool aForBrowserElement)
PROCESS_PRIORITY_FOREGROUND); PROCESS_PRIORITY_FOREGROUND);
p->Init(); p->Init();
gNonAppContentParents->AppendElement(p); gNonAppContentParents->AppendElement(p);
return p.forget(); return p;
} }
namespace { namespace {
@ -465,7 +465,7 @@ ContentParent::CreateBrowserOrApp(const TabContext& aContext,
} }
if (aContext.IsBrowserElement() || !aContext.HasOwnApp()) { if (aContext.IsBrowserElement() || !aContext.HasOwnApp()) {
if (nsRefPtr<ContentParent> cp = GetNewOrUsed(aContext.IsBrowserElement())) { if (ContentParent* cp = GetNewOrUsed(aContext.IsBrowserElement())) {
nsRefPtr<TabParent> tp(new TabParent(aContext)); nsRefPtr<TabParent> tp(new TabParent(aContext));
tp->SetOwnerElement(aFrameElement); tp->SetOwnerElement(aFrameElement);
PBrowserParent* browser = cp->SendPBrowserConstructor( PBrowserParent* browser = cp->SendPBrowserConstructor(

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

@ -81,8 +81,7 @@ public:
*/ */
static void JoinAllSubprocesses(); static void JoinAllSubprocesses();
static already_AddRefed<ContentParent> static ContentParent* GetNewOrUsed(bool aForBrowserElement = false);
GetNewOrUsed(bool aForBrowserElement = false);
/** /**
* Get or create a content process for the given TabContext. aFrameElement * Get or create a content process for the given TabContext. aFrameElement

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

@ -780,7 +780,7 @@ nsXULAppInfo::EnsureContentProcess()
if (XRE_GetProcessType() != GeckoProcessType_Default) if (XRE_GetProcessType() != GeckoProcessType_Default)
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
nsRefPtr<ContentParent> unused = ContentParent::GetNewOrUsed(); unused << ContentParent::GetNewOrUsed();
return NS_OK; return NS_OK;
} }

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

@ -695,8 +695,7 @@ ContentParent* gContentParent; //long-lived, manually refcounted
TestShellParent* GetOrCreateTestShellParent() TestShellParent* GetOrCreateTestShellParent()
{ {
if (!gContentParent) { if (!gContentParent) {
nsRefPtr<ContentParent> parent = ContentParent::GetNewOrUsed().get(); NS_ADDREF(gContentParent = ContentParent::GetNewOrUsed());
parent.forget(&gContentParent);
} else if (!gContentParent->IsAlive()) { } else if (!gContentParent->IsAlive()) {
return nullptr; return nullptr;
} }