Ticket #80 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Certain long URL's can't open in Instaviz

Reported by: glen.low@… Owned by:
Priority: high: does not work as expected Milestone: 1.3 sharing release
Component: Version: 1.2
Keywords: Cc:

Description

iPhoneOS as of 2.2.1 has this bug: it will refuse to open any URL longer than about 1,000 characters containing significant %-encoding and where the % character is not aligned on a multiple-of-3 index. While we can mandate the instaviz: URL should be fully %-encoded, including alphanumeric characters, that would triple the size of the resulting URL. So it's best to support the base64 encoding instead, and clean up the URL format.

See #79 for initial description of the URL format.

The instaviz: scheme now includes an inner URL. Some examples:

instaviz:data:;base64,ZGlncmFw ...
Embedded graph as a data URL, with graph base64-encoded. This should allow arbitrary size graphs to pass unscathed in from the the system. Note that the base64 punctuation i.e. + / and = is unencoded. Note also that you can use text/plain, text/vnd.graphviz as the content type, after the data: part.

instaviz:data:,digraph%7Bhello-%3Eworld%7D
Embedded graph as a data URL, with graph %-encoded. The whole URL should be smaller than about 1,000 characters in order to work. Note that you can use text/plain, text/vnd.graphviz as the content type, after the data: part.

instaviz:http://somewhere.com/somegraph.gv
The graph will be fetched from the http URL. We'll support http and https schemes in this way.

Change History

Changed 3 years ago by glenlow

  • status changed from new to closed
  • resolution set to fixed

(In [120]) instaviz: scheme now supports data:, http: and https: inner schemes (fix #80). data: inner scheme supports base64 encoding for smaller URL's and to work around iPhoneOS bug opening long URL's with misaligned % characters. Removed separate instaviz-url: scheme. Improved error reporting for URL handling and opening graphs.

Note: See TracTickets for help on using tickets.