Looks interesting, however it doesn't appear that this sets the Vary or Cache-Control headers to insure that content does not get cached in a CDN inappropriately.
Use Vary: User-Agent or Cache-Control: private to insure that the correct browser-based version is cached in the middle tier. http://codereview.appspot.com/63210/diff/1/8 File java/gadgets/src/main/java/org/apache/shindig/gadgets/SmartRpcJsFeatureLoader.java (right): http://codereview.appspot.com/63210/diff/1/8#newcode136 Line 136: String getRpcContent(String keySuffix) { It might be interesting to move this capability logic inside the userAgent class/enum. Also since 'new' browsers support html5 it might also be interesting to have a fast lookup map that handles the common use cases. http://codereview.appspot.com/63210

