Closed Bug 1092860 Opened 11 years ago Closed 11 years ago

[EME] Some GMP enums aren't IPDL serialized correctly

Categories

(Core :: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla36
Tracking Status
firefox37 --- fixed
firefox38 --- fixed
firefox39 --- fixed

People

(Reporter: cpearce, Assigned: cpearce)

References

Details

Attachments

(1 file)

I discovered that the GMPSessionType and GMPVideoFrameType enums aren't serialized properly in GMPMessageUtils.h. The enums must have a "last/invalid value" as the last member the enum, as the IPCMessageUtils.h ContiguousEnumValidator just checks to see if the enum value being serialized is < HighBound. So if we don't have a "last/invalid" member of the GMPSessionType and GMPVideoFrameType enums and we don't pass that to the ContiguousEnumSerializer's for these enums, they won't serialize properly. This bug was manifesting as MediaKeySession.remove() not being proxied across to the child process.
Attached patch PatchSplinter Review
Fix the serialization of GMPVideoFrameType and GMPSessionType. If OpenH264 relies on the kGMPSkipFrame GMPVideoFrameType value serializing correctly, we'd better uplift the GMPVideoFrameType serialization fix. Enum values < kGMPSkipFrame will still serialize correctly.
Attachment #8515700 - Flags: review?(rjesup)
Attachment #8515700 - Flags: review?(rjesup) → review+
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
Mass update firefox-status to track EME uplift.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: