On Thursday, January 28, 2016 at 2:56:19 PM UTC-8, Ehsan Akhgari wrote:
> 10 days and no objections.  This is now the new rule!  Please stop updating
> UUIDs when changing XPIDL interfaces.
> 
> On Fri, Jan 15, 2016 at 10:58 AM, Ehsan Akhgari <ehsan.akhg...@gmail.com>
> wrote:
> 
> > Historically we have enforced updating the XPIDL interface UUIDs when you
> > made any changes to it.  This was needed because of two reasons:
> >
> > * Backwards compatibility with binary extensions.  Since many changes to
> > XPIDL interfaces caused the underlying v-table layout to change, revving
> > the UUID enabled previously compiled extensions to fail getting the
> > interface through QueryInterface() in the first place, preventing crashes
> > when they try to use the interface.
> >
> > * Incremental builds.  Our build system used to not repack the compiled
> > XPT file unless it detected a change in the UUID, which would manifest as
> > weird issues when you landed code changing an interface without changing
> > its UUID, in that in incremental builds the XPT file would be outdated, but
> > in clobbered builds it would be correct.
> >
> > We have created Mercurial hooks that enforce a UUID change when an idl
> > file is touched because of these requirements.
> >
> > Ever since Firefox 41, we have stopped supporting binary components in
> > extensions, so the first reason doesn't apply any more.  And since
> > yesterday I have fixed bug 977464 which fixes the second issue.  So as far
> > as I can tell, there is no reason to keep revving UUIDs any more. Therefore
> > I would like to propose that we should remove the Mercurial hook (bug
> > 1170718) and relax this requirement on trunk, and let this ride the trains.
> >
> > Three points worth mentioning here.
> >
> > * Thunderbird still supports binary components in extensions.  In <
> > https://bugzilla.mozilla.org/show_bug.cgi?id=977464#c31> Kent said that
> > Thunderbird is OK with change.
> >
> > * My proposal has no bearing on whether changes to XPIDL interfaces needs
> > to be considered as part of the uplift approval process, as such changes
> > can still have an impact on JS extension compatibility. Therefore under my
> > proposal we'd reword the approval canned questionnaire on Bugzilla to talk
> > about changes to XPIDL interfaces in addition to string changes, in lieu of
> > mentioning UUID changes.
> >
> > * UUIDs are still the unique identifiers used in QueryInterface()
> > implementations and you'd still need to tag the interface with a UUID when
> > you create a new XPIDL interface.
> >
> > Please let me know if you have any questions or concerns.
> >
> > Cheers,
> > Ehsan
> >
> 
> 
> 
> -- 
> Ehsan

Have the reject-on-idl-change-but-no-uuid-change scripts been updated on the hg 
server?
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to