As defined in the specification:
https://www.w3.org/TR/upgrade-insecure-requests/#algorithms
When the top-frame is asked to navigate to a new URL (by another frame),
the URL's origin is compared against an "upgrade insecure navigations set".
The problem is that the we are currently comparing the set of the frame that
is asked to navigate instead of the frame that asked the navigation.
Top-frame's set is empty or contains only its current origin. Children-frame's sets
are bigger and contain the top-frame's set.
The concrete result is that some URLs are not upgraded, while they should be.
A set of tests have been made there:
https://codereview.chromium.org/2538143004
Comment 1 by bugdroid1@chromium.org
, Jan 17 2018