зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
6872844079
Коммит
a886d44d2f
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче