Given how nsIPrintSettings is passed around, stored and copied all over the place, it's very hard to reason about where and when a RemotePrintJobChild is needed or valid. This patch avoids all that by explicitly passing a RemotePrintJobChild when it's needed. Another reason to make this change is because RemotePrintJobChild really does not belong on nsIPrintSettings. That interface is supposed to represent a collection of settings for laying out the document that is to be printed. Differential Revision: https://phabricator.services.mozilla.com/D146380