jzillmann/jmh-visualizer

Cannot use URL from openjdk code review server

Closed this issue · 6 comments

I work on OpenJDK, and I'm trying to publish a JMH report using your great tool. I've uploaded my JMH json files here:

https://cr.openjdk.org/~mcimadamore/jdk/8331865/

Ideally, I'd like to pass the two URLs to the visualizer, so that I can then share the resulting page. But I'm not having luck with using such URLs. Using gist works (or uploading locally) - but I wonder if there's a reason as to why the URL function doesn't seem to work? (and, maybe also making sure it's not an issue on our end, e.g. our code review server).

I work on OpenJDK, and I'm trying to publish a JMH report using your great tool. I've uploaded my JMH json files here:

https://cr.openjdk.org/~mcimadamore/jdk/8331865/

Ideally, I'd like to pass the two URLs to the visualizer, so that I can then share the resulting page. But I'm not having luck with using such URLs. Using gist works (or uploading locally) - but I wonder if there's a reason as to why the URL function doesn't seem to work? (and, maybe also making sure it's not an issue on our end, e.g. our code review server).

I tried this URL and got following errors in the browser console:

image
You can follow Learn More links to see a list of possible mitigations

Many thanks for getting back to me. I've verified that indeed there are errors on the browser console, and raised the issue to our team in charge of the server configuration. I will update this issue once I know more. Thanks again.

Hey @mcimadamore , it's a CORS issue. Because JMH visualizer doesn't have a server and just runs in the browser, it cannot fetch content from servers with a restrictive content policy.

Workaround would be to use a proxy.
You could manually wrap your urls into e.g. CorsProxy (https://corsproxy.io):

So
https://cr.openjdk.org/~mcimadamore/jdk/8331865/loop_over_00_baseline.json
will become
https://corsproxy.io/?https://cr.openjdk.org/~mcimadamore/jdk/8331865/loop_over_00_baseline.json and that will be loadable with the visualizer
https://jmh.morethan.io/?source=https://corsproxy.io/?https://cr.openjdk.org/~mcimadamore/jdk/8331865/loop_over_00_baseline.json

So
https://cr.openjdk.org/~mcimadamore/jdk/8331865/loop_over_00_baseline.json
will become
https://corsproxy.io/?https://cr.openjdk.org/~mcimadamore/jdk/8331865/loop_over_00_baseline.json and that will be loadable with the visualizer
https://jmh.morethan.io/?source=https://corsproxy.io/?https://cr.openjdk.org/~mcimadamore/jdk/8331865/loop_over_00_baseline.json

Nice trick/workaround - thanks!

Closing this issue as it seems related to the configuration of the openjdk server cr.openjdk.org more than anything else. The workaround using CorsProxy works.