For background info on this technique (which I was unaware of) please read http://blog.httpwatch.com/2010/02/10/using-protocol-relative-urls-to-switch-between-http-and-https/
Now that I understand this I'd be happy to get these schemeless URLs back in place -- we should probably be aware of the css issue linked above as well. The css issue I noted was not a problem after all, the display issue was caused by the redefinition of the osapi endpoints.. On Thu, Aug 12, 2010 at 5:19 PM, John Hjelmstad <[email protected]> wrote: > As has been discussed, the rationale for this is to support HTTP and HTTPS > without mixed-content warnings. > > We could do this easily if we had a context object with the current schema > in it. Some installations of Shindig do, and can override the hook in > DefaultIframeUriManager (and others): > > protected String getScheme(Gadget gadget, String container) { > // Scheme-relative by default. Override for specific use cases. > return null; > } > > > --j > > On Thu, Aug 12, 2010 at 5:07 PM, Gagandeep singh <[email protected] > >wrote: > > > Hi Mat, Paul > > > > Sorry for the late response. I tried looking up what the browser behavior > > is > > for uri's without a scheme but could not find anything useful. I have had > > my > > own doubts about schemeless uri's (i still have some), but i vaguely > > remember Ziv explaining and convincing me that it is better to output a > > schemeless uri. The argument was something along the lines that the > browser > > can use the same scheme as that of the page that emits the uri and we > don't > > go through the trouble of figuring out the scheme by looking at the > gadget > > url etc. > > > > From a correctness point of view, there is nothing wrong in emitting > uri's > > with scheme and schemeless uri's can be confusing. The tests written > > in StyleTagProxyEmbeddedUrlsVisitorTest > > just test what the proxyUriManager emits :) So if we finalize on getting > > rid > > of schemeless uris, please go ahead and modify the tests appropriately. > All > > we care about is that proxying functionality is retained. > > > > And it so happens that schemeless uri's also work within css, just like > > they > > currently work with any other url generated by the page html. The browser > > uses the scheme of the html page the css is loaded in context of. Btw, > what > > was the javascript use case you had in mind ? > > > > On Wed, Aug 11, 2010 at 2:52 PM, Christiaan Hees <[email protected]> > > wrote: > > > > > I think I found something related to this. > > > A post to metadata with something like: > > > > > > > > > {"context":{"country":"US","language":"en","view":"default","container":"default"},"gadgets":[{"url":" > > > http://www.google.com/ig/modules/hello.xml","moduleId":1}]} > > > > > > returns an invalid iframeUrl: > > > iframeUrl: "// > > > > > > > > > http://localhost:8080/gadgets/ifr?url=http%3A%2F%2Fwww.google.com%2Fig%2Fmodules%2Fhello.xml&container=default&view=%25view%25&lang=%25lang%25&country=%25country%25&debug=%25debug%25&nocache=%25nocache%25&v=8090dbad37029ea9eaa5e6c6d9cef98a > > > " > > > > > > You can see it on this page with firebug: > > > http://localhost:8080/container/sample-metadata.html > > > > > > > > Good find. It seems the problem arises from the following snippet in > > DefaultIframeUrimanager: > > > > // 2. Set host/authority. > > String host; > > if (usingLockedDomain(gadget, container)) { > > host = ldGen.getLockedDomainPrefix(gadget.getSpec().getUrl()) + > > getReqVal(container, LOCKED_DOMAIN_SUFFIX_KEY); > > } else { > > host = getReqVal(container, UNLOCKED_DOMAIN_KEY); > > } > > uri.setAuthority(host); > > > > What is happening is that we are setting the authority as " > > http://localhost:8080" and scheme as null, whereas we should be setting > > authority as "localhost:8080". The following snippet in container.js > > explains why this happens: > > > > "defaultShindigTestHost": "http://${SERVER_HOST}:${SERVER_PORT}", > > "gadgets.uri.iframe.unlockedDomain": "${Cur['defaultShindigTestHost']}", > > > > > > A small fix would be to do this: > > "defaultShindigTestAuthority": "${SERVER_HOST}:${SERVER_PORT}", > > "gadgets.uri.iframe.unlockedDomain": > > "${Cur['defaultShindigTestAuthority']}", > > > > > > On Tue, Aug 10, 2010 at 3:33 PM, Mat Mannion <[email protected] > > >wrote: > > > > > > > Yes, sorry - wrote the mail in a rush. It should be the same as the > > > iframe > > > > URL. > > > > > > > > On 10 August 2010 13:36, Paul Lindner <[email protected]> wrote: > > > > > actually to avoid mixed-content warnings you'll probably want to > > match > > > > the > > > > > scheme of the iframe URL. > > > > > > > > > > On Tue, Aug 10, 2010 at 5:29 AM, Mat Mannion < > > [email protected] > > > > >wrote: > > > > > > > > > >> Can we set the scheme to be the same as the gadget URL, rather > than > > > > >> guessing at http? > > > > >> > > > > >> Mat > > > > >> > > > > >> On 10 August 2010 10:48, Paul Lindner <[email protected]> > > wrote: > > > > >> > I'm also seeing schemeless URIs leaking into the CSS rewriter > > > output. > > > > >> > Here's some output from samplecontainer: > > > > >> > > > > > >> > div.bubble { > > > > >> > > > > > >> > background-image: > > > > >> > > > > > >> > > > > > > > > > > url('//localhost:8080/gadgets/proxy?container=default&gadget=http%3A%2F%2Flocalhost%3A8080%2Fsamplecontainer%2Fexamples%2FSocialHelloWorld.xml&debug=0&nocache=0&url=http%3A%2F%2Flocalhost%3A8080%2Fsamplecontainer%2Fexamples%2Fbubble.gif'); > > > > >> > > > > > >> > background-repeat: no-repeat; > > > > >> > > > > > >> > width: 202px; > > > > >> > > > > > >> > > > > > >> > What's confusing is that the tests as written > > > > >> > (StyleTagProxyEmbeddedUrlsVisitorTest) expect this broken > output. > > > > >> > > > > > >> > I'm going to set the scheme to http for now, I'd like to know > why > > > this > > > > is > > > > >> > the way it is. I can see schemeless URIs being useful in a > > > javascript > > > > >> > context, but I cannot fathom how they're supposed to work > > otherwise. > > > > >> > Gagan/John can you fill us in? > > > > >> > > > > > >> > On Thu, Aug 5, 2010 at 8:41 AM, Gagandeep singh < > > > [email protected] > > > > >> >wrote: > > > > >> > > > > > >> >> Hi Mat > > > > >> >> > > > > >> >> You could post a snippet of the html which has the scheme-less > > > link, > > > > the > > > > >> >> iframe you are talking about and the culprit <base tag> in > gadget > > > > html. > > > > >> >> That > > > > >> >> should help dev@ community understand the problem better. > > > > >> >> Also, you might want to take a look at > > > > >> >> AbsolutePathReferenceRewriter< > > > > >> >> > > > > >> > > > > > > > > > > http://svn.apache.org/repos/asf/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/AbsolutePathReferenceVisitor.java > > > > >> >> >. > > > > >> >> It expands all the relative urls relative to the base tag > > provided > > > in > > > > >> the > > > > >> >> html. It doesnt have iframe-src for now, but i guess it can be > > > added > > > > and > > > > >> >> might solve the problem your seeing. > > > > >> >> > > > > >> >> On Thu, Aug 5, 2010 at 4:45 PM, Mat Mannion < > > > [email protected] > > > > > > > > > >> >> wrote: > > > > >> >> > > > > >> >> > Hi all, > > > > >> >> > > > > > >> >> > I understand the thinking behind scheme-less proxy/concat > URIs, > > > but > > > > I > > > > >> >> > don't think they're working as intended. The problem is that > > the > > > > >> >> > intention is that they should be on the same scheme as the > > iframe > > > > >> >> > renderer, but we then insert a <base> tag with the gadget > URI, > > > > which > > > > >> >> > means that the URIs for /proxy and /concat are actually on > the > > > same > > > > >> >> > scheme as the gadget - this is causing issues for us as we > > don't > > > > run > > > > >> >> > the shindig server on HTTP at all. At least, this is the > > > behaviour > > > > I'm > > > > >> >> > seeing in Google Chrome. > > > > >> >> > > > > > >> >> > Could someone take a look at this and tell me if I'm right in > > my > > > > >> >> > deduction that this is what's causing the problem? > > > > >> >> > > > > > >> >> > Thanks in advance, > > > > >> >> > > > > > >> >> > Mat > > > > >> >> > > > > > >> >> > -- > > > > >> >> > Mat Mannion > > > > >> >> > Web Developer > > > > >> >> > IT Services > > > > >> >> > University of Warwick > > > > >> >> > Coventry > > > > >> >> > CV4 7AL > > > > >> >> > > > > > >> >> > Tel: 024 765 74433 > > > > >> >> > Email: [email protected] > > > > >> >> > > > > > >> >> > > > > >> > > > > > >> > > > > > >> > > > > > >> > -- > > > > >> > Paul Lindner -- [email protected] -- > linkedin.com/in/plindner > > > > >> > > > > > >> > > > > >> > > > > >> > > > > >> -- > > > > >> Mat Mannion > > > > >> Web Developer > > > > >> IT Services > > > > >> University of Warwick > > > > >> Coventry > > > > >> CV4 7AL > > > > >> > > > > >> Tel: 024 765 74433 > > > > >> Email: [email protected] > > > > >> > > > > > > > > > > > > > > > > > > > > -- > > > > > Paul Lindner -- [email protected] -- linkedin.com/in/plindner > > > > > > > > > > > > > > > > > > > > > -- > > > > Mat Mannion > > > > Web Developer > > > > IT Services > > > > University of Warwick > > > > Coventry > > > > CV4 7AL > > > > > > > > Tel: 024 765 74433 > > > > Email: [email protected] > > > > > > > > > > -- Paul Lindner -- [email protected] -- linkedin.com/in/plindner
