[API CHANGE] Adapt css.uri UNOIDL entities to RFC 3986
Stephan Bergmann
sbergman at redhat.com
Wed Aug 21 06:59:20 UTC 2019
I'd like to draw your attention to the planned URE API change
<https://gerrit.libreoffice.org/#/c/77861/> "[API CHANGE] Adapt css.uri
UNOIDL entities to RFC 3986". The original implementation of
css.uri.UriReferenceFactory et al was based on then-current RFC 2396
(<https://tools.ietf.org/html/rfc2396> "Uniform Resource Identifiers
(URI): Generic Syntax"), but which has long since been obsoleted by RFC
3986 (<https://tools.ietf.org/html/rfc3986> "Uniform Resource Identifier
(URI): Generic Syntax"). Conformance with the new RFC required some
changes in behavior of those UNOIDL entities, mostly around corner
cases; for details see the list below, extracted from the commit message.
If there is no objections over the coming days, I'm going to push this
to master soon.
> * XUriReference.isHierarchical is obsolete and deprecated.
>
> * The behavior of XUriReference.hasAuthority, XUriReference.getAuthority,
> XUriReference.getPath, XUriReference.hasRelativePath,
> XUriReference.getPathSegmentCount, XUriReference.getPathSegment,
> XUriReference.hasQuery, and XUriReference.getQuery has been made consistent
> for all URIs, no matter whether they were considered hierarchical or opaque in
> the past.
>
> * The behavior of XUriReferenceFactory.makeAbsolute and
> XUriReferenceFactory.makeRelative has been changed to match the RFC 3986
> reference resolution specification. The XUriReferenceFactory.makeAbsolulte
> parameter processSpecialBaseSegments has been renamed to
> processAdditionalSpecialSegments, as per the updated specification it now
> controls treatment of special segments in the given uriReference, in addition
> to special segments in the given baseUriReference. (Renaming UNOIDL interface
> method parameters is technically an incompatible change, but the benefits of
> improved clarity presumably outweigh any potential drawbacks in this case.)
More information about the LibreOffice
mailing list