Overview
The common container is a lightweight gadget-and-container framework.
For container clients, this is aimed to:
- simplify container and gadget integration model.
- provide near-zero barrier to entry to become a gadget container.
- directly fix problems in all containers, instead of per-container basis.
- reduce changes and differences across containers.
For the Shindig-based team, this is aimed to:
- place a localized control of gadget-and-container interaction.
- clearly separates gadget-and-container interaction from container-specific logic.
- allow security, latency, and functionality changes simultaneously in both gadget and container.
Features
Some features are, but not limited to:
- versioned JS loading.
- navigation of gadgets (pop-in and -out on page).
- latency timing broadcasting.
- hooks for gadget+container RPC functionalities.
- pre-loading of gadgets.
- security token refresh.
- user-preference.
What's new?
2010/12/08: Allow gadget render in cajole mode (in dev)
This can now be requested --
*
container wide, via config['renderCajole'] = true
*
per gadget request, via renderParams['cajole'] = true
2010/12/05: Correct gadget metadata caching (in dev)
Correct client-side caching behavior. Previously, CC cached gadgets iframes and metadatas indefinitely locally in the browser client. This is a problem for container pages that long-lived (ie: AJAX applications will not see new gadget changes unless reloaded). Now, cache is busted according to what the server says (currently, fixed toshindig.cache.xml.refreshInterval), with some adjustments to differences betweenserver/client absolute times. Cache will not be busted for navigated and preloaded gadgets. For simplicity, gadgets need to be closed (unnavigated) and/or unloaded (if preloaded) for its cache to be possibly evicted.
2010/11/01: Broadcast CSI latency times (in sandbox) config[
Provides latency timing and reporting back to the container, upon a gadget navigation. This is facilitated by --
1) requiring the container to register a callback function, ie:
'navigateCallback' *] = function(data) {*}
2) requiring the gadget to opt-into timing, ie:
<Require feature="google.csi"/>
CC will asynchronously call the specified callback function upon a gadget navigation. As part of the data, CC will return a JSON map of --
id : ID of the calling gadget site, ie: gadget site that performs the navigated.
url : Gadget URL (of gadget site with id) navigated to.
dl : DOM Load; when gadget DOM has been fully loaded.
prt : Page Render Time; .
Refer to here, full description of CSI metrics.