I am looking into porting Adobe SVG plugin to Mozilla and I came
across this problem: some interfaces were changed from 0.6 to 0.8,
but their IIDs were not. Some people suggested that in Mozilla/XPCOM
world it is OK to change interface if it is not frozen, and there is no
need to change its IID. That makes it impossible to do anything at all
with non-frozen interfaces, because if it is ever changed, my code will
simply crash (and users will blame me). On the other hand, if interface
is changed, but its IID is also changed, I at least can do something sane.
This is very serious problem for us, and solution to this can make a
difference
between "go ahead" and "put it on hold" for this project.
Note that only handful of Mozilla interfaces are frozen right now.
Does anyone has (or anticipates) this problem?
Would it be feasible for Mozila to change IID of *any* interface every
time its vtable layout is changed (this would not seem to require anything
but IID string change in the same IDL file)?
Peter Sorotokin