Bug 1648109 - Report GetActor exceptions directly to the JSContext, r=kmag

Differential Revision: https://phabricator.services.mozilla.com/D82446
This commit is contained in:
Nika Layzell 2020-07-06 21:17:17 +00:00
parent e65481e7fb
commit 54d298d667
5 changed files with 15 additions and 15 deletions

View File

@ -4261,13 +4261,13 @@ NS_IMETHODIMP ContentChild::GetChildID(uint64_t* aOut) {
return NS_OK;
}
NS_IMETHODIMP ContentChild::GetActor(const nsACString& aName,
NS_IMETHODIMP ContentChild::GetActor(const nsACString& aName, JSContext* aCx,
JSProcessActorChild** retval) {
ErrorResult error;
RefPtr<JSProcessActorChild> actor =
JSActorManager::GetActor(aName, error).downcast<JSProcessActorChild>();
if (error.Failed()) {
return error.StealNSResult();
if (error.MaybeSetPendingException(aCx)) {
return NS_ERROR_FAILURE;
}
actor.forget(retval);
return NS_OK;

View File

@ -6853,13 +6853,13 @@ IPCResult ContentParent::RecvRawMessage(const JSActorMessageMeta& aMeta,
return IPC_OK();
}
NS_IMETHODIMP ContentParent::GetActor(const nsACString& aName,
NS_IMETHODIMP ContentParent::GetActor(const nsACString& aName, JSContext* aCx,
JSProcessActorParent** retval) {
ErrorResult error;
RefPtr<JSProcessActorParent> actor =
JSActorManager::GetActor(aName, error).downcast<JSProcessActorParent>();
if (error.Failed()) {
return error.StealNSResult();
if (error.MaybeSetPendingException(aCx)) {
return NS_ERROR_FAILURE;
}
actor.forget(retval);
return NS_OK;

View File

@ -139,13 +139,13 @@ InProcessParent::GetOsPid(int32_t* aOsPid) {
}
NS_IMETHODIMP
InProcessParent::GetActor(const nsACString& aName,
InProcessParent::GetActor(const nsACString& aName, JSContext* aCx,
JSProcessActorParent** aActor) {
ErrorResult error;
RefPtr<JSProcessActorParent> actor =
JSActorManager::GetActor(aName, error).downcast<JSProcessActorParent>();
if (error.Failed()) {
return error.StealNSResult();
if (error.MaybeSetPendingException(aCx)) {
return NS_ERROR_FAILURE;
}
actor.forget(aActor);
return NS_OK;
@ -188,13 +188,13 @@ InProcessChild::GetChildID(uint64_t* aChildID) {
}
NS_IMETHODIMP
InProcessChild::GetActor(const nsACString& aName,
InProcessChild::GetActor(const nsACString& aName, JSContext* aCx,
JSProcessActorChild** aActor) {
ErrorResult error;
RefPtr<JSProcessActorChild> actor =
JSActorManager::GetActor(aName, error).downcast<JSProcessActorChild>();
if (error.Failed()) {
return error.StealNSResult();
if (error.MaybeSetPendingException(aCx)) {
return NS_ERROR_FAILURE;
}
actor.forget(aActor);
return NS_OK;

View File

@ -33,7 +33,7 @@ interface nsIDOMProcessChild: nsISupports {
/**
* Lookup a JSProcessActorChild managed by this interface by name.
*/
JSProcessActorChild getActor(in ACString name);
[implicit_jscontext] JSProcessActorChild getActor(in ACString name);
/** Can the actor still send messages? */
[infallible] readonly attribute boolean canSend;

View File

@ -38,10 +38,10 @@ interface nsIDOMProcessParent: nsISupports {
/**
* Lookup a JSProcessActorParent managed by this interface by name.
*/
JSProcessActorParent getActor(in ACString name);
[implicit_jscontext] JSProcessActorParent getActor(in ACString name);
/** Can the actor still send messages? */
[infallible] readonly attribute boolean canSend;
[notxpcom, nostdcall] ContentParentPtr asContentParent();
[notxpcom, nostdcall] ContentParentPtr AsContentParent();
};