locked-domain feature

Issue 1280

Background

This feature allows the gadget to indicate to the container that the gadget requires/desires an isolated execution environment. If the container supports this feature and grants it to the gadget, the gadget should have it's execution scope isolated from other gadgets and the container itself.

Gadgets that do not directly require this feature may have it required for them as a dependency of other features.

Options

This feature takes an optional parameter to enable the possibility of having multiple gadgets opt-in to a shared execution scope. This is primarily to facilitate the cross-gadget used of a single shared-script-frame.

To use this feature with the shared-scope option, a gadget must require(or optional) the feature like so:

  <Require feature="locked-domain">
    <Param name="participant">http://gadgets.another-example.com/SharedLockedDomainDemo1.xml</Param>
    <Param name="participant">http://gadgets.example.com/SharedLockedDomainDemo2.xml</Param>
  </Require>

The container may or may not choose to honor this option.

All participants in the shared scope must be listed, including the actual gadget listing them. As a precaution it is recommended that container implementations manually add the gadget in questions to the list, if absent, when deriving the shared-scope.

If the container chooses to honor the option, a "shared-scope" derived from the list of participants will be created for any gadget that specifies the same set of gadgets. If these gadgets use the shared-script-frame feature, they will all have access to and share a common frame.