Bug 928221: reland (backed out due to bug 924992: webidl changes sometimes fail in incremental builds) r=jesup,abr