Backed out 2 changesets (bug 1528387) for failures in test_JSWindowActor.xul CLOSED TREE

Backed out changeset c4c6581b5ecd (bug 1528387)
Backed out changeset 33dd29846b7b (bug 1528387)
This commit is contained in:
Noemi Erli 2019-02-21 05:07:16 +02:00
Родитель 6872844079
Коммит a886d44d2f
10 изменённых файлов: 27 добавлений и 30 удалений

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

@ -7,7 +7,8 @@
[NoInterfaceObject]
interface JSWindowActor {
[Throws]
void sendAsyncMessage(DOMString messageName,
void sendAsyncMessage(DOMString actorName,
DOMString messageName,
optional any obj,
optional any transfers);
};

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

@ -20,10 +20,8 @@ JSObject* JSWindowActorChild::WrapObject(JSContext* aCx,
WindowGlobalChild* JSWindowActorChild::Manager() const { return mManager; }
void JSWindowActorChild::Init(const nsAString& aName,
WindowGlobalChild* aManager) {
void JSWindowActorChild::Init(WindowGlobalChild* aManager) {
MOZ_ASSERT(!mManager, "Cannot Init() a JSWindowActorChild twice!");
mName = aName;
mManager = aManager;
}
@ -61,6 +59,7 @@ class AsyncMessageToParent : public Runnable {
} // anonymous namespace
void JSWindowActorChild::SendAsyncMessage(JSContext* aCx,
const nsAString& aActorName,
const nsAString& aMessageName,
JS::Handle<JS::Value> aObj,
JS::Handle<JS::Value> aTransfers,
@ -83,8 +82,8 @@ void JSWindowActorChild::SendAsyncMessage(JSContext* aCx,
// loads.
if (mManager->IsInProcess()) {
RefPtr<WindowGlobalParent> parent = mManager->GetParentActor();
RefPtr<AsyncMessageToParent> ev =
new AsyncMessageToParent(mName, aMessageName, std::move(data), parent);
RefPtr<AsyncMessageToParent> ev = new AsyncMessageToParent(
aActorName, aMessageName, std::move(data), parent);
DebugOnly<nsresult> rv = NS_DispatchToMainThread(ev);
NS_WARNING_ASSERTION(
NS_SUCCEEDED(rv),
@ -101,8 +100,8 @@ void JSWindowActorChild::SendAsyncMessage(JSContext* aCx,
return;
}
if (!mManager->SendAsyncMessage(mName, PromiseFlatString(aMessageName),
msgData)) {
if (!mManager->SendAsyncMessage(PromiseFlatString(aActorName),
PromiseFlatString(aMessageName), msgData)) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return;
}

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

@ -45,13 +45,13 @@ class JSWindowActorChild final : public nsWrapperCache {
}
WindowGlobalChild* Manager() const;
void Init(const nsAString& aName, WindowGlobalChild* aManager);
void SendAsyncMessage(JSContext* aCx, const nsAString& aMessageName,
void Init(WindowGlobalChild* aManager);
void SendAsyncMessage(JSContext* aCx, const nsAString& aActorName,
const nsAString& aMessageName,
JS::Handle<JS::Value> aObj,
JS::Handle<JS::Value> aTransfers, ErrorResult& aRv);
private:
nsString mName;
RefPtr<WindowGlobalChild> mManager;
};

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

@ -19,10 +19,8 @@ JSObject* JSWindowActorParent::WrapObject(JSContext* aCx,
WindowGlobalParent* JSWindowActorParent::Manager() const { return mManager; }
void JSWindowActorParent::Init(const nsAString& aName,
WindowGlobalParent* aManager) {
void JSWindowActorParent::Init(WindowGlobalParent* aManager) {
MOZ_ASSERT(!mManager, "Cannot Init() a JSWindowActorParent twice!");
mName = aName;
mManager = aManager;
}
@ -60,6 +58,7 @@ class AsyncMessageToChild : public Runnable {
} // anonymous namespace
void JSWindowActorParent::SendAsyncMessage(JSContext* aCx,
const nsAString& aActorName,
const nsAString& aMessageName,
JS::Handle<JS::Value> aObj,
JS::Handle<JS::Value> aTransfers,
@ -82,8 +81,8 @@ void JSWindowActorParent::SendAsyncMessage(JSContext* aCx,
// loads.
if (mManager->IsInProcess()) {
RefPtr<WindowGlobalChild> child = mManager->GetChildActor();
RefPtr<AsyncMessageToChild> ev =
new AsyncMessageToChild(mName, aMessageName, std::move(data), child);
RefPtr<AsyncMessageToChild> ev = new AsyncMessageToChild(
aActorName, aMessageName, std::move(data), child);
DebugOnly<nsresult> rv = NS_DispatchToMainThread(ev);
NS_WARNING_ASSERTION(NS_SUCCEEDED(rv),
"JS Window Actor AsyncMessageToChild dispatch failed");
@ -100,8 +99,8 @@ void JSWindowActorParent::SendAsyncMessage(JSContext* aCx,
return;
}
if (!mManager->SendAsyncMessage(mName, PromiseFlatString(aMessageName),
msgData)) {
if (!mManager->SendAsyncMessage(PromiseFlatString(aActorName),
PromiseFlatString(aMessageName), msgData)) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return;
}

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

@ -45,13 +45,13 @@ class JSWindowActorParent final : public nsWrapperCache {
}
WindowGlobalParent* Manager() const;
void Init(const nsAString& aName, WindowGlobalParent* aManager);
void SendAsyncMessage(JSContext* aCx, const nsAString& aMessageName,
void Init(WindowGlobalParent* aManager);
void SendAsyncMessage(JSContext* aCx, const nsAString& aActorName,
const nsAString& aMessageName,
JS::Handle<JS::Value> aObj,
JS::Handle<JS::Value> aTransfers, ErrorResult& aRv);
private:
nsString mName;
RefPtr<WindowGlobalParent> mManager;
};

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

@ -178,7 +178,7 @@ already_AddRefed<JSWindowActorChild> WindowGlobalChild::GetActor(
MOZ_RELEASE_ASSERT(!actor->Manager(),
"mManager was already initialized once!");
actor->Init(aName, this);
actor->Init(this);
mWindowActors.Put(aName, actor);
return actor.forget();
}

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

@ -221,7 +221,7 @@ already_AddRefed<JSWindowActorParent> WindowGlobalParent::GetActor(
MOZ_RELEASE_ASSERT(!actor->Manager(),
"mManager was already initialized once!");
actor->Init(aName, this);
actor->Init(this);
mWindowActors.Put(aName, actor);
return actor.forget();
}

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

@ -59,7 +59,7 @@ add_task(async function test_asyncMessage() {
ok(actorChild, "JSWindowActorChild should have value.");
let promise = new Promise(resolve => {
actorChild.sendAsyncMessage("init", {});
actorChild.sendAsyncMessage("Test", "init", {});
actorChild.done = (data) => resolve(data);
}).then(data => {
ok(data.initial, "Initial should be true.");
@ -86,7 +86,7 @@ add_task(async function test_asyncMessage_without_both_side_actor() {
ok(actorChild, "JSWindowActorChild should have value.");
let promise = new Promise(resolve => {
actorChild.sendAsyncMessage("init", {});
actorChild.sendAsyncMessage("Test", "init", {});
actorChild.done = (data) => resolve(data);
}).then(data => {
ok(data.initial, "Initial should be true.");
@ -99,4 +99,3 @@ add_task(async function test_asyncMessage_without_both_side_actor() {
ChromeUtils.unregisterWindowActor("Test");
});
});

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

@ -15,7 +15,7 @@ class TestChild extends JSWindowActorChild {
switch (aMessage.name) {
case "toChild":
aMessage.data.toChild = true;
this.sendAsyncMessage("toParent", aMessage.data);
this.sendAsyncMessage("Test", "toParent", aMessage.data);
break;
case "done":
this.done(aMessage.data);

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

@ -15,11 +15,11 @@ class TestParent extends JSWindowActorParent {
switch (aMessage.name) {
case "init":
aMessage.data.initial = true;
this.sendAsyncMessage("toChild", aMessage.data);
this.sendAsyncMessage("Test", "toChild", aMessage.data);
break;
case "toParent":
aMessage.data.toParent = true;
this.sendAsyncMessage("done", aMessage.data);
this.sendAsyncMessage("Test", "done", aMessage.data);
break;
}
}
@ -28,4 +28,3 @@ class TestParent extends JSWindowActorParent {
return "TestParent";
}
}