Open Bug 1529944 Opened 6 years ago Updated 3 years ago

consider downcasting actor arguments where appropriate

Categories

(Core :: IPC, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: froydnj, Unassigned)

References

(Depends on 1 open bug)

Details

ContentParent has:

    async PExternalHelperApp(OptionalURIParams uri,
                             OptionalLoadInfoArgs loadInfoArgs,
                             nsCString aMimeContentType,
                             nsCString aContentDisposition,
                             uint32_t aContentDispositionHint,
                             nsString aContentDispositionFilename,
                             bool aForceSave,
                             int64_t aContentLength,
                             bool aWasFileChannel,
                             OptionalURIParams aReferrer,
                             nullable PBrowser aBrowser);

which means that PContentParent has:

auto PContentParent::RecvPExternalHelperAppConstructor(
        PExternalHelperAppParent* actor,
        ...lots of other things...) -> mozilla::ipc::IPCResult

It would be super-convenient if that PExternalHelperAppParent argument was automatically static_cast'ed by IPDL into the correct concrete type, because Recv*Constructor might want to call methods that are defined by the concrete subclass, rather than the IPDL-defined abstract superclass. I ran into this when working on bug 1521120 and the attendant refactoring.

If we want to do this, we'd need devirtualization of constructor methods.

Depends on: 1530347
Priority: -- → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.