printFrameTypeUsage can have two values:
We set these values in exactly one place in the code each. We set kUseInternalDefault as the initial value for nsPrintSettings::mPrintFrameTypeUsage, and we set kUseSettingWhenPossible as a default value of a local variable that is used as an outparam for nsPrintSettings::GetPrintFrameTypeUsage, which overwrites that local variable with the value of nsPrintSettings::mPrintFrameTypeUsage. In other words, the one place where we assign kUseSettingWhenPossible has no affect. Essentially kUseSettingWhenPossible is unused, and we always take the kUseInternalDefault codepaths.
We should get rid of all this code and just hardcode the kUseInternalDefault path that we always take. (Especially in light of bug 1552785 where we're going to more extensively hardcode the behavior anyway.)